資源描述:
《基于fpga平臺的hdlc協(xié)議的應(yīng)用與研究》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、于FPGA平臺的HDLC協(xié)議的應(yīng)用與研究【摘要】HDLC協(xié)議作為一種數(shù)字通信技術(shù)中使用較為廣泛的高級鏈路傳輸協(xié)議,在如今已經(jīng)被用于計算機通信的各項領(lǐng)域當(dāng)中,不過顯然其在被應(yīng)用的過程屮同樣出現(xiàn)了一些弊端。因此本文以基于FPGA平臺的HDLC協(xié)議作為研宄對象,重點討論了HDLC協(xié)議本身的構(gòu)成,以及在實現(xiàn)HDLC協(xié)議過程中對初始化模塊、發(fā)送模塊、接收模塊進行了論述,最后給出了仿真測試結(jié)果?!娟P(guān)鍵詞】HDLC協(xié)議數(shù)裾鏈路層FPGA平臺一、HDLC協(xié)議的介紹數(shù)據(jù)鏈路層協(xié)議根據(jù)數(shù)據(jù)幀控制的格式可以分為:面向字符的數(shù)據(jù)鏈路層協(xié)議和面句比特的數(shù)據(jù)鏈路層協(xié)議。HDLC協(xié)議是一種面14比特的數(shù)據(jù)鏈路協(xié)議
2、。在這類面向比特的數(shù)據(jù)鏈路協(xié)議中,幀尖和幀尾都是特定的二進制序列,通過控制字段來實現(xiàn)對鏈路的監(jiān)控,可以采用多種編碼方式實現(xiàn)高效的、可靠的透明傳輸。二、基于FPGA平臺的TOLC協(xié)議的實現(xiàn)1、初始模塊的實現(xiàn).在實現(xiàn)HDLC模塊以前必須針對其完成初始化的相應(yīng)流程以后方可正常進入工作運行裝填。這里的初始化具體來說是針對HDLC模塊內(nèi)部的各類寄存器進行參數(shù)上的配置,其屮主要的寄存器類型有輔助寄存器、地址寄存器等。而且地址寄存器的初始化尤為重要,一般當(dāng)對這幾類寄存器完成初始化配置后,系統(tǒng)會自動生成一個標(biāo)識信號,如果信號顯示為正常且有效的,那么其代表HDLC的初始化工作已經(jīng)基本完成,且可以進入到
3、下一步工作狀態(tài)中。而輔助配置寄存器的初始化則并不一定需要在該階段中完成。2、發(fā)送模塊的實現(xiàn)。在IIDLC協(xié)議中,具體負(fù)責(zé)差錯校檢功能的為CRC校檢模塊,具體的幀發(fā)送模塊的實現(xiàn)過程為:首先系統(tǒng)與CPU線路開始連接一戶,然后數(shù)據(jù)幵始被寫入到FIFO中,如果檢測到某條線路正好處于未被資源占用的狀態(tài),那么CRC校驗?zāi)K則開始對FIFO中的數(shù)據(jù)進行校驗和插零程序。同時,數(shù)據(jù)經(jīng)過插零并發(fā)送以后,每一個數(shù)據(jù)序列必須添加包頭和包圍并以串行的形式被發(fā)送端傳輸出去,并且將幀標(biāo)志的狀態(tài)修改為“011111100”,這里筆者將以上組成發(fā)送模塊的發(fā)送端分成四個部分,分別是fifomain、insert_0、c
4、reme以及frameinsert等模塊3、接收模塊的設(shè)計。HDLC協(xié)議中的接收模塊在功能結(jié)構(gòu)的組成方面和發(fā)送模塊相類似,主要由CRC校驗?zāi)K、控制模塊、數(shù)據(jù)鎖存模塊以及同步模塊組成。具體來說,系統(tǒng)屮的控制模塊針對數(shù)據(jù)傳輸屮的刪零過程以及標(biāo)識檢驗過程來進行??刂颇K會優(yōu)先檢測幀頭和數(shù)據(jù)起始的范圍,當(dāng)檢測到串行數(shù)據(jù)中輸入或者輸出數(shù)值相對偏高,則證明幀頭被控制模塊捕捉到,如果輸入輸出數(shù)值沒有變化甚至為零,則說明尚未接受到幀頭。CRC校驗?zāi)K則主要負(fù)責(zé)對串行數(shù)據(jù)進行校驗。數(shù)據(jù)鎖存模塊主要對寄存器上所記錄的數(shù)據(jù)進行鎖存,并將結(jié)果存儲到系統(tǒng)屮來。另外,數(shù)裾鎖存模塊還會負(fù)貴對短幀進行長度的檢測、
5、整數(shù)字節(jié)的檢測以及起到反向傳輸字節(jié)的作三、HDLC協(xié)議的仿真測試1、初始化模塊測試。如下圖1所示,其為HDLC模塊在FPGA平臺上模擬仿真時序圖,其正處于初始化狀態(tài),HDLC的初始化主要是針對系統(tǒng)的各類寄存器進行配置,如圖中所示,尋址寄存器中的WHte_AC_Flag被配置的狀態(tài)值就為“1”,其他寄存器像地址寄存器等相繼完成配置以后,就會在通過Init_DOne給出初始化完成的有效信號,從圖中可看出上電時也會完成初始化。2、發(fā)送模塊測試。HDLC的發(fā)送模塊主要原理是將需要發(fā)送的數(shù)據(jù)存儲到TDR寄存器中來,系統(tǒng)中的發(fā)送時鐘Tx.Clk會在數(shù)據(jù)寫入操作結(jié)束以后開始進行輪詢。其屮輪詢周期被
6、設(shè)定為0.25ms,Tx_Enable信號則是在經(jīng)過Poll_RRT_Pulse正式?_始發(fā)送完畢以后開始生效。而且數(shù)據(jù)狀態(tài)機的TX.IDLR則開始正式跳轉(zhuǎn),并向系統(tǒng)發(fā)送有效的幀頭標(biāo)識。3、接收模塊測試。HDLC的接收模塊主要會使用外環(huán)測試,CH1和CH2之間彼此構(gòu)成環(huán)路,當(dāng)C112接收端接受完所冇串并轉(zhuǎn)換以后的數(shù)據(jù)流后,就會開始對幀頭狀態(tài)進行丁妲,如果判斷幀頭為“01111110”,系統(tǒng)白動跳轉(zhuǎn)為RX_FLAG,并且接著繼續(xù)判斷幀頭和檢測序列,直至不再出現(xiàn)以上序列幀頭就會再次轉(zhuǎn)變狀態(tài)。CRC校驗信號值Rx_CRC_Error仍然為0,由此可以確認(rèn)本次系統(tǒng)接收模塊運行正常,可供幀數(shù)據(jù)
7、之間的接收。參考文獻[1]易鳴.基于FPGA的IP協(xié)議轉(zhuǎn)換控制器的研究與實現(xiàn)[D].廣西大學(xué),2012.[2]孔令軍.基于FPGA的POS1C設(shè)計[D].杭州電子科技大學(xué),2013.[1]劉巖俊,閆海霞.HDLC通訊協(xié)議中CRC的應(yīng)用[J].電子測量技術(shù),2010,03:21-23.[2]劉文學(xué),郭玉忠,姜琳琳.HDLC協(xié)議的FPGA實現(xiàn)方法[J].航空計算技術(shù),2011,3:93-96.