基于USB 2.0协议的高速图像传输系统

2010-06-22 03:41邹建彬张尔扬
现代电子技术 2009年22期
关键词:固件驱动程序应用程序

邹建彬 高 凯 张尔扬

摘 要:为了实现高速、大容量的图像数据传输,讨论一种基于USB 2.0协议的高速图像数据传输方法。该方法以接口芯片CY7C68013A为数据传输核心,克服了传统接口局限,支持热插拔和即插即用,有效地解决了计算机和外设之间高速、大容量的图像传输问题。详细描述系统各部分的软、硬件设计,并在实际应用中实现了图像数据的高速传输。测试结果表明,系统传输速度可达到192 Mb/s,它在各种高速数据传输领域有着广泛的应用价值。

关键词:USB 2.0;CY7C68013A;图像传输;固件

中图分类号:TN919.8

0 引 言

传统的图像传输普遍采用由PC机主板所提供的各种接口来实现,如PCI接口、EPP接口、IEEE 1394接口等。PCI接口的最高速率可达到132 Mb/s,但其安装麻烦,价格昂贵,可扩展性差,无法专门对其做电磁屏蔽,在高速传输方面速度也不够理想。EPP接口无需用PC机中的其他卡,可无限制连接数目,设备安装使用容易,但最高速率只有2 Mb/s,速度比较慢,主要用于低端性能要求不高的场合。IEEE 1394接口允许连接多种高性能设备,使其高性能总线互连,传输速率可达400 Mb/s,其中IEEE 1394 b可达3.2 Gb/s,主要使用在高速的影像或者没有外围连接PC的场合,其外围电路复杂,且造价昂贵。与以上接口相对应的通用串行总线(Universal Serial Bus,USB),其数据速率明显高于一般的串口,既可支持控制、中断、同步、块传输四种数据传输方式,又可支持热插拔和即插即用,且具有占用系统资源少,功耗低,数据传输可靠的优点。

USB总线技术就是想利用单一的总线技术来满足多种应用领域的需要。USB 1.1协议支持两种传输速度,即低速1.5 Mb/s和全速12 Mb/s。2000年发布的USB 2.0协议,向下兼容USB 1.1协议,数据的最高传输速率可达到480 Mb/s,它可使USB的应用范围不断扩大。

该系统基于USB 2.0总线技术,将CY7C68013A芯片的Slave FIFO块传输接口模式和FPGA技术相结合,实现了计算机与外设之间高速的图像数据传输。

1 系统设计

1.1 硬件及外设控制设计

实现USB接口单元的主要芯片是CYPRESS公司的EZ[CD*2]USB FX2LP 系列中的CY7C68013A(对比之前FX2系列的CY7C68013具有更低功耗、更小电流、高性价比等优点),负责完成硬件系统与PC之间的图像传输。它与外设有三种接口方式:端口模式、可编程接口GPIF和Slave FIFO。Slave FIFO方式是从机工作方式,在具有外部数据处理逻辑的设备中,USB数据在主机和外部逻辑设备中传输,通常不需要FX2LP的CPU参与,而是经过FX2LP内部端点FIFO来传输。外部控制器可对多个端点的FIFO选择读写。FX2LP的Slave FIFO工作方式可设为同步或异步;工作时钟均可由内部产生或外部输入。基于该系统处理的是高速图像的传输,需要外部控制器直接对FIFO进行控制,故采用从机,即Slave FIFO方式。

高速图像传输的原理框图如图1所示,首先图像可由计算机上层应用软件发送或者接收,再通过USB接口芯片连接高速缓存。

图1中USB接口采用CY7C68013A芯片的Slave FIFO接口模式,使得上层PC与缓冲器之间能够高速通信,并利用FPGA控制USB的高速传输。如图2所示,CY7C68013A的主要功能信号及与FPGA之间的握手信号如:IFCLK为时钟信号,可以选择由外部输入或者内部输出;FIFOADR[1:0]引脚选择4个FIFO(2,4,6或8)中的一个与USB数据总线FD连接。定义该系统中上行数据传输为FIFOADR[1:0]=10,即为EP6端口;下行数据传输为FIFOADR[1:0]=01,即为EP2端口。FLAGB,FLAGC为所选择FIFO的标志信号,FLAGB代表FIFO为满;FLAGC代表FIFO为空;默认低电平有效。FPGA可以通过不断查询这两个标志信号决定是否进行读或写操作。SLOE为读/写使能信号;SLWR,SLRD分别为读写控制信号,在同步和异步模式下,控制信号不一;FD[15:0]为16位的双向数据总线。PA0,PA1为输出信号,作为硬件系统工作状态的控制信号。

1.2 软件设计

图像传输系统的软件设计主要包括三个部分:固件程序设计、驱动程序设计和计算机上层应用软件。固件程序是硬件中的软件部分,通过执行该软件可实现特定的硬件功能,主要包括初始化、处理标准的USB设备请求以及USB挂起时的电源管理等。固件首先初始化内部的状态变量,然后调用用户初始化函数 TD_Init()。从该函数返回后,固件初始化USB接口到未配置状态并使能中断。然后每间隔1 s进行一次设备重枚举,直到端点0接收到一个SETUP包。一旦检测到SETUP包,固件函数将开始交互下述任务调度:调用用户函数TD_Poll();判断是否有标准设备请求等待处理。如果有,分析该请求并响应;判断USB内核是否收到USB挂起信号。如果有,则调用用户函TD_Suspend()。从该函数成功返回TRUE值后,在检测是否发生USB唤醒事件。如果未检测到,则处理器进入挂起方式;如果有,则调用用户函数TD_Resume(),程序继续运行。如果从TD_Suspend函数返回FALSE,则程序继续进行

TD_Init函数负责CY7C68013A进行初始化,首先设置时钟为48 MHz,然后设置芯片工作于从属FIFO块传输模式,并配置端点6工作于自动块传输IN,┒说2自动块传输OUT模式。其主要程序段如下:

DR_VendorCmnd函数负责处理上位机发出的用户自定义请求,通过控制PA0,PA1 的高低电平,以控制整个硬件系统的运行。该系统中,使用0xB3使PA0置低进行图像数据的上行操作,用0xB4使PA0置高进行图像数据的下行操作,使用0xB5使PA1置低来通知硬件开始传输,使用0xB6请求使PA1置高以通知硬件系统停止传输。

USB设备驱动程序负责建立起主机端和设备端的联系。驱动程序主要有两个:一是开机自动将固件程序下载至芯片RAM中,以由增强性8051执行。结合CYPRESS开发包EZ[CD*2]Loader Drivers以及HEX2C和Windows DDK即可生成所需要固件自动下载程序*.sys文件。二是完成上位机应用程序和硬件设备之间的数据传输。其主要包括驱动程序入口例程、即插即用例程、分发例程、电源管理例程和卸载例程。本系统根据通用驱动结合自身需要,在DDK环境下修改编译,生成自己需要的驱动程序。USB上层应用程序都通过I/O控制来访问设备驱动程序。上层应用程序首先通过调用Win32函数CreaFile()来取得访问设备驱动程序的句柄;然后应用程序使用Win32函数DeviceIoControl()来提交I/O控制码,并且为CreaFile()函数返回的设备句柄设置 I/O缓冲区。该系统中,设置USB端口缓冲区FIFO为1 024 B,端口非空即读取,保持了传输的连续性,并且每次以帧结构包形式传输,每包的大小为512 B。以实验中为例,每传输大小为245 KB的一幅图像,需要490个包进行传输。

接收端应用程序流程图如图3所示。发送端应用程序流程类似,少了判断图像是否完整一幅,而多了传输完毕之后的图像数据校验。

2 系统仿真及实现

图4所示为图像发送系统主要端口的ChipScope实测波形,所用FPGA为V4[CD*2]XC4VSX55。︰SB_Data为传输的图像数据,数据长度为16位,SLRD为异步读取FD总线的时钟,采用USB时钟源48 MHz四分频得到,FIFO指针在每次SLRD激活到撤消激活变化时累加,即每变化一次,读取FIFO里16 b缓存数据一次。SLOE引脚为读写使能信号,默认低电平有效。从该实测图可以看出,三路信号均符合异步读取的时序要求。

主机接收端应用程序采用 Delphi 语言编写,图像传输它采取传输的同时显示图像的形式。从上位机应用程序截取一幅接收图像如图5所示。该应用程序主要用于各种调制方式下图像的传输。可以看到传输图[LL]像清晰完整,连续显示没有滞后,没有噪声斑点。图像经过USB接口传输后没有数据丢失,比较清晰。实验证明,图像传输过程中,没有出现丢帧的情况。满足实时高速的图像传输。

3 结 语

USB 2.0技术以其高速传输和使用方便受到广泛的关注,其应用也必将越来越广泛。上述设计方案有效地解决了图像传输过程中的高速通信问题。系统中采用异步方式传输,采用芯片所提供四分频时钟,最高速率可达到192 Mb/s。采用FPGA和USB 2.0相结合的方式,数据处理能力得到极大的提高,由于采用CY7C68013A的Slave FIFO模式,可使用外部FPGA并按照用户需求设计,增强使用功能的多样性和灵活性。该方案亦可应用于大容量、高速度的实时数据采集,音频及视频传输等领域。

参 考 文 献

[1]钱峰.EZ[CD*2]USB FX2单片机原理、编程及应用[M].北京:北京航空航天大学出版社,2006.

[2]李英伟,王成儒,练秋生,等.USB 2.0原理与工程开发[M].北京:国防工业出版社,2007.

[3]曾繁泰,陈金美.VHDL程序设计[M].北京:清华大学出版社,2001.

[4]Chris Cant.Windows WDM设备驱动程序开发指南[M].北京:机械工业出版社,2003.

[5]Cypress Semiconductor Corporation.EZ[CD*2]USB FX2LPCY7C68013A Technical Reference Manual[EB/OL].http://www.cypress.com,2006.

[6]熊兴中,汪学刚.基于USB 2.0协议的雷达回波模拟器设计[J].现代雷达,2006,28(11):48[CD*2]50.

[7]姚剑敏,靳明,宋建中.基于USB 2.0的实时视频图像传输[J].数据采集与处理,2004,19(3):352[CD*2]355.

[8]贾俊涛,张桂林.基于USB 2.0的图像传输系统的设计与实现[J].计算机工程与设计,2006,27(17):3 239[CD*2]3 241.

作者简介 邹建彬 男,1983年出生,博士研究生。研究方向为军用无线通信与网络技术。

高 凯 男,1978年出生,讲师。研究方向为军用无线通信与网络技术。

张尔扬 男,1941年出生,博士生导师。研究方向为军用无线通信与网络技术。

猜你喜欢
固件驱动程序应用程序
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
计算机硬件设备驱动程序分析
基于固件的远程身份认证
提取ROM固件中的APP
一种通过USB接口的可靠固件升级技术
基于MPC8280的CPU单元与内部总线驱动程序设计
多路手机固件升级工具设计
三星电子将开设应用程序下载商店
微软软件商店开始接受应用程序