吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CAN 會收到錯誤的數據嗎?

ZLG致遠電子 ? 2024-04-04 08:24 ? 次閱讀

CAN-bus總線協議以高穩定性,高容錯率而著稱于世,然而仍有很多用戶在使用的時候擔心CAN會接受到錯誤的信息,在數據里增加了CRC校驗的部分,這種做法是否有必要?CAN會收到錯誤的數據嗎?信息的傳遞,古往今來都是人類無比關注的一個問題。從最原始的肢體語言到高端的電子信號,信息傳達的方法五花八門。而對于信息安全的追求也是從古至今未有變過,我國西周時期的《太公兵法》就有過“陰符”“陰書”的設計來保證信息的安全。

而在我們的工業生產中,為了保證信號的正確傳遞的方法更是五花八門。而在信息傳遞過程中采取CAN協議是一種常見的減少出錯率的方案。那么,問題來了,CAN協議何德何能能讓傳輸的信號不出錯呢?今天就讓我們來深入分析一番。利用CANScope總線綜合分析儀來抓取一幀CAN的報文如下:

a3383908-f219-11ee-9118-92fbcf53809c.jpg圖2 CANScope總線綜合分析儀抓取的報文

圖中可以看出CAN協議采取了差分信號傳輸的方式,可以有效杜絕來自外部的屏蔽干擾。而在最后一行的協議解析部分,經過觀察我們發現一幀信號被分割成了不同顏色的一段段,每一段究竟是何含義?保證信號正確傳輸的秘密就隱藏在這些段落里。讓我們來庖丁解牛分別為大家分析下。

  • 幀起啟:在數據的開始,是一個1位的數據頭,表示數據幀都開始

a3402f5a-f219-11ee-9118-92fbcf53809c.png

圖3 數據頭

  • 仲裁段:標志了本幀數據的優先級,其中包含了一個ID碼,仲裁段中的ID碼值越小,幀數據的優先級就越高,CAN控制器在發送數據的同時會監聽電纜上的電平狀態,如果發現仲裁位的電平與本節點發出的電平不一致,則退出發送放棄總線使用權。這樣的設計可以提高總線的利用率,并且能讓重要的信息優先發送。

a343cd04-f219-11ee-9118-92fbcf53809c.png

圖4 仲裁段

  • 控制段:共六位,用于表示數據長度。在數據的控制段存有保留位以供未來協議規則擴展。

a34776c0-f219-11ee-9118-92fbcf53809c.png

圖5 控制段

  • 數據段:經過前面的鋪墊,數據段所編碼的即是本幀數據所需要傳達的信息。一幀信號可以傳送0~8位數據,每字節8位。短小精悍保證信息的實時性。

a34ddd08-f219-11ee-9118-92fbcf53809c.png

圖6 數據段

  • CRC段:CRC段即是保證數據準確的一個關鍵所在(敲黑板)。為防止信號由于某種原因被更改,CAN的數據鏈路層上加入了CRC校驗。發送節點會根據發送內容計算得到一個CRC值填入CRC段進行發送,而相應的接收節點也會對接收到的數據進行計算,并將計算出的CRC值和接收到的進行比對。能夠對得上暗號的才是自己人,如果對照有誤那么就說明傳輸的信號出現了問題,需要反饋錯誤消息。這樣的機制保證了CAN不會收到錯誤的信息,其安全性毋庸置疑。

a351f32a-f219-11ee-9118-92fbcf53809c.png

圖7 CRC段

  • ACK段:用于表征信號是否被正確接收,接受正常的節點在ACK的第一位會發出一個顯性位。根據ACK的狀態,發送節點就可以了解到數據是否被傳輸成功。若發送失敗,發送節點會根據自身狀態來決定是否重傳。

a35aad94-f219-11ee-9118-92fbcf53809c.png

圖8 ACK段

  • 幀結束:由7個隱性位組成,表示該幀結束。

a35ecbea-f219-11ee-9118-92fbcf53809c.png

圖9 幀結束經過這樣一番抽絲剝繭的分析,CAN的報文結構就這樣清晰的展現在我們面前。由于CRC段的存在,CAN出錯的概率十分之小。CRC校驗所使用的CRC多項式最多可以檢測出5個離散錯誤,或發現長度在15位以下偶然出現的突發錯誤。CRC校驗對SOF位、仲裁段、控制段和數據段的位序列進行計算,但不考慮填充位。CAN協議中規定的15位校驗序列源自于BCH代碼,它是一種特別適用于127位以下消息長度的循環代碼。CAN協議中所應用的15位多項式如下:

X15+X14+X10+X8+X7+X4+X3+1

在發送或接收收到數據場的最后一位后,CRC寄存器就會包含待傳輸或者待接收的CRC序列。將計算出的CRC序列與接收到的CRC序列相除,接收器就可以識別出可能存在的CRC錯誤。

有些工程師擔心CAN收到錯誤的信息,在數據中又做了CRC校驗的工作,豈不知在數據鏈路層CAN已經自備了CRC校驗的工作,在數據中再加入CRC校驗實際上是沒有什么必要的。

a3628190-f219-11ee-9118-92fbcf53809c.png

CAN總線不但規定了物理層的差分傳輸規范,還規定了數據鏈路層的分包校驗規則,而這兩個都是由硬件自動完成,接收時,無需考慮是否有錯誤,只要從緩沖區取出數據即可,CAN的CRC校驗可以保證錯誤率在10的-9次方以下。毫無疑問是一種非常安全可靠的傳輸協議。

a366f6d0-f219-11ee-9118-92fbcf53809c.jpg

CAN總線在信號的實時傳輸方面具有非常好的優越性,通過ZPS-CANFD總線分析儀可以很好的完成CAN總線的故障排查與檢測標定。致遠電子憑借自身掌握的核心技術可為用戶解決工業現場的各種疑難問題,期待與您一同成長。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • CAN
    CAN
    +關注

    關注

    57

    文章

    2769

    瀏覽量

    464389
  • 工業
    +關注

    關注

    3

    文章

    1868

    瀏覽量

    46908
  • 電子信號
    +關注

    關注

    1

    文章

    39

    瀏覽量

    4522
收藏 人收藏

    評論

    相關推薦

    使用Dave IDE將更新的固件配置刷新到XMC4700,會收到J-Link驅動程序錯誤怎么解決?

    ; 調試器即可刷新,但當我按下調試\"(似乎是按下閃存的按鈕)時,我還是會收到 J-Link 驅動程序錯誤。 你能幫我解決這個問題嗎? 我的總體目標是為Distance2Gol上的一條I2C線路配置一個地址,這樣我就可以從Arduino向它寫入并最終從中接收
    發表于 01-23 07:54

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

    上有一個節點正確接收到數據,則ACK SLOT就會被填入顯性電平;那么,接收錯誤的節點如何來告知發送者此次發送不成功呢?這時候就要用到CAN錯誤
    發表于 07-02 05:22

    PSoC 5LP:CAN錯誤管理

    CAN總線寫入CAN總線。但他不會收到任何ACK或錯誤(ACK錯誤,位錯誤)發生。所以他將重新
    發表于 12-13 14:40

    為什么進行單片機之間的通訊時從機才會收到數據

    進行單片機之間的通訊時,當把主機電源拔下或者插上一剎那,從機才會收到數據,而且兩者之間的導線是熱的,不知道是什么原因?
    發表于 07-11 03:39

    使用CH579作為從機向主機notify的時候,發送頻繁會收到pending錯誤怎么解決?

    我在使用CH579作為從機向主機notify的時候,如果發送頻繁,經常會收到pending錯誤,如果在每包之間增加一個延時,就可以解決,現在我希望提高點效率,有沒有什么方法可以知道這個notify的狀態,當前是否可以發送一類的,或者有什么設置可以讓他不會因為發送頻繁導致出
    發表于 08-31 07:27

    如何保證CAN數據的正確性

    CANbus總線協議以高穩定性,高容錯率而著稱于世,然而仍有很多用戶在使用的時候擔心CAN會接受到錯誤的信息,在數據里增加了CRC校驗的部分,這種做法是否有必要,CAN 會收到
    發表于 07-19 18:53 ?2055次閱讀

    STM32的CAN收發數據死在硬件錯誤中斷

    STM32的CAN收發數據死在硬件錯誤中斷使用uCosIII的消息隊列,當CAN收到數據,使用
    發表于 12-09 09:36 ?22次下載
    STM32的<b class='flag-5'>CAN</b>收發<b class='flag-5'>數據</b>死在硬件<b class='flag-5'>錯誤</b>中斷

    關于CAN總線錯誤的相關知識

    在本系列文章中,我們將為您詳細介紹CAN總線錯誤的相關知識,包括CAN總線錯誤的基礎概念、CAN總線錯誤
    的頭像 發表于 05-27 17:56 ?3164次閱讀

    CAN總線錯誤的類型介紹

    在本系列文章中,我們將為您詳細介紹CAN總線錯誤的相關知識,包括CAN總線錯誤的基礎概念、CAN總線錯誤
    的頭像 發表于 06-13 16:08 ?8337次閱讀

    虹科干貨 | 帶你全面認識“CAN總線錯誤”(二)——CAN錯誤類型

    AsimpleintrotoCANerrorsCAN總線錯誤介紹在本系列文章中,我們將為您詳細介紹CAN總線錯誤的相關知識,包括CAN總線錯誤
    的頭像 發表于 06-09 09:46 ?2249次閱讀
    虹科干貨 | 帶你全面認識“<b class='flag-5'>CAN</b>總線<b class='flag-5'>錯誤</b>”(二)——<b class='flag-5'>CAN</b><b class='flag-5'>錯誤</b>類型

    虹科干貨 | 帶你全面了解“CAN總線錯誤”(三)——CAN節點狀態與錯誤計數器

    AsimpleintrotoCANerrorsCAN總線錯誤介紹在本系列文章中,我們將為您詳細介紹CAN總線錯誤的相關知識,包括CAN總線錯誤
    的頭像 發表于 06-09 09:46 ?2514次閱讀
    虹科干貨 | 帶你全面了解“<b class='flag-5'>CAN</b>總線<b class='flag-5'>錯誤</b>”(三)——<b class='flag-5'>CAN</b>節點狀態與<b class='flag-5'>錯誤</b>計數器

    虹科干貨 | 帶你全面認識“CAN總線錯誤”(一)——CAN總線錯誤錯誤

    AsimpleintrotoCANerrorsCAN總線錯誤介紹在本系列文章中,我們將為您詳細介紹CAN總線錯誤的相關知識,包括CAN總線錯誤
    的頭像 發表于 05-27 10:39 ?4700次閱讀
    虹科干貨 | 帶你全面認識“<b class='flag-5'>CAN</b>總線<b class='flag-5'>錯誤</b>”(一)——<b class='flag-5'>CAN</b>總線<b class='flag-5'>錯誤</b>與<b class='flag-5'>錯誤</b>幀

    虹科干貨 | 帶你全面認識“CAN總線錯誤”(二)——CAN錯誤類型

    AsimpleintrotoCANerrorsCAN總線錯誤介紹在本系列文章中,我們將為您詳細介紹CAN總線錯誤的相關知識,包括CAN總線錯誤
    的頭像 發表于 06-02 09:41 ?1512次閱讀
    虹科干貨 | 帶你全面認識“<b class='flag-5'>CAN</b>總線<b class='flag-5'>錯誤</b>”(二)——<b class='flag-5'>CAN</b><b class='flag-5'>錯誤</b>類型

    虹科干貨 | 帶你全面了解“CAN總線錯誤”(四)——在實踐中生成和記錄CAN錯誤

    AsimpleintrotoCANerrorsCAN總線錯誤介紹在本系列文章中,我們將為您詳細介紹CAN總線錯誤的相關知識,包括CAN總線錯誤
    的頭像 發表于 06-09 10:21 ?1780次閱讀
    虹科干貨 | 帶你全面了解“<b class='flag-5'>CAN</b>總線<b class='flag-5'>錯誤</b>”(四)——在實踐中生成和記錄<b class='flag-5'>CAN</b><b class='flag-5'>錯誤</b>

    認識CAN總線錯誤 CAN總線錯誤分析與解決

    認識CAN 總線錯誤的第一步就是了解認識CAN 總線協議和它的具體功能,這樣才能更容易地理解CAN 總線是如何去發現并解決錯誤的。
    發表于 08-14 15:18 ?6675次閱讀
    認識<b class='flag-5'>CAN</b>總線<b class='flag-5'>錯誤</b> <b class='flag-5'>CAN</b>總線<b class='flag-5'>錯誤</b>分析與解決
    百家乐官网专用| 百家乐官网线上| 百家乐官网轮盘怎么玩| 安福县| 百家乐官网玩法及技巧| 网上百家乐官网骗钱| 澳门百家乐官网手机软件| 百家乐翻天youtube| 永利百家乐的玩法技巧和规则| 大发888娱乐城开户| 苗栗市| 澳门百家乐官网娱乐城注册 | 百家乐官网赌博筹码大不大| 百家乐赌具哪里最好| 百家乐怎样玩才会赢钱| 尊爵娱乐| 百家乐官网桌子北京| 百家乐官网论坛博彩拉| 真人百家乐怎么对冲| 全讯网程序| 皇冠在线娱乐| 圆梦城百家乐官网娱乐城| 社旗县| 克拉克百家乐官网的玩法技巧和规则| 百家乐扎金花斗地主| 怎样玩百家乐的玩法技巧和规则 | 传奇百家乐的玩法技巧和规则 | 互联网百家乐官网的玩法技巧和规则| 百家乐最新庄闲投注法| 德州扑克发牌员| 百家乐官网游戏资料网| 开心8百家乐游戏| 大发888真人娱乐场游戏平台| 百家乐官网平台租用| KK百家乐官网娱乐城 | 大发888bet| 澳门百家乐官网下注最低| 百家乐存在千术吗| 申城棋牌网| 新彩百家乐官网的玩法技巧和规则 | 网络百家乐官网软件真假|