LIN协议学习总结
目錄
- 一、LIN總線應用場景
- 二、LIN總線特點
- 三、LIN總線詳解
- 1、幀的結構
- 2、幀類型
- 3、調度表
- 4、網絡管理
一、LIN總線應用場景
? LIN總線在汽車應用方面主要應用于座位、車門與天窗模塊、開關面板汽車方向盤、乘員舒適系統等外圍ECU實時性要求不高或不需要精確容錯的場景。
二、LIN總線特點
-
串行通信(線間干擾小,節省線束,傳輸距離長)
-
物理層基于ISO9141
-
單線傳輸(總線電壓12V)
-
最高傳輸速率20kbps(滿足車身大部分應用需求)
-
單主多從式結構(不存在沖突,無需仲裁)
-
基于UART/SCI接口(幾乎所有MCU都具備LIN總線硬件基礎)
-
從節點無需晶振或陶瓷振蕩器就可以實現同步(利用報頭里的同步場實現同步)
-
可計算的信號傳輸的延遲時間(網絡通信可預期)
-
可靈活增加或減少從節點(無需改變其他節點或硬件電路)
-
一條總線最多可連接16個節點
LIN網絡拓撲結構:
特點:
- 一個LIN網絡由一個主任務,若干個從任務組成
- 主節點既有主任務又有從任務
- 從節點只包含從任務
- 主任務負責決定總線上的報文,從任務提供每一幀的數據
LIN報文幀:
通信原理:主任務發送報頭,從任務用響應來補充報頭形成完整報文
系統靈活性:能自由增減從節點,不需要改變其他從節點的軟硬件
報文傳輸:報文的內容有ID來定義(與CAN相似)
廣播:所有節點都能夠同時地接受和響應總線上的幀
三、LIN總線詳解
1、幀的結構
字節間隔位于每個字節之間,響應間隔位于報頭與響應之間:
- 留給MCU足夠的處理時間
- 幀長度可能增長
- 最小值可以是0
1)字節場(Byte Field)
- 基于SCI的通信格式
- 發送一個字節需要10個位時間(TBIT)
2)間隔場(Break Field)
- 表示一幀報文的起始,由主節點發出
- 間隔信號至少由13個顯性位組成,間隔界定符至少由1個隱形位組成
- 間隔場是唯一一個不符合字節場格式的場
- 從節點需要檢測到至少11個顯性位才認為是間隔信號
3)同步場(Sync Break Field)
- 確保所有從節點使用與主節點相同的波特率發送和接收數據
4)標識符場(Identifier Field)
- 幀ID的范圍從0到63(0x3f)
- 奇偶校驗符(Parity)P0,P1:
5)數據場(Data Field)
- 數據場長度1到8個字節
- 低字節先發,低位先發
- 如果某一信號長度超過1個字節,采用低位在前的方式發送(小端)
6)校驗和場(Checksum Field)
- 用于校驗接收的數據是否正確(1個字節)
- 經典校驗:只校驗數據場部分
- 增強校驗:校驗數據場部分+ID部分
- 標識符為0x3C(60)和0x3D(61)的幀只能使用經典校驗
2、幀類型
1)無條件幀(Unconditional Frame)
? 無條件幀是具有單一發布節點,無論信號是否發生變化,幀頭都被無條件應答的幀。 無條件幀在主機任務分配給它的固定的幀時隙中傳輸。總線上一旦有幀頭發送出去,必須有從機任務作應答(即無條件發送應答),
特點:
- 標識符(ID)為0-59(0x00-0x3b)
- 標準LIN幀類型,用于周期通信
- 主任務發出報頭,相應的從任務對報頭提供響應幀,所有節點接收
三種情況:
2)事件觸發幀(Event Triggered Frame)
? 事件觸發幀是主機節點在一個幀時隙中查詢各從機節點的信號是否發生變化時使用的幀,當存在多個發布節點時,通過沖突解決進度表來解決沖突。事件觸發幀可以增強LIN總線的響應能力,避免為了很少發生的事件,而對從節點進行輪詢,從而浪費了大量的帶寬。
特點:
- 事件觸發幀與一個或幾個無條件幀相關聯
- 當其中的某個無條件幀有信號被更新時,才發送數據
- 多個無條件幀沖突時,利用沖突解決調度表解決
? 事件觸發幀的典型應用就是輪詢四個車門的開關情況。與其利用無條件幀每個車門輪詢一遍,不如同時對四個車門進行詢問,如果其中一個車門打開了(事件發生),該車門要對詢問作應答,即事件觸發的含義。這樣做可以減小帶寬,但同時會導致兩種現象,其一就是沒有車門被打開,即無節點應答——事件觸發幀允許一幀中只有幀頭無應答;另外一種情況就是沖突,即同時有大于等于兩個車門被打開,對該問題同時作答——事件觸發幀允許兩個以上的節點對幀頭作應答而不視為錯誤。當發生沖突時,主機節點需要重新作輪詢,這樣會增加一些響應時間,但由于事件觸發幀本身就用來處理低概率事件,總的來說還是節省了帶寬。
3)偶發幀(Sporadic Frame)
? 偶發幀是主機節點在同一幀時隙中當自身信號發生變化時向總線啟動發送的幀。當存在多個關聯的應答信號變化時,通過事先設定的優先級來仲裁。偶發幀能夠為進度表增加一些動態特性——當主機節點的信號發生變化時才有通信發生。事件觸發幀和偶發幀反映了幀在不同時機(信號變化或未發生變化)的傳輸狀況,引入它們的目的是為了增加通信的靈活性。
特點:
- 關聯的無條件幀沒有信號變化,該間隙沉默,主機節點無需發幀頭
- 關聯的無條件幀信號變化時,發送該關聯無條件幀應答部分
- 若兩個及以上關聯的無條件幀信號發生變化,按照事先規定的優先級進行發送
4)診斷幀(Diagnostic Frame)
? 診斷幀包括主機請求幀和從機應答幀,主要用于配置、識別和診斷用。主請求幀:60(0x3c),從響應幀:61(0x3d)。
傳輸方式:
? 主節點發送主請求幀報頭和診斷服務,然后再發送從相應幀報頭,等待從節點根據診斷服務發送響應。
5)保留幀(Reserved Frame)
? 保留幀的幀ID為0x3E和0x3F,為將來擴展用。
3、調度表
作用:
- 負責調度網絡各報文發送的順序
- 為每幀報文分配發送時隙(slot)(發送時隙:報文可以被發送的時間,不同報文的發送時隙可能不同)
- 調度表在網絡系統設計階段確定
- 調度表使得LIN通信具有可預測性
切換調度表:
? 主任務可以擁有多個調度表,并在不同的調度表之間進行切換,該處理方式增加通信的靈活性。
4、網絡管理
1)初始化
? 復位或者喚醒時先進入初始化狀態,初始化時間小于100ms,初始化結束后進入工作模式。
2)睡眠
? 主節點發送一幀ID為60(0x3C),第一個字節為0x00其余全為0xFF的主請求幀使處于工作模式的節點進入睡眠。
? 從節點接收到睡眠指令后,也可以選擇不進入睡眠狀態而繼續工作,這根據應用層程序而定。
? 當總線空閑4到10秒的時候,所有從節點自動進入睡眠狀態。(空閑的定義是沒有顯性位和隱形位之間的轉換)
3)喚醒
? 在一個處于睡眠狀態的LIN網絡中,任何一個節點都可以發送喚醒信號。
? 喚醒信號是一個250us(在20Kbit/s波特率)到5ms(在1Kbit/s波特率)的顯性電平(5個位)。
? 每一個節點都需要檢測喚醒信號,當檢測到喚醒信號之后,在100ms內完成初始化工作。
? 當從節點發出喚醒信號之后150ms,主節點仍未發送報頭時,從節點可以再次發送喚醒信號。當連續發送了3次喚醒信號之后如果主節點仍未發送報頭,從節點要至少等待1.5秒以后才可以發送第四次喚醒信號。
總結
- 上一篇: 【SQL】格式为yyyymmddhh:m
- 下一篇: 三极管的三个工作状态和作用