<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種基于FPGA+ARM架構(gòu)HDLC協(xié)議控制器設(shè)計(jì)

          一種基于FPGA+ARM架構(gòu)HDLC協(xié)議控制器設(shè)計(jì)

          作者: 時(shí)間:2014-07-22 來源:網(wǎng)絡(luò) 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/255887.htm

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

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

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

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

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

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

            2 HDLC控制器設(shè)計(jì)

            2.1 HDLC協(xié)議處理電路設(shè)計(jì)

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

            

           

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

            2.2 HDLC傳輸控制單元

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

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

            

           

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

          fpga相關(guān)文章:fpga是什么


          塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理

          上一頁 1 2 下一頁

          關(guān)鍵詞: FPGA ARM HDLC

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();