<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 基于FPGA+ARM的HDLC協(xié)議控制器的設計與實(shí)現

基于FPGA+ARM的HDLC協(xié)議控制器的設計與實(shí)現

作者: 時(shí)間:2016-10-18 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:針對飛控模擬裝置中基于通信需求,完成了一種新的基于+架構控制器的設計。文中首先介B了的幀結構和循環(huán)冗余校驗(CRC)原理,然后結合可進(jìn)行任意數據寬度操作和編程簡(jiǎn)單靈活的優(yōu)點(diǎn),有效實(shí)現了符合HDLC協(xié)議的幀結構和CRC校驗的應用方法,滿(mǎn)足HDLC協(xié)議要求。應用結果表明設計能夠很好地滿(mǎn)足各項功能指標的技術(shù)要求。

本文引用地址:http://dyxdggzs.com/article/201610/308490.htm

高級數據鏈路控制(HDLC,High-Level Data Control)是一種同步數據傳輸、面向比特的數據鏈路層協(xié)議,具有差錯檢測功能強大、高效和同步傳輸的特點(diǎn),目前HDLC協(xié)議已成為是通信領(lǐng)域中應用最廣泛的協(xié)議之一,在飛行器設計領(lǐng)域經(jīng)常用作飛控與舵機,助推器等之間通信的通信協(xié)議。

飛行控制模擬裝置是在飛行器研制的方案階段,用于飛行控制系統軟件開(kāi)發(fā)及仿真評估,飛行控制軟件往往是A級軟件,它的任何問(wèn)題都將造成飛行失效,進(jìn)而引起整個(gè)系統的癱瘓。采取飛行器控制系統模擬裝置進(jìn)行軟件算法驗證,對各個(gè)分系統軟件調試和系統驗證,能夠加快飛行器設計進(jìn)度,減少設計風(fēng)險和成本。

本文研究的HDLC協(xié)議控制器用于某型飛行器的飛控模擬裝置與舵機控制器之間的通信。一般而言HDLC協(xié)議主要是通過(guò)使用專(zhuān)用芯片和軟件編程的方式來(lái)實(shí)現。目前在市場(chǎng)上有很多專(zhuān)用的HDLC協(xié)議處理芯片如MT8952B、MK5025,這些芯片性能可靠但功能針對性太強,適合應用于特定用途的大批量產(chǎn)品中。軟件編程方式是通過(guò)針對微控制器或信號處理器進(jìn)行編程,但是由于微控制器或信號處理器是基于字節(8位、16位等)的處理,而HDLC協(xié)議幀的解析和生成是面向比特的處理,因而這種方法會(huì )大大增加微處理器或信號處理器的負荷??紤]到本設計中針對的飛控模擬裝置中存在大量不同總線(xiàn)接口需要處理,其處理器為+,FPGA能對任意數據寬度的信號進(jìn)行處理,ARM具備編程簡(jiǎn)單,修改靈活的優(yōu)點(diǎn),為此本文在此基礎上采用FPGA+AHM的方式利用FPGA完成符合HDLC協(xié)議的數據傳輸控制,ARM完成CRC校驗和信息幀解包,最終實(shí)現HDLC協(xié)議控制器的設計。

1 HDLC協(xié)議及CRC原理介紹

HDLC是高級鏈路層控制協(xié)議,面向位的數據鏈路層協(xié)議。HDLC通常為點(diǎn)一點(diǎn)或點(diǎn)一多點(diǎn)結構,可用于半雙工或全雙工通信,采用同步傳輸方式,常用于中高速數據傳輸場(chǎng)合。HDLC采用滑動(dòng)窗口協(xié)議,可以同時(shí)確認幾個(gè)幀;另外,每個(gè)幀都含有地址地段,這樣在多點(diǎn)結構中,主站可以同時(shí)和多個(gè)從站建立連接,而每個(gè)從站只接收含有本站地址的幀,因此HDLC的傳輸效率比較高,具有較高的吞吐率。在HDLC協(xié)議控制器中,其實(shí)現的關(guān)鍵在于兩個(gè)方面,一方面為保證幀間隔標志的唯一性,在后續的字段中采用“0”比特插入/刪除技術(shù)。發(fā)送時(shí),幀間隔標志之外的所有信息,只要出現連續的5個(gè)“1”,則自動(dòng)插入一個(gè)“0”;同樣,接收方在接收數據時(shí),只要遇到連續的5個(gè)“1”,則自動(dòng)將其后的“0”刪除掉;另一方面是CRC碼的產(chǎn)生及校驗,即在發(fā)送端,利用生成多項式自動(dòng)生成一幀數據的CRC校驗碼并附在信息段后發(fā)送出去;在接收端,對接受到的一幀數據作CRC碼的校驗。

CRC的全稱(chēng)為Cvclic Redundancy Chcck,中文名稱(chēng)為循環(huán)冗余校驗。它是一類(lèi)重要的線(xiàn)性分組碼。編碼和解碼方法簡(jiǎn)單,檢錯和糾錯能力強,在通信領(lǐng)域廣泛地用于實(shí)現差錯控制。其基本原理是:對于一個(gè)給定的(N,K)碼(在K位信息碼后再拼接R位的校驗碼,N=R+K),可以證明存在一個(gè)最高次冪為N-K=R的多項式C(x)。根據C(x)可以生成K位信息的校驗碼,而G(x)叫做這個(gè)CRC碼的生成多項式。校驗碼的具體生成過(guò)程為:假設要發(fā)送的信息用多項式C(X)表示,將C(x)左移R位(可表示成C(x)*2R),這樣C(x)的右邊就會(huì )空出R位,這就是校驗碼的位置。用C(x)*2R除以生成多項式G(x)得到的余數就是校驗碼。根據R的不同,形成多種不同的CRC標準,如(3RC-4:x4+x+1、CRC-8:x8+x6+X4+x3+X2+ X1、CRC16-CCITT:x16+X12+x5+1等。本文采用的即是CRC16-CCITT標準。

2 HDLC控制器設計

2.1 HDLC協(xié)議處理電路設計

為滿(mǎn)足飛行器設計驗證需求,可以實(shí)現基于HDLC協(xié)議傳輸的靈活配置,其功能和技術(shù)指標要求如下:422全雙工;傳輸速率可調,最大達到2 Mbps;通信距離不超過(guò)5 m;通訊誤碼率小于10-7;幀頭7E與幀尾個(gè)數可調,CRC校驗方式采用CCITT-CRC16。根據功能和技術(shù)指標要求以及飛控模擬裝置總體配置狀況,控制器總體框圖如圖1所示。

基于FPGA+ARM的HDLC協(xié)議控制器的設計與實(shí)現

其中數據處理單元采用ARM實(shí)現,完成數據幀的CRC校驗和信息提取,并根據設定初始化傳輸控制單元的參數,包括波特率,7E有效個(gè)數;傳輸控制單元采用FPCA實(shí)現,主要功能是實(shí)現HDLC傳輸控制邏輯和數據緩存;接口總線(xiàn)采用全雙工RS422數據總線(xiàn),由于RS422傳輸線(xiàn)為差分電壓,因此需要進(jìn)行電平轉化,為此根據設計要求本文設計的控制器選用MAX3491作為電子轉換芯片,其轉換速度達到10Mbps以滿(mǎn)足需要。文中將針對HDLC控制器設計重點(diǎn)介紹數據處理單元、輸出控制邏輯兩部分。

2.2 HDLC傳輸控制單元

HDLC傳輸是按位操作,因此采用FPGA完成,FPGA采用altera公司的CYCLONE Ⅱ系列的FPGA,開(kāi)發(fā)平臺基于QuartuslI 6.0開(kāi)發(fā)環(huán)境,利用有限狀態(tài)機設計實(shí)現HDLC協(xié)議的傳輸控制部分,并最終以IP核的方式給出設計實(shí)現,便于開(kāi)發(fā)人員進(jìn)行維護和升級。

由于HDLC協(xié)議控制器是全雙工通信,即包含了HDLC同步比特數據的接收電路設計和HDLC同步比特數據幀的發(fā)送電路設計。在FPGA的設計中,接收端和發(fā)送端都是基于比特的處理,其功能框圖如圖2所示。

基于FPGA+ARM的HDLC協(xié)議控制器的設計與實(shí)現

在接收端,一直根據接收時(shí)鐘RCLK信號的上升沿接收數據,在信息幀發(fā)出以前,判斷幀頭“7E”,并記錄“7E”個(gè)數,當“7E”個(gè)數滿(mǎn)足設定要求,開(kāi)始啟動(dòng)信息幀的接收,并開(kāi)啟數1計數器,當遇到連續5個(gè)“1”時(shí)刪除其后的“0”,同時(shí)進(jìn)行串并轉換,將數據按8BIT組成一字節,存入FIFO中,整字節接收完畢后,如接收到“7E”表明該信息幀結束,并開(kāi)始記錄“7E”個(gè)數,當“7E”個(gè)數滿(mǎn)足幀尾設定要求,表明該幀接收完畢,否則表示接收出錯,拋棄該幀。圖3即為接收幀狀態(tài)轉移圖。

基于FPGA+ARM的HDLC協(xié)議控制器的設計與實(shí)現

在發(fā)送端,接收到ARM啟動(dòng)發(fā)送指令后,發(fā)送相應個(gè)數幀頭0x7E,然后將數據從發(fā)送FIFO中取出,進(jìn)行并串轉換,在根據設置的時(shí)鐘TCLK的下降沿,逐位發(fā)送數據到Tx線(xiàn)路上,并且在連續發(fā)送了5個(gè)比特“1”后,自動(dòng)插入比特“0”,發(fā)送結束后發(fā)送相應個(gè)數幀尾0x7E,結束該次發(fā)送。發(fā)送幀狀態(tài)轉移圖如圖4所示。

基于FPGA+ARM的HDLC協(xié)議控制器的設計與實(shí)現

2.3 HDLC數據處理單元

HDLC數據處理單元主要完成信息的幀的CRC校驗和打包解包任務(wù),其處理芯片采用意法半導體的STM32F103系列ARM芯片,該芯片具有開(kāi)發(fā)簡(jiǎn)單靈活,成本較低的優(yōu)勢。數據處理單元對數據的處理同樣包括接收和發(fā)送兩部分,以接收為例,具體工作流程圖如圖5所示。

當進(jìn)入接收中斷進(jìn)程時(shí),首先讀空接收FIFO,其中最后兩次讀出的數據為該幀信息的CRC校驗碼,利用該校驗碼進(jìn)行CRC校驗,校驗采用CRC-16-CCITT標準,生成r取值為16,其生成多項式為:C(x)=x16+x12+x2+1傳統CRC校驗是對消息逐位處理,對于A(yíng)RM來(lái)說(shuō),這樣效率是很低的。為了提高時(shí)間效率,通常的思想是以空間換時(shí)間??紤]到內循環(huán)只與當前的消息字節和crc_reg的低字節有關(guān),針對crc_reg低字節建立數表進(jìn)行查詢(xún)相應的CRC校驗碼,最終循環(huán)完畢如果沒(méi)有差錯發(fā)生則結果應為0。

發(fā)送單元與接收單元類(lèi)似,為其逆過(guò)程,首先將信息按約定幀格式打包,然后進(jìn)行CRC校驗,將校驗碼放入信息幀的最后2個(gè)字節,并將該信息幀通過(guò)數據總線(xiàn)存入FPGA的發(fā)送FIFO中,最后寫(xiě)入發(fā)送標志字,啟動(dòng)FPGA發(fā)送傳輸控制邏輯。

3 驗證及結果

為完成設計,首先采用ModelSim進(jìn)行仿真驗證,如圖6所示通過(guò)激勵文件生成ARM與FPCA的讀寫(xiě)時(shí)序,給出符合HDLC幀格式的一組數據寫(xiě)入FPGA發(fā)送FIFO,并啟動(dòng)發(fā)送,在激勵文件中將RX/RCLK與TX/TCLK短接,形成回環(huán),FPGA根據協(xié)議控制器接收到數據,并將數據存入接收FIFO,完成驗證。其邏輯時(shí)序滿(mǎn)足HDLC協(xié)議幀格式和通信時(shí)序要求。

基于FPGA+ARM的HDLC協(xié)議控制器的設計與實(shí)現

最后按照設計要求將設計好的HDLC通信協(xié)議控制器加載至FPGA與ARM上,并與串口通信卡BST23109進(jìn)行回環(huán)測試,該卡能夠實(shí)現串口同步模式,通信滿(mǎn)足HDLC協(xié)議要求。試驗結果表明在5 m通信距離內,波特率可達2 Mb/s,誤碼率為10-8。

4 結論

文中針對飛行模擬裝置中HDLC協(xié)議的應用需求開(kāi)展了HDLC協(xié)議控制器的設計,文中首先介紹了HDLC協(xié)議的相關(guān)內容,然后重點(diǎn)介紹了HDLC協(xié)議控制器軟硬件實(shí)現,詳細給出于HDLC協(xié)議控制器的沒(méi)計實(shí)現過(guò)程。通過(guò)仿真和實(shí)測試驗表明在5m通信距離內,波特率可達2Mb/s,誤碼率為10-8。在該飛行模擬裝置交付使用過(guò)程中,該控制器功能完整,能夠很好地滿(mǎn)足各項指標的技術(shù)要求。



評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>