• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    通信測(cè)試卡中HDLC協(xié)議控制器的設(shè)計(jì)與實(shí)現(xiàn)

    2012-07-26 11:04:12劉延飛楊鐵阡
    自動(dòng)化儀表 2012年2期
    關(guān)鍵詞:比特標(biāo)志控制器

    劉延飛 李 琪 楊鐵阡 倪 亮

    (第二炮兵工程大學(xué)專業(yè)基礎(chǔ)實(shí)驗(yàn)中心,陜西 西安 710025)

    0 引言

    在航空航天領(lǐng)域中,大型地面測(cè)試設(shè)備測(cè)試數(shù)據(jù)具有傳輸量大、實(shí)時(shí)性要求高的特點(diǎn)。為了解測(cè)試設(shè)備與上位機(jī)的通信狀況,需采用一種面向比特級(jí)的同步通信協(xié)議,實(shí)現(xiàn)數(shù)據(jù)傳輸過(guò)程的完全透明。高級(jí)數(shù)據(jù)鏈路控制(high level data link control,HDLC)協(xié)議具有上述優(yōu)點(diǎn),同時(shí),它能保證傳遞到下一層的數(shù)據(jù)在傳輸過(guò)程中能夠被準(zhǔn)確接收,且一旦接收端接收到數(shù)據(jù),就能立即傳輸下一幀數(shù)據(jù)[1]。

    HDLC的一般實(shí)現(xiàn)方法是采用專用集成電路(application specific integrated circuit,ASIC)器件和軟件編程等。采用ASIC器件設(shè)計(jì)比較簡(jiǎn)單,但靈活性較差;軟件編程方法靈活,但占用處理器資源多、執(zhí)行速度慢、實(shí)時(shí)性不易預(yù)測(cè)?,F(xiàn)場(chǎng)可編程門陣列(FPGA)采用硬件描述語(yǔ)言處理信號(hào),可以通過(guò)軟件反復(fù)編程使用,能夠兼顧速度和靈活性,還能并行處理多路信號(hào),便于實(shí)時(shí)預(yù)測(cè)和仿真,所以在FPGA中實(shí)現(xiàn)HDLC協(xié)議的功能是一種較為合適的選擇[2]。

    根據(jù)課題具體要求,發(fā)送端和接收端的數(shù)據(jù)內(nèi)容是固化的,只需檢測(cè)測(cè)試設(shè)備能否與上位機(jī)進(jìn)行正常通信,所以在數(shù)據(jù)傳輸過(guò)程中可以不加CRC校驗(yàn)[3],本文將介紹一種簡(jiǎn)化HDLC協(xié)議控制器的方法。

    1 HDLC協(xié)議簡(jiǎn)介

    HDLC協(xié)議是通信領(lǐng)域中應(yīng)用最廣泛的協(xié)議之一,其面向比特的高級(jí)數(shù)據(jù)鏈路控制規(guī)程,具有差錯(cuò)檢測(cè)功能強(qiáng)大、效率高和傳輸同步的特點(diǎn)[4]。在HDLC通信方式中,所有信息都是以幀的形式傳送的。HDLC幀格式如圖1所示。

    圖1 HDLC幀格式Fig.1 Frame format of HDLC protocol

    1.1 標(biāo)志字

    根據(jù)HDLC協(xié)議規(guī)定,所有信息傳輸必須以一個(gè)標(biāo)志字“01111110”開始,且以同一個(gè)標(biāo)志字結(jié)束。由開始標(biāo)志到結(jié)束標(biāo)志之間構(gòu)成一個(gè)完整的信息單位,稱為一幀。接收方可以通過(guò)搜索“01111110”來(lái)探知幀的開始和結(jié)束,從而建立幀同步。在幀與幀之間的空載期,可連續(xù)發(fā)送標(biāo)志字來(lái)作填充。

    1.2 “0”比特插入技術(shù)

    HDLC幀的信息長(zhǎng)度是可變的,可傳送除標(biāo)志字以外的任意二進(jìn)制信息。為確保標(biāo)志字獨(dú)一無(wú)二,發(fā)送方在發(fā)送信息時(shí)采用“0”比特插入技術(shù),即發(fā)送方在發(fā)送除標(biāo)志字符外的所有信息時(shí)(包括校驗(yàn)位),只要遇到連續(xù)的5個(gè)“1”,就自動(dòng)插入一個(gè)“0”;反之,接收方在接收數(shù)據(jù)時(shí),只要遇到連續(xù)的5個(gè)“1”,就自動(dòng)將其后的“0”刪掉?!?”比特插入和刪除技術(shù)使得HDLC具有良好的傳輸透明性,可傳輸任何比特代碼。

    1.3 地址段及控制段

    地址字段為8位,也可采用8的倍數(shù)進(jìn)行擴(kuò)展,用于標(biāo)志接收該幀的棧地址??刂谱侄螢?位或16位,發(fā)送方的控制字段用來(lái)表示命令和響應(yīng)的類別與功能。

    2 HDLC協(xié)議控制器的FPGA實(shí)現(xiàn)

    基于FPGA實(shí)現(xiàn)的HDLC協(xié)議控制器主要包括發(fā)送和接收兩個(gè)模塊[5]。

    2.1 發(fā)送模塊的設(shè)計(jì)

    發(fā)送端先將待發(fā)送的并行數(shù)據(jù)進(jìn)行并串轉(zhuǎn)換,然后由系統(tǒng)自動(dòng)完成編碼、“0”比特和標(biāo)志字“7E”插入,最后將處理后的數(shù)據(jù)序列傳遞到發(fā)送端口。根據(jù)前文所述,由于每一幀的數(shù)據(jù)內(nèi)容固定,因此,可將CRC結(jié)果視為固定值“E2、99”,直接將其添加到發(fā)送端數(shù)據(jù)序列即可。

    2.1.1 發(fā)送模塊工作原理

    設(shè)計(jì)的代碼主要由以下進(jìn)程組成:① HDLC數(shù)據(jù)發(fā)送狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移進(jìn)程,完成HDLC數(shù)據(jù)發(fā)送狀態(tài)機(jī)各個(gè)狀態(tài)對(duì)應(yīng)的信號(hào)輸出,包括標(biāo)志信號(hào)和控制信號(hào);②移位寄存器進(jìn)程,通過(guò)移位實(shí)現(xiàn)數(shù)據(jù)并串轉(zhuǎn)換,并按添零要求對(duì)串行數(shù)據(jù)序列做相應(yīng)處理;③添零進(jìn)程,當(dāng)遇到連續(xù)的5個(gè)“1”時(shí),自動(dòng)進(jìn)行添零處理,最后產(chǎn)生正確的、經(jīng)過(guò)添零處理的HDLC數(shù)據(jù)序列。其部分源代碼如下[6]。

    在空閑狀態(tài),發(fā)送HDLC的幀頭(7E);在地址發(fā)送狀態(tài),發(fā)送地址字節(jié)內(nèi)容(5A 4A);然后轉(zhuǎn)入控制字節(jié)發(fā)送狀態(tài),發(fā)送控制字節(jié)(54);進(jìn)入HDLC幀尾發(fā)送狀態(tài),將幀尾(7E)發(fā)送出去,發(fā)送完幀尾,轉(zhuǎn)入到空閑狀態(tài),等待新數(shù)據(jù)的到來(lái)。

    2.1.2 試驗(yàn)結(jié)果和分析

    發(fā)送模塊的試驗(yàn)仿真結(jié)果如圖2所示。

    圖2 發(fā)送模塊仿真結(jié)果Fig.2 Simulation result for transmitting module

    當(dāng)發(fā)送數(shù)據(jù)幀頭“01111110”后,起始標(biāo)志位start_flag置高,開始發(fā)送接收地址和控制字等數(shù)據(jù)內(nèi)容。數(shù)據(jù)并串轉(zhuǎn)換計(jì)數(shù)器counter1和添零計(jì)數(shù)器zero_counter開始計(jì)數(shù),發(fā)送的數(shù)據(jù)依次存入移位寄存器shift_reg。數(shù)據(jù)發(fā)送信號(hào)txd,按照預(yù)定格式向串行數(shù)據(jù)序列hdlc_tx依次賦值,實(shí)現(xiàn)數(shù)據(jù)的正確發(fā)送。

    2.2 接收模塊的設(shè)計(jì)

    接收端首先接收同步串行數(shù)據(jù),然后由系統(tǒng)自動(dòng)完成標(biāo)志字的檢測(cè)、去“0”,再將同步串行數(shù)據(jù)轉(zhuǎn)換成1位并行方式輸出。整個(gè)系統(tǒng)收發(fā)端使用同一個(gè)全局時(shí)鐘。下面分別對(duì)接收模塊各個(gè)部分進(jìn)行介紹。

    2.2.1 幀頭檢測(cè)模塊

    本進(jìn)程用來(lái)檢測(cè)幀頭“7E”是否出現(xiàn),如果檢測(cè)到“7E”,則表明接收到一個(gè)完整的數(shù)據(jù);反之,則繼續(xù)接收數(shù)據(jù)[7]。

    2.2.2 去“0”模塊

    本進(jìn)程用來(lái)檢測(cè)接收的數(shù)據(jù)是否包含插入的“0”比特,當(dāng)檢測(cè)到插入的“0”比特后,對(duì)其進(jìn)行刪除,并進(jìn)行數(shù)據(jù)串并轉(zhuǎn)換。

    2.2.3 接收控制模塊

    本進(jìn)程用于接收過(guò)程的控制,主要包括通過(guò)檢測(cè)是否出現(xiàn)幀頭來(lái)判斷接收的數(shù)據(jù)是否為有效幀,以及產(chǎn)生接收使能信號(hào)。其部分VHDL代碼如下。

    2.2.4 試驗(yàn)結(jié)果和分析

    整個(gè)接收模塊的試驗(yàn)仿真結(jié)果如圖3所示。

    圖3 接收模塊仿真結(jié)果Fig.3 Simulation result for receiving module

    當(dāng)接收的串行數(shù)據(jù)出現(xiàn)幀頭“01111110”時(shí),幀有效信號(hào)被拉高,開始進(jìn)行串并轉(zhuǎn)換,并將接收數(shù)據(jù)放入到接收緩存中,實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)。

    3 結(jié)束語(yǔ)

    針對(duì)某型地面測(cè)試設(shè)備通信測(cè)試卡的技術(shù)要求,文中提出了一種利用FPGA簡(jiǎn)化HDLC協(xié)議控制器的設(shè)計(jì)方案,并利用Altera公司的EP2C70F67218芯片來(lái)實(shí)現(xiàn)。

    與傳統(tǒng)的HDLC協(xié)議的實(shí)現(xiàn)方法相比,該控制器更加簡(jiǎn)單可靠;且由于數(shù)據(jù)幀傳輸過(guò)程中沒(méi)有采用標(biāo)準(zhǔn)的CRC校驗(yàn),使得數(shù)據(jù)傳輸速度更快。軟件仿真和代碼調(diào)試證明,本控制器能夠應(yīng)用于通信測(cè)試卡的測(cè)試,具有一定推廣價(jià)值。

    [1]黃國(guó)強(qiáng).HDLC協(xié)議的FPGA實(shí)現(xiàn)及其在通信系統(tǒng)的應(yīng)用[J].五邑大學(xué)學(xué)報(bào),2008(22):40-44.

    [2]徐濤.基于PCI的HDLC協(xié)議處理器的設(shè)計(jì)與優(yōu)化[D].南京:東南大學(xué),2005.

    [3]劉巖俊,閆海霞.HDLC通訊協(xié)議中CRC的應(yīng)用[J].電子測(cè)量技術(shù),2010(3):21-23.

    [4]李曉娟.基于FPGA的HDLC設(shè)計(jì)實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2007(6):35-37.

    [5]應(yīng)三叢.基于FPGA的HDLC協(xié)議控制器[J].四川大學(xué)學(xué)報(bào):自然科學(xué)版,2008(40):116-120.

    [6]潘松,王國(guó)棟.VHDL實(shí)用教程[M].成都:電子科技大學(xué)出版社,1999:158-169.

    [7]徐欣,于紅旗,易凡,等.基于FPGA的嵌入式系統(tǒng)設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2005:79-102.

    猜你喜歡
    比特標(biāo)志控制器
    多功能標(biāo)志桿的使用
    認(rèn)標(biāo)志
    啟蒙(3-7歲)(2019年5期)2019-06-27 07:24:50
    首都的標(biāo)志是只熊
    比特幣還能投資嗎
    海峽姐妹(2017年10期)2017-12-19 12:26:20
    比特幣分裂
    比特幣一年漲135%重回5530元
    銀行家(2017年1期)2017-02-15 20:27:20
    醫(yī)改進(jìn)入新階段的重要標(biāo)志
    蘋果封殺比特幣應(yīng)用另有隱情?
    模糊PID控制器設(shè)計(jì)及MATLAB仿真
    MOXA RTU控制器ioPAC 5542系列
    涞源县| 历史| 元谋县| 历史| 九龙县| 乌海市| 襄城县| 阿尔山市| 峨眉山市| 珲春市| 宜宾市| 巴林左旗| 犍为县| 孝感市| 石柱| 兰州市| 乌恰县| 邛崃市| 桓仁| 和龙市| 开阳县| 平乡县| 宁夏| 梁山县| 汉中市| 黄龙县| 曲周县| 措勤县| 崇文区| 老河口市| 芦山县| 天镇县| 盐边县| 安徽省| 阳曲县| 嘉定区| 秭归县| 精河县| 肇州县| 治多县| 弥勒县|