基于USB3.0和FPGA的多串口傳輸系統設計

發(fā)布時(shí)間:2014-12-17 15:42    發(fā)布者:designapp
關(guān)鍵詞: USB3.0 , 多串口 , 超高速數據傳輸

        多串口數據通信技術(shù)主要研究數據的多串口采集、存儲和處理。由于串口通信技術(shù)的廣泛應用,使得多串口采集卡一直是研究的熱點(diǎn),從早期的基于PCI總線(xiàn)的多串口數據采集卡到后來(lái)的基于USB的多串口數據采集卡,以及現在的基于USB3.0的多串口數據采集卡。
PCI采集卡由于使用不方便,逐漸被淘汰,目前USB傳輸系統被廣泛應用。USB2.0理論傳輸速度為480Mb/s,而USB3.0的傳輸速率可高達5Gb/s,且在USB2.0的基礎上又增加了超高速傳輸模式。本文設計的系統中有80個(gè)485傳輸通道,每個(gè)通道的速率為1~10Mb/s,最高傳輸速率可達800Mb/s,USB2.0已不能滿(mǎn)足此要求。因此本文采用了Cypress的CYUSB3014和Altera的CycloneIII系列FPGA,CYUSB3014保證與PC的傳輸性能,FPGA負責多串口數據的采集以及對CYUSB3014的控制。
1 EZ-USB3.0 FX3與FPGA接口設計
1.1 系統框架
整個(gè)多串口數據采集與傳輸系統框圖如圖1所示。圖中虛線(xiàn)部分為該系統的硬件框圖,整個(gè)系統由3部分組成,USB3.0芯片選擇了業(yè)界性能表現最好的Cypress的CYUSB3014芯片(簡(jiǎn)稱(chēng)FX3芯片),理論上通信速率可達4.8Gb/s,該芯片除了擁有GPIF2.0接口可方便與外設進(jìn)行通信外,還有標準的SPI、UART、I2C、I2S與外設進(jìn)行通信;FPGA采用了Cyclone3C40系列的芯片,邏輯資源、片上RAM以及I/O腳數目都能充分滿(mǎn)足本系統設計;80路485傳輸芯片采用了ADI的ADM3485E,是一款3.3V低功耗數據收發(fā)器,提供±15kV的ESD保護,適用于多點(diǎn)總線(xiàn)線(xiàn)路的半雙工通信。共模輸入范圍-7V~+12V,數據速率可達12Mb/s,能滿(mǎn)足本系統的設計要求。


圖1 多串口數據傳輸系統框圖


1.2 FX3與FPGA的通信設計
FX3與FPGA通信主要分為兩類(lèi):
(1)FX3對FPGA的配置信息:PC通過(guò)FX3將串口的相關(guān)信息發(fā)送給FPGA,如各串口的奇偶校驗、波特率、空閑位、每路的統計信息等配置,此類(lèi)信息數據量比較小;
(2)FX3與FPGA的大容量數據通信:FPGA將485采集的數據通過(guò)FX3傳輸到PC。
為了有效地利用FX3的超高速數據傳輸特性,針對這兩種不同的數據類(lèi)型,本設計將兩種數據通道分開(kāi)設計,其中配置信息較少,而采集的485數據容量很大,為了不使配置信息數據打斷485數據通道,將配置信息和數據信息通過(guò)兩個(gè)獨立的通道進(jìn)行傳輸,其中配置信息采用了通過(guò)FX3的UART和FPGA進(jìn)行通信,通信格式如下:
①EZ-USB向FPGA發(fā)送命令格式



②FPGA返回命令格式



FX3每發(fā)一條配置參數給FPGA,FPGA都會(huì )返回相應配置回應,并通知FX3可以繼續發(fā)送下一條配置信息,在配置信息都發(fā)送完成后,FX3最后會(huì )發(fā)送一條配置完成命令,此時(shí)FPGA會(huì )啟動(dòng)外圍接口電路進(jìn)入正常的數據采集過(guò)程。
2 USB3.0芯片固件設計
Cypress公司為USB3.0芯片提供了一個(gè)開(kāi)發(fā)包,其中包括了典型的固件代碼。對USB3.0芯片固件的設計,可利用EZ-USBFX3固件函數庫簡(jiǎn)化加速USB3.0固件程序的開(kāi)發(fā)。固件程序主要完成的工作有:初始化、處理標準的USB設備請求及USB掛起時(shí)的電源管理等。任務(wù)循環(huán)的流程圖如圖2所示。


圖 2 任務(wù)循環(huán)流程圖





       
3 FPGA邏輯設計
FPGA采用了Altera公司的CycloneIII系列的3C40-C8,其邏輯門(mén)數有200萬(wàn)門(mén)左右,最高工作頻率可以達到300MHz。整個(gè)工程使用了Verilog語(yǔ)言編寫(xiě),整個(gè)工程的綜合、布局布線(xiàn)都是在Quartus11.0版本下進(jìn)行,仿真軟件使用Modelsim6.5se版本。本設計中FPGA邏輯設計主要包括485數據采集模塊及與FX3的讀寫(xiě)時(shí)序控制邏輯,整個(gè)工程使用邏輯單元,片上RAM使用率接近系統的95%,整個(gè)系統工作頻率為100MHz。
3.1 邏輯模塊設計
系統的邏輯模塊分為時(shí)鐘模塊、FX3發(fā)送/接收緩存模塊、發(fā)送/接收控制模塊、FX3讀寫(xiě)控制模塊、485接收模塊、485發(fā)送模塊以及配置串口參數模塊。
整個(gè)系統的數據流分為兩個(gè)過(guò)程:485數據采集過(guò)程和485發(fā)送控制命令過(guò)程。
(1)485數據采集過(guò)程:485數據通過(guò)485接收模塊傳送給FX3接收緩存模塊,在FX3數據接口沒(méi)有被占用時(shí),通過(guò)FX3讀寫(xiě)控制模塊發(fā)送給USB3.0芯片并傳到PC端。
(2)485數據發(fā)送過(guò)程:USB3.0芯片通過(guò)FX3讀寫(xiě)控制模塊將數據發(fā)送到FX3發(fā)送緩存模塊中,在收發(fā)控制模塊檢測到相關(guān)串口空閑后通過(guò)485發(fā)送模塊將相關(guān)數據發(fā)送出去。
485收發(fā)相對于USB3.0速度來(lái)說(shuō),屬于慢速設備。為了提高USB3.0總線(xiàn)利用率,此處只設計了兩種緩存,即接收緩存和發(fā)送緩存,大小都設置為512KB,80路的485接收和發(fā)送buffer最終都匯聚到這兩種緩存上,有效地減少了短包和空包發(fā)生率。
3.2 FX3接口時(shí)序
FPGA與FX3之間采用了Slavefifo模式,FPGA通過(guò)狀態(tài)標志的flaga、flagb、flagc、flagd來(lái)判斷FX3的接收/發(fā)送緩存的數據狀態(tài),當flaga/flagc為高時(shí),表示FX3緩存中接收到了數據;當flagb/flagd為高時(shí),表示FX3的發(fā)送緩存為非滿(mǎn)狀態(tài),FPGA可對其進(jìn)行寫(xiě)數據操作。
圖3所示為FX3的A通道讀時(shí)序,FPGA先檢測i_usb_flaga是否為高電平,如果為高電平則表示A通道buffer中有數據可讀,此時(shí)將通道地址信號設置為0,片選信號o_usb_slcs_n/o_usb_sloe_n拉低,o_usb_slrd_n信號拉低后,在4個(gè)時(shí)鐘之后,數據將出現在io_usb_dq上,如果進(jìn)行寫(xiě)操作則將o_usb_slwr_n拉低。對應的通道號地址選對,同時(shí)將片選信號拉低即可,寫(xiě)通道時(shí)序如圖4所示。


圖 3 FX3 的 A 通道數據讀取時(shí)序



圖 4 FX3 的 B 通道寫(xiě)數據時(shí)序


4 通信速度實(shí)驗結果
利用Cypress的Streamer軟件,可以測試該USB3.0傳輸系統的傳輸速率。將Packets per Xfer設置為256,在win764位下(電腦配置為華碩N53XI241SN,Fresco FL1000系列的控制器)的傳輸速率測試結果為2.5Gb/s,滿(mǎn)足了整個(gè)系統的性能,如圖5所示。


圖 5 讀速率測試結果圖


該系統適合于超高速數據的傳輸,具有電路簡(jiǎn)單、體積小等優(yōu)點(diǎn)。FPGA技術(shù)與USB3.0的結合有極大的靈活性和可擴展性,基于FPGA和USB3.0的突出優(yōu)點(diǎn),該設計方案必將應用在更廣闊的領(lǐng)域。


本文地址:http://selenalain.com/thread-135938-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页