基于PCI总线的嵌入式实时DSP图像采集系统
操作上的瓶颈。
本系统DSP主要完成从FIFO读出数据的处理以及压缩等。数据处理由自行编写的算法实现,数据压缩算法采用JPEG(Joint Photographic Expert Group)标准。当摄像头采集速度为每秒25帧图像时,它留给DSP处理的时间最多为每帧40ms。如果考虑系统有一定的延时以及处理后图像的存储时间,那么DSP处理一幅图像时间不能超过30ms。按照C6211的处理速度,在30ms内可以处理48M(0.03×1600MIPS)条指令。DSP读出FIFO中的行数据并存入SDRAM,一帧图像有576行,在最后一行时会收到系统的帧中断,这时SDRAM中的图像数据总共有1440×576=810KB。让C6211用36M条指令周期的时间处理810KB的数据显然绰绰有余。粗略的计算过程如下:
系统采用快速DCT(离散余弦变换),每8×8矩阵需要11次乘法、29次加法,因此一帧图像的FDCT,共需要(11+29)×720×576×2/64=518400个指令周期;对于量化模块,每8×8矩阵需要64个量化指令周期,一帧需要64×720×576×2/64=829440个指令周期;对于编码部分,假设编码后非0元素占25%,对每8×8矩阵进行Zig-Zag扫描、编码估计需要120个指令周期,则共需120×720×576×2/64=1555200个指令周期。按以上计算,在系统中进行JPEG编码大约需要2903040个指令周期,耗时19.3536ms(TMS320C6211工作在150MHz时)。可以看出,实际需要的指令远小于36M条,而时间也远小于30ms,DSP完全可以实时处理从FIFO传过来的数据。
(3)PCI总线模块
PCI总线规范吸引人的地方不仅是其高速度,更在于它适应了现代I/O设备对系统的要求,对PCI扩展卡及器件能进行全自动配置,并且只需很少的接口逻辑就可以实现并支持其他总线系统。
TMS320C6211的HPI口不支持PCI总线的无缝接口。本系统采用TI公司的PCI2040实现DSP的HPI与PCI总线的连接。DSP处理后的数据经HPI口输出到PCI2040进行解码,然后输出到PCI总线上。其逻辑结构如图3所示。
PCI2040是TI公司设计的专门用来完成C5000系列和C6000系列DSP与PCI总线进行接口的专用芯片。PCI2040符合PCI局部总线2.2规范,能够方便地实现PCI总线与TMS320C54X或TMS320C6X DSP的HPI接口的无缝连接。PCI2040可以兼容3.3V和5V,以适应不同的PCI总线电压。PCI2040与C6211之间不需要信号的电平转换,也不需要额外的控制逻辑电路,接口电路十分简单。
在本系统中,PCI2040上存在两种电压:5V和3.3V。其中3.3V是HPI口电压,5V是PCI总线电压。PCI2040启动时需要对其PCI总线寄存器和HPI寄存器参数进行预加载。系统中PCI解码模块包括一块配置ROM——AT24C08A,属于EEPROM型ROM,便于对配置参数修改和升级。当系统启动时,存储在AT24C08A的数据下载到PCI2040的寄存器中并进行配置。
图3中HINT[3:0]、HCS[3:0]、HRDY[3:0]、HRST[3:0]分别与四片DSP中的相应信号相连。即PCI2040可以同时与四片DSP接口。
2 系统的软件设计
本软件系统包括两部分,即底层软件和系统软件。
底层软件主要是DSP图像处理算法以及启动等运行程序。这些程序主要在CCS环境下由C语言编写并进行汇编优化。CCS即Code Composer Studio,是TI公司发布的DSP软件运行环境。
《基于PCI总线的嵌入式实时DSP图像采集系统(第2页)》