基于USB3.0和FPGA的多串口传输系统设计
多串口数据通信技术主要研究数据的多串口采集、存储和处理。由于串口通信技术的广泛应用,使得多串口采集卡一直是研究的热点,从早期的基于PCI总线的多串口数据采集卡到后来的基于USB的多串口数据采集卡,以及现在的基于USB3.0的多串口数据采集卡。
本文引用地址:http://www.amcfsurvey.com/article/265047.htmPCI采集卡由于使用不方便,逐渐被淘汰,目前USB传输系统被广泛应用。USB2.0理论传输速度为480Mb/s,而USB3.0的传输速率可高达5Gb/s,且在USB2.0的基础上又增加了超高速传输模式。本文设计的系统中有80个485传输通道,每个通道的速率为1~10Mb/s,最高传输速率可达800Mb/s,USB2.0已不能满足此要求。因此本文采用了Cypress的CYUSB3014和Altera的CycloneIII系列FPGA,CYUSB3014保证与PC的传输性能,FPGA负责多串口数据的采集以及对CYUSB3014的控制。
1.1系统框架
整个多串口数据采集与传输系统框图如图1所示。图中虚线部分为该系统的硬件框图,整个系统由3部分组成,USB3.0芯片选择了业界性能表现最好的Cypress的CYUSB3014芯片(简称FX3芯片),理论上通信速率可达4.8Gb/s,该芯片除了拥有GPIF2.0接口可方便与外设进行通信外,还有标准的SPI、UART、I2C、I2S与外设进行通信;FPGA采用了Cyclone3C40系列的芯片,逻辑资源、片上RAM以及I/O脚数目都能充分满足本系统设计;80路485传输芯片采用了ADI的ADM3485E,是一款3.3V低功耗数据收发器,提供±15kV的ESD保护,适用于多点总线线路的半双工通信。共模输入范围-7V~+12V,数据速率可达12Mb/s,能满足本系统的设计要求。
图1多串口数据传输系统框图
1.2 FX3与FPGA的通信设计
FX3与FPGA通信主要分为两类:
(1)FX3对FPGA的配置信息:PC通过FX3将串口的相关信息发送给FPGA,如各串口的奇偶校验、波特率、空闲位、每路的统计信息等配置,此类信息数据量比较小;
(2)FX3与FPGA的大容量数据通信:FPGA将485采集的数据通过FX3传输到PC.
为了有效地利用FX3的超高速数据传输特性,针对这两种不同的数据类型,本设计将两种数据通道分开设计,其中配置信息较少,而采集的485数据容量很大,为了不使配置信息数据打断485数据通道,将配置信息和数据信息通过两个独立的通道进行传输,其中配置信息采用了通过FX3的UART和FPGA进行通信,通信格式如下:
①EZ-USB向FPGA发送命令格式
②FPGA返回命令格式
FX3每发一条配置参数给FPGA,FPGA都会返回相应配置回应,并通知FX3可以继续发送下一条配置信息,在配置信息都发送完成后,FX3最后会发送一条配置完成命令,此时FPGA会启动外围接口电路进入正常的数据采集过程。
2 USB3.0芯片固件设计
Cypress公司为USB3.0芯片提供了一个开发包,其中包括了典型的固件代码。对USB3.0芯片固件的设计,可利用EZ-USBFX3固件函数库简化加速USB3.0固件程序的开发。固件程序主要完成的工作有:初始化、处理标准的USB设备请求及USB挂起时的电源管理等。任务循环的流程图如图2所示。
图2任务循环流程图
3 FPGA逻辑设计
FPGA采用了Altera公司的CycloneIII系列的3C40-C8,其逻辑门数有200万门左右,最高工作频率可以达到300MHz.整个工程使用了Verilog语言编写,整个工程的综合、布局布线都是在Quartus11.0版本下进行,仿真软件使用Modelsim6.5se版本。本设计中FPGA逻辑设计主要包括485数据采集模块及与FX3的读写时序控制逻辑,整个工程使用逻辑单元,片上RAM使用率接近系统的95%,整个系统工作频率为100MHz.
数字通信相关文章:数字通信原理
通信相关文章:通信原理
评论