基于USB3.0和FPGA的多串口傳輸系統(tǒng)設(shè)計(jì)
3.1邏輯模塊設(shè)計(jì)
本文引用地址:http://www.ex-cimer.com/article/265047.htm系統(tǒng)的邏輯模塊分為時(shí)鐘模塊、FX3發(fā)送/接收緩存模塊、發(fā)送/接收控制模塊、FX3讀寫控制模塊、485接收模塊、485發(fā)送模塊以及配置串口參數(shù)模塊。
整個(gè)系統(tǒng)的數(shù)據(jù)流分為兩個(gè)過程:485數(shù)據(jù)采集過程和485發(fā)送控制命令過程。
(1)485數(shù)據(jù)采集過程:485數(shù)據(jù)通過485接收模塊傳送給FX3接收緩存模塊,在FX3數(shù)據(jù)接口沒有被占用時(shí),通過FX3讀寫控制模塊發(fā)送給USB3.0芯片并傳到PC端。
(2)485數(shù)據(jù)發(fā)送過程:USB3.0芯片通過FX3讀寫控制模塊將數(shù)據(jù)發(fā)送到FX3發(fā)送緩存模塊中,在收發(fā)控制模塊檢測(cè)到相關(guān)串口空閑后通過485發(fā)送模塊將相關(guān)數(shù)據(jù)發(fā)送出去。
485收發(fā)相對(duì)于USB3.0速度來說,屬于慢速設(shè)備。為了提高USB3.0總線利用率,此處只設(shè)計(jì)了兩種緩存,即接收緩存和發(fā)送緩存,大小都設(shè)置為512KB,80路的485接收和發(fā)送buffer最終都匯聚到這兩種緩存上,有效地減少了短包和空包發(fā)生率。
3.2 FX3接口時(shí)序
FPGA與FX3之間采用了Slavefifo模式,FPGA通過狀態(tài)標(biāo)志的flaga、flagb、flagc、flagd來判斷FX3的接收/發(fā)送緩存的數(shù)據(jù)狀態(tài),當(dāng)flaga/flagc為高時(shí),表示FX3緩存中接收到了數(shù)據(jù);當(dāng)flagb/flagd為高時(shí),表示FX3的發(fā)送緩存為非滿狀態(tài),FPGA可對(duì)其進(jìn)行寫數(shù)據(jù)操作。
圖3所示為FX3的A通道讀時(shí)序,F(xiàn)PGA先檢測(cè)i_usb_flaga是否為高電平,如果為高電平則表示A通道buffer中有數(shù)據(jù)可讀,此時(shí)將通道地址信號(hào)設(shè)置為0,片選信號(hào)o_usb_slcs_n/o_usb_sloe_n拉低,o_usb_slrd_n信號(hào)拉低后,在4個(gè)時(shí)鐘之后,數(shù)據(jù)將出現(xiàn)在io_usb_dq上,如果進(jìn)行寫操作則將o_usb_slwr_n拉低。對(duì)應(yīng)的通道號(hào)地址選對(duì),同時(shí)將片選信號(hào)拉低即可,寫通道時(shí)序如圖4所示。
圖3 FX3的A通道數(shù)據(jù)讀取時(shí)序
圖4 FX3的B通道寫數(shù)據(jù)時(shí)序
4通信速度實(shí)驗(yàn)結(jié)果
利用Cypress的Streamer軟件,可以測(cè)試該USB3.0傳輸系統(tǒng)的傳輸速率。將Packets per Xfer設(shè)置為256,在win764位下(電腦配置為華碩N53XI241SN,F(xiàn)resco FL1000系列的控制器)的傳輸速率測(cè)試結(jié)果為2.5Gb/s,滿足了整個(gè)系統(tǒng)的性能,如圖5所示。
圖5讀速率測(cè)試結(jié)果圖
該系統(tǒng)適合于超高速數(shù)據(jù)的傳輸,具有電路簡(jiǎn)單、體積小等優(yōu)點(diǎn)。FPGA技術(shù)與USB3.0的結(jié)合有極大的靈活性和可擴(kuò)展性,基于FPGA和USB3.0的突出優(yōu)點(diǎn),該設(shè)計(jì)方案必將應(yīng)用在更廣闊的領(lǐng)域。
數(shù)字通信相關(guān)文章:數(shù)字通信原理
通信相關(guān)文章:通信原理
評(píng)論