CAN總線通信原理分析
總線仲裁,是指當總線上有多個節點在同時發送數據時總線協議的處理方法。CAN總線采用的是無破壞性的仲裁機制,即若總線上的多個節點同時發送數據,具有高優先級數據包的節點仲裁勝出,可以繼續發送數據,而其它仲裁失敗的節點將退出發送狀態而轉為接收節點,與其他總線仲裁機制(例如局域網的CSMA/CD)相比,其不僅不會破壞已發送的數據,并且不會造成發送數據的延遲,是CAN總線與其他總線相比的優點之一,其主要是通過CAN總線所具備的如下兩個特點實現:1)CAN總線的線與特性,即當總線上多個節點同時發送顯性和隱形電平時,總線電平表現為顯性電平。2)CAN控制器即使在發送數據的同時也在監控總線電平狀態,即當在仲裁時,當控制器發送隱性電平但檢測到總線為顯性電平時,節點仲裁失敗,轉為接收節點。
5 CAN總線魯棒性分析
CAN總線的魯棒性是通過其對節點和總線數據包安全性的實時檢測與監控來實現的,另外,CAN總線通過采用的差分信號對外界干擾信號有較強的抑制作用。具體論述如下。
5.1 實時監控總線波形
CAN控制器不僅在上電后會一直監測總線上其它節點發送的的數據包,并且在自己發送數據包得過程中也在實時監測自己發送的數據,一旦檢測到位錯誤、填充錯誤、CRC錯誤、格式錯誤或者應答錯誤,該節點就會根據其所處的錯誤狀態(錯誤激活狀態或者錯誤認可狀態)發送相應的錯誤標志,實際上筆者認為只有錯誤激活站點發送激活錯誤標識(即6個連續的顯性位后接8個隱性位的錯誤標識界定符)會對總線及總線上的節點產生影響,而處于錯誤認可狀態的節點發送的錯誤認可標識實際對總線沒有任何影響(發送的6個隱性電平與總線空閑狀態是一致的)。
5.2 實時監控節點狀態判定節點權限
節點會根據總線上數據包的情況實時改變自身的狀態(錯誤激活、錯誤認可或者總線關閉狀態),處于錯誤激活的節點正常參與總線通信,錯誤認可的單元參與總線通信,但是在其啟動下一個發送之前需要發送8個額外的隱性位。對于總線上發送的數據包,如表1所示,15位的CRC序列實現了對起始位、仲裁域、控制域以及數據域(如果有的話)的監控,接收站點在接收到數據后會根據與發送節點相同的算法生成該數據包的CRC序列,并與接收到的CRC序列做比較,如果不同則說明有錯,接收節點不會對該數據包做出應答,發送節點就會檢測到應答錯誤并重新發送該數據包。總之,CAN總線通過數據鏈路層以及物理層就已經實現了較高的總線的數據安全性和總線的穩定性。
6 結論
文中以ISO11898協議規范為基礎,從通信的角度詳細分析了CAN總線的節點同步機制、節點地址機制、總線仲裁機制(即總線沖突解決機制)及總線魯棒性的實現原理和基礎,同時簡要介紹了CAN總線的應用特性以及將其應用于實際系統中時總線的系統分層結構,對深入理解CAN總線協議和將CAN總線應用到具體工程項目中,以及研究或開發特定要求的總線系統具有指導意義。
濾波器相關文章:濾波器原理
濾波器相關文章:濾波器原理
路由器相關文章:路由器工作原理
數字通信相關文章:數字通信原理
通信相關文章:通信原理
路由器相關文章:路由器工作原理
塵埃粒子計數器相關文章:塵埃粒子計數器原理
評論