中文在线中文资源,色鲁97精品国产亚洲AV高,亚洲欧美日韩在线一区,国产精品福利午夜在线观看

你的位置:首頁 > 測試測量 > 正文

快速讀懂CAN-bus節點的錯誤處理規則

發布時間:2016-11-11 責任編輯:susan

【導讀】CAN-bus的可靠性很高,但是在某些情況下還是發生錯誤,為了使數據能夠在總線上可靠傳輸,CAN-bus規范對各類幀的格式、用途及發送時機都進行了詳細的規定。

CAN-bus規范對各類幀的格式、用途及發送時機都進行了詳細的規定。并實現在CAN控制器中自動完成幀格式處理及校驗等工作,一旦錯誤被檢測,正在傳送的數據幀將會立即停止而待總線空閑時再次重發直至發送成功,該過程并不需要CPU的干涉除非錯誤累計該發送器退隱(Bus off)。
 
CAN-bus的可靠性很高,但是在某些情況下還是發生錯誤,為了使數據能夠在總線上可靠傳輸,CAN-bus規范對各類幀的格式、用途及發送時機都進行了詳細的規定。下面我們來總結下在CAN通訊中會出現哪些錯誤。
 
圖一
 
位錯誤:發送節點在發送數據的同時也會對發出的比特流采樣回收,如果監測到總線電平與正在發送的電平不符,將會發生位錯誤(Bit Check Error);
 
位填充錯誤:為解決異步串行通訊中共有的缺點——各節點通訊時鐘不同步,CAN-bus采用了一種同步的方式,規定每隔5個位的時間長度進行一次同步,當傳輸信號連續5個位是相同的,就要插入一個點評相反的位(稱為“填充位”),如果電纜上傳輸的信號不滿足這一規則,則會出現填充位錯誤(Bit Stuff Error);
 
CRC錯誤:發送端發送的CRC值由發送器計算得出,接收器采用同樣的CRC算法,計算出接收端CRC值,若接收器計算的CRC值與接收到的CRC值不符,將會產生該類錯誤(CRC Error);
 
格式錯誤:當傳輸的數據幀格式與任何一種合法的幀格式不符時會發生該類格式錯誤(Frame Check Error);
 
應答錯誤:如果在ACK段發送節點沒有接收到接收節點發出的應答(顯性位),將發生應答錯誤(Acknowledgment Error),所以當單個節點發送數據幀時會發生該類錯誤。
 
錯誤幀在總線信號傳輸中起著信號燈的作用,接收和發送過程中如果檢測到通信出錯,便會發送錯誤幀,錯誤幀由錯誤標識符以及錯誤界定符構成。其中錯誤標識符分為兩種:“主動錯誤”和“被動錯誤”。
 
主動錯誤狀態下,只要檢查到錯誤,它立即“主動地”發出錯標識。所謂“出錯標識“,它本身就是一個“錯誤的位序列”(連續的6個顯性位,不滿足CAN協議的“最多5個連續的同性位”要求),目的是“主動地”告訴大家:即使你們沒有發現“剛才我已發現”的錯誤,現在我“以身作則”出錯啦!你們該看到這個錯誤了吧!
 
如果處于被動狀態下,檢查到錯誤,它只能干瞪眼“被動地”等別人(主動報錯站點)報錯,等待的時候它可不能去動總線,直到識別出由主動報錯站點發出 的“錯誤的位序列”,它才松了一口氣:有人正式報錯了!然后他就可以去競爭總線,該干啥干啥。
 
為了避免某個設備因為自身原因(例如硬件損壞)導致無法正常收發數據而不斷地破壞數據幀,從而影響其他正常節點通訊,CAN-bus規范中規定每個CAN控制器都有一個發送錯誤計數器和一個接收計數器。根據計數值不同CAN節點會處于不同的設備狀態,狀態之間的轉換關系見下圖:
 
要采購電纜么,點這里了解一下價格!
特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索
?

關閉

?

關閉

  • <center id="09kry"></center>

  • 主站蜘蛛池模板: 玛曲县| 穆棱市| 哈巴河县| 当阳市| 嵊泗县| 荆门市| 桑日县| 阳高县| 泰安市| 宁化县| 上杭县| 舟山市| 武山县| 青河县| 封开县| 宜兰县| 南江县| 承德市| 平原县| 凤翔县| 正蓝旗| 瑞金市| 监利县| 鹤山市| 灌阳县| 江北区| 安塞县| 富平县| 昌吉市| 沙雅县| 鄂伦春自治旗| 屏山县| 郴州市| 蓝山县| 广宗县| 焦作市| 贵州省| 崇信县| 定结县| 晋宁县| 白城市|