基于USB3.0的快速读数系统的设计
摘要:随着USB通信技术和科学研究对数据采集的要求日益提高的不断发展, USB 接口在我们生活中得到了广泛应用。本文通过USB3.0,设计了一种实时性较好的快速数据读数体统,系统采用FT245BM 实现与PC 的硬件接口,FPGA作为中心控制模块,用IDT7203缓存所接收的异步串行数据,通过制定上层通信协议,设计多路数据读数的调度算法,用VB编写上位机应用软件以配合硬件的数据读取,使其达到快速读数。
关键词:USB;快速读数;PC
基于USB3.0的高速数据采集的出现,充分利用USB的优点,有效解决传统高速数据采集的缺陷。USB的数据传输,是USB面向用户的数据接口,也是USB设备顶层的数据结构。数据采集系统用来采集模拟量、数字量等多种类型数据,并根据通信协议将各类数据混合编帧,先后输入同一存储器保存。需要处理数据时,要在上位机的控制下将数据从存储器中读出,然后通过USB等通信总线传输到PC机。这种工作模式最大的特点是用存储器保存经过混合编帧后的各类型数据,因此适合于对实时性要求不高的数据采集场合。
1、USB3.0的解读
自USB推出以来,USB-IF不断发布该接口标准的新变体。无线USB的拓扑结构产生了大的有效带宽。由于其无线特性,不再需要传统的“树”状拓扑,这样集线器就被省略了。原来消耗在集线器轮询上的时间现在可以用于数据传输。
2000年,USB-IF推出USB 2.0,提供的三种数据率选择,包括低速1.5Mb/s,全速12Mb/s和高速480Mb/s,为用户带动更高宽带的设备,如视频会议摄像机和高分辨率打印机等。高速的 USB2.0提供了480Mb/s的数据率,但实际数据吞吐率往往受 I/O 性能限制而超不过 35Mb/s。当下载较大文件时,较高的吞吐率能节省观看的传输时间。USB-IF的进一步发展,是引入了允许用户以无线方式连接多达127台设备的无线USB,无线 USB提供的带宽在3m时高达480Mb/s,10m时达1100Mb/s。
USB 3.0的发布,进一步增强了USB平台。USB3.0与早期版本相互兼容,目的是在满足多媒体和大型数字文件传输的要求,它规定的5Gb/s数据率和200Mb/s的数据吞吐率是USB2.0的10倍;同时,它可以兼容各种传输标准。
USB3.0的推出,解决了USB2.0一些关键性能问题。为实现更高的性能水平,USB3.0另外增加了4条互连线。这样整个配线系统总共就有8条线,其中4条遵从USB2.0规范和用于确保向后兼容性,另增的4条线配置为专门用于USB 3.0 通信的2对线。它们采用全单工工作模式,一对作为发送线,另一对是作为接收。USB3.0可提供高达 5Gb/s 的数据传输率和200Mb/s 以上的数据吞吐率。
2、USB3.0快速读数模块电路设计
测试系统快速读数采用USB串行读数,将闪存的并行数据在FPGA的控制下读出到计算机中,USB是一种通用串行总线,主要用于PC与USB设备之间的互相通信。cypress公司的USB3.0控制器CY7C68013提供了一种接口方式,与传统接口方式的主要区别有两点:①CPU不干涉数据的传输过程,使传输速率得到了很大的提高,更充分利用了USB3.O的传输带宽;②由软件控制读/写操作,其方式与状态机相似,提高了数据传输的稳定性。
在本文的USB3.0快速读数模块的设计中,我们采用USB3.O微控制CY7C68O13的GPIF接口设计方案。该种类型的系列芯片集成了USB3.O收发器、SIE、带 8.SKBRAM的高速8051单片机以及通用可编程接口等模块,同时还提供了集成的USB解决方案,不需要另加芯片即可实现高速度的USB数据传输。FXZ系列芯片的最大特点是可以应用USB3.O的通用可编程接口为某些特定的应用接口编程。其中,CY7C68013的GPIF引擎带有自动传输数据结构的性质,这种特有的性质能够使以主/从端点F正。8/16位数据总线为ATA、EPP、DSP等的外围设备,与主机通过CY7C680l3无缝、高速地进行传输的数据。
3、USB3.0快速读数软件设计
USB3.0快速读数软件部分包括读数设备固件程序、设备的驱动程序和用户应用程序。整体设计思路为:用户应用程序通过设备的驱动程序与读数设备固件程序进行通信,进行采样参数配置并控制采样的启动和停止;读数设备固件程序根据配置对A/D 芯片进行参数配置,启动采样并且将A/D 芯片采集到的数据传递给用户应用程序,界面应用程序对读到的数据进行实时显示。
这部分主要是GPIF软件的设计,在这部分设计中主要包括固件程序和驱动程序两部分。其中固件设计是此部分程序设计的核心,它在设备CPU中运行。驱动程序主要完成固件与外设、用户程序的通信和控制,在CY7C68O13的开发包中包含了一个通用驱动程序,该程序经DDK编译后可直接使用。在本设计方案中,采用的就是这个通用驱动程序,下面以固件程序为重点进行介绍。
使用GPIF模式进行数据读取的关键是构造GPIF波形描述符、设计GPIF波形图。这部分工作软件采用CYPress提供的GPIFDesigner,该软件可用于对 EZUSBFXZLP系列芯片的GPIF传输模式进行设计,该软件可以方便地对GPIF波形图进行编辑,并生成相应的程序文件。在此部分的GPIF波形图设计中,包括两部分设计:闪存读波形设计和闪存擦除波形设计。使用该程序设计的连接关系是:时钟——采用3OMHz内部时钟;数据总线——根据与其相连接的闪存KgFIG的数据总线为8位,所以选择8位,同时应在设备功能程序中将端点FIFO的数据线初始化为8位;RDY输入——设计中只用到RDYo、RDYS,RDYo用来检测FPGA的读数标志,RDYS用来表示GPIF的传输计数;CTL输出——输出四条数据线,用来读取数据、闪存擦除数据等功能。
4、结语
本文设计是基于微处理器的数据通信系统上,借助USB的体系结构允许所有这些数据率在公共PC宿主机控制下同时共存于同一配置中,提供了具有不同速度和吞吐率要求的各种外设的灵活性。USB3.0规范了大家庭中的 USB2.0、无线 USB 和现在的 USB 3.0 各自满足不同的应用需要。因此,快速读数系统的设计,具有一定的通用性,可应用于各种对实时性要求较高的数据采集读数,对于一般基于USB3.0的快速读数系统设计具有一定的应用参考价值。
参考文献:
[1] 徐星,刘克刚.一种新型的多功能鼠标的设计[J].电子技术,2004(12): 53-55.
[2] 田广锟,范如东.高速电路PCB设计与EMC 技术分析[M] .北京: 电子工业出版社,2008:3-132.
[3] 薛园园.USB应用开发技术大全[M].北京:人民邮电出版社,2007:44-68.
[4] 李齐雄,郑颜雄,蔡孟昌.HOLTEK HT48系列单片机原理及应用实例[M].北京: 北京航空航天大学出版社,2005:50-185.