|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
<strong>1 引言</strong>
图像处理、瞬态信号检测等领域要求高速度、高精度、高实时性的数据采集与处理技术,因此对高速图像采集系统的数据传输提出更高要求。现在高速图像采集系统一般采用高性能数字信号处理器(DSP)和高速总线的框架结构。DSP完成计算量巨大的实时处理算法,高速总线实现处理结果或采样数据的快速传输,可采用 ISA、PCI、USB等高速总线,而USB总线具有安装方便、高带宽、易扩展、传输速率高达480 b/s,已成为计算机接口的主流。因此,这里介绍一种采用USB2.0接口和高性能DSP的高速图像采集处理系统,主要应用于井下视频检测,也可应用于光纤通信、雷达信号处理等领域。
<strong>2 图像采集系统硬件设计</strong>
2.1 系统硬件设计架构
图1为该高速图像采集系统硬件设计架构。该系统设计选用ICX205AL型CCD传感器来采集图像,前端被测物体的光线经光学系统聚集在CCD传感器上,然后输出信号经低噪声的OP37传输至高速、高精度的AD9220型A/D转换器,所转换的数据再经DSP预处理,通过USB接口器件传输给PC机,这样就完成了图像采集过程。
<ignore_js_op>
2010-3-15 10:07:39 上传
<strong>下载附件</strong> (13.25 KB)
</ignore_js_op>
ICX205AL型高速面阵CCD传感器的有效像素可达到1145 M(1 392 Hx1 040 V),水平驱动频率141 318 MHz,并具有灵敏度高、暗电流小、分辨率高、转移速度快、连续可调电子快门等特点。
该系统设计选用TMS320DM6437型高性能的数字媒体处理器DSI作为核心控制。TMS320DM6437通过HPI接口访问USB接口器件。 HPI接口是一个并行端口,16位数据总线宽度,8级深度内部读写缓存,通过HPIC、HPIA、HPID 3个寄存器组合易于实现主机对DSP的控制。主机(上位机)通过HPI接口直接访问DSP的全部存储空间,包括存储映射的外围设备。主机和DSP都可访问 HPI的控制寄存器(HPIC),此外,主机还可访问地址寄存器(HPIA)和数据寄存器(HPID)。
USB接口器件采用Cypress公司的CY7C68033,其内部集成有USB2.0收发器、串行接口引擎(SIE)、增强型的8051内核和可编程控制的外围接口(GPIF),可提供高速数据传输有效、方便的解决方案。CY7C68033的固件程序位于内部RAM中,由uSB或电子可擦写可编程只读存储器(EEP-ROM)下载;具有4个可以自由编程分配控制的端点;8位或16位外部数据接口:内部具有4个集成的FIFO,对外有两种接口模式,Master模式使用GPIF接口,Slave FIFO模式使用集成的FIFO供外部设备读写,很容易与外部的专用集成电路或DSP器件连接;内置增强型的8051内核时钟最高可达48 MHz,其指令周期只需4个时钟周期;具有2个通用异步收发器(UART)、3个定时计数器、扩展的中断系统;内置2个I2C总线控制模块。
2.2 USB接口设计
图2是该高速图像采集系统的USB接口电路连接图。
<ignore_js_op>
2010-3-15 10:07:39 上传
<strong>下载附件</strong> (17.9 KB)
</ignore_js_op>
图2中,CY7C68033的PA3~PA2引脚作为地址线与TMS320DM6437 DSP的HCNTL[1:0]相连,用于选择HPI的寄存器与工作模式;FD[15:0]作为16位数据总线与HPl的数据总线HD[15:0]相连,用于交换数据;CTLx引脚为GPIF的输出控制信号,RDYO引脚为GPIF的输入控制信号。由于访问HPI寄存器需两次半字传输,因此使用 CY7C68033的CTL0引脚进行控制。TMS320DM6437的HR/W接至CTL1,用来作为读/写选择标志;HDS1与CTL2相连,作为数据选通信号。HRDY与输入信号线RDYO相连,用于查询HPI接口状态,GPIF通过监测该信号以控制内部存取操作。TMS320DM6437的 HINT与CY7C68033的INT0引脚相连,DSP复位时HINT引脚启用,该引脚也用于DSP向CY7C68033发送外部中断请求。另外,TMS320DM6437的HCS3引脚接地表示可对HPI进行连续存取操作。
<strong>3 图像采集系统软件设计</strong>
当USB设备插入计算机时,计算机和USB设备之间产生一个枚举过程。计算机检测到有设备插入。自动发出查询请求;USB设备回应该请求,发送出该设备的 Vendor ID和Product ID;计算机根据这两个ID装载相应设备驱动程序,完成枚举过程。然后就可以传输数据,接收数据,即TMS320DM6437 DSP向PC机传输数据时,首先向CY7C68033发送一硬件中断信号,CY7C68033接收该中断,并启动接收程序,通过HPI接口设置DSP的 HPIC寄存器的HINT标志位,使DSP下一次仍通过该位发出中断:然后通过端口6将固定长度(512字节)的数据读人FIFO:端口6读取数据时,为了保证较高的传输速度,CY7C68033中的CPU不能干预数据传输,当FIFO中的数据达到一定数量后,CY7C68033自动将数据打包传送给 USB总线;发送数据时,它将数据包直接传输给CY7C68033,CY7C68033接收到数据后,按指定字节长度将数据读到发送端口2的FIFO中,然后自动启动GPIF,将数据传送给DSP,接下来CY7C68033通过HPI接口设置DSP的HPIC寄存器中的DSPINT位(将其置1),向 DSP发送请求中断,通知DSP有数据包。
USB设备的软件开发包括设备固件、设备驱动程序以及应用程序3方面设计。
3.1 设备固件
设备固件设计是由主程序和中断处理程序2部分组成,其中,主程序负责系统外设器件的互联以及初始化设置USB端口等。系统上电时,通过 USB电缆将固件程序下载到CY7C68033的内部RAM,为了传输可靠,固件程序下载采用批量传输方式。由于系统要求快速持续传输大量数据,因此采用同步传输方式。
3.2 USB设备驱动程序
USB设备驱动程序设计一般采用Windows DDK(devicedriver kil)设计,但由于DDK的复杂性和调试难度,难以开发稳定完善的USB驱动程序。因此,这里选用NuMega公司的开发软件DriverWorks,它是以面向对象的思想完全封装DDK的所有库函数。
通过DriverWorks提供的类,编写大部分驱动程序。最重要的是DriverWorks提供对USB总线的封装,这样大大简化对USB总线的操作接口。DriverWorks通过向导生成USB驱动程序的框架,并利用KDriver、KPnpDevice、KpnpLowerDe-vice等类简化 WDM(Win32 driver module)驱动程序编程,它们分别对应的封装是WDM中的PD0、FD0、FiD0。每一个WDM驱动程序都有一个入口函数AddDevice,当 PC机监测到USB接口中接入新设备时.立刻调用入口函数AddDevice并且创建设备的PD0,接着将其保存到函数参数指针中。成员函数 AddDevice同时创建另外一个设备对象FD0.它被KPnpDevice封装。对WDM总线驱动程序的上层接口通过KpnpLowerDevice 类实现FD0和PD0之间的连接,同时它也提供对PD0的操作接口。对USB客户驱动程序从KLow-erDevice类派生出的 KusbLowerDevice类封装USB的底层设备对象,通过其接口操作USB总线的驱动程序。
3.3 客户应用程序
PC机上的应用程序使用VC++编写。应用程序通过调用Windows API函数实现系统所要求的功能。应用程序主要采用以下3个函数:ReadFile,WriteFile和DevriceloControl。 ReadFile从前端图像采集系统读取数据;WriteFile向图像采集系统写入数据:DeviceloControl在PC机中从图形采集系统读取数据或向图像采集系统写入数据前向DSP发送交换数据的请求。
<strong>4 实验验证</strong>
DSP系统采集图像后将数据发送至USB端口,主机应用程序打开设备,先从设备读取设备描述符和通道信息,接着读取USB端口数据。采用BUS HOUND监控USB端口数据流,如图3所示。从图3看到:从USB端口读取的数据包括设备描述符数据、通道信息数据,以及从USB端口写入的数据块。实验测试数据传输率达29.5 MB/s,1 s能够传输15帧未经压缩图像,完全满足高速图像传输要求。
<ignore_js_op>
2010-3-15 10:07:39 上传
<strong>下载附件</strong> (42.56 KB)
</ignore_js_op>
<strong>5 结束语</strong>
高速图像采集系统DSP通过CY7C68033的底层驱动以及简单实用的编程结构,可方便建立上层PC机与DSP之间的USB通信信道。
根据DSP的HPI接口读/写控制时序,连接CY7C68033的GPIF接口,将HPI接口的各个寄存器映射为CY7C68033的外部地址,使得 CY7C68033能够方便读写DSP内部RAM,从而建立基于USB2.0接口的PC机与DSP之间的高速图像采集通信通道。
该系统设计充分利用USB的即插即用功能,高速图像采集设备操作方便快捷,因此具有高使用价值。
<strong>参考文献</strong>
1. 唐俊.基于FPGA和DSP的瞬态测量系统的设计[J].微电子学与计算机,2008,25(12):148-150.
2. 梁星辉,谭志明.基于USB2.0的通用PC之间高速通信模块的设计[J].计算机与数字工程,2008,36(6):175-177.
3. 王红亮,赵纯.基于USB2.0的数字摄像系统设计[J].电测与仪表,2008,45(1):55-57.
4. 浦国斌,张涛,范志永.基于USB2.0接口的CCD数据采集系统设计[J].微计算机信息,2008,24(12):74-75,66.
5. 唐俊,党瑞荣.基于DSP的USB通信接口的EMC设计[J].电子测试,2008,16(3):34-37.
6. Texas Instruments.TMS320DM6437 digital media processor[EB/OL].2006.http://focus.ti.com/lit/ds/symlink/tms320dm6437.pdf.
7. CYPRESS.EZ-USB NX2LP-Flex flexible USB NAND flash controller[EB/OL].2005.http://www.cypress.com/?docID=5721.
8. 万逸珠,戚文芽.嵌入式实时操作系统下USB2.0接口驱动的实现[J].现代电子技术,2008,14(13):49-51.
作者:赵鞭 徐兴(北京航空航天大学仪器科学与光电工程学院,北京,100191);唐俊(西安石油大学电子工程学院,陕西,西安,710065)
来源:电子设计工程 2009(12) |
|