摘 要: 设计了一个以FPGA作为数据处理模块,以CY7C68013作为接口芯片的数据采集系统。接口芯片CY7C68013工作在GPIF模式下,在数据的传输中起主控作用,利用FPGA以保证数据的正确性和稳定性,使系统可以达到稳定、实时、高速的数据传输。
关键词: 实时传输; 数据; CY7C68013A; GPIF
实时数据的采集以及显示等都会涉及到PC机和下位机间的数据传输,而传输数据中的丢点问题是实时数据采集中必须解决的问题。传统的数据采集系统由于传输速度低或者安装不方便等问题已不能满足科研和生产过程的需求。输入的实时数据是带有帧头的8位串行数据流,直接与CY7C68013A的GPIF(General programmable intece)接口对接不能保证数据完整不丢失,并且无法在数据中加入帧识别信息。在这种情况下采用FPGA完成此部分逻辑功能。通过FPGA对实时数据进行相应的调整再交给CY7C68013A传送到上位机中。
1 系统硬件电路设计
1.1 系统结构和数据流程
本系统采用FPGA xc2s50-144完成整个系统的数据采集的处理,采用具有微处理器的USB接口CY7C68013A,通过USB接口将FPGA处理后的数据实时地传输到计算机上。ez-usb fx2当PC机发出数据采集、读取数据等控制命令时,控制命令通过CY7C68013A传送给FPGA,由FPGA启动A/D芯片进行A/D转换。A/D转换后将串行数据流和时钟发送到FPGA中,FPGA通过判断帧头截取有效数据并将数据转换成8位的并行数据并缓存至FPGA内部设计的FIFO中,由上位机通过USB接口芯片CY7C68013A以GPIF主控模式将数据传送至上位机中。系统总体设计图如图1所示。

1.2 USB接口芯片
CY7C68013A是Cypress公司的FX2系列产品,可提供480 Mb/s的传输速率。CY7C68013A提供了一种独特架构,使USB接口和应用环境直接共享FIFO,而且微控制器可以不参与数据传输,但允许它以FIFO或RAM的方式访问这些共享FIFO,CY7C68013A的内部FIFO缓冲区中有四个端点,它们可以通过设置相应的EPxFIFOCFG(x是端点号)寄存器被配置为2倍、3倍或4倍缓冲区。双缓冲区可以允许一个数据包在被8051访问的同时,另一个进行USB数据传输。3或4缓冲区则允许在2个或3个缓冲区被访问的同时,由另一个进行USB数据传输。这样就可以把数据包可用的时间延迟减至最小,从而增加带宽的吞吐量。CY7C68013A共有三种工作模式:分别为普通端口模式、GPIF模式和从属FIFO模式。这三种工作模式由寄存器选择决定。本设计中采用GPIF主控模式,GPIF在连接到外部逻辑设备时,可充当“内部”控制,可以作为CY7C68013A端点FIFO的内部主控制器。
1.3 硬件连接图
使用GPIF方式对FIFO芯片进行读写工作并使用PORTB双向FIFO数据线,使电路像普通FIFO一样对FX2中端点2、4、6、8的数据缓冲区进行读写。当CY7C68013A工作在GPIF模式时,由PC机上发出控制命令给USB,CY7C68013A提供FPGA的片选、读数据时钟等信号。接口连线图如图2所示。

2 软件设计
2.1 固件程序的设计
固件的作用是辅助硬件来完成预期的设备功能,固件主要工作如下:
(1)寄存器初始化工作,按照需要设置特殊功能寄存器的初值;
(2)辅助硬件完成设备的枚举过程,对主机的设备请求作出适当的响应;
(3)完成中断处理、数据接收和发送以及对电路的控制。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/dianqi/article-31457-1.html
加油