CAN是Controller Area Network 的縮寫(以下稱為CAN),是ISO*1國際標準化的串行通信協議。在當前的汽車產業中,出于對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開發了出來。CAN總線是國際上應用最廣泛的現場總線之一。
CAN網絡的消息是廣播式的,即在同一時刻網絡上所有節點偵測的數據是一致的,它是一種基于消息廣播模式的串行通信總線。
1
CAN總線的特點
①多主控制
②消息的發送
③系統的柔軟性
④通信速度
⑤遠程數據請求
⑥錯誤檢測功能·錯誤通知功能·錯誤恢復功能
⑦故障封閉
⑧連接
2
CAN總線錯誤狀態
01
錯誤狀態的種類
總線上的單元(節點)處于以下3種錯誤狀態之一。
①主動錯誤狀態
當接收錯誤計數器和發送錯誤計數器計數值全部小于等于127時,節點處在主動錯誤狀態下,此時設備可以正常在總線上進行通信,但節點需要上報主動錯誤狀態。
②被動錯誤狀態
當接收錯誤計數器或發送錯誤計數器任意計數器值大于127時,節點處在被動錯誤狀態,此時節點易導致總線錯誤。因此,處于被動錯誤的節點,不能連續向總線發送數據,需要等待一定周期。處于初始錯誤狀態的節點,檢測到總線錯誤時,需要上報被動錯誤狀態。
③總線關閉態
當發送錯誤計數器計數值大于255時,節點會進入總線關閉狀態。處于總線關閉狀態下的節點,對總線上其他節點處于不可見狀態,因此總線關閉節點不能發送數據到總線上,也不能接收總線上的數據。
處于總線關閉狀態的節點,只有通過從新初始化且等待一定總線空閑時間,才可以重新恢復并接入總線。
以上三種錯誤狀態,通過發送接收錯誤計數管理,根據不同計數器狀態進入不同錯誤狀態,其對應關系如下圖表:
圖1. 單元的錯誤狀態
02
錯誤計數值
錯誤計數根據不同的總線錯誤增加不同計數值,其對應關系如下圖表:
3
其他常見問題
①CAN總線最少單元數量?
CAN總線最少需要2臺單元。
②CAN總線最多單元數量?
可連接的單元總數理論上是沒有限制的。
但實際上可連接的單元數受總線上的時間延遲及電氣負載的限制。降低通信速度,可連接的單元數增加;提高通信速度,則可連接的單元數減少。
③終端電阻數量?
在總線的首尾兩端(CANH、CANL之間)各接一個120?(Min.85?;Max.130?)電阻。(實際應用中可能會存在無終端電阻或者多個終端電阻甚至每一個設備都有終端電阻,需要避免此類問題)。
推薦閱讀:《CAN總線為什么要加終端電阻?》
④總線速率問題?
同一總線同一時刻只存在一種速率,新接入總線的設備,需要提前知道總線速率并與之匹配,否則將不可通信。
⑤總線支線長度可以有多遠?
ISO11898中只規定1M波特率下分支不超過0.3米。
支線過長會直接導致總線阻抗匹配問題發生,阻抗匹配是指信號源或者傳輸線跟負載之間達到一種適合的搭配。阻抗匹配主要為了調整負載功率和抑制信號反射,所以一旦阻抗匹配出現問題,就出現了上升沿和下降沿的臺階,很容易在邏輯識別的時候產生錯誤的識別。從而導致位寬失調,節點接收錯誤信息。
⑥如何選擇線材?
選擇屏蔽雙絞線,且屏蔽層單端接地。
⑦CANH、CANL之間短路:當CAN H 與CAN L 短路時,CAN網絡會關閉,無法再進行通信。CANH、CANL對電源(正、負)短路:可能無法正常通信,或者抗干擾能力大大降低。
⑧CANH、CANL斷路,無法正常通信;CANH、CANL反接,亦無法正常通信。
⑨采樣點匹配
同一總線,應盡量將采樣點匹配到一致。否則可能導致部分設備無法正常通信。
⑩波特率配置問題?
以STM32F103為例:
brp應該盡量小。
波特率>800kbps時,推薦采樣點75%;
波特率>500kbps時,推薦采樣點80%;
波特率<500kbps時,推薦采樣點87.5%。
-
控制系統
+關注
關注
41文章
6657瀏覽量
110790 -
CAN總線
+關注
關注
145文章
1955瀏覽量
130969 -
通信協議
+關注
關注
28文章
911瀏覽量
40385
發布評論請先 登錄
相關推薦
評論