久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 40999|回復: 3
打印 上一主題 下一主題
收起左側

關于CAN報文中ACK應答錯誤的檢測原理

[復制鏈接]
跳轉到指定樓層
樓主
ID:80436 發(fā)表于 2015-5-20 14:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式


以前曾經有一段時間認真的想過CAN數據報文中的ACK應答機制問題,原以為自己想通了,但前兩天又再想想,覺得還是沒有想清楚故將其放到論壇上,雖然到如今還沒有人來回復,但通過與一些朋友的確認,發(fā)現自己犯了一個不小錯誤,對協議本身的理解產生了錯誤,以至后來竟無法找到答案,改換過前提后,問題得以解決。下面將此次思考的情況一一列出,以希各位同道中的朋友不要再犯與我相似之低級錯誤:)
CAN協議里對ACK(應答場)有如下的描述:
應答場長度為2個位,包含應答間隙(ACK SLOT)和應答界定符(ACK DELIMITER)。在應答場里,發(fā)送站發(fā)送兩個“隱性”位。當接收器正確地接收到有效的報文,接收器就會在應答間隙(ACK SLOT)期間(發(fā)送ACK信號)向發(fā)送器發(fā)送一“顯性”的位以示應答。
應答間隙:所有接收到匹配CRC序列(CRC SEQUENCE)的站會在應答間隙(ACK SLOT)期間用一“顯性”的位寫入發(fā)送器的“隱性”位來作出回答。
ACK界定符:ACK界定符是ACK場的第二個位,并且是一個必須為“隱性”的位。因此,應答間隙(ACK SLOT)被兩個“隱性”的位所包圍,也就是CRC界定符(CRC DELIMITER)和ACK界定符(ACK DELIMITER)。
此主題相關圖片如下:

  

在CAN協議的錯誤檢測部分有這樣的描述:
位錯誤:站單元在發(fā)送位的同時也對總線進行監(jiān)視。如果所發(fā)送的位值與所監(jiān)視的位值不相符合,則在此位時間里檢測到一個位錯誤(BIT ERROR)。但是在仲裁場(ARBITRATION FIELD)的填充位流期間或ACK間隙(ACK SLOT)發(fā)送一“隱性”位的情況是例外的——此時,當監(jiān)視到一“顯性”位時,不會發(fā)出位錯誤(BIT ERROR)。

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

從協議所描述的內容來看,我們不難得出一個結論:CAN是一種基于廣播的通訊方式,為了保證總線上的每一個節(jié)點(處于normal mode)都能正確的接收到報文,報文的發(fā)送者要求每一個接收節(jié)點在報文發(fā)送結束前,也就是ACK slot的時間內,作出應答,即要求接收的節(jié)點都在這個時間發(fā)送一個“顯性”位。發(fā)送者在發(fā)送的同時,會監(jiān)視總線上的數據,如果與發(fā)送的婁據不一致,則表示發(fā)送失敗或自己失去仲裁,立即停止發(fā)送或轉入接收模式。如果有一個節(jié)點在ACK SLOT的時間內發(fā)送“顯性”位,則發(fā)送者認為此次發(fā)送報文成功;如果發(fā)送者檢測到ACK SLOT為隱性位,則表示沒有節(jié)點填充ACK SLOT,則發(fā)送者會檢測到這個隱性位而知道發(fā)送失敗,此條報文需要重發(fā)。所以,當總線上只有一個節(jié)點的時候,或是只有一個節(jié)點可以收發(fā)數據的時候,這個節(jié)點是發(fā)不出去數據的,因為它所發(fā)出的數據幀中的ACK SLOT沒有另外一個節(jié)點來填充,將永遠是隱性位,這個節(jié)點會一直重發(fā)數據直到發(fā)送成功或發(fā)送被取消。
(注:一:總線上只有一個節(jié)點而且它向外發(fā)送了數據。它確實不會收到任何ACK,它會變成“error passive”但是它不會變成BUS off。why?請參考CAN specificaton 2.0-partB-Fault_Confinement--rule3--exception1二:其它檢測到CRC錯誤的節(jié)點不會馬上發(fā)送錯誤幀,而是在ACK delimiter之后才發(fā)送。請參考CAN specificaton 2.0-partB-Error_Signalling)

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

下面我們通過一個實例來看看CAN節(jié)點是如何進行ACK SLOT的動作的。我們抓取一個總線上面的信號波形,此波形已經是通過82C251解碼過后的。

此主題相關圖片如下:
         




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




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

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:103417 發(fā)表于 2016-4-22 14:24 | 只看該作者
回復

使用道具 舉報

板凳
ID:198951 發(fā)表于 2017-5-10 09:09 | 只看該作者
ACK界定符后面是EOF 連續(xù)7個隱性, 位填充只出現在起始幀到CRC之間,如果在ACK那里出現被動錯誤檢測不出來吧
回復

使用道具 舉報

地板
ID:248394 發(fā)表于 2017-12-15 16:52 來自觸屏版 | 只看該作者
收藏,正想找相關資料
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久免费毛片精品 | 一级大片免费看 | 91精品免费 | 精品视频免费在线观看 | aaa亚洲 | 欧美色综合天天久久综合精品 | 欧美日韩久久 | 黄色av日韩 | 亚洲在线视频 | 国产成人在线免费观看 | 免费三片在线播放 | 国产福利小视频 | 五月婷婷六月天 | 欧美在线日韩 | 国产盗摄一区二区 | 五月久久| 日本精品视频 | 日日拍夜夜拍 | 欧美一级做性受免费大片免费 | 欧美国产日韩视频 | 日韩免费成人 | 午夜黄色剧场 | 国产亚洲区 | www.四虎影视| 麻豆国产一区二区三区四区 | 欧美日韩亚洲一区二区三区 | 日日av| 91视频日本 | 又黄又爽又色视频 | 一区二区三区四区在线视频 | 日本午夜网站 | 欧美久久一区 | 99热亚洲| 高潮毛片又色又爽免费 | 国产精品久久久久久99 | 九九九色 | 少妇搡bbbb搡bbb搡毛茸茸 | 第一福利丝瓜av导航 | 免费在线观看www | 国产黄色片视频 | 五月天激情综合网 |