基于FPGA的異步串行總線(xiàn)設計
(1)發(fā)射模塊:按照協(xié)議向上位機回傳監測數據,發(fā)射錯誤重發(fā)請求數據等;
(2)接收模塊:接收上位機下傳的參數、命令等;完成起始位的檢測和消息同步,題頭、題尾的對錯判斷,同時(shí)將收到的數據進(jìn)行串并轉換以8bit為單位打入FIFO (First In First Out)中緩存,備譯碼模塊進(jìn)行命令字譯碼和對下位機控制的信息讀取。
(3)CRC校驗模塊:CRC校驗模塊完成CRC-8編碼功能和CRC-8譯碼功能。當發(fā)送消息時(shí),將要發(fā)送的數據按8bit打入CRC校驗模塊,對其進(jìn)行編碼,求出校驗碼并且拼接到題尾后面將其發(fā)出;當接收消息時(shí),接收模塊將收到的串行碼按8bit打入CRC校驗模塊,啟動(dòng)CRC譯碼算法,如果譯碼成功則啟動(dòng)解消息模塊進(jìn)行相應的后續工作。如果譯碼失敗,終止本次接收,啟動(dòng)錯誤重發(fā)模塊,要求對放發(fā)送上一包消息。
(4)解消息模塊:CRC校驗成功后將啟動(dòng)解消息模塊進(jìn)入工作狀態(tài),從FIFO中讀取命令字數據,對命令字進(jìn)行解碼識別,根據解碼信息肩動(dòng)其它相應模塊開(kāi)始工作。
(5)錯誤重發(fā)模塊:當接收到串行數據流時(shí),經(jīng)過(guò)題頭、題尾、CRC譯碼判斷,任何一個(gè)環(huán)節出現錯誤都將終止本次接收流程,同時(shí)啟動(dòng)錯誤重發(fā)模塊,發(fā)送錯誤重發(fā)請求,要求對方重新發(fā)送上一包數據。本文引用地址:http://dyxdggzs.com/article/190439.htm
根據圖4所示流程及軟件模塊功能化分,本設計采用Verilog HDL硬件設計語(yǔ)言開(kāi)發(fā)實(shí)現。設計靈活,串口速率、編碼模式、傳輸方式等都可根據系統要求從上位機下發(fā)參數進(jìn)行修改。圖5是本串口總線(xiàn)在每秒七萬(wàn)次的通信頻率狀態(tài)下用Quartus軟件中的SignalTAP logic Analy zer抓出的工作時(shí)序圖??梢钥闯龃诳偩€(xiàn)傳輸穩定可靠,完全滿(mǎn)足系統通信的高速傳輸要求。
4 結束語(yǔ)
本文介紹了一種基于FPGA芯片的高速異步串行總線(xiàn)設計??偩€(xiàn)協(xié)議利用Verilog HDL實(shí)現,設計靈活、可讀性強、維護方便、升級移植性能優(yōu)越、傳輸穩定可靠。隨著(zhù)通信系統信息吞吐量的日益增加,這種具備多重優(yōu)點(diǎn)的串行總線(xiàn)設計將被大量使用。
評論