• 
    

    
    

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

      ?

      基于增強型海明碼的CAN總線實時性研究

      2021-08-16 09:33:22李文祥周小軍管恒睿何加橋
      儀表技術(shù)與傳感器 2021年7期
      關(guān)鍵詞:校驗碼增強型誤碼

      李文祥,周小軍,,亢 超,管恒睿,何加橋

      (1.中國科學技術(shù)大學南京天文儀器研制中心,安徽合肥 230026;2.中科院南京天文儀器有限公司,江蘇南京 210042)

      0 引言

      控制器局域網(wǎng)絡(luò)(CAN)因其較強的抗干擾能力、穩(wěn)定性和靈活性被廣泛應用在工業(yè)自動化、船舶等領(lǐng)域[1-4]。CAN總線協(xié)議使用循環(huán)冗余校驗碼(CRC)作為每幀內(nèi)容的錯誤檢測方法,該方法在數(shù)據(jù)幀中占據(jù)固定位數(shù),無法根據(jù)數(shù)據(jù)段所占位數(shù)動態(tài)調(diào)整,限制了CAN總線的數(shù)據(jù)傳輸幀率的提高,致使CAN總線協(xié)議無法適用于一些對于實時性要求較高的領(lǐng)域。因此,進一步提高CAN總線的數(shù)據(jù)傳輸幀率具有十分重要的研究意義。

      近年來,國內(nèi)外有大批學者對CAN總線協(xié)議進行了相關(guān)研究。劉承智[5]等通過減少標準符,增加數(shù)據(jù)位等措施,提高了CAN總線的幀利用率,但卻占用了原有的仲裁場作為數(shù)據(jù)位,導致系統(tǒng)可用的ID較小;王瑞峰[6]等利用動態(tài)優(yōu)先級算法重新設(shè)計數(shù)據(jù)幀格式,降低了節(jié)點的最大時延,提高了CAN總線的實時性,但該方式應用不便且在靈活性上有所缺失;Juan[7]等提出一種模擬的CRC編碼器與解碼器作為CAN總線的錯誤檢測方法,該方法可以根據(jù)字節(jié)數(shù)動態(tài)調(diào)整CRC的位數(shù),但卻增加了數(shù)據(jù)幀位數(shù),降低了數(shù)據(jù)傳輸幀率。

      鑒于此,本文提出一種增強型海明碼來替代CAN總線協(xié)議中的循環(huán)冗余校驗碼(CRC)。增強型海明碼既保留了傳統(tǒng)海明碼自動糾錯的優(yōu)點,又新增狀態(tài)碼對信息碼和校驗碼進行分類校驗,提高了CAN總線的數(shù)據(jù)傳輸幀率。同時,相較于CRC,增強型海明碼占據(jù)位數(shù)更少,并且能夠根據(jù)字節(jié)數(shù)動態(tài)調(diào)整位數(shù),提高了CAN總線在多字節(jié)情況下的誤碼檢測能力。最后,本文基于CAN2.0A協(xié)議對CRC、傳統(tǒng)海明碼、增強型海明碼進行數(shù)據(jù)通信實驗,驗證了使用增強型海明碼的CAN總線協(xié)議的傳輸幀率和誤碼檢測能力。

      1 CAN總線實時性分析

      CAN總線協(xié)議的數(shù)據(jù)幀有2種格式:標準幀和擴展幀,這2種格式除了仲裁段的長度不相同其他都相同[8-9]。本文以標準幀為例,對CAN總線實時性進行分析。標準數(shù)據(jù)幀由7個不同的段組成:幀起始(SOF)、仲裁段、控制段、數(shù)據(jù)段、CRC段、ACK段和幀結(jié)尾(EOF),各段詳細分布及所占位數(shù)如表1所示。

      表1 CAN2.0A標準數(shù)據(jù)幀位數(shù)分配 bit

      從表1可以看出,CAN總線協(xié)議使用CRC校驗作為每幀內(nèi)容的錯誤檢測方法[10-11]。CRC校驗是一種基于誤碼重傳機制的數(shù)據(jù)校驗碼,被廣泛應用于各種通信網(wǎng)絡(luò)中,以提供廉價而有效的錯誤檢測能力。對于CAN總線的數(shù)據(jù)幀位,CRC段已經(jīng)占據(jù)了固定的15位,如果這15位可以調(diào)整為更少的位數(shù),或者可以根據(jù)輸入數(shù)據(jù)長度進行自動調(diào)整,則有助于提高整個CAN總線通信的傳輸幀率及誤碼檢測能力。CAN總線的傳輸幀率可以使用波特率除以幀位總數(shù)來求得,計算公式如下所示:

      (1)

      式中:FR為傳輸幀率,幀/s;BR為控制器的波特率,bit/s;FFB為每幀所占位數(shù),bit。

      海明碼使用較少的校驗碼來檢測多字節(jié)數(shù)據(jù)并自動糾正一位數(shù)據(jù)碼[12-13],對于數(shù)據(jù)幀中最大位數(shù)的64位數(shù)據(jù)段也僅需要7位校驗碼,從而可以有效的提高CAN通信的傳輸幀率和對多字節(jié)數(shù)據(jù)的誤碼檢測能力。

      2 增強型海明碼計算原理

      本文基于傳統(tǒng)海明碼提出一種增強型海明碼。與傳統(tǒng)的海明碼相比,增強型海明碼新增狀態(tài)碼對校驗碼和信息碼進行預先分類校驗,從而提高了數(shù)據(jù)的傳輸速率。增強型海明碼的計算原理如下。

      首先,需要根據(jù)信息碼求得所需校驗碼位數(shù)。在海明碼中,校驗碼被添加到信息碼中組成新的N位碼字,按照1到N的序列排列,并滿足如下關(guān)系:

      N=d+p≤2p-1

      (2)

      式中:d為信息碼;p為校驗碼。

      由式(2)可以計算出不同位數(shù)的信息碼與所需校驗碼位數(shù)的關(guān)系,具體的對應關(guān)系如表2所示。

      表2 不同位數(shù)的信息碼與所需校驗碼位數(shù)的關(guān)系 bit

      求解出所需校驗碼位數(shù)后,還需要確定校驗碼的位置以及取值(本文均以8位數(shù)據(jù)10011110為例)。校驗碼的位置遵循一定的規(guī)律,必須安插在2n位,即第1、2、4、8位[14]。然后需要確定各個校驗碼的取值,每個校驗碼的取值都代表了碼字中對應數(shù)據(jù)位的奇偶性,總的原則是從第i位校驗碼所在的當前位開始,連續(xù)校驗n(n為第i位校驗碼所在位數(shù))位后再隔n位繼續(xù)校驗,以此類推。校驗碼的求解可以由式(3)~式(6)得出,默認采用偶校驗。由式(3)~式(6)可以求得校驗碼p1p2p3p4=0011,則新的碼字為001100111110。

      p1=d1?d2?d4?d5?d7

      (3)

      p2=d1?d3?d4?d6?d7

      (4)

      p3=d2?d3?d4?d8

      (5)

      p4=d5?d6?7?d8

      (6)

      新增校驗碼P和校驗碼D,校驗碼P、D可以通過新增式(7)、式(8)計算得到,即P=0,D=1。

      P=p1?p2?p3?p4

      (7)

      D=d1?d2?d3?d4?d5?d6?d7?d8

      (8)

      再新增狀態(tài)碼SP、SD對p1p2p3p4和d1~d8進行校驗,狀態(tài)碼SP、SD可以通過新增式(9)、式(10)計算得到,即SP=0,SD=0。

      SP=P?p1?p2?p3?p4

      (9)

      SD=D?d1?d2?d3?d4?d5?d6?d7?d8

      (10)

      最后,將校驗碼與信息碼進行分組處理,分組情況見式(11)~式(14)。由于采用偶校驗,若碼字傳輸過程中沒有出現(xiàn)錯誤,則各狀態(tài)碼的校驗結(jié)果應該為0,即S4S3S2S1=0000;否則,對應的狀態(tài)碼會變?yōu)?[15]。通過分析式(11)~式(14)可以得到位數(shù)和狀態(tài)碼之間的對應關(guān)系,具體的對應關(guān)系見表3。

      S1=p1?d1?d2?d4?d5?d7

      (11)

      S2=p2?d1?d3?d4?d6?d7

      (12)

      S3=p3?d2?d3?d4?d8

      (13)

      S4=p4?d5?d6?d7?d8

      (14)

      表3 位數(shù)與狀態(tài)碼的對應關(guān)系

      表3中,▲表示校驗碼所在位只是由對應的校驗碼進行校驗;√表示所在位至少由2個校驗碼進行校驗。此時,對于接收到的碼字分3種情況處理。

      (1)單個信息碼出錯。例如:發(fā)送的碼字為001100111110,接收到的碼字為001100011110,即第7位d4出錯。

      則Sp=0,p1p2p3p4=0011;SD=1,S4S3S2S1=0111(即十進制7),表示校驗碼無誤,信息碼出錯,且可知是第7位d4出錯,然后對其取反糾正。

      (2)單個校驗碼出錯。 例如:發(fā)送的碼字為001100111110,接收的碼字為011100111110,即第2位p2出錯。

      則SP=1,p1p2p3p4=0111;SD=0,S4S3S2S1=0010(即十進制2),表示校驗碼出錯,信息碼無誤。因此可不用檢測或者糾正校驗碼,直接提取信息碼并接收。

      (3)單個校驗碼和單個信息碼同時出錯。例如:發(fā)送的碼字為001100111110,接收的碼字為011100011110,即第2位p2和第7位d4出錯。

      則SP=1,p1p2p3p4=0111;SD=1,S4S3S2S1=0101(即十進制5),出現(xiàn)定位誤碼出錯的情況。結(jié)合狀態(tài)碼SP和SD可知,至少有2個位出現(xiàn)錯誤,無法實現(xiàn)數(shù)據(jù)糾正,可直接重傳碼字。而傳統(tǒng)海明碼在此情況下只會根據(jù)狀態(tài)碼S4S3S2S1=0101,將正確的信息碼改錯,造成數(shù)據(jù)糾正錯誤。

      由上述分析可知,本文提出的增強型海明碼相比于傳統(tǒng)海明碼有如下幾個特點:增強型海明碼仍保留傳統(tǒng)海明碼的優(yōu)點,可對單個錯誤進行檢測并糾正;在只有校驗碼出錯的情況下,可直接提取信息碼,提高了數(shù)據(jù)傳輸速率;對于特定情況下的多位錯誤,可避免校正出錯的情況,提高對誤碼的檢測能力。

      3 實驗結(jié)果

      3.1 發(fā)送端編碼

      對發(fā)送端編碼進行算法分析,根據(jù)增強型海明碼的計算原理可知,首先通過式(2)根據(jù)所要發(fā)送的字節(jié)數(shù)計算出所需校驗碼的個數(shù),然后按照上述插入原則將校驗碼安插到2n處,再通過式(3)~式(6)計算出校驗碼的取值,最后將計算出的校驗碼放置在CAN總線協(xié)議中,替換掉CRC。具體算法流程圖如圖1所示。

      圖1 發(fā)送端編碼流程圖

      3.2 接收端解碼

      接收端的算法分為2個部分:解碼和糾錯。接收端在接收到碼字后,在特定位置獲取所有校驗碼,然后根據(jù)式(9)、式(10)和式(11)~式(14)求解出SP、SD、S3、S2、S1的值,然后再分類進行處理。具體算法流程圖如圖2所示。

      圖2 接收端解碼糾錯流程圖

      3.3 性能測試

      在兩塊STM32F103ZET6微處理器之間進行數(shù)據(jù)傳輸實驗,分別使用CRC校驗、傳統(tǒng)海明碼以及增強型海明碼的CAN2.0A協(xié)議來測試數(shù)據(jù)傳輸幀率。其中一塊STM32F103ZET6開發(fā)板作為主機發(fā)送數(shù)據(jù),另一塊開發(fā)板作為從機接收數(shù)據(jù),并將接收到的數(shù)據(jù)回送給主機。同時,主機將兩者通信結(jié)果通過串口實時發(fā)送至計算機并進行顯示,CAN2.0A協(xié)議通信實驗設(shè)備如圖3所示。

      圖3 CAN2.0A通信實驗實物圖

      在125 kbps的波特率下,分別測試了CRC校驗、傳統(tǒng)海明碼以及增強型海明碼對于8位到64位數(shù)據(jù)段的傳輸幀率,實驗結(jié)果見表4。由表4可知,使用傳統(tǒng)海明碼作為CAN總線的數(shù)據(jù)檢測方法,可有效提高CAN總線的數(shù)據(jù)傳輸幀率。相較于CRC,其傳輸幀率平均提高13.65%;此外,由于增強型海明碼的預先分類校驗機制,進一步提高了CAN總線的傳輸幀率,其傳輸幀率相較于傳統(tǒng)海明碼平均提升8.76%左右,相較于CRC校驗平均提升23.58%。

      表4 CRC、傳統(tǒng)海明碼、增強型海明碼傳輸幀率

      此外,為了驗證使用增強型海明碼作為錯誤檢測方法的CAN總線協(xié)議的誤碼檢測能力,在發(fā)送端對組成的新碼字進行更改,在新碼字中隨機改變一位或多位信息碼、校驗碼。然后在8位到64位數(shù)據(jù)段的情況下,分別對CRC、傳統(tǒng)海明碼以及增強型海明碼的誤碼檢測能力進行測試,測試結(jié)果如圖4所示。分析圖4可知,在8位到64位數(shù)據(jù)段的范圍內(nèi),增強型海明碼的誤碼檢測能力普遍要高于傳統(tǒng)海明碼,整體的誤碼檢測能力平均提高了4.63%。相較于CRC校驗,當數(shù)據(jù)段的字節(jié)數(shù)小于6個字節(jié)時,CRC校驗的誤碼檢測能力高于傳統(tǒng)海明碼和增強型海明碼,但當數(shù)據(jù)段超過6個字節(jié)后,傳統(tǒng)海明碼和增強型海明碼的誤碼檢測能力高于CRC校驗。其中,在6至8個字節(jié)情況下,傳統(tǒng)海明碼的誤碼檢測能力比CRC平均高出3.93%;增強型海明碼的誤碼檢測能力比CRC平均高出8.83%。在多字節(jié)數(shù)據(jù)傳輸時造成如此大的差距,主要是因為15位的CRC只能有效校驗2個字節(jié)數(shù)據(jù),對于超過2個字節(jié)的數(shù)據(jù)則無法做到完全校驗。

      圖4 CRC、傳統(tǒng)海明碼和增強型海明碼誤碼檢測能力對比

      4 結(jié)束語

      為了進一步提升CAN總線協(xié)議的實時性,本文提出一種新型校驗方法即增強型海明碼,并將其應用于CAN總線技術(shù)中。實驗結(jié)果表明,增強型海明碼相較于CRC校驗能夠有效提高數(shù)據(jù)傳輸幀率,在6~8 Byte的傳輸情況下,增強型海明碼的誤碼檢測能力也要優(yōu)于CRC校驗。但增強型海明碼也有其局限性,由于海明碼的內(nèi)部算法機制,增強型海明碼只能檢測和糾正1位錯誤,無法檢測和糾正任意情況下的多位錯誤。因此,基于增強型海明碼的CAN總線協(xié)議可適用于實時性要求高、多字節(jié)傳輸且擾動少的工業(yè)領(lǐng)域。

      猜你喜歡
      校驗碼增強型誤碼
      “東方紅”四號增強型平臺
      ZPW-2000A電碼化軌道電路誤碼問題分析及解決方案
      增強型MSTP設(shè)備在高速公路中的應用
      一種基于CAN總線的誤碼測試方法
      電子制作(2018年11期)2018-08-04 03:25:58
      基于多FPGA的增強型SPI通信研究
      電子測試(2018年4期)2018-05-09 07:28:13
      基于Excel實現(xiàn)書號校驗碼的驗證
      多支路兩跳PF協(xié)作系統(tǒng)的誤碼性能
      電信科學(2016年9期)2016-06-15 20:27:30
      基于FPGA的循環(huán)冗余校驗碼設(shè)計
      電子世界(2015年14期)2015-11-07 05:32:29
      身份證號碼中的數(shù)學
      美國LWRC公司M6 IC增強型卡賓槍
      輕兵器(2015年17期)2015-09-10 07:22:44
      常熟市| 晋宁县| 牙克石市| 贵港市| 大渡口区| 贵定县| 长汀县| 渭源县| 中卫市| 青冈县| 神木县| 宁国市| 成都市| 阳曲县| 仙游县| 淄博市| 八宿县| 沁水县| 南通市| 曲阜市| 台东县| 衡水市| 宝应县| 合肥市| 固镇县| 石狮市| 德令哈市| 东光县| 青铜峡市| 宾川县| 观塘区| 左云县| 三原县| 囊谦县| 时尚| 北安市| 扶沟县| 崇仁县| 铁岭市| 千阳县| 汨罗市|