CAN全稱是Controller Area Network的縮寫,即控制器局域網(wǎng)絡,屬于工業(yè)現(xiàn)場總線,是ISO國際標準化的串行通信協(xié)議,在汽車網(wǎng)絡通訊上廣泛使用。Classic CAN的一種經典應用是信號傳輸。如下圖所示,這種CAN總線的信號傳輸只用到了物理層、數(shù)據(jù)鏈路層和應用層。CAN的數(shù)據(jù)幀直接可以解析成應用報文和信號。但是考慮到車載網(wǎng)絡的可靠性要求和器件通用標準化要求,CAN通訊針對物理層和數(shù)據(jù)鏈路層作了更詳盡的分析和協(xié)議標準規(guī)定。圖2:基于CAN的信號通訊與OSI模型 具體來看,CAN的數(shù)據(jù)鏈路層分為邏輯鏈路控制(LLC)子層和媒體訪問控制(MAC)子層。MAC子層的功能主要是傳送規(guī)則,即控制幀結構、執(zhí)行仲裁、錯誤檢測、出錯標定和故障界定;LLC子層的功能主要是報文濾波、超載通知和恢復管理。物理層則由收發(fā)器、傳輸介質(線纜)和接口實現(xiàn),負責定義總線電壓和容錯性能等。當然除了簡單的信號傳輸,CAN通訊還可以用來做診斷等應用。這種場景下,則需要細分網(wǎng)絡層、傳輸層等其他層次,以支撐更復雜的通訊應用。
以SOME/IP通訊為例
SOME/IP (Scalable service-Oriented MiddlewarE over IP),即“運行于IP之上的可伸縮的面向服務的中間件”。它是車載以太網(wǎng)通信引入的一個概念,本身屬于OSI 模型第4層之上的應用層協(xié)議,主要為針對汽車電子的應用層提供API接口,并已經納入了AutoSAR標準體系。如下圖所示,對于4層及以下的協(xié)議,SOME/IP可以復用互聯(lián)網(wǎng)相對成熟的協(xié)議。下層的MAC Header、IP Header、TCP/UDP Header都可以基于現(xiàn)有協(xié)議定義,底層的尋址邏輯、建鏈邏輯、流量控制、錯誤控制等都可以較好地復用現(xiàn)有硬件設備或者軟件協(xié)議棧。圖3:SOME/IP通訊與OSI模型 SOME/IP協(xié)議實際上對數(shù)據(jù)的序列化和反序列化、遠程調用機制和服務發(fā)現(xiàn)機制等都進行了定義,也涉及到會話層和表示層的部分功能。但是整個協(xié)議沒有特殊的細分層次需求,所以在通訊協(xié)議上無需再劃分不同的子層協(xié)議。回到開頭的例子,這就像一間小型公司,可能看分析報告、整編模板和追蹤快遞都由同一個人來負責,而不是三個崗位。通過CAN和SOME/IP通訊這兩個例子,我們可以進一步理解OSI參考模型在我們分析網(wǎng)絡通訊時能起的作用。這個通用模型實際上更像一個指導工具,把網(wǎng)絡操作分成低復雜性單元,幫助設計和理解新網(wǎng)絡。層次的劃分使各層獨立,減少相互影響。例如設計應用層SOME/IP協(xié)議的同時,可以復用原有的下層協(xié)議而不干涉。這種靈活性也使得根據(jù)網(wǎng)絡特性而單獨替換某層協(xié)議十分方便,解決了異種網(wǎng)絡互連時所遇到的兼容性問題。當然除了CAN和SOME/IP通訊,OSI 模型也用于DoCAN、DoIP、藍牙、5G、Wi-Fi等多種汽車相關的網(wǎng)絡通訊。希望這篇文章能讓大家有所收獲,在遇到更多的網(wǎng)絡通訊問題時能使用到OSI模型這個利器。參考來源:1. What Is the OSI Model,https://www.imperva.com/learn/application-security/osi-model/2. SOME/IP in a Nutshell, https://assets.vector.com/cms/content/events/2019/VH/VIC2019/Track_1_5_Glancing_Ethernet_communication_for_Automotive_4.pdf