网站导航: 首页 > 设计参考 > 正文 文章搜索
实现USB2.0高速数据传输的问题探讨
 
文章编号:
100809213851
文章分类: 接口技术 USB
点 击:
...
关 键 词: USB2.0,高速
文章来源:
互联网
摘 要:
针对USB2.0高速数据传输在实际应用中存在的具体问题,深入分析了诸如协议开销、带宽分配、工作环境...

3 通用USB2.0设备控制器的高速工作模式
    EZ-USB FX2是一种支持USB2.0的微控制器,FX2内部集成了USB2.0收发器、智能串行接口引擎(SIE)、增强型8051内核、8.5 KB的RAM、4 KB的FIFO存储器、I/O端口、I2C总线接口、8/16位数据总线和通用可编程接口(GPIF)等,最终通过通用的标准ATA接口连接外部电路,以适应不同的用户功能。
    这里串行接口引擎SIE负责完成诸如串行数据的编码和解码,差错控制,位填充等支持USB底层协议的功能。数据传输则通常需要微处理器通过固件访问接口芯片中的端点FIFO, 也需要微处理器通过固件访问外围设备的接口电路,正如图2中标识符② 和③所示的数据传输路线。然而,这种工作方式会因微处理器固件程序执行较慢而限制数据传输速率的提高,且在高速时显得格外突出。
  
    为了适应USB2.0高速数据传输的需要.这里采用了一种特殊的数据传输模式,如图2中标识符①所示的数据传输路线,此时无需执行内部8051固件程序便可直接实现端点FIFO与外部的数据交换。从而很好地解决了普通微处理器转发方式造成的带宽瓶颈。
    实际电路结构中,4 KByte的端点FIFO可以通过固件程序配置成多重缓冲的形式,这种结构可有效地提高USB带宽的性能,平滑带宽的抖动,并减少通信等待的时间。具体控制分为从机模式和主机模式两种。主机模式是指利用FX2内部集成的通用可编程接口GPIF(General Programmable Interface)产生时序逻辑信号来控制与外围设备的数据传输。从机模式则指利用外部信号控制端点FIFO与外设之间的数据传输。
    GPIF可包含8个时序状态,支持控制输出线CTL、状态输入线RDY和地址信号ADR,构造的各种时序逻辑信号可以有效地支持16位数据总线的双向操作。描述GPIF波形的数组称为波形描述符,可以在设备初始化时同固件程序一起下载.GPIF将根据其表达的时序逻辑关系,执行相应的控制作用。
    FX2的固件程序是设备运行的核心.担负着处理USB驱动程序的请求,执行应用程序的控制指令,完成数据的读写操作,以及根据需要启动GPIF周期.实现端点FIFO与外界的数据交换等功能。固件程序并不经常参与数据传输的具体过程.通常仅起检测、判断的作用,决定GPIF的工作在何时开始.何时停止。

4 USB2.0高速数据传输的速度测试
    USB2,0速度测试的基本方法是通过PC主机上的测试软件,记录该PC主机与某USB设备在固定时间内交换的数据信息流量,进而算出实际使用中的数据传输速度。这里采用的速度测试软件是美国Perisoft公司提供的一种名为Bus Hound的总线分析测试软件.其界面如图3所示.这个软件在运行中不会对设备的工作产生任何影响。用该软件来观察USB设备工作情况,可以直接读取当前USB设备输入输出的数据量大小、数据传输速度和设备属性等信息。
    本文为USB2.0实际传输速度的具体测试流程如图4所示。利用EZ-USB FX2控制芯片开发的USB2.0设备通用控制器和一台PC机。用一根大约2 m长的带磁环的USB2.0专用连接线连接在一起。PC机的硬件配置是Intel P4 2.4 GHz的CPU,基于Inte1848芯片组的主板,主板上带有支持高速模式的USB2.0接口,256 M DDR333内存. 操作系统是WindowsXP SP1。主机设备驱动程序采用Cypress公司为FX2系列控制器提供的通用驱动程序ezusb.sys。其中数据缓冲区设为64KB,应用程序用VC编写,其作用是向USB接口控制器发送需要数据上传的指令和上传数据量的大小后。将数据从USB设备读到PC之中。作为USB设备的FX2的固件程序在Keil集成开发环境中开发。应用GPIF进行逻辑控制.并将所用端点6设为单区容量大小为512Byte的4重缓冲模式。固件程序的功能只是将来自并行数据线的数据源源不断地送往USB的端点FIFO中。
 
    在固件程序设计中首先采用图2中标识符②和③所示的数据传输模式.测得的数据传输速度一直在200 KB/s以下。然后采用图2中标识符①所示的数据传输模式,在实验中让PC主机多次重复采集大量数据。以提高速度测试的准确性。在PC机不接其它USB设备一次采集数据的量为650.2 Mbyte的情况下,USB2.0总线的实际数据传输速度最高达到了25.5 MB/s,即204Mbps。

5 结束语
    综上所述,这里强调几点看法:首先,人们通常所说的480 Mbps是USB2.0总线速度的上限.考虑通信协议的开销后,实际数据的传输速度存理论上最高也只有53 MB/s(426Mbps).实际综合条件下15 MB/s至25 MB/s都可以作为合理的高速目标。其次,为了追求数据的高速传输时应当考虑采用批量方式.但在多设备同时工作的场合考虑实时响应.USB2.0下的中断方式也是不错的选择。再者,USB设备中微处理器转发数据的传统方法不能适应高速数据传输的要求,必须建立USB端点FIFO和应用数据通道之间的直接联系。另外,为了真正实现数据的高速传输.必须综合考虑PC主机本身的软硬件配置、设备驱动程序开发和实际工作环境。

 
相关文章:

上一页 12
 
最新开源项目
 
 
  查看更多...  
 
本站相关产品   淘宝网店
 




 
  查看更多...  

 

本站程序由百合电子工作室开发和维护
Copyright @ baihe electric studio
渝ICP备09006681号-4