1. 什麼是CAN匯流排,CAN匯流排的優勢和特點
CAN(Controller Area Network)是ISO國際標准化的串列通信協議。廣泛應用於汽車、船舶等。具有已經被大家認可的高性能和可靠性。
2.CAN匯流排的特點
CAN匯流排協議具有下面的特點:
1) 多主控制
當匯流排空閑時,連接到匯流排上的所有單元都可以啟動發送信息,這就是所謂的多主控制的概念。
先佔有匯流排的設備獲得在匯流排上進行發送信息的資格。這就是所謂的CSMA/CR(Carrier Sense MultipleAccess/Collosion Avoidance)方法
如果多個設備同時開始發送信息,那麼發送最高優先順序ID消息的設備獲得發送資格。
2) 信息的發送
在CAN協議中,所有發送的信息要滿足預先定義的格式。當匯流排沒有被佔用的時候,連接在匯流排上的任何設備都能起動新信息的傳輸,如果兩個或更多個設備在同時刻啟動信息的傳輸,通過ID來決定優先順序。ID並不是指明信息發送的目的地,而是指示信息的優先順序。如果2個或者更多的設備在同一時刻啟動信息的傳輸,在匯流排上按照信息所包含的ID的每一位來競爭,贏得競爭的設備(也就是具有最高優先順序的信息)能夠繼續發送,而失敗者則立刻停止發送並進入接收操作。因為匯流排上同一時刻只可能有一個發送者,而其它均處於接收狀態,所以,並不需要在底層協議中定義地址的概念。
3) 系統的靈活性
連接到匯流排上的單元並沒有類似地址這樣的標識,所以,添加或去除一個設備,無需改變軟體和硬體,或其它設備的應用層軟體。
4) 通信速度
可以設置任何通訊速度,以適應網路規模。
對一個網路,所有單元必須有相同的通訊速度,如果不同,就會產生錯誤,並妨礙網路通訊,然而,不同網路間可以有不同的通訊速度。
5) 遠程數據請求
可以通過發送「遙控幀」,請求其他單元發送數據。
6) 錯誤檢測、錯誤通知、錯誤恢復功能
所有單元均可以檢測出錯誤(錯誤檢測功能)。
檢測到錯誤的單元立刻同時通知其它所有的單元(錯誤通知功能)。如果一個單元發送信息時檢測到一個錯誤,它會強制終止信息傳輸,並通知其它所有設備發生了錯誤,然後它會重傳直到信息正常傳輸出去(錯誤恢復功能)。
7) 錯誤隔離
在CAN匯流排上有兩種類型的錯誤:暫時性的錯誤(匯流排上的數據由於受到雜訊的影響而暫時出錯);持續性的錯誤(由於設備內部出錯(如驅動器壞了、連接有問題等)而導致的)。CAN能夠區別這兩種類型,一方面降低常出錯單元的通訊優先順序以阻止對其它正常設備的影響,另一方面,如果是一種持續性的錯誤,將這個設備從匯流排上隔離開。
8) 連接
CAN匯流排允許多個設備同時連接到匯流排上且在邏輯上沒有數目上的限制。然而由於延遲和負載能力的限制,實際可連接得設備還是有限制的,可以通過降低通訊速度來增加連接的設備個數。相反,如果連接的設備少,通訊的速度可以增加。