新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 多路同步串口的FPGA傳輸實(shí)現(xiàn)

多路同步串口的FPGA傳輸實(shí)現(xiàn)

作者: 時(shí)間:2009-05-21 來(lái)源:詹必勝 吳斌方 楊光友 湖北工業(yè)大學(xué) 收藏

  當(dāng)接收模塊有請(qǐng)求時(shí),發(fā)送模塊即將接收模塊采集到的數(shù)據(jù)寫(xiě)入發(fā)送模塊的緩存FIFO中,將其稱之為S_FIFO。每輪從R_FIFO中傳輸?shù)?個(gè)數(shù)據(jù)均依次存入S_FIFO中。

本文引用地址:http://butianyuan.cn/article/94602.htm

  因?yàn)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/DSP">DSP的8個(gè)同步串口均同時(shí)工作,可以認(rèn)為當(dāng)有一個(gè)輸入模塊的數(shù)據(jù)接收完畢時(shí), 8個(gè)端口的數(shù)據(jù)均應(yīng)該接收完畢,保險(xiǎn)起見(jiàn),可以延時(shí)若干時(shí)鐘周期后開(kāi)始接收數(shù)據(jù)。從端口0至端口7為一輪,若此時(shí)有端口沒(méi)有數(shù)據(jù),即可認(rèn)為此端口暫無(wú)數(shù)據(jù)輸出,用數(shù)據(jù)0替代,發(fā)送模塊繼續(xù)接收下一個(gè)端口的數(shù)據(jù)。用狀態(tài)機(jī)來(lái)實(shí)現(xiàn)此功能,如圖4所示。

  圖4 S_FIFO寫(xiě)操作的狀態(tài)機(jī)圖

  發(fā)送模塊完成的數(shù)據(jù)傳輸,當(dāng)發(fā)送模塊S_FIFO中的數(shù)據(jù)達(dá)到一定數(shù)量時(shí),即向發(fā)出發(fā)送數(shù)據(jù)請(qǐng)求,即開(kāi)始對(duì)FPGA進(jìn)行數(shù)據(jù)的讀取。

  FPGA中的S_FIFO同樣也是異步FIFO。寫(xiě)時(shí)鐘由鎖相環(huán)提供100MHz;讀時(shí)鐘由ARM的讀取使能信號(hào)OE取反得到,讀使能由ARM的片選信號(hào)NGCS取反得到。ARM讀取數(shù)據(jù)會(huì)產(chǎn)生NGCS與OE低電平信號(hào),無(wú)操作時(shí)置高。每次讀取數(shù)據(jù)時(shí)NGCS與OE先后置低,取反接至S_FIFO讀端口分別為NGCS_N與OE_N。對(duì)S_FIFO讀取時(shí),每當(dāng)讀時(shí)鐘OE_N為上升沿,讀使能NGCS_N必為1,完成一次讀取操作。

  這樣實(shí)現(xiàn)了ARM與FPGA之間的跨時(shí)鐘域數(shù)據(jù)傳輸。FPGA發(fā)送數(shù)據(jù)采取乒乓操作, ARM可以源源不斷的將S_FIFO中的數(shù)據(jù)讀取出來(lái)。FPGA和ARM的數(shù)據(jù)傳輸原理圖如圖5所示。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉