• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      淺析差錯控制技術(shù)在串行通信協(xié)議中的應(yīng)用

      2015-10-21 17:24:41康冰趙琳衛(wèi)瑞張蔚鄭洋
      科技與企業(yè) 2015年24期
      關(guān)鍵詞:校驗(yàn)碼接收端差錯

      康冰 趙琳 衛(wèi)瑞 張蔚 鄭洋

      1、前言

      在自動化控制系統(tǒng)(如單片機(jī)和DSP等嵌入式系統(tǒng))中,串行通信是實(shí)現(xiàn)兩端設(shè)備數(shù)據(jù)交換的一種非常重要且普遍使用的通信方式。串行通信在數(shù)據(jù)量要求不是特別高的情況下,因其具有硬件設(shè)備簡單、成本低廉、成熟度高和編碼復(fù)雜程度低等優(yōu)點(diǎn),為過去和現(xiàn)在的自動化控制系統(tǒng)作出了巨大的貢獻(xiàn),在未來一段時期仍將發(fā)揮不可低估的作用。

      串行通信中,由于實(shí)際信道的傳輸特性不盡理想以及噪聲干擾,使得通信接收端易產(chǎn)生誤碼。為了保證通信可靠,實(shí)現(xiàn)兩端設(shè)備數(shù)據(jù)正確交換,通信協(xié)議中需要采取差錯控制技術(shù),實(shí)現(xiàn)差錯檢測和糾正,改善通信系統(tǒng)的傳輸可靠性。本文介紹了差錯控制技術(shù)在串行通訊協(xié)議中的應(yīng)用。

      2、差錯控制概述

      2.1差錯控制

      差錯就是在通信接收端收到的數(shù)據(jù)與發(fā)送端實(shí)際發(fā)出的數(shù)據(jù)出現(xiàn)不一致的現(xiàn)象。差錯出現(xiàn)的原因有多種,如信號在物理信道中傳輸時,線路本身電器特性造成的隨機(jī)噪聲、信號幅度的衰減、頻率和相位的畸變、電器信號在線路上產(chǎn)生反射造成的回音效應(yīng)、相鄰線路間的串?dāng)_等造成的信號失真;如大氣中的閃電、開關(guān)的跳火、外界強(qiáng)電流磁場的變化、電源的波動等各種外界因素造成的信號失真等。在串行數(shù)據(jù)通信中,信號失真將會使接收端收到的二進(jìn)制數(shù)位和發(fā)送端實(shí)際發(fā)送的二進(jìn)制數(shù)位不一致,從而造成由“0”變成“1”或由“1”變成“0”的差錯。物理層傳輸鏈路受到干擾帶來的數(shù)據(jù)差錯無法被物理層識別,因而在數(shù)據(jù)鏈路層通信協(xié)議中采取差錯控制技術(shù),實(shí)現(xiàn)差錯檢測、數(shù)據(jù)糾正是十分必要的。

      差錯控制是指在數(shù)據(jù)通信過程中能發(fā)現(xiàn)或糾正差錯,把差錯限制在盡可能小的允許范圍內(nèi)。差錯檢測是通過差錯控制編碼來實(shí)現(xiàn)的;而差錯糾正是通過差錯控制方法來實(shí)現(xiàn)的。

      2.2差錯控制編碼

      差錯控制編碼是用以實(shí)現(xiàn)差錯控制的編碼,可分為檢錯碼和糾錯碼。檢錯碼是指能自動發(fā)現(xiàn)差錯的編碼,如奇偶校驗(yàn)碼、循環(huán)冗余校驗(yàn)碼(CRC)等。糾錯碼是指不僅能發(fā)現(xiàn)差錯而且能自動糾正差錯的編碼,如正反碼、海明碼等。

      差錯控制編碼的原理是:發(fā)送方對準(zhǔn)備傳輸?shù)臄?shù)據(jù)進(jìn)行抗干擾編碼,即按照某種算法附加上一定的冗余位,構(gòu)成一個碼字后再發(fā)送。接收方收到數(shù)據(jù)后進(jìn)行校驗(yàn),即檢查信息位和附加的冗余位之間的關(guān)系,以檢查傳輸過程中是否有差錯發(fā)生。

      2.3差錯控制方法

      差錯控制方法是在數(shù)據(jù)通信中檢測差錯后對差錯進(jìn)行糾正,把差錯限制在所能允許范圍內(nèi)的技術(shù)和方法。差錯控制方法一般可分為反饋檢測、自動請求重發(fā)(ARQ)和前向糾錯(FEC)三類。

      反饋檢查方法的原理是:雙方在進(jìn)行數(shù)據(jù)傳輸時,接收方將接收到的數(shù)據(jù)重新發(fā)送回發(fā)送方,由發(fā)送方檢查是否與原始數(shù)據(jù)完全相符;如不相符,則發(fā)送方發(fā)送一個控制信息刪去出錯的數(shù)據(jù),并重新發(fā)送該數(shù)據(jù);如相符則發(fā)送下一個數(shù)據(jù)。

      自動請求重發(fā)(ARQ)的原理是:發(fā)送方將要發(fā)送的數(shù)據(jù)附加上一定的冗余檢錯碼一并發(fā)送。接收方則根據(jù)檢錯碼對數(shù)據(jù)進(jìn)行差錯檢測;如發(fā)現(xiàn)差錯,則接收方返回請求重發(fā)的信息,發(fā)送方在收到請求重發(fā)的信息后,重新傳送數(shù)據(jù);如沒有發(fā)現(xiàn)差錯,則發(fā)送下一個數(shù)據(jù)。ARQ方式使用檢錯碼檢查差錯,并通過重發(fā)機(jī)制糾正差錯。

      前向糾錯(FEC)的原理是:發(fā)送方將要發(fā)送的數(shù)據(jù)附加上一定的冗余糾錯碼一并發(fā)送,接收方則根據(jù)糾錯碼對數(shù)據(jù)進(jìn)行差錯檢測,如發(fā)現(xiàn)差錯,由接收方進(jìn)行糾正。FEC方式需要使用糾錯碼。

      3、差錯控制在串口通信協(xié)議中的應(yīng)用

      串口通信協(xié)議是串行通信的核心,它的主要功能是為應(yīng)用層提供可靠的數(shù)據(jù)信息。串口通信協(xié)議包括數(shù)據(jù)格式、同步方式、傳送速度、傳送步驟、檢糾錯方式以及控制字符定義等。為了能夠充分發(fā)揮串口通信的自身作用,制定合適的數(shù)據(jù)鏈路層協(xié)議就顯得尤為重要。串口通信數(shù)據(jù)鏈路層協(xié)議包括協(xié)議幀結(jié)構(gòu)、重發(fā)機(jī)制等內(nèi)容。

      3.1差錯控制編碼的應(yīng)用

      3.1.1協(xié)議幀結(jié)構(gòu)

      設(shè)備常用的串口通信數(shù)據(jù)鏈路層協(xié)議幀結(jié)構(gòu)一般包括幀頭、信息域、檢錯碼和幀尾。在實(shí)際應(yīng)用中,根據(jù)實(shí)際情況可以對幀結(jié)構(gòu)進(jìn)行刪減,但是刪減的前提是保證幀結(jié)構(gòu)的檢錯能力,把差錯限制在所能允許的范圍內(nèi)。

      3.1.2幀頭和幀尾

      如果接收端在接收中有一個錯誤,導(dǎo)致識別不到下一個數(shù)據(jù)幀的開始或結(jié)束,整個通信將會混亂,所以幀頭和幀尾的識別相當(dāng)重要。幀頭是識別幀起始的重要標(biāo)志。幀頭的長度越長識別的可靠性就越高,但是過長的幀頭會帶來整幀長度的增加,從而影響傳輸效率。因此幀頭一般控制在1-3個字節(jié)。幀尾是識別幀結(jié)束的重要標(biāo)志。如果定義了幀長度,那么可以通過幀長度和幀尾共同識別幀的結(jié)束,增加識別的可靠性。幀尾一般控制在1-2個字節(jié)。

      3.1.3信息域

      信息域包含的內(nèi)容豐富,長度是可變的。信息域包括地址段、控制段、數(shù)據(jù)段等多種信息。其中控制段的內(nèi)容還可細(xì)分為幀序號、幀長度、幀類型、通信控制命令和數(shù)據(jù)塊鏈接信息等等,它們可以根據(jù)實(shí)際需求刪減。地址段、控制段中的幀序號和幀長度等等信息都是識別差錯的重要依據(jù)。地址段用于識別發(fā)送端、接收端地址,如果不是多機(jī)通信,可以刪減。幀序號的設(shè)置主要目的是為了數(shù)據(jù)幀在傳輸過程中出錯時,進(jìn)行漏幀檢測。幀長度表示協(xié)議幀的字節(jié)數(shù),指示幀的結(jié)束位置。在非定長幀協(xié)議中,幀長度的定義是非常必要的。數(shù)據(jù)段是數(shù)據(jù)信息交互的部分。如果協(xié)議設(shè)計(jì)中數(shù)據(jù)段采用ASCII碼數(shù)據(jù)格式,幀頭幀尾、地址段、控制段等其他信息選用區(qū)別于數(shù)據(jù)段使用的ASCII碼,則在數(shù)據(jù)幀的檢測中可以大大提高識別的可靠性。ASCII碼數(shù)據(jù)格式的缺點(diǎn)是數(shù)據(jù)冗長、傳輸效率低,比較適用于數(shù)據(jù)量少且實(shí)時性要求不高的場合。

      3.1.4檢錯碼的應(yīng)用

      檢錯碼用于檢測通過物理層鏈路傳輸后數(shù)據(jù)可能出現(xiàn)的錯誤。比較常用的檢錯碼有:累加和、異或和、縱向冗余校驗(yàn)、循環(huán)冗余校驗(yàn)(CRC)等等。累加和(Check-Sum)校驗(yàn)算法:累加和校驗(yàn)碼的初始值為0,將需運(yùn)算的所有數(shù)據(jù)字節(jié)(8bit),與初始值相加模256,最后所得的余數(shù)即為累加和校驗(yàn)碼。異或(XOR)校驗(yàn)算法:異或和校驗(yàn)碼的初始值為0,將需運(yùn)算的所有數(shù)據(jù)字節(jié)(8bit),與初始值相異或,最后所得結(jié)果即為異或校驗(yàn)碼。縱向冗余(Longitudinal Redundancy Code,簡稱LRC)校驗(yàn)算法:縱向冗余校驗(yàn)碼的初始值為0,將需運(yùn)算的所有數(shù)據(jù)字節(jié)(8bit)相加,所得之和丟棄進(jìn)位,求補(bǔ)碼,所得結(jié)果即為縱向冗余校驗(yàn)碼。

      循環(huán)冗余(Cyclic Redundancy Check,簡稱CRC)校驗(yàn)算法:將需運(yùn)算的所有數(shù)據(jù)字節(jié)(8bit),按照約定的CRC碼生成規(guī)則,用16位CCITT生成多項(xiàng)式G(x)生成的余數(shù)即是CRC碼(n位)。目前較常使用的CRC位數(shù)(n位)有8、16、32,CRC位數(shù)越大,錯誤檢測能力越強(qiáng),不過運(yùn)算費(fèi)時。據(jù)理論統(tǒng)計(jì),使用16位CRC時,超過17個連續(xù)位的錯誤檢測率有99.9969%。累加和、異或和、縱向冗余3種檢錯碼算法簡單,對內(nèi)存要求小,但是檢錯碼的重碼率高,錯誤檢測率低;相對來說CRC校驗(yàn)碼是高效的。

      3.2差錯控制方法的應(yīng)用

      根據(jù)多年的實(shí)際工作總結(jié),串口通信數(shù)據(jù)鏈路層協(xié)議中可以通過以下三種方法實(shí)現(xiàn)重發(fā)機(jī)制:逐字節(jié)檢測重發(fā)、全數(shù)據(jù)檢測重發(fā)、時間控制重發(fā)。

      3.2.1逐字節(jié)檢測重發(fā)

      逐字節(jié)檢測重發(fā)機(jī)制屬于差錯控制方法中的反饋檢測方法。兩端數(shù)據(jù)傳輸過程中進(jìn)行逐字節(jié)握手,如果握手不成功則重新開始逐字節(jié)握手,直到確認(rèn)整幀握手成功。優(yōu)點(diǎn):糾錯能力強(qiáng),不依靠檢錯碼檢錯、隨時糾錯。缺點(diǎn):兩端數(shù)據(jù)逐字節(jié)握手,傳輸效率低。這種數(shù)據(jù)重發(fā)機(jī)制適用于對傳輸時間要求低,但對傳輸可靠性要求高的系統(tǒng)。在進(jìn)行軟件系統(tǒng)設(shè)計(jì)時,需重點(diǎn)考慮完成整幀發(fā)送和接收的最長時間是否有可能對系統(tǒng)時間或時序造成影響。

      3.2.2全數(shù)據(jù)檢測重發(fā)

      全數(shù)據(jù)檢測重發(fā)機(jī)制屬于差錯控制方法中的自動請求重發(fā)方法。發(fā)送端將數(shù)據(jù)包一次性發(fā)出,接收端根據(jù)幀頭幀尾、地址段、檢錯碼等特征字符判斷接收的數(shù)據(jù)包的完整性和正確性,如果不正確要求發(fā)送端重發(fā)。與逐字節(jié)檢測方式相比,全數(shù)據(jù)檢測方式握手頻率減少,大大提高了傳輸效率,只是檢錯和糾錯只能在一幀數(shù)據(jù)傳輸完畢之后。

      在進(jìn)行軟件系統(tǒng)設(shè)計(jì)時,如果選用這種數(shù)據(jù)重發(fā)機(jī)制,需考慮通信出現(xiàn)錯誤時發(fā)送方?jīng)Q定重發(fā)的條件、重發(fā)次數(shù)和重發(fā)延時時間,及對系統(tǒng)的影響。建議發(fā)送方的重發(fā)延時時間取T21的5~10倍。

      3.2.3時間控制重發(fā)

      時間控制重發(fā)機(jī)制屬于差錯控制方法中的前向糾錯方法的簡化。發(fā)送端按約定的頻率,不斷將數(shù)據(jù)幀發(fā)送到接收端;接收端根據(jù)幀頭幀尾、地址段、檢錯碼等特征字符判斷接收的數(shù)據(jù)包的完整性和正確性。由于沒有握手機(jī)制,如果檢測到差錯只能等待下一時刻的數(shù)據(jù)幀來完成糾錯;同樣由于沒有握手機(jī)制,數(shù)據(jù)傳輸具有較高的實(shí)時性,尤其在傳輸線路條件良好的前提下。

      在進(jìn)行軟件系統(tǒng)設(shè)計(jì)時,需根據(jù)數(shù)據(jù)傳輸波特率、數(shù)據(jù)幀長度、字格式計(jì)算數(shù)據(jù)傳輸時間,然后確定數(shù)據(jù)幀間隔時間。上述幾種不同的差錯控制方法各有其優(yōu)缺點(diǎn)和使用范圍。如果存在反饋信道,而且傳輸?shù)膶?shí)時性要求不高,那么ARQ方式是很好的選擇。串口通信數(shù)據(jù)鏈路層協(xié)議廣泛采用了ARQ方式的差錯控制方法:運(yùn)用檢錯方法和重發(fā)機(jī)制達(dá)到對差錯的檢測和糾正。

      4、結(jié)語

      文中介紹了一種適用于單片機(jī)系統(tǒng)的串行數(shù)據(jù)通信協(xié)議,協(xié)議將差錯控制方法與差錯控制編碼相結(jié)合,實(shí)現(xiàn)了數(shù)據(jù)差錯的有效控制。差錯控制一直是保障通信傳輸可靠性的重要手段,通過合理運(yùn)用差錯控制方法可以有效的提高數(shù)據(jù)通信的可靠性及通信質(zhì)量。

      (作者單位:北京航天發(fā)射技術(shù)研究所)

      猜你喜歡
      校驗(yàn)碼接收端差錯
      基于擾動觀察法的光通信接收端優(yōu)化策略
      直升機(jī)防差錯設(shè)計(jì)
      頂管接收端脫殼及混凝土澆筑關(guān)鍵技術(shù)
      一種設(shè)置在密閉結(jié)構(gòu)中的無線電能傳輸系統(tǒng)
      新能源科技(2021年6期)2021-04-02 22:43:34
      基于多接收線圈的無線電能傳輸系統(tǒng)優(yōu)化研究
      差錯是習(xí)題課的有效資源
      基于Excel實(shí)現(xiàn)書號校驗(yàn)碼的驗(yàn)證
      校對工作中常見差錯辨析
      新聞傳播(2016年17期)2016-07-19 10:12:05
      基于FPGA的循環(huán)冗余校驗(yàn)碼設(shè)計(jì)
      電子世界(2015年14期)2015-11-07 05:32:29
      身份證號碼中的數(shù)學(xué)
      永修县| 亳州市| 静宁县| 钟祥市| 虹口区| 谢通门县| 白城市| 山东| 安吉县| 定远县| 来安县| 嘉善县| 潢川县| 峡江县| 河间市| 斗六市| 凤阳县| 罗山县| 仲巴县| 楚雄市| 怀集县| 青龙| 河曲县| 姜堰市| 宁陕县| 凤山县| 泗洪县| 阳西县| 天津市| 临安市| 鸡西市| 佛山市| 天台县| 鹤山市| 南木林县| 泊头市| 杭州市| 宜丰县| 比如县| 广水市| 长子县|