新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的異步串行總線設(shè)計

基于FPGA的異步串行總線設(shè)計

作者: 時間:2012-05-02 來源:網(wǎng)絡(luò) 收藏

(1)發(fā)射模塊:按照協(xié)議向上位機回傳監(jiān)測數(shù)據(jù),發(fā)射錯誤重發(fā)請求數(shù)據(jù)等;
(2)接收模塊:接收上位機下傳的參數(shù)、命令等;完成起始位的檢測和消息同步,題頭、題尾的對錯判斷,同時將收到的數(shù)據(jù)進行串并轉(zhuǎn)換以8bit為單位打入FIFO (First In First Out)中緩存,備譯碼模塊進行命令字譯碼和對下位機控制的信息讀取。
(3)CRC校驗?zāi)K:CRC校驗?zāi)K完成CRC-8編碼功能和CRC-8譯碼功能。當(dāng)發(fā)送消息時,將要發(fā)送的數(shù)據(jù)按8bit打入CRC校驗?zāi)K,對其進行編碼,求出校驗碼并且拼接到題尾后面將其發(fā)出;當(dāng)接收消息時,接收模塊將收到的串行碼按8bit打入CRC校驗?zāi)K,啟動CRC譯碼算法,如果譯碼成功則啟動解消息模塊進行相應(yīng)的后續(xù)工作。如果譯碼失敗,終止本次接收,啟動錯誤重發(fā)模塊,要求對放發(fā)送上一包消息。
(4)解消息模塊:CRC校驗成功后將啟動解消息模塊進入工作狀態(tài),從FIFO中讀取命令字數(shù)據(jù),對命令字進行解碼識別,根據(jù)解碼信息肩動其它相應(yīng)模塊開始工作。
(5)錯誤重發(fā)模塊:當(dāng)接收到串行數(shù)據(jù)流時,經(jīng)過題頭、題尾、CRC譯碼判斷,任何一個環(huán)節(jié)出現(xiàn)錯誤都將終止本次接收流程,同時啟動錯誤重發(fā)模塊,發(fā)送錯誤重發(fā)請求,要求對方重新發(fā)送上一包數(shù)據(jù)。

本文引用地址:http://2s4d.com/article/190439.htm

a.JPG


根據(jù)圖4所示流程及軟件模塊功能化分,本設(shè)計采用Verilog HDL硬件設(shè)計語言開發(fā)實現(xiàn)。設(shè)計靈活,串口速率、編碼模式、傳輸方式等都可根據(jù)系統(tǒng)要求從上位機下發(fā)參數(shù)進行修改。圖5是本串口總線在每秒七萬次的通信頻率狀態(tài)下用Quartus軟件中的SignalTAP logic Analy zer抓出的工作時序圖??梢钥闯龃诳偩€傳輸穩(wěn)定可靠,完全滿足系統(tǒng)通信的高速傳輸要求。

4 結(jié)束語
本文介紹了一種基于芯片的高速??偩€協(xié)議利用Verilog HDL實現(xiàn),設(shè)計靈活、可讀性強、維護方便、升級移植性能優(yōu)越、傳輸穩(wěn)定可靠。隨著通信系統(tǒng)信息吞吐量的日益增加,這種具備多重優(yōu)點的串行將被大量使用。


上一頁 1 2 3 4 下一頁

關(guān)鍵詞: FPGA 異步串行 總線設(shè)計

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉