基于USB3.0和FPGA的多串口傳輸系統設計
多串口數據通信技術主要研究數據的多串口采集、存儲和處理。由于串口通信技術的廣泛應用,使得多串口采集卡一直是研究的熱點,從早期的基于PCI總線的多串口數據采集卡到后來的基于USB的多串口數據采集卡,以及現在的基于USB3.0的多串口數據采集卡。
本文引用地址:http://www.104case.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.
數字通信相關文章:數字通信原理
通信相關文章:通信原理
評論