資源描述:
《多路同步串口的FPGA傳輸實現(xiàn).pdf》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、Design設(shè)計應(yīng)用0欄目編輯韓汝水多路同步串口的FPGA傳輸實現(xiàn)DesignofMulti—channelSynchronousSerialTransmissionBaseonFPGA■詹必勝吳斌方楊光友湖~LTql,大學(xué)(湖北武漢430068)路數(shù)據(jù),經(jīng)過緩沖后再發(fā)送至ARM進行數(shù)據(jù)的高級處理的方案,系統(tǒng)結(jié)構(gòu)圖如圖1所示。如圖1所示,DSP傳輸8路串行數(shù)據(jù),每路數(shù)據(jù)速度為60kB/S,時鐘頻率為60MHz。即每秒60×32=1920kbps,由此可得FPGA向ARM發(fā)送數(shù)據(jù)帶寬為60x8×32=15.360Mbit/S。根據(jù)系統(tǒng)的這一要求,F(xiàn)PGA選用Alt
2、era公司CYClOne2湖北省自然科學(xué)基金引言ep2c5q208c8,此型號的FPGA擁有4608個邏項目(編號:2007AB隨著集成電路技術(shù)的發(fā)展,F(xiàn)PGA;~HDSP輯單元,142個用戶引腳,119808bit的內(nèi)嵌A255)資助以及ARM以其體積小、速度快、功耗低、設(shè)RAM,以及2個內(nèi)嵌PLL鎖相環(huán),資源豐富【1『J2】2009-~3月14日收到本計靈活、利于系統(tǒng)集成、擴展升級等優(yōu)點,被文修改稿。廣泛地應(yīng)用于高速數(shù)字信號傳輸及數(shù)據(jù)處理,以DSP+FPGA+ARM的架構(gòu)組成滿足實時性FPGA處理模塊實現(xiàn)要求的高速數(shù)字處理系統(tǒng)已成為一種趨勢,DSP的串口傳輸
3、方式為同步串口,每組本文主要研究FPGA在高速多路數(shù)據(jù)傳輸中DSP串口有4個端口,分別為:clk,frame,的應(yīng)用。data—a,data_bI。數(shù)據(jù)端口有兩個,本例中只使能data_a,以下統(tǒng)一稱為data。系統(tǒng)結(jié)構(gòu)DSP同步串口傳輸時序如圖2所示,當(dāng)圖1系統(tǒng)結(jié)構(gòu)在DSP多路串行數(shù)據(jù)同時向ARM發(fā)送frame為1時,串行數(shù)據(jù)有效,當(dāng)frame為0的系統(tǒng)中,因為數(shù)據(jù)通道有并行要求,應(yīng)用時,一幀數(shù)據(jù)傳輸結(jié)束。本例中DSP傳輸?shù)腇PGA硬件并行的特點,由FPGA并行接收多一幀數(shù)據(jù)為32bit。FPGA內(nèi)部采用異步FIFO解決DSP時鐘8路串臼頻率和FPGA時鐘頻率
4、不匹配的問題,寫時鐘由DSP輸出的同步時鐘信號提供,時鐘頻—DSPFPGA8路32位并行\ARM率為60MHz;讀時鐘由FPGA的鎖相環(huán)PLL數(shù)據(jù)依次發(fā)送/時鐘提供,PLL輸出時鐘頻率為100MHz。接收模塊同步串口端數(shù)據(jù)采集接受數(shù)據(jù)及由于DSP的8個同步串口同時寫入,(8路信號)及整理發(fā)送控制信號線更高級處理FPGA數(shù)據(jù)接收模塊一共有8個,每個模塊接一收到的數(shù)據(jù)都存放在一個特定的FIFO中,將其稱之為R_FIFO。WWW.eepw.c。m.cnl2009.5重孑虛品尿l圇“-T一翠鬻焉設(shè)‘計I應(yīng)J二L用,_r
5、Designt矗:;《爨◇n欄目編輯韓汝水入R_F
6、IFO的數(shù)據(jù)輸入口,將R_FIFO的寫使廠一.__J能置高,向R_FIFO發(fā)出寫入請求,寫入此時的數(shù)據(jù)至R_FIFO中,依次循環(huán)。當(dāng)R_FIFOI中的數(shù)據(jù)個數(shù)不為0時,即向FPGA的發(fā)送模LEFT.JUSTIFlEDSAMPLExL,:(e/、/、—hIPAIR\/\/、/(LSBn)(n廣l。塊發(fā)送請求。發(fā)送模塊接收模塊接收到DSP同步串口數(shù)據(jù)后,I冬l2DSP同步串口傳輸時序l冬l即通過reg與answer信號與FPGA數(shù)據(jù)發(fā)送模塊之間進行數(shù)據(jù)傳輸,如圖3所示。當(dāng)接收模塊有請求時,發(fā)送模塊即將接收模塊采集到的數(shù)據(jù)寫入發(fā)送模塊的緩存FIFO中,將其稱之為S_F
7、IFO。每輪從R_FIFO中傳輸?shù)?個數(shù)據(jù)均依次存入S_FIFO中。因為DSP的8個同步串口均同時工作,可以認(rèn)為當(dāng)有一個輸入模塊的數(shù)據(jù)接收完畢時,8個端口的數(shù)據(jù)均應(yīng)該接收完畢,保險起見,可以延時若干時鐘周期后開始接收數(shù)據(jù)。從圖3FPGA接收及發(fā)送端口0至端口7為一輪,若此時有端口沒有數(shù)模塊據(jù),即可認(rèn)為此端口暫無數(shù)據(jù)輸出,用數(shù)據(jù)0替代,發(fā)送模塊繼續(xù)接收下一個端口的數(shù)據(jù)。網(wǎng)4SFIFO"qi操作的—用狀態(tài)機來實現(xiàn)此功能,如圖4所示。狀態(tài)機}冬{發(fā)送模塊完成FPGA向ARM的數(shù)據(jù)傳抗干擾差分對請求輸,當(dāng)FPGA發(fā)送模塊S—FIFO中的數(shù)據(jù)達到抗干擾差分對使能一定數(shù)量時
8、,F(xiàn)PGA即向ARM發(fā)出發(fā)送數(shù)據(jù)1FPGAr\\ARM請求,ARM即開始對FPGA進行數(shù)據(jù)的讀取。32位并行數(shù)據(jù))數(shù)據(jù)艘送模塊數(shù)據(jù)接收端口FPGA中的S_FIFO同樣也是異步FIFO。讀取時鐘(OE)圖5FPGA和ARM的寫時鐘由鎖相環(huán)提供100MHz;讀時鐘由數(shù)據(jù)傳輸讀取使能(NGCSjARM的讀取使能信號OE取反得到,讀使能DSP輸出信號為frame,clk,data,F(xiàn)PGA由ARM的片選信號NGCS取反得到。ARM以DSP同步串FI的輸出時{~clk作為采集數(shù)據(jù)讀取數(shù)據(jù)會產(chǎn)生NGCS與oE低電平信號,無的時鐘。系統(tǒng)上電結(jié)束后,F(xiàn)PGA等待ARM操作時置高
9、。每次讀取數(shù)據(jù)時NGCS