天线|RF射频
直播中

李杨

7年用户 134经验值
私信 关注
[问答]

怎样去设计一种高速图像传输系统?

怎样去设计高速图像传输系统的硬件部分?
怎样去设计高速图像传输系统的软件部分?

回帖(1)

陈思阳

2021-5-31 17:47:45
  1 引言
  图像处理、瞬态信号检测等领域要求高速度、高精度、高实时性的数据采集与处理技术,因此对高速图像采集系统的数据传输提出更高要求。现在高速图像采集系统一般采用高性能数字信号处理器(DSP)和高速总线的框架结构。DSP完成计算量巨大的实时处理算法,高速总线实现处理结果或采样数据的快速传输,可采用ISA、PCI、USB等高速总线,而USB总线具有安装方便、高带宽、易扩展、传输速率高达480 b/s,已成为计算机接口的主流。因此,这里介绍一种采用USB2.0接口和高性能DSP的高速图像采集处理系统,主要应用于井下视频检测,也可应用于光纤通信、雷达信号处理等领域。
  2 图像采集系统硬件设计
  2.1 系统硬件设计架构
  图1为该高速图像采集系统硬件设计架构。该系统设计选用ICX205AL型CCD传感器来采集图像,前端被测物体的光线经光学系统*在CCD传感器上,然后输出信号经低噪声的OP37传输至高速、高精度的AD9220型A/D转换器,所转换的数据再经DSP预处理,通过USB接口器件传输给PC机,这样就完成了图像采集过程。
  
  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接口电路连接图。
  
  图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进行连续存取操作。
  3 图像采集系统软件设计
  当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类派生出的Ku***LowerDevice类封装USB的底层设备对象,通过其接口操作USB总线的驱动程序。
  3.3 客户应用程序
  PC机上的应用程序使用VC++编写。应用程序通过调用Windows API函数实现系统所要求的功能。应用程序主要采用以下3个函数:ReadFile,WriteFile和DevriceloControl。ReadFile从前端图像采集系统读取数据;WriteFile向图像采集系统写入数据:DeviceloControl在PC机中从图形采集系统读取数据或向图像采集系统写入数据前向DSP发送交换数据的请求。
  4 实验验证
  DSP系统采集图像后将数据发送至USB端口,主机应用程序打开设备,先从设备读取设备描述符和通道信息,接着读取USB端口数据。采用BUS HOUND监控USB端口数据流,如图3所示。从图3看到:从USB端口读取的数据包括设备描述符数据、通道信息数据,以及从USB端口写入的数据块。实验测试数据传输率达29.5 MB/s,1 s能够传输15帧未经压缩图像,完全满足高速图像传输要求。
  
  5 结束语
  高速图像采集系统DSP通过CY7C68033的底层驱动以及简单实用的编程结构,可方便建立上层PC机与DSP之间的USB通信信道。
  根据DSP的HPI接口读/写控制时序,连接CY7C68033的GPIF接口,将HPI接口的各个寄存器映射为CY7C68033的外部地址,使得CY7C68033能够方便读写DSP内部RAM,从而建立基于USB2.0接口的PC机与DSP之间的高速图像采集通信通道。
  该系统设计充分利用USB的即插即用功能,高速图像采集设备操作方便快捷,因此具有高使用价值。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分