×
接口总线驱动 > 总线 > 详情

基于DSP的USB技术在图像传输中的应用

发布时间:2020-05-28 发布时间:
|

  0 引言

  当前,数字信号处理器(DSP)芯片以其强大的运算能力不仅在通信、电子、图像处理领域得到了广泛的应用,同时在医疗,生物等新兴领域也有相应的应用。基于DSP的多功能滴定仪器主要是用于粮食质量的无公害检测,在该项目中, 需要设计一个图像采集和处理的DSP子系统, 该DSP子系统主要完成RAW格式图像数据的采集和相关的处理, 处理后的图像数据的显示和更进一步的处理及判别需要由PC机来完成,同时Pc机处理后的结果还需要返回给DSP。由于DSP端需要传给Pc的图像数据是不需要经任何压缩的RAw格式,而RAW格式的图像数据与压缩过的图象数据(如JPEG等)相比,数据量比较大,这样就需要设计一个高速接口来完成DSP与主机之间的大容量数据交互。由于USB接口具有热插拔,速度快等特点,因此在该项目中选择了USB作为DSP和Pc机之间的接口方式。结合整个系统的需要,设计了TMS320DM642芯片和CYPERSS公司的USB接口控制芯片CY7C68013相连接,可使PC机通过USB2.0接口实时地从DSP处获得RAW格式的图像数据,从而将DSP从数据传输中解放出来,解决了Pc机与DSP之间的大容量图像数据的传输问题。

  1 硬件连接设计

  1.1 基本工作流程

  在本系统中, 多功能滴定仪器的DSP与主机之间的接口主要由3个部分组成:主机(能够支持USB2.0协议的PC机),USB接口芯片CY7C68013和高速DSP芯片TMS320DM642。

  其基本工作流程是:当USB设备插入PC时,PC和USB设备之间会完成一个枚举过程,PC将设计好的设备驱动程序装载UUSB芯片中。枚举过程结束后即可进行数据的传输, 当PC要从DSP内存空间读取图像数据时, 由于在上电之后,DSP的内存空间中已经采集到了一帧图像数据,因此,它首先启动USB芯片中的接收程序,通过USB芯片的端口6将固定长度的图像数据依次读入FIFO,当FIFO中的数据达到一定数量后,USB芯片会自动将数据打包传送给USB总线,直到传输完毕。然后通过USB芯片的PAl引脚向DSP的EXTINT4发送中断信号,DSP芯片在收到中断信号之后,会启动相应的中断程序,进行下一帧图像数据的采集, 为PC下一次读取图像数据做好准备,这样PC就可以动态地控制图像的读取速度。

  当PC有数据要发送时,它将数据直接传给USB芯片,USB芯片收到数据后,按指定的数据长度将数据写到发送端口2的FIFO中,然后自动启动内部的GPIF相关程序,将数据写入DSP相应的内存地址空间, 接下来USB芯片通过设置DM642的HPIC寄存器中的DSPINT位(将其置i),向DM642发起中断,通知DM642有数据到。

  1.2 硬件连接

  由于DM642的HPI接口是从模式的,因此CY7C68013须以主模式参与连接,这样我们选择可编程控制接口GPIF方式与DM642的HPI接口进行连接。接口问信号线的连接见表1:

  USB接口芯片通过GPIF波形描述符的编写来匹配DM642的HPI接口的读写时序,从而能正确地对HPI内部的四个寄存器进行读写,成功地实现对HPI口的操作。从FX2L P的PA口选取PA[7:6]连接HCN TL[1:0], 实现对HPI寄存器操作的选择,见表2:

  表2 HPI寄存器的选择与功能除了以上两个接口间主要的信号线连接外,还有以下几点需要说明:

  接口芯片CY7C68013的SCL和SDA两个管脚应该上拉,DM642的HAS#管脚应上拉和HD5管脚应下拉。[page]

    1.3 DSP内存空间的访问

  DSP内存空间的正确访问是实现USB接口功能最关键的部分。USB接口芯片是通过运用其GPIF口来访问DM642的HPI接口,来达到间接访问DM642的内存空间,DM642的HPI接口各个寄存器的读写时序详见参考文献[2]。然后再通过芯片内部的USB2.oh3议模块完成与主机(PC)之间的数据交换,从而实现DSP与主机之间的数据传输。因此,通过GPIF波形描述符的编写来匹配DM642的HPI接口的读写时序成为了驱动程序中最重要的部分。

  在该项目中,主机从DSP内存空间中读取的主要是图像数据,而图像数据往往存放在连续的地址空间中, 因此这里采用的是以地址白增方式读IIPI数据寄存器。读HPID的过程为: 先向控制寄存器HPIC写入操作控制字;再向地址寄存器HPIA写入欲操作的DM642的内存空间地址: 然后等待DM642以EDMA的方式完成内部操作,并将数据准备好:然后从数据寄存器HPID处根据HPIC中控制字的要求以地址自增方式连续读取DM642内存空间的数据。

  同时由于主机向DSP内存空间中写入的是少量控制数据,故以固定地址方式写HPI数据寄存器。写HPID的过程为:先向控制寄存器HPIC写入操作控制字:再向地址寄存器HPIA写入欲操作的DM642的内存空间地址;然后以固定地址方式根据HPIC中控制字的要求向HPID中写入数据;最后DM642以EDMA的方式完成内部操作,将HPID中的数据写入HPIA中的内存地址空间。

  2 固件的设计

  固件是在USB接口芯片加电后, 由其它设备加载~CY7C68013中并在其中运行完成接口数据传送功能的一段程序。在本接口中采用的是由Pc机通过USB接口加载固件的方式。

  固件程序的编写主要分为4个大的模块:设备描述模块,该模块唯一的功能就是提供主机启动在重新枚举设备时所需要的VID和PID以及其它一些必要的设备描述符。主模块,主要完成设备的初始化、固件运行后的“重新枚举”、进入循环不断接收Pc机发送的一些命令并等待数据的传送。数据收发模块,主要完成初始化数据传送端口, 并且处理主机发出的命令。

  GPIF模块,主要是完成对DM642的tIPI接口的时序进行编程,这种时序的编程具体来说就是设定一个个波形描述符,GPIF波形描述符的编程一般使用CYP RESS公司提供的GPIF TOOL具进行配置。在固件的编写中关键的是GPIF波形描述符的编写。波形描述符的编写首先必须弄清楚DM642的HPI接口的读写时序,然后设置好相应的控制信号的波形。

  3 结束语

      通过上述方式设计的USB接口,主机与DSP之间的数据传输速度可达lObfops以上,能够实时地将DSP采集并做了适当处理的RAW图像数据传输到PC上,完全满足PC端的显示及计算需求,提高了粮食质量检测的精度,完全能够达到系统设计的需求。限于篇幅,本文没有详细介绍主机端驱动和应用程序的设计, 该方案可进一步扩展,借助TMS320DM642强大的处理能力,应用于视频压缩、图像处理等多个领域。 


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
嵌入式系统USB接口的虚拟示波器设计