首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于USB2.0的高速图像传输系统设计
来源:本站整理  作者:佚名  2010-04-14 11:55:53




    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类派生出的KusbLowerDevice类封装USB的底层设备对象,通过其接口操作USB总线的驱动程序。

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:95,136.72000 毫秒