总线接口与计算机通信(五)CAN总线
? ?
? ?
? ?
CAN協議具有以下特點。
?? ?
(1)?多主控制?
在總線空閑時,所有的單元都可開始發送消息(多主控制)。?最先訪問總線的單元可獲得發送權(CSMA/CA方式*1)。?
多個單元同時開始發送時,發送高優先級ID消息的單元可獲得發送權。
? ?
?(2)?消息的發送?
在CAN協議中,所有的消息都以固定的格式發送。總線空閑時,所有與總線相連的單元都可以開始發送新消息。兩個以上的單元同時開始發送消息時,根據標識符(Identifier?以下稱為?ID)決定優先級。ID并不是表示發送的目的地址,而是表示訪問總線的消息的優先級。兩個以上的單元同時開始發送消息時,對各消息ID的每個位進行逐個仲裁比較。仲裁獲勝(被判定為優先級最高)的單元可繼續發送消息,仲裁失利的單元則立刻停止發送而進行接收工作。
? ?
?(3)?系統的柔軟性?
與總線相連的單元沒有類似于"地址"的信息。因此在總線上增加單元時,連接在總線上的其它單元的軟硬件及應用層都不需要改變。?
? ?
(4)?通信速度?
根據整個網絡的規模,可設定適合的通信速度。?
在同一網絡中,所有單元必須設定成統一的通信速度。即使有一個單元的通信速度與其它的不一樣,此單元也會輸出錯誤信號,妨礙整個網絡的通信。不同網絡間則可以有不同的通信速度。
?(5)?遠程數據請求?
可通過發送"遙控幀"?請求其他單元發送數據。?
? ?
(6)?錯誤檢測功能·錯誤通知功能·錯誤恢復功能?所有的單元都可以檢測錯誤(錯誤檢測功能)。?
檢測出錯誤的單元會立即同時通知其他所有單元(錯誤通知功能)。?
正在發送消息的單元一旦檢測出錯誤,會強制結束當前的發送。強制結束發送的單元會不斷反復地重新發送此消息直到成功發送為止(錯誤恢復功能)。
? ?
?(7)?故障封閉?
CAN可以判斷出錯誤的類型是總線上暫時的數據錯誤(如外部噪聲等)還是持續的數據錯誤(如單元內部故障、驅動器故障、斷線等)。由此功能,當總線上發生持續數據錯誤時,可將引起此故障的單元從總線上隔離出去。
? ?
?(8)?連接?
CAN總線是可同時連接多個單元的總線。可連接的單元總數理論上是沒有限制的。但實際上可連接的單元數受總線上的時間延遲及電氣負載的限制。降低通信速度,可連接的單元數增加;提高通信速度,則可連接的單元數減少。
? ?
? ?
? ?
? ?
參考:
? ?
總結
以上是生活随笔為你收集整理的总线接口与计算机通信(五)CAN总线的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Android]Volley源代码分析
- 下一篇: 关于让bootstrap3兼容ie8