![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测 . 技术文库 . 会员区 . 开发板 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| TMS320VC5502图像传输系统的USB接口扩展 | |||||
作者:何平征,… 文章来源:电子工程师 点击数: 更新时间:2008-5-6 ![]() |
|||||
|
一个典型的水下图像传输系统采用DSP(数字信号处理器)作为实时图像处理的核心单元,并用PC机建立良好的人机界面,以完成图像的采集和显示。因此,PC上位机与DSP间需进行一种高效、快速的数据传输。目前PC机和DSP常采用RS-232串口通信方式实现数据交换,其通信协议简单,但在大数据量的图像信息传输中,很难满足系统的实时性要求。此外,PC机本身串口资源也十分有限。而USB(通用串行总线)作为一种快速且有弹性的新式接口,可以满足多数情况下大数据量实时交换的要求。 本文提出一种基于USB接口的图像传输系统方案,介绍DSP和上位机间的USB接口设计,利用TI公司的DSP芯片TMS320VC5502和Cypress公司Ez-USB SX系列芯片CY7C68001,完成USB接口扩展的软硬件设计,实现DSP与上位机间的高速数据传输。 1系统整体方案 系统整体结构如图1所示。 在发送端,PC机将待发送图像转换为数据比特流送到USB总线上,同时,在主机屏幕上显示原图像。图像数据经DSP和外围电路的处理后送人信道。接收机对接收信号进行处理后,通过USB总线把图像数据传回上位机并显示接收图像。其中,DSP和上位机间的USB接口设计是本文的重点。 USB接口扩展的硬件设计如图2所示。 TMS320VC5502是一款定点16位芯片,作为TI公司TMS320C5000 DSP平台上性价比最佳的新型产品,其运算速度高达600亿次乘加运算每秒。它具有1条32 bit的程序读总线和5条16 bit的数据总线,片上集成有ROM(16 k×16 bit)、DARAM(32 k×16 bit)等存储器和丰富的外设资源,可满足大数据量的图像处理要求。此外,芯片低功耗(不到200 mW)的特点使它可以应用到水下图像传输系统中。 由于DSP的I/O口资源有限,系统采用FP-GA芯片EPF10k10A完成地址译码。它具有66个用户IO口,将DSP的部分地址线连接到FPGA的IO口并配置为输入端口,通过FPGA程序模拟译码器逻辑,可以产生Flash存储器、SDRAM、USB、UART等所有与DSP通信的模块片选信号,从而实现DSP的I/O口扩展。 USB通信协议较复杂,因此,本系统采用Cypress公司的CY7C68001芯片实现USB2.0接口,该芯片集成了USB2.0收发器和SIE(串行接口引擎),分别完成物理层和链路层的数据通信管理,USB的应用层协议由TMS320VC5502编程实现。 CY7C68001芯片支持高速(480 Mbit/s)或全速(12 Mbit/s)USB数据传输;内部有4个端点(End-point)共享4 kB的FIFO,每个端点对应的FIFO空间大小及FIFO状态可编程;芯片还具有智能SIE功能,可在不借助微处理器中断的前提下完成枚举。 CY7C68001具有16根数据总线FD[15:0],3根地址线FIFOADR[2:0]用于选通命令接口或指定的FIFO。此外,/INT信号表明CY7C68001有中断事件发生,或通知DSP对CY7C68001的读操作结束;READY信号表明CY7C68001处于可读写状态。 3软件编程 3.1主机端程序 USB协议中包含控制型(contro1)、等时型(Isoch-ronous)、中断型(Interrupt)和批量型(Bulk)4种基本的数据传输类型。其中,批量传输特别适合大数据量的传输,在没有带宽和间隔时间要求时,可以保证快速准确的传输。因此,本系统采用批量传输方式进行PC机与DSP间的图像数据传输。 主机端软件包括3个部分: a)CY7C68001的驱动程序,用于实现USB设备的发现、配置和关闭,实现数据传送接口与控制等功能。结合EZ-USB的GPD(通用设备驱动程序),在Windows WDM DDK环境下编译生成驱动程序的系统文件(.sys)。 b)安装USB时的信息文件(.inf),用于将驱动程序绑定到特定设备的Verdor ID(VID)和Product ID(PID)。当USB设备插入计算机时,计算机检测到设备插入后自动发出查询请求;USB设备回应该请求,并送出设备的VID/PID。计算机根据这两个ID装载相应设备驱动程序,完成枚举。 c)系统上位机(PC)处理程序,采用Microsoft Vis-ual C++软件编写,通过对界面上控件的操作产生消息,使CPU执行相应的动作。以发送端为例,主机程序流程如图3所示。 对用户而言,所有应用程序均通过IO控制来访问EZ-USB GPD。以上接口函数主要调用两个Win32API函数:首先通过CreatFile()连接USB设备并获取访问设备驱动程序的句柄;再调用DeviceIoControl()提交I/O控制码(IOCTL),向驱动程序发送相应命令,并为CreatFile()返回的设备句柄设置I/O缓冲区。部分源代码如下: USB主机与设备间的数据传输是通过设备中的端点(Endpoint)进行的。这些端点通过端点号和输入输出方向来进行标识,并为数据传输分配固定FIFO存储区。本系统在初始化时将CY7C68001的4个端点配置为批量传输类型。其中,FIF02、FIF04为输出端点,用于接收上位机传来的数据;FIF06、FIF08为输入端点,用于存放待发送的数据。各个FIFO设置为异步工作模式。 DSP经初始化后打开USB外部中断,向CY7C68001写入描述符表,等待其枚举中断。枚举成功后,DSP对CY7C68001进行其他配置并清空FIFO,然后等待主机发送用户请求并进行相应处理。 程序流程如图4所示。程序在TI CCS 2.2集成开发环境下进行编译并调试通过。 在每个USB设备的内部都有一个设备描述符(descriptor)表,它包含了设备的全部要求和特性。通过主机与设备间的控制传输来辨识并配置新连接上的USB设备的过程称为设备枚举(enumeration)。CY7C68001芯片内有一个大小为500字节的描述符RAM,用于存放描述符表,内部寄存器DESC用于存放描述符表的长度。 CY7C68001的枚举方式有EEPROM自举和通过DSP自举(默认)2种。本系统采用默认方式,先由DSP向DESC寄存器写入2字节的描述符表长度,再通过命令口将描述符表按字节写入描述符RAM。描述符表写入后,DSP等待CY7C68001的枚举成功中断。枚举成功后,CY7C68001完成对各端点的配置。 3.2.2 CY7C68001的寄存器读写 DSP采用二次寻址方式对CY7C68001寄存器进行读写,即首先通过命令口将要寻址的寄存器子地址和操作类型(读/写)写入,然后通过命令口将数据读出或写入。具体步骤可参考CY7C68001芯片手册。 3.2.3 CY7C68001的中断 SX2共有以下6个中断源: SETUP:SX2收到无法自动处理的上位机请求; 当有中断事件发生时,CY7C68001通过INT信号触发:DSP中断。DSP在USB的ISR(中断服务子程序)中通过读命令口来判断中断源,并设置相应中断标志。若为SETUP中断,即SX2收到无法自动处理的用户请求(如用户定义的批量读/写),则在随后的中断处理中,ISR从命令口依次读入8个字节,存入用户命令缓冲区中,再由主程序解析执行。 4结束语 本系统利用USB2.0接口芯片CY7C68001实现上位机和DSP的高速图像数据传输,为水下图像传输系统建立良好的人机界面,用户利用PC机将待发送的图像送入发送机的DSP,接收机的DSP将收到的图像数据送回PC机并显示,用户可对发送和接收到的图像进行直观对比。 |
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 没有相关文章 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|