摘要:文章介绍了一种利用基于usb的快速读数系统的设计方法。该系统利用cy7c68013实现,文章给出了系统的硬件设计方案、fpga内部集成fifo的软件实现方法以及gpif与flash握手信号的设计。通过此usb数据传输模块,实现了flash存储器与 计算 机之间的数据高速传输。应用结果表明,此数据通信系统是可靠有效的,具有一定的通用性,可用于其它类似的测试存储系统中。
关键词:usb;gpif;数据传输;fpga
目前计算机的有线数据传输方式主要有串口、并口和usb三种。串口最高传输速度仅为115200bit/s。并口传输的模式有两种,速度最快的epp模式其传输速度约为两百k。而usb方式中数据以包的形式进行传送,工作模式分低速、全速和高速,低速的传输速度为1.5m/s,全速约为12m/s,高速可达480m/s。面对今天容量日益庞大的存储系统,使用usb技术无疑将大大提高系统读数速度。随着嵌入式系统的 发展 ,将usb硬件收发器、sie串行接口引擎等usb硬件集成在一个单片机芯片上,简化usb协议,为我们使用usb设计读数模块提供了可能。WWW.133229.cOM
本文usb传输系统采用微处理器cy68013实现。文章给出了此数据传输系统的硬件设计方案,着重介绍了fpga控制模块中内部集成fifo的实现方法,以及gpif与flash通信时握手信号的设计方案。
1系统硬件方案设计
cy68013是cypress公司推出的ez-usbfx2系列产品之一,内部集成了usb2.0收发器、智能串行引擎(sie)、增强型8051控制器、通用可编程接口(gpif)、8.5kb的ram和fifo存储器,最大限度的满足了usb2.0的总线带宽。fx2最常用的数据传输方式就是gpif。gpif是一种快速的数据传输方式,时序简单。它可以很容易的从ram中读取数据。但是,由于flash存储器的读数操作是以页为单位,读数时页与页之间有一小段时间间隔,数据输出不是连续的。为解决此问题,实现fx2gpif方式读取flash中的数据,需要使用fifo作为数据过渡,先将flash中的数据读到fifo中,usb控制器再从fifo中读取数据。
2fpga内部集成fifo的软件设计
2.1内部集成fifo的结构
fifo的本质是一种特殊的双口ram,由于大部分fpga内部就有双口ram资源。因此在这里选用合适的fpga芯片来编写fpga内部集成fifo。fifo结构的特点是先进先出,对外它是一种没有地址控制的特殊缓存。只要给一个fifo提供读、写使能信号就能使其工作,不同的是fifo对外不显示地址,只是给出表现内部状态的满、半满和空信号,用户根据这些信号对fifo进行操作。
fifo设计时最重要的就是怎么给出这些信号。本设计中fifo产生满、半满以及空状态标志信号采用如下方法:用读地址和写地址相减结果来判断fifo的满空状态;此外还可以据此得到fifo的半满状态信号。这种方法可以容易的控制fifo满、半满、空的深度。
2.2fifo标志信号的产生
fifo满、空、半满标志信号的生成过程是一样的,只不过判断比较的差值不一样。fifo满时差值为1023,空为1。为了避免时序错误,还可以设定一定的满空深度。例如,当地址差大于1000时认为fifo已满,不再向fifo中写入数据,这样可以避免错误的出现。
3gpif与flash握手信号设计满、空信号主要是在读数时使用,用作gpif与flash读数时的握手信号,以保证读数的稳定可靠。读数时数据要先存到fifo中,然后usb再从fifo中读取数据。对于fifo来说,读取和写入的速度是不同的,可能读比写快,也可能写比读快。因此,我们需要设计读数握手信号,以防读数时丢失数据。信号的握手过程是:对于读数控制模块来说,只要fifo不满它就向fifo中写入数据。对于fx2gpif来说,只要fifo不空它就从fifo中读取数据。这样对于fifo的读写就组成了一个闭环,保证了读数的完整准确。
读数握手方式确定以后可能出现两种情况:①fifo的写数速度大于读数速度,这样写地址慢慢就追上读地址了,这时的总的读数速度就由读数速度决定。②fifo的写数速度大于读数速度,这样读地址慢慢就追上写地址,这时的总的读数速度就由写数速度决定。
4结语
本文设计的基于ez-usbfx2微处理器的数据通信系统,实现了利用usb端口从flash存储器种快速读取数据。此数据通信系统应用在了某型号车载测试存储系统中。存储的数据通过此传输模块快速地读入 计算 机,根据上位机数据恢复的信号与原始信号比较,失真较小,噪声水平低取得了良好的效果。此设计具有一定的通用性,对于一般基于usb的高速数据传输系统设计具有一定的应用 参考 价值。
参考 文献 :
[1]钱峰.ez-usbfx2单片机原理、编程及应用[m].北京:北京航空航天大学出版社,2006.
[2]张会新,王红亮.通用异步串行通讯测试系统[j].仪器仪表学报,2006,27(s2):434-435.
[4]徐庆元,张天序.基于usb总线的高速视频采集系统设计[j].微计算机信息,2006,(10):247.