ISO11898主要定義瞭物理層和數據鏈路層,對比標準OSI通信模型,物理層和數據鏈路層屬於最底層的兩個層級。在詳細講ISO11898-1之前先來瞭解一下汽車CAN通信網絡中常用的幾個協議都處於OSI模型的什麼位置。
圖1 OSI模型
物理層定義瞭比特流的一些性質及電氣特性,不在本文討論范圍內故跳過。
數據鏈路層(Data Link Layer)
數據鏈路層(Data Link Layer)的作用主要是將物理層的數據比特流封裝成幀,並控制幀在物理信道上的傳輸,還包含檢錯、調節傳送速率等功能。
在ISO11898-1中,將數據鏈路層(Data Link Layer)分為兩個子層:邏輯鏈路控制(Logical Link Control,LLC)和媒體訪問控制(Medium Access Control,MAC)。
邏輯鏈路控制(LLC):數據鏈路層(Data Link Layer)的上層部分,DLL服務通過LLC為網絡層提供統一接口。
媒體訪問控制(Medium Access Control,MAC):定義瞭數據幀如何在介質上進行傳輸,我們知道CAN屬於廣播式的總線,MAC就分配瞭幀在信道上的使用權。
圖2 數據鏈路層(DLL)示意圖
每一層都有都有各自定義的PDU(Protocol Data Uint),同層級之間的通信通過交換PDU來實現,兩個上下層級通過SDU(Service Data Uint)來進行交互。
圖3 層級間交互示意圖
CAN的特點
1.基於多主優先級的總線訪問
總線空閑時,任何節點都可以發送數據。當有多個節點同時發送時,就要根據ID值按位進行仲裁(ID值越小優先級越高),優先級高的獲得總線訪問權。
2.非破壞性仲裁機制
3.廣播型
節點通過本地過濾接收自己所需的數據,不需要的就過濾掉。
4.配置靈活
可隨意增減節點,不影響軟硬件。節點數量理論上無限制,實際受電氣負載限制。
5.系統范圍內數據一致性
6.錯誤檢測
7.自動重傳仲裁或錯誤期間被破壞的數據
8.區分臨時錯誤和永久性故障節點,自動關閉有缺陷節點
MAC子層
- 數據的打包/拆包
- 幀編碼(填充/去填充)
- 錯誤檢測及通知
- 串並行轉換
MAC層有3種服務:
- 數據幀傳輸
- 遠程幀傳輸
- 過載幀傳輸
MAC層幀結構:
1.數據幀
數據幀將數據從發送器傳輸到接收器。
標準格式:
圖4 數據幀標準格式
擴展格式:
圖5 數據幀擴展格式
(1)幀起始
幀起始(SOF)標志數據幀和遠程幀的起始,僅有一個顯性位組成(0)。
(2)仲裁域
標準格式中,仲裁域由11位標識符和RTR位組成;擴展格式中,仲裁域由29位標識符和SRR位、IDE位、RTR位組成。
標識符(Identifier):在擴展幀中,有11位基本ID和18位擴展ID。
RTR位(Remote Transmission Request Bit):0表示數據幀,1表示遠程幀。
SRR位(Subtitue Remote Request Bit):SRR位為0,當標準幀與擴展幀發生沖突,而擴展幀的的基本ID與標準幀的ID相同時,標準幀優先於擴展幀。
IDE位(Identifier Extension Bit):擴展格式裡為隱性(1)。
(3)控制域
IDE位與r0組成保留位。
DLC有4位,表示數據長度,0 ~ 8 個字節。
(4)數據域
0 ~ 8 個字節的數據。
(5)循環冗餘碼(CRC)域
CRC序列裡存計算出的CRC校驗值。
CRC界定符包含1個隱性位(1)。
(6)應答場(ACK)
應答間隙:在發送器隱性位寫一個顯性位(0)表示收到匹配到正確CRC。
應答界定符:1位隱性位(1)。
(7)幀結束
幀結束(EOF)由7個隱性位(1)組成。
2.遠程幀
節點發出遠程幀,請求具有相同ID的數據幀。
遠程幀也分標準格式和擴展格式,RTR位為1表示遠程幀,相比數據幀少瞭數據域。
標準格式:
圖6 遠程幀標準格式
擴展格式:
圖7 遠程幀擴展格式
3.錯誤幀
任何節點檢測到總線錯誤就發出錯誤幀。
4.過載幀
過載幀用在相鄰數據幀或者遠程幀之間提供附加的延時。
5.幀間隔
LLC子層
- 本地過濾
- 過載通知
- 錯誤恢復管理
LLC層有2種服務:
- 數據幀傳輸
- 遠程幀傳輸
LLC層幀結構:
1.數據幀
圖8 數據幀結構
2.遠程幀
圖9 遠程幀結構
MAC層對幀優先級進行瞭仲裁發送給LLC層,LLC層這時候隻需把幀繼續向網絡層傳輸,所以幀的結構也發生瞭變化。
以上均是筆者自己的理解,如有錯誤歡迎指正。
-
扫码下载安卓APP
-
微信扫一扫关注我们微信扫一扫打开小程序手Q扫一扫打开小程序
-
返回顶部