基于FPGA/CPLD和USB技术的无损图像采集卡
USB规范1.1版本定义了USB的四种数据传输模式:控制传输、同步传输、中断传输和块传输,以适应不同应用场合的需求。其中块传输方式提供数据校验,适用于无误传输大指数据的场合。本课题选用USB的块传输方式,同时采用了EZ-USB的快速传输模式,理论速率为12Mbps,实际最高速率能达到8Mbps。
当PC机检测到USB图像采集卡已经插上后,PC机可自动地将图像采集卡的驱动程序装入操作系统,同时PC机通过USB总线下载8051程序代码和设备特片到USB的RAM中。(凹丫丫范文网fanwen.oyaya.net收集整理)
USB的开发包括USB的固件程序、Windows设备驱动程序和Windows主机应用程序的编制,限于篇幅,这里只简单介绍一下USB固件程序(Firmware)的编制。USB固件程序的具体流程如图3所示,在源程序的TD_Poll()中加入了对比度、亮度及饱和度的调节,以做到在硬件上对图像处理中的上述重要参数的调节,在外部中断1中完成一帧数据的快速传输。
由于采用了外部中断1,为了避免与USB中断的冲突,需要在工程中自己编写一个汇编文件,内容如下:
cseg at 43h
ljmp 1800h
end
此外,在编写的Keil C源程序中需要加两句话,以解决USB中断和外部中断的地址重叠问题。
#pragma intvector (0x17FD)
#pragma interval(4)
为了增加USB传输数字视频信号的速度,采用USB的快速读写模式,在Keil C源程序中内嵌对USB进行寄存器设置的汇编代码。配置了USB的时钟控制寄存器,采用全速访问数据存储器,MOVX指令在两个机器周期内实行,时钟频率为24MHz,因此USB产生的读选通宽度为83.3ns。配置端口A,使能PORTACFG(16进制地址为7F93H)寄存器中的快速读FRD。配置快速传输控制寄存器FASTXFR(16进制地址为7FE2 H),采用快速块传输,使能快速读写信号。为了将端点2缓冲匹配置成FIFO,增加读写速度,8051将端点2缓冲区(IN2)的首地址7E00H装入自动指针AUTOPTRH(16进制地址为7FE3H)和AUTOPTRL(16进制地址为7FE4H),并且dptr指向AUTODATA(16进制地址为7FE5H),也就是指向了FIFO寄存器,这样8051可以完全像FIFO一样访问端点2缓冲区。
2.4 PC机端的图像还原
在PC机端,用Visual C++ 6.0编写客户应用程序,应用程序通过USB接收原始的奇数场和偶数场图像数据,待接收完奇数场和偶数场图像数据后,应用程序把它们组成完整的一帧图像,并且把该帧图像数据存储到硬盘上,然后把这帧图像转化成BMP格式的图像,以BMP格式再次在硬盘上存储图像数据,同时以BMP的形式显示图像。
3 应用前景
该无损图像采集卡虽然是针对特殊的图像处理应用而研发的,但它的作用很广,能应用于嵌入式系统中的图像传输、集成电路和精密机械领域中的器件定位等。此外,如果用USB2.0代替USB1.1,则能实时传输图像数据到PC机或嵌入式系统,用软件进行图像数据的压缩处理,这块外置式图像采集卡可以作为一个很好的实时监控设备,以降低硬件成本。
《基于FPGA/CPLD和USB技术的无损图像采集卡(第3页)》