本站小編為你精心準備了HDLC協議IP核的設計參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
《電子設計工程雜志》2014年第十一期
1hdlc的幀結構
首先回顧一下HDLC基本的幀結構形式。HDLC是面向比特的鏈路控制規程,其鏈路監控功能通過一定的比特組合所表示的命令和響應來實現,這些監控比特和信息比特一起以幀的形式傳送。每幀的起始和結束以"7E"(01111110)做標志,兩個"7E"之間為數據段(包括地址數據、控制數據、信息數據)和幀校驗序列。幀校驗采用CRC算法,對除了插入的"零"以外的所有數據進行校驗。為了避免將數據中的"7E"誤為標志,在發送端和接收端要相應地對數據流和幀校驗序列進行"插零"及"刪零"操作。
2原理框圖
基于FPGA的HDLC協議的實現原理框圖如圖1所示。該框圖包括3個部分:對外接口部分、HDLC發送部分、HDLC接收部分。以下對3個部分的實現分別進行論述。
2.1對外接口模塊對外接口部分主要實現HDLC對外的數據交換。包括CPU接口、發送FIFO、發送接口、接收FIFO以及接收接口。本設計是以總線的形式實現HDLC與外部CPU的通信。當需要發送數據時,外部CPU通過總線將待發數據寫入FIFO(FIFO的ip核在各開發軟件中都是免費提供的,在程序中只需直接調用即可,故在此不再詳細描述)。之中。發送數據準備就緒標志(TX_DAT_OK);接收數據時,當對外接口模塊接收到數據有效信號時,根據接收模塊發來的寫信號(WR_MEM)將數據寫入接收FIFO中。接收完一幀數時向CPU發送中斷信號(INT),通知CPU讀取數據。
2.2HDLC發送模塊HDLC發送部分主要實現HDLC發送功能。當接收到數據準備就緒標志(TX_DAT_OK)后,向對外接口模塊發送讀使能(RD_MEM_EN)和讀信號(RD_MEM),通過局部總線將待發數據存入發送緩沖區,在T_CLK的控制下將數據從HDLC_TXD管腳發出。數據發送模塊采用狀態機來完成發送各個階段的切換。狀態切換流程圖如圖2所示。State0狀態是發送的起始狀態也是空閑狀態。當沒有數據要發送時(TX_DAT_OK=0),程序以7E填充發送;當程序檢測到有新數據時(TX_DAT_OK=1),程序檢測7E是否發送結束如果沒結束則繼續發送7E,如果7E發送結束則狀態在下一周期切換為State1。State1狀態主要完成接收并發送數據功能,在第二個CLK周期先將讀使能和讀信號拉高,在第三個CLK周期再將其拉低,在第五個CLK周期開始讀數。在并行的數據發送PROCESS中根據CLK周期和發送計數器,將接收到的數據通過移位進行發送同時對連續‘1’的個數和發送個數進行計數。當連續‘1’的個數為5時在下一個周期插入發送‘0’,將連續‘1’的計數器清零,發送個數不變。在發送數據的同時進行CRC校驗的計算。幀校驗序列字段使用CRC-16,對兩個標志字段之間的整個幀的內容進行校驗。CRC的生成多項式為X16+X12+X5+1,對在校錯范圍內的錯碼進行校驗。標志位和按透明規則插入的所有‘0’不在校驗的范圍內。程序設計中的CRC校驗算法的原理框圖如圖3所示。State3狀態主要完成發送字尾,發送完成后直接轉入state0。
2.3HDLC接收模塊接收模塊接收到一個非“7E”字節時,即判定為地址數據,直到再次接收到“7E”即判定為接收到了一個完整的一幀數。當接收到一個非“7E”數據后就通過內部數據總線(DAT_OUT_BUS)傳送給接口模塊,接口模塊根據FRAME_LENGTH和DAT_VALIDITY來判斷數據幀的長度和有效性。接收數據個階段的狀態切換流程如圖4所示。在State0狀態程序判斷接收到的數據是否為7E,如果為7E,則表明已收到了幀頭,狀態切換到State1。在State1狀態程序接收到的下一個數不是7E則表明收到了地址數據,將狀態機切換到State2。在State2狀態判斷是否收到字尾,如果不是字尾則將接收的數據存入接收緩沖區同時啟動寫數據,將接收到的數據通過總線寫入接收fifo。在收數的過程中同時進行刪除‘0’的操作,即當收到連續5個1時將下一個‘0’主動刪除。當收到字尾時對地址數據、控制數據和信息數據
3仿真與應用
的CRC校驗結果與最后兩個字節進行比對形成數據有效標志(DAT_VALIDITY)。根據上述設計,在QuartusII9.0上對發送數據和接收數據進行了仿真如圖5、6所示。從仿真波形可以看出發送模塊能夠將FIFO中的數按照設計的波形輸出到HTXD管腳;接收模塊能夠正確的將HRXD管腳的波形數據解出來并存入接收緩沖區中,接收完成后給接口模塊發出END標志。根據上述設計方法,已成功地在可編程邏輯芯片上實現。FPGA芯片選用的是Altera公司的Cyclone系列FPGA:EP1C6T144。
4結束語
上述詳細介紹了一種基于FPGA的HDLC協議IP核的方案及設計實現方法。根據本文介紹的實現方法設計出的HDLC接口板已應用于某雷達天線的同步引導數據的收發通信鏈路中,成功實現了雙向數據通信。應用結果表明該方法具有簡單實用、性能可靠以及成本低等特點。能夠廣泛應用于HDLC協議應用場合。
作者:閆軍虎張明社郗海燕單位:中國電子科技集團公司第39研究所