本文說的CAN即是一種總線,也是一種協(xié)議。因此,我們常聽見CAN總線,也常聽見CAN協(xié)議。
CAN協(xié)議和CANOpen協(xié)議是兩套不同的協(xié)議。從軟硬件層次來劃分,CAN協(xié)議屬于硬件協(xié)議,而CANOpen屬于軟件協(xié)議。CAN 總線(Controller Area Network)是控制器局域網的簡稱,是 20 世紀 80 年代初德國 BOSCH 公司為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議。目前,CAN 總線已經被列入 ISO 國際標準,稱為 ISO11898。CAN 總線已經成為工業(yè)數(shù)據(jù)通信的主流技術之一。
CAN 總線作為數(shù)字式串行通信技術,與其他同類技術相比,在可靠性、實時性和靈活性方面具有獨特的技術優(yōu)勢,主要特點如下:
? CAN 總線是一種多主總線,總線上任意節(jié)點可在任意時刻主動地向網絡上其他節(jié)點發(fā)送信息而不分主次,因此可在各節(jié)點之間實現(xiàn)自由通信。
? CAN 總線采用非破壞性總線仲裁技術。但多個節(jié)點同時向總線發(fā)送信息時,優(yōu)先級低的節(jié)點會主動退出發(fā)送,而最高優(yōu)先級的節(jié)點可以不受影響地繼續(xù)傳輸數(shù)據(jù),從而大大節(jié)省總線沖突的仲裁時間。即使在網絡負載很重的情況下也不會發(fā)生網絡癱瘓情況。
? CAN 總線的通信介質可以是雙絞線、同軸電纜或光導纖維,選擇靈活。
? CAN 總線的通信速率可達 1Mbit/s(此時通信距離最長為 40 米),通信距離最遠可達 10km(速率在 5kbit/s 以下)。
? CAN 總線上的節(jié)點信息分成不同的優(yōu)先級,可以滿足不同級別的實時要求,高優(yōu)先級的數(shù)據(jù)可以在 134μs 內得到傳輸。
? CAN 總線通過報文濾波即可實現(xiàn)點對點、一點對多點及全局廣播等幾種方式傳送數(shù)據(jù),無需專門的調度。
? CAN 總線的數(shù)據(jù)采用短幀結構,傳輸時間短,受干擾概率低,具有極好的檢錯效果。
? CAN 總線采用 CRC 檢驗并可提供相應的錯誤處理功能,保證了數(shù)據(jù)通信的可靠性。
? CAN 總線上的器件可被置于無任何內部活動的睡眠方式,相當于未連接到總線上,可以有效降低系統(tǒng)功耗。
? CAN 總線上的節(jié)點在錯誤嚴重的情況下具有自動關閉輸出的功能,以使總線上其他節(jié)點的操作不受影響。
CAN 總線卓越的特性、極高的可靠性和獨特的設計,特別適合工業(yè)過程中監(jiān)控設備的互連,因此,越來越受到工業(yè)界的重視,并被公認為是最有前途的現(xiàn)場總線之一。另外,CAN 總線協(xié)議已被國際標準化組織認可,技術比較成熟,控制的芯片已經商品化,性價比高,特別適用于分布式測控系統(tǒng)之間的數(shù)通訊。CAN 總線插卡可以任意插在 PC AT XT 兼容機上,方便地構成分布式監(jiān)控系統(tǒng)。因此,用 FPGA 實現(xiàn) CAN 總線通信控制器具有非常重要的應用價值。
使用CAN總線的注意事項
電氣特性 :CAN總線對電氣特性有嚴格的要求,包括電壓水平、終端電阻、電纜長度等。確保遵循CAN總線規(guī)范中的電氣參數(shù),以保證通信的穩(wěn)定性。
拓撲結構 :CAN總線通常采用線性或星形拓撲。線性拓撲簡單,但對電纜長度有限制;星形拓撲可以減少電纜長度,但需要使用集線器或中繼器。
終端電阻 :在CAN總線的兩端必須安裝終端電阻,以減少信號反射,保證信號完整性。
電纜選擇 :選擇適合CAN總線的雙絞線電纜,以減少電磁干擾和信號衰減。
節(jié)點數(shù)量 :CAN總線理論上可以支持多達110個節(jié)點,但實際應用中,節(jié)點數(shù)量應根據(jù)網絡的負載和性能要求來確定。
錯誤處理 :CAN總線具有錯誤檢測和錯誤處理機制,包括位錯誤、幀錯誤、CRC錯誤等。了解這些機制對于故障診斷和系統(tǒng)維護至關重要。
消息優(yōu)先級 :CAN總線通過消息ID來確定消息的優(yōu)先級。設計系統(tǒng)時,應合理分配消息ID,以確保高優(yōu)先級消息能夠及時傳輸。
實時性 :雖然CAN總線支持實時通信,但在高負載或復雜網絡中,消息可能會延遲。設計時需考慮實時性要求。
網絡安全 :隨著CAN總線在車輛中的應用越來越廣泛,網絡安全成為一個重要議題。需要采取措施保護CAN總線免受惡意攻擊。
軟件和硬件兼容性 :確保所使用的CAN控制器和軟件工具與CAN總線標準兼容,以避免兼容性問題。
CAN總線與其他通信協(xié)議對比
與LIN總線對比 :
成本 :LIN總線成本較低,因為它使用單線通信,而CAN總線需要雙絞線。
速度 :CAN總線的數(shù)據(jù)傳輸速率通常高于LIN總線,適合高速通信。
可靠性 :CAN總線具有更強的錯誤檢測和處理能力,適合需要高可靠性的應用。
與FlexRay總線對比 :
速度 :FlexRay總線的數(shù)據(jù)傳輸速率遠高于CAN總線,適合需要極高速度的應用。
復雜性 :FlexRay總線比CAN總線更復雜,成本也更高。
同步性 :FlexRay總線支持時間觸發(fā)通信,而CAN總線是事件觸發(fā)的。
與MOST總線對比 :
媒體類型 :MOST總線使用光纖通信,而CAN總線使用雙絞線。
速度 :MOST總線的數(shù)據(jù)傳輸速率遠高于CAN總線,適合多媒體數(shù)據(jù)傳輸。
成本 :MOST總線的成本較高,因為它需要光纖和相應的接口。
與以太網對比 :
速度 :以太網的數(shù)據(jù)傳輸速率遠高于CAN總線,適合大數(shù)據(jù)量的傳輸。
協(xié)議復雜性 :以太網協(xié)議比CAN總線復雜,需要更多的處理能力。
應用領域 :以太網廣泛應用于IT和網絡通信領域,而CAN總線主要用于車輛和工業(yè)控制。
與SerCOS總線對比 :
實時性 :SerCOS總線具有非常高的實時性,適合需要精確同步的應用。
成本 :SerCOS總線的成本較高,因為它需要特殊的硬件和協(xié)議支持。
應用領域 :SerCOS總線主要用于工業(yè)自動化和機器人領域。
總結來說,CAN總線以其可靠性、實時性和成本效益在車輛和工業(yè)控制領域占有重要地位。然而,根據(jù)不同的應用需求,可能需要考慮其他通信協(xié)議。在選擇通信協(xié)議時,應綜合考慮成本、速度、可靠性、實時性等因素。