亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于增強(qiáng)型海明碼的CAN總線實(shí)時(shí)性研究

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

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

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

        0 引言

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

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

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

        1 CAN總線實(shí)時(shí)性分析

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

        表1 CAN2.0A標(biāo)準(zhǔn)數(shù)據(jù)幀位數(shù)分配 bit

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

        (1)

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

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

        2 增強(qiáng)型海明碼計(jì)算原理

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

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

        N=d+p≤2p-1

        (2)

        式中:d為信息碼;p為校驗(yàn)碼。

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

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

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

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

        P=p1?p2?p3?p4

        (7)

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

        (8)

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

        SP=P?p1?p2?p3?p4

        (9)

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

        (10)

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

        表3中,▲表示校驗(yàn)碼所在位只是由對(duì)應(yīng)的校驗(yàn)碼進(jìn)行校驗(yàn);√表示所在位至少由2個(gè)校驗(yàn)碼進(jìn)行校驗(yàn)。此時(shí),對(duì)于接收到的碼字分3種情況處理。

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

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

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

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

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

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

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

        3 實(shí)驗(yàn)結(jié)果

        3.1 發(fā)送端編碼

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

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

        3.2 接收端解碼

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

        圖2 接收端解碼糾錯(cuò)流程圖

        3.3 性能測(cè)試

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

        圖3 CAN2.0A通信實(shí)驗(yàn)實(shí)物圖

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

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

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

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

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

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

        猜你喜歡
        校驗(yàn)碼增強(qiáng)型誤碼
        “東方紅”四號(hào)增強(qiáng)型平臺(tái)
        ZPW-2000A電碼化軌道電路誤碼問(wèn)題分析及解決方案
        增強(qiáng)型MSTP設(shè)備在高速公路中的應(yīng)用
        一種基于CAN總線的誤碼測(cè)試方法
        電子制作(2018年11期)2018-08-04 03:25:58
        基于多FPGA的增強(qiáng)型SPI通信研究
        基于Excel實(shí)現(xiàn)書號(hào)校驗(yàn)碼的驗(yàn)證
        多支路兩跳PF協(xié)作系統(tǒng)的誤碼性能
        基于FPGA的循環(huán)冗余校驗(yàn)碼設(shè)計(jì)
        電子世界(2015年14期)2015-11-07 05:32:29
        身份證號(hào)碼中的數(shù)學(xué)
        美國(guó)LWRC公司M6 IC增強(qiáng)型卡賓槍
        輕兵器(2015年17期)2015-09-10 07:22:44
        国产国语亲子伦亲子| 一区二区三区四区四色av| 国产一区二区熟女精品免费| 激情综合五月| 无码人妻一区二区三区在线视频| 国产在线美女| 精品国产乱码一区二区三区| 国产剧情一区二区三区在线 | 国产精品 高清 尿 小便 嘘嘘| 国产午夜激无码AV毛片不卡| 一个人午夜观看在线中文字幕| 日韩国产人妻一区二区三区| 嫖妓丰满肥熟妇在线精品| 国产在线精品福利大全| 一区二区三区在线日本视频| 无码国产精品一区二区免费式芒果| 精产国品一二三产区m553麻豆 | 网红极品女神精品视频在线| 久久精品亚洲熟女av麻豆| 777国产偷窥盗摄精品品在线| 国产无码夜夜一区二区| 日本精品国产1区2区3区| 精品人妻一区二区三区在线观看| 欧美a级毛欧美1级a大片免费播放| 日韩中文无线码在线视频观看| 少妇人妻偷人中文字幕| 国产高清乱码又大又圆| 欧美午夜精品一区二区三区电影 | 在线观看亚洲第一黄片| 18女下面流水不遮图| 国产成人亚洲精品77| 蜜桃视频一区视频二区| 狂野欧美性猛xxxx乱大交| 伊伊人成亚洲综合人网7777 | 99视频全部免费精品全部四虎| 大红酸枝极品老料颜色| 亚洲乱码一区二区三区在线观看| 久久久精品人妻一区二区三区四| 无码一区二区三区在| 国产黄久色一区2区三区| 黑人上司粗大拔不出来电影|