2 系统总体方案设计
系统采用USB接口电路实现计算机与FPGA的数据传输,以LVDS串行器与解串器构建实时图像的发送与接收电路。系统的原理框图如图2所示。
系统的工作原理为:计算机将控制命令及实时图像数据经由USB接口发送给FPGA,FPGA将实时图像数据部分存储到高速SRAM,然后根据控制命令将SRAM中数据传送给LVDS串行器;另外,FPGA还需将回读的实时图像数据以20 MB/s的速度经由USB接口发送给计算机进行处理。
3 系统结构组成及其实现
3.1 USB接口实现
本系统所使用的USB单片机选用Cypress公司开发的EZ-USB FX2芯片CY7C68013。该芯片集成了51单片机内核、USB2.0收发器、串行接口引擎(SIE)、4 KBFIFO存储器以及通用可编程接口等模块,这些模块则保证了CY7C68013可与外围器件实现无缝的、高速的数据传输[2]。用户在使用该单片机与外围设备进行数据传输时,只需直接利用GPIF接口来实现与外围设备之间的逻辑连接,就可以进行高速数据的传输。CY7C68013的GPIF接口有16位数据线,6个RDY信号和6个CTL信号。其中RDY信号为等待信号,GPIF可连续采样RDY信号。通常用来等待指定信号的某个状态出现,以确定GPIF下一步动作。CTL信号为控制输出信号。通常用作选通信号、非总线输出信号以及产生简单的脉冲信号[3]。 CY7C68013在高速模式下,发送数据的码率可达到480 Mb/s,因此可将20 MB/s的实时图像数据实时地传送给计算机[2]。
本系统的USB传输部分主要实现将计算机发出的控制命令及实时图像数据发送给FPGA,并将回读的实时图像数据发送给计算机。计算机发送的命令信号通过CY7C68013的PE端口传送给FPGA,实时图像数据通过CY7C68013的GPIF接口发送给FPGA或上传给计算机。由于USB与FPGA的传输速度不一致,所以还应在FPGA中设置两个软FIFO,分别用于图像数据的上传与下发。
3.2 LVDS数据发送与接收部分
本系统采用美国TI公司的10位总线型LVDS芯片SN65LV1023A和SN65LV1224A实现实时图像的高速数据传输和回采。两者发送和接收10 bit并行数据的速率在10 MHz~60 MHz之间。由于数据在并串转换时,SN65LV1023A会自动加上1位起始位和1位停止位,则串行数据发送的实际速率为120 Mb/s~792 Mb/s之间。LVDS串行器和解串器都需一个外部时钟。只有这两个外部时钟频率同步时,串行器和解串器才能正常通信。利用FPGA内部时序逻辑,完全能够解决工作时钟频率同步的问题。