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-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为输出信号,作为硬件系统工作状态的控制信号。