CAN總線網絡設計對于CAN總線是非常重要的,而解決CAN網絡應用層協議設計的問題更是重中之重。就如同集成電路、微處理器的誕生一樣,數據總線技術的問世成為了汽車電子技術發展的一個重要里程碑。如今,隨著CAN總線技術在汽車電子領域日益廣泛的應用,其協議一致規范表述的重要性也逐漸凸現。根據ISO(國際標準化組織)定義的OSI模型,CAN協議定義了物理層及數據鏈路層規范,為不同的汽車廠商制定符合自身需要的應用層協議提供了便利。如果需要建立更加完善的系統,還需要在CAN的基礎上選擇合適的應用層協議。
解決關鍵問題,首先有必要解析一下CAN總線協議應用層與應用程序。應用層和應用程序是不一樣的。應用層是指通訊功能的應用層。它并不定義和描述應用程序參數,它提供的只是通訊功能與應用程序的通訊接口。包括:定義通訊服務、傳送過程數據、診斷信息及標定信息。設備監控和網絡管理也一般定義為應用層的一部分,有的也將傳輸層的部分內容納入應用層實現,比如超過8個字節的數據傳輸。而應用程序就完全是指控制算法等應用代碼。它定義控制算法相關的數據和參數。
那么到底是CAN測試重要還是協議制定重要?其實測試和設計的重要性在不同設計思路中有不同的體現。目前應用層協議制定的方法可以分為兩大類,一類是測試為重心的方法;一類是設計為重心的方法。第一種方法也稱為投票法或試驗法,這是一種工程設計方法,各個供應商對協議提出要求,整車廠集成要求,通過測試驗證協議可行性,隨后發布協議。測試的功能除了驗證協議的實現外,還有一個重要的任務就是對協議設計進行測試,試圖解決ID分配不合理、消息沖突問題等等。這種方法的重心就是測試,因此測試比較重要。
第二種方法是系統級設計法,這是一種理論設計方法,它提出了完全不同的需求,供應商只需要提供相應的參數,根據一定的理論模型對網絡通訊特性進行計算,如信號延遲、總線負載等。以此為基礎,考慮設計需求,通過一定的調度算法,對每條消息的ID進行分配。方法的核心就是優化這些特性參數,保證整車網絡通訊的實時性能。因此在這種設計方法中,設計是重點。
綜上所述,CAN總線協議中,其中有三個方面的設計非常重要,就是ID、周期和信號和消息的映射關系。