免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

關(guān)于CAN報(bào)文中ACK應(yīng)答錯(cuò)誤的檢測原理

 yeshuheng 2022-11-04 發(fā)布于浙江

CAN協(xié)議里對ACK(應(yīng)答場)有如下的描述:

應(yīng)答場長度為2個(gè)位,包含應(yīng)答間隙(ACK SLOT)和應(yīng)答界定符(ACK DELIMITER)。在應(yīng)答場里,發(fā)送站發(fā)送兩個(gè)“隱性”位。當(dāng)接收器正確地接收到有效的報(bào)文,接收器就會(huì)在應(yīng)答間隙(ACK SLOT)期間(發(fā)送ACK信號(hào))向發(fā)送器發(fā)送一“顯性”的位以示應(yīng)答。

應(yīng)答間隙:所有接收到匹配CRC序列(CRC SEQUENCE)的站會(huì)在應(yīng)答間隙(ACK SLOT)期間用一“顯性”的位寫入發(fā)送器的“隱性”位來作出回答。

ACK界定符:ACK界定符是ACK場的第二個(gè)位,并且是一個(gè)必須為“隱性”的位。因此,應(yīng)答間隙(ACK SLOT)被兩個(gè)“隱性”的位所包圍,也就是CRC界定符(CRC DELIMITER)和ACK界定符(ACK DELIMITER)。

此主題相關(guān)圖片如下:

圖片

在CAN協(xié)議的錯(cuò)誤檢測部分有這樣的描述:

位錯(cuò)誤:站單元在發(fā)送位的同時(shí)也對總線進(jìn)行監(jiān)視。如果所發(fā)送的位值與所監(jiān)視的位值不相符合,則在此位時(shí)間里檢測到一個(gè)位錯(cuò)誤(BIT ERROR)。但是在仲裁場(ARBITRATION FIELD)的填充位流期間或ACK間隙(ACK SLOT)發(fā)送一“隱性”位的情況是例外的——此時(shí),當(dāng)監(jiān)視到一“顯性”位時(shí),不會(huì)發(fā)出位錯(cuò)誤(BIT ERROR)。

應(yīng)答錯(cuò)誤:只要在ACK間隙(ACK SLOT)期間所監(jiān)視的位不為“顯性”,則發(fā)送器會(huì)檢測到一個(gè)應(yīng)答錯(cuò)誤(ACKNOWLEDGMENT ERROR)。

從協(xié)議所描述的內(nèi)容來看,我們不難得出一個(gè)結(jié)論:CAN是一種基于廣播的通訊方式,為了保證總線上的每一個(gè)節(jié)點(diǎn)(處于normal mode)都能正確的接收到報(bào)文,報(bào)文的發(fā)送者要求每一個(gè)接收節(jié)點(diǎn)在報(bào)文發(fā)送結(jié)束前,也就是ACK slot的時(shí)間內(nèi),作出應(yīng)答,即要求接收的節(jié)點(diǎn)都在這個(gè)時(shí)間發(fā)送一個(gè)“顯性”位。發(fā)送者在發(fā)送的同時(shí),會(huì)監(jiān)視總線上的數(shù)據(jù),如果與發(fā)送的婁據(jù)不一致,則表示發(fā)送失敗或自己失去仲裁,立即停止發(fā)送或轉(zhuǎn)入接收模式。如果有一個(gè)節(jié)點(diǎn)在ACK SLOT的時(shí)間內(nèi)發(fā)送“顯性”位,則發(fā)送者認(rèn)為此次發(fā)送報(bào)文成功;如果發(fā)送者檢測到ACK SLOT為隱性位,則表示沒有節(jié)點(diǎn)填充ACK SLOT,則發(fā)送者會(huì)檢測到這個(gè)隱性位而知道發(fā)送失敗,此條報(bào)文需要重發(fā)。所以,當(dāng)總線上只有一個(gè)節(jié)點(diǎn)的時(shí)候,或是只有一個(gè)節(jié)點(diǎn)可以收發(fā)數(shù)據(jù)的時(shí)候,這個(gè)節(jié)點(diǎn)是發(fā)不出去數(shù)據(jù)的,因?yàn)樗l(fā)出的數(shù)據(jù)幀中的ACK SLOT沒有另外一個(gè)節(jié)點(diǎn)來填充,將永遠(yuǎn)是隱性位,這個(gè)節(jié)點(diǎn)會(huì)一直重發(fā)數(shù)據(jù)直到發(fā)送成功或發(fā)送被取消。

(注:一:總線上只有一個(gè)節(jié)點(diǎn)而且它向外發(fā)送了數(shù)據(jù)。它確實(shí)不會(huì)收到任何ACK,它會(huì)變成“error passive”但是它不會(huì)變成BUS off。why?請參考CANspecificaton 2.0-partB-Fault_Confinement--rule3--exception1二:其它檢測到CRC錯(cuò)誤的節(jié)點(diǎn)不會(huì)馬上發(fā)送錯(cuò)誤幀,而是在ACK delimiter之后才發(fā)送。請參考CAN specificaton 2.0-partB-Error_Signalling)

ACK SLOT只有一個(gè)BIT,而接下去的ACK delimiter始終為隱性(我們可認(rèn)為是1),當(dāng)數(shù)據(jù)到達(dá)ACK SLOT的時(shí)候,所有的節(jié)點(diǎn)都會(huì)發(fā)送顯性位(我們可以認(rèn)為是0),而發(fā)送者在ACK這個(gè)時(shí)間里保持隱性位(即發(fā)送者在發(fā)送的時(shí)候ACK SLOT為1),這時(shí)發(fā)送者會(huì)檢測總線上的ACK時(shí)間內(nèi)的信號(hào),如果是0,則表示正確,如果是1,表示有錯(cuò)誤。如果當(dāng)中有某一個(gè)節(jié)點(diǎn)在ACK SLOT填入隱性位,則總線上同樣還是顯性位電平,故只要總線上有一個(gè)節(jié)點(diǎn)正確接收到數(shù)據(jù),則ACK SLOT就會(huì)被填入顯性電平;那么,接收錯(cuò)誤的節(jié)點(diǎn)如何來告知發(fā)送者此次發(fā)送不成功呢?這時(shí)候就要用到CAN的錯(cuò)誤幀,當(dāng)一個(gè)接收者收到錯(cuò)誤的數(shù)據(jù)的時(shí)候(怎樣判斷的),它立即開始發(fā)送一個(gè)錯(cuò)誤幀,則接下去總線上的信號(hào)就是這個(gè)錯(cuò)誤幀,其它的節(jié)點(diǎn)和發(fā)送者也都會(huì)收到這個(gè)錯(cuò)誤幀,那所有的節(jié)點(diǎn)都知道出錯(cuò)了,接收者會(huì)丟掉此次消息,而發(fā)送者會(huì)試圖重發(fā)此次消息。這才是ACK SLOT真正的含義。

下面我們通過一個(gè)實(shí)例來看看CAN節(jié)點(diǎn)是如何進(jìn)行ACK SLOT的動(dòng)作的。我們抓取一個(gè)總線上面的信號(hào)波形,此波形已經(jīng)是通過82C251解碼過后的。

此主題相關(guān)圖片如下:  圖片

抓取的波形,圖中的四個(gè)通道分別表示兩個(gè)節(jié)點(diǎn)的CANTX和CANRX,其中通道A,B表示NODE 1的CANTX和CANRX,通道C,D表示NODE 2的CANTX和CANRX。將其正對坐標(biāo)中軸的部分展開,得到如下的圖形,由上圖我們清楚的看到,NODE 1的CANTX在接收到數(shù)據(jù)后立即響應(yīng),即向外發(fā)送數(shù)據(jù),當(dāng)數(shù)據(jù)發(fā)送完畢,到了ACK的時(shí)間內(nèi),見下圖中黃色圖標(biāo)處,NODE 1的CANTX發(fā)送兩個(gè)隱性位,而對于NODE 2,當(dāng)發(fā)送者NODE 1的CANTX到了報(bào)文的ACK時(shí)間,NODE2也接收完數(shù)據(jù),如果CRC校驗(yàn)通過,則NODE2的CANTX會(huì)相應(yīng)的發(fā)送顯性位,即通道C的紅色圖標(biāo)處。如果總線上存在NODE 3和NODE 4或是更多NODE,則波形相同。圖中的B和D都是CANRX,所以都有ACK的顯性位出現(xiàn)。

此主題相關(guān)圖片如下:

圖片

我們認(rèn)為,發(fā)送者在發(fā)數(shù)據(jù)的時(shí)候,CANTX在發(fā)送數(shù)據(jù),而CANRX同時(shí)也在接收數(shù)據(jù),當(dāng)發(fā)送者發(fā)送ACK為隱性時(shí),接收到的ACK SLOT一定要是顯性才會(huì)正確。那么,當(dāng)有節(jié)點(diǎn)正確接收到了數(shù)據(jù),在ACK SLOT填上顯性位后,接收錯(cuò)誤的節(jié)點(diǎn)這時(shí)候會(huì)如何呢?接收錯(cuò)誤的節(jié)點(diǎn)就會(huì)馬上發(fā)送錯(cuò)誤幀,一般是發(fā)送連續(xù)的6個(gè)0或1,根據(jù)CAN的位填充原理,當(dāng)有五個(gè)連續(xù)的0或1出現(xiàn)時(shí),為了傳送中的同步,必須插入一個(gè)反相位的BIT作為填充位,如果連續(xù)出現(xiàn)6個(gè)或以上的相同信號(hào),則此次傳送錯(cuò)誤,數(shù)據(jù)將被丟棄。故當(dāng)發(fā)送者收到這個(gè)錯(cuò)誤幀后,便會(huì)知道發(fā)送出錯(cuò),并試圖重發(fā)數(shù)據(jù)。

來源:文章來源網(wǎng)絡(luò),侵刪

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多