LIN 通信概述
以下是基于瑞薩LIN入門手冊的簡要概述
一 LIN 是什么
LIN 是 Local Interconnect Network 的縮寫,是基于 UART/SCI(Universal Asynchronous Receiver-Transmitter / Serial Communication Interface,通用異步收發器/串行通信接口)的低成本串行通信協議。可用于汽車、家電、辦公設備等多種領域。本文主要針對 LIN 在分布式的汽車電子網絡系統中的應用。
1996 年,Volvo和Volcano通訊(VCT)為Volvo S80 系列開發了一種基于UART/SCI的協議,即Volcano Lite。1997 年,Motorola與Volvo和VCT合作,幫助它們改進Volcano Lite協議以滿足各種不同需求(比如無需晶振的從機設備自動同步),并制定可以支持各種半導體產品的開放標準。1998 年 12 月,Audi、BMW、Daimler Chrysler和Volkswagen也加入進來,由此形成了LIN協會(http://www.lin-subbus.org)。開發LIN標準的目的在于適應分層次車內網絡在低端(速度和可靠性要求不高、低成本的場合)的需求。
LIN 的特點
LIN 具有以下特點:
(1) 網絡由一個主機節點和多個從機節點構成。
(2) 使用 LIN 可以大幅度的削減成本,表現在以下方面:
● 開放型規范:規范可以免費從官方網站獲得。
● 硬件成本削減:基于普通 UART/SCI 接口的低成本硬件實現,無需單獨的硬件模塊支持;從機節點無需
高精度時鐘就可以完成自同步;總線為一根單線電纜。
● 裝配成本削減:LIN 采用了工作流(Work Flow)和現成節點(Off-the-shelf Node)的概念,將網絡裝配標準
化,并可通過 LIN 傳輸層進行再配置。
● 縮短軟件開發周期:LIN 協議將 API(Application Programming Interface,應用編程接口)標準化。
(3) 信號傳輸具有確定性,傳播時間可以提前計算出。
(4) LIN 具有可預測的 EMC(ElectroMagnetic Compatibility,電磁兼容性)性能。為了限制
EMI(ElectroMagnetic Interference,電磁干擾)強度,LIN 協議規定最大位速率為 20kbps。
(5) LIN 提供信號處理、配置、識別和診斷四項功能。
LIN 的協議層
LIN 的幀結構
幀(Frame)包含幀頭(Header)和應答(Response)兩部分。主機任務負責發送幀頭;從機任務接收幀頭并對幀頭所包含信息進行解析,然后決定是發送應答,還是接收應答,還是不作任何反應。幀在總線上的傳輸如圖 3.1所示。
幀頭包括同步間隔段、同步段以及PID(Protected Identifier,受保護ID)段,應答包括數據段和校驗和段,如圖 3.2 所示,其中值“0”為顯性電平(Dominant),值“1”為隱性電平(Recessive),總線上實行“線-與”:當總線上有大于等于一個節點發送顯性電平時,總線呈顯性電平;所有的節點都發送隱性電平或不發送信息(不發送任何信息時總線默認呈隱性電平)時,總線才呈現隱性電平,即顯性電平起主導作用。圖中幀間隔為幀之間的間隔;應答間隔為幀頭和應答之間的間隔;字節間間隔包括同步段和受保護ID段之間的間隔、數據段各字節間之間的間隔以及數據段最后一個字節和校驗和段之間的間隔。下面對幀頭和應答的各部分進行詳細說明。
幀的類型
無條件幀(Unconditional Frame)
無條件幀是具有單一發布節點,無論信號是否發生變化,幀頭都被無條件應答的幀。
事件觸發幀(Event Triggered Frame)
事件觸發幀是主機節點在一個幀時隙中查詢各從機節點的信號是否發生變化時使用的幀,當存在多個發布節點時,通過沖突解決進度表來解決沖突。
當從機節點信號發生變化的頻率較低時,主機任務一次次地輪詢各個信號會占用一定的帶寬。為了減小帶寬的占用,引入了事件觸發幀的概念。
偶發幀(Sporadic Frame)
偶發幀是主機節點在同一幀時隙中當自身信號發生變化時向總線啟動發送的幀。當存在多個關聯的應答信號變化時,通過事先設定的優先級來仲裁。
診斷幀(Diagnostic Frame)
診斷幀包括主機請求幀和從機應答幀,主要用于配置、識別和診斷用。主機請求幀(Master Request Frame,MRF),幀 ID = 0x3C,應答部分的發布節點為主機節點;從機應答幀(Slave Response Frame,SRF),幀 ID = 0x3D,應答部分的發布節點為從機節點。數據段規定為 8 個字節,一律采用標準型校驗和。
保留幀(Reserved Frame)
保留幀的幀 ID 為 0x3E 和 0x3F,為將來擴展用。
信號處理、配置、識別和診斷
傳輸層
傳輸層的任務單一,就是充當一個“翻譯官”,把來自診斷服務的消息(Message)“翻譯”成協議層可以處理的PDU (Packet Data Unit,分組數據單元),或者反過來,把協議層收到的 PDU“翻譯”成診斷服務需要的消息。消息到 PDU 的轉換過程稱為拆分(Packing),PDU 到消息的轉換過程稱為重組(Unpacking)。PDU 對應著幀結構的數據段,并通過診斷幀發送或接收。
PDU 結構
為滿足汽車行業的要求,LIN 傳輸層 PDU 的格式與 ISO 制定的基于 CAN 網絡的診斷標準(參照參考資料[9])非常相似(是 ISO 標準的子集)。這種兼容性大大減少了在 CAN 和 LIN 之間轉換數據格式的工作量,降低了對節點計算能力的要求。
從發送格式上,PDU 單元可分為單幀(Single Frame,SF)、首幀(First Frame,FF)和續幀(Consecutive Frames,CF)三種。從發送源上,主機發送請求 PDU,從機發送應答 PDU。
傳輸層通信
應用層發出的消息如果長度不超過單幀的容量,傳輸層會按單幀的格式交給協議層發送。傳輸層收到的單幀也會直接作為消息送往應用層;如果消息長度超過單幀的容量,傳輸層先要把消息拆分成首幀和續幀并排好次序,然后再交給協議層依次發送。反過來,協議層收到的首幀和續幀,傳輸層先要按照接收次序將其重組為消息,最后交給應用層處理。
LIN 傳輸層只能按順序接收續幀。
LIN 傳輸層具備出錯重傳功能。
LIN 應用層
概述
LIN 應用層提供信號處理、配置、識別和診斷四項功能。配置、識別和診斷功能又包含若干項目,稱為服務(Service)。為了區別,每項服務都有固定、唯一的服務代號(Service ID,SID)。
① 信號通過信號攜帶幀通信
② 配置服務通過傳輸層,以單幀的形式通信
③ 識別服務通過傳輸層,以單幀的形式通信
④ 基于信號的診斷服務
⑤ 診斷傳輸層,通過傳輸層通信,需要使用復幀的形式通信
⑥ 用戶自定義的診斷
為便于理解本圖,后文對每項功能都分別進行了詳細描述并提出了工作模型的概念。LIN 應用層的配置、識別和診斷都是針對邏輯節點(Logical Node)的。邏輯節點是能夠對來自主機節點和/或診斷設備的服務請求作出響應的功能實體。為了區別不同的邏輯節點,LIN 定義了 NAD(Node Address for Diagnose,診斷地址)。第 1 章介紹了物理節點(Physical Node)、從機任務和接口(Interface)的概念。對于一個物理節點來說,從機任務和接口對應著實現幀收發的軟件和硬件實體,而邏輯節點則代表了配置、識別和診斷方面的能力。物理節點、從機任務以及接口是一一對應的,但是物理節點可以包括 1 個或者多個邏輯節點。
信號處理功能
信號處理功能是指應用層可以不經過傳輸層,直接從協議層獲取或修改網絡中的信號。這些信號由NCF(Node Capability File,節點性能文件)定義,既可以是工作參數(例如溫度、壓力的測量值、繼電器的開合狀態等),也可以是狀態標志(例如某信號攜帶幀的收發狀態)。
配置功能
LIN 規范規定,每個邏輯節點都應該有 NAD。在網絡運行期間,任意兩個邏輯節點的 NAD 都必須不同,否則就會產生沖突。此外,每個邏輯節點都要能處理帶有某些 PID 的幀。由此可見,NAD 和 PID 分別與邏輯節點建立了一種映射關系,LIN 規范把 NAD 和 PID 的這樣一種組合稱為邏輯節點的配置項(Configuration)。一個邏輯節點可以有一個以上的配置項,但在網絡運行期間,每個邏輯節點只能有一個配置項有效。
配置功能是指 LIN 的主機節點能自動地給所有邏輯節點選擇配置項,消除 NAD 和 PID 分配中存在的沖突,使網絡正常工作。配置功能是確保各節點協調運作的內部功能,包含分配 NAD、分配 PID 等服務。配置功能通過傳輸層完成配置服務。
識別功能
識別功能是指主機節點能夠獲取邏輯節點的信息,例如產品代號等。借助識別功能,主機節點和邏輯節點還可以實現一些自定義的操作。
診斷功能
診斷功能是指 LIN 網絡之外的診斷設備可以直接連接 LIN 的主機節點,或者通過外部的其它網絡(例如ISO11898 定義的 CAN 網絡,參照參考資料[8])連接主機節點,連接后,診斷設備可以按規定的診斷協議(例如ISO15765 規范,參照參考資料[9])與 LIN 的邏輯節點通訊。與配置功能相比,診斷功能是 LIN 網絡作為一個整體對外呈現的可配置、可訪問的屬性。
總結
- 上一篇: 超声波测距仪编程_超声波测距仪程序
- 下一篇: (一)Qt Quick Hello Wo