LIN

维基百科,自由的百科全书

LIN(Local Interconnect Network的簡稱,中譯是區域互聯網路),是應用在汽車內零組件之間通訊的串列网络传输协议。由於汽車上的技術及設備漸漸增加,需要低價的串列網路,而控制器區域網路(CAN)的成本太高,無法在車上的每一個設備中都裝設。歐洲汽車製造商開始使用不同的串列通訊技術,因此出現彼此無法相容的問題。

在1990年代末期,由BMW大众集团奥迪富豪汽車梅賽德斯-賓士這五家車廠開始了LIN Consortium,也有從Volcano汽車集團及摩托罗拉而來的軟體及硬體協助。第一個完全實現的新LIN協定(LIN version 1.3)是在2002年11月發佈。在2003年9月發佈了2.0版,增加了額外的診斷功能。若是配合特製的LIN over DC power line(DC-LIN)收發器,LIN也可以用在汽車車池的電力線通信

  • LIN over DC power line(DC-LIN)的相關標準是ISO/AWI 17987-8[1]
  • ISO技術管理委員會(ISO Technical Management Board,ISO TMB)已指定CAN in Automation英语CAN in Automation為依照ISO 17987的LIN供應商ID的註冊機構。

網路拓樸

LIN是廣播串行網路,其中包括16個設備(一台主站,15台從站)[2][3][4][5]

所有的訊息都是由主站開始,最多會有一台從站回覆有特定識別碼的訊息。主站節點也可能當作一個從站,回應自己發出的訊息。

因為所有的通訊都是由主站開始,不需要有碰撞英语Collision (telecommunications)偵測的方案[6]

主站和從站一般都是用单片机實現,不過為了節省成本、空間或是電源,也可以用特殊的硬體或是特殊應用積體電路來實現。

目前的應用會結合低價的LIN網路及小型感測器來建構小型網路。這些子系統之間可以用骨幹網路連接(在汽車中可能是CAN)[7]

簡介

LIN是低成本的串列通訊協定,可以有效支援車內網路的遠程應用。

LIN特別適用在分散在汽車不同位置的機械式節點,也適用於工業應用。

LIN設計時是和CAN網路互補,組成車內的階層式網路。

LIN Consortium是在1990代末期組成的,組成成員是五家歐洲車廠,以及明導國際(以前的Volcano車輛集團)及飞思卡尔(之前的摩托罗拉,現在已併入恩智浦半导体)。

新的LIN規範中,第一個完全實現的版本是在2002年11月發佈的LIN 1.3版。在2003年9月提出了2.0版,擴充了組態能力,以及額外的診斷機能以及工具介面。


協定的主要特點如下:

  • 單一主站,最多16個從站(沒有總線仲裁的過程)。這是LIN Consortium強調的特點,以達到確定性的時間反應[8]
    • 從站節點位置偵測(Slave Node Position Detection、SNPD),可以在送電後才指定節點的位址[9]
  • 單線通訊,在長度40公尺時,可以到19.2 kbit/s[8][10]。在LIN規範2.2中[9],速率最高可到20 kbit/s。
  • 可確保的延遲時間。
  • 可變長度的資料頁框(2, 4及8位元組)。
  • 可變動的組態。
  • 多播接收的時間同步。設備電路的時脈不需非常準確。不需要晶振(crystal)或是陶瓷振盪器英语ceramic resonator
  • 資料檢查碼以及錯誤檢測。.
  • 可以檢測故障的節點。
  • 以標準UART/SCI(串列通訊介面)為基礎的電路,低成本的方案。
  • 可以建立階層式的網路
  • 工作電壓為12 V[8]

資料是透過可變長度,固定格式的訊息來在網路上傳播。

主站會送出標頭(header)資料,其中包括同步間隔(Synchronization break)信號,之後是同步欄位以及識別符(ID)欄位。從站回應資料頁框(frame),其中包括2個、4個或8個位元組的資料,再加上3個位元組的控制資訊[9]

LIN訊息頁框

訊息包括以下的欄位[9]

  • 同步間隔(Synchronization break)
  • 同步位元組
  • 識別符(ID)位元組
  • 資料位元組
  • 檢查碼位元組

頁框種類

  1. 無條件頁框(Unconditional frame):識別符會在0到59(0x3b)之內。
    會帶有訊號,所有無條件頁框的收聽節點都要接收此頁框,若沒有錯誤的話,其應用程式需處理對應的內容。
  2. 事件驅動頁框(Event-triggered frame):
    其目的是增加LIN節點的反應能力,不需要為了偶爾出現的訊號而用輪詢的方式向各節點確認,消耗網路的頻寬。
    無條件頁框的第一個位元組需和某個事件驅動頁框的保護識別符(PID[11])相同。
    從站只有在其數值變化時才需要回應對應的無條件頁框。若沒有節點回應,該頁框的剩餘時間沒有信號,會忽略該標頭資料。
    若不止一個節點回覆,此頁框時間會出現資料碰撞,主站需處理碰撞的情形,在下一次提出事件驅動頁框前需要先請求所有相關的無條件頁框。
  3. 偶發頁框(Sporadic frame):
    此頁框是在主站有需要時,由主站發出,因此不會有碰撞。
    只有在主站知道某頁框的資料有變化時,才會在對應的頁框時間區間內送出偶發頁框的標頭。
    偶發頁框的發送者需要回應標頭的資料。
  4. 診斷頁框(Diagnostic frame):識別符是60(0x3c)(主站請求頁框)或61(0x3d)(從站回應頁框)。
    其中包括診斷或是組態的資訊,長度8位元組。
    主站在產生診斷頁框的標頭之前,需要先問診斷模組是否應送診斷資料,以及網路上是否應有資訊。
    從站也會接收這些資料,依照其診斷模組的訊息回應資訊,
  5. 自定頁框(User-defined frame):識別符是62(0x3e)。
    可以包括任何資訊。當處理了指定給該頁框的頁框時間區間時,會送出指定頁框的標頭。
  6. 保留頁框(Reserved frame):其識別符是63(0x3f)。
    LIN 2.0 cluster不會使用。

LIN硬體

LIN規範就是為了設計在網路中很低價的硬體節點所開發。LIN設備是以ISO 9191為基礎的低成本、單線網路[12]

以現今的汽車網架構來看,會使用有UART能力,或是有專門LIN硬體的微控制器。

微控制器會產生通訊協定、同位元等LIN通訊需要的所有資料,透過LIN收发器(可能只是電壓轉換,再加上一些機能)

LIN的從站節點越便宜越好,因此其時脈可能不是用石英晶体谐振器或陶瓷谐振器,而是用RC振盪器產生時脈。為了確保LIN頁框內波特率的穩定性,頁框中會有SYNC(同步)的欄位。

LIN通訊協定

LIN主站會依照一個或是幾個事先定義的排程英语I/O scheduling表,在LIN網路上開始傳送或是接收訊息。排程表中至少會包括各訊息開始發送的相對時序。 LIN頁面由兩部份組成:標頭(header)及回應(response)。標頭是由LIN主站送出,回應可能由特定的LIN從站送出,或是由LIN主站本身送出。

LIN是用串列的方式傳送資料,一個位元組中有八個位元,一個起始位元,一個結束位元,無同位元檢查(break欄位沒有起始位元及停止位元)。位元率的範圍最慢到1 kbit/s,最快到20 kbit/s。 在網路上的資料可以分為隱性(recessive,邏輯上的高準位)及顯性(dominant,邏輯上的低準位) 其時間基礎是由LIN主站的穩定時脈來源來決定,最小的單位是1位元時間英语bit time(52 µs @ 19.2 kbit/s)。

LIN協定上,有列出兩種網路上的狀態:睡眠狀態及活躍狀態。在LIN網路上有資料時,所有的LIN節點都進入活躍狀態。在一定時間的逾時時間後,節點會進入睡眠狀態,若有喚醒頁框(WAKEUP frame)時才會回到活躍狀態。 喚醒頁框可以由網路上任何一個節點發起,可以是LIN主站依照其內部時程發起。也可以是LIN從站由其韌體所產生。 在所有節點都活躍之後,主站會繼續下一個識別符的排程。

標頭 (Header)

包括五部份:

間隔(BREAK)
間隔欄位會活化所有的LIN從站,預備接收後續標頭的內容。其欄位包括一個啟始位元以及數個顯性位元,長度至少是11個位元時間,目前使用的標準,其長度是13個位元時間,和基本的資料格式不同。間隔欄位是在主時脈可以和各LIN節點時脈不同時(但差異在一定範圍內時),確保所有接收的LIN節點可以偵測到表示開始通訊的間隔欄位,這不是標準的資料格式,其數值均為0。
同步(SYNC)
同步欄位是標準的資料格式位元組,數值是十六進制的0x55(高位元及低位元輪流變化) 。使用RC振盪器的LIN從站可以用一定數量上昇緣及下降緣的時間差,計算網站上的位元時間(主站的time normal),並且重新計算內部的位元率。
位元組間隔(INTER BYTE SPACE)
位元組間隔是用來調整網路上的 jitter,是LIN規範中可選擇的項目。若啟動的話,所有LIN模組都要支援此一機能。位元組間隔出現在間隔欄位和同步欄位之間、同步欄位和識別符欄位之間、同步欄位和識別符欄位之間、酬載(不考慮通訊協定,實際要傳輸的資料)欄位和檢查碼欄位之間。在酬載欄位的每一個位元組之間也要有位元組間隔。
識別符(IDENTIFIER)
識別符定義一個到多個LIN從站節點要進行的動作。網路設計者需在設計階段實現故障樹的機能。
  • 識別符再加上二位元的檢查位元,即為 受保護的識別符(PID[11])。
回應間隔(RESPONSE SPACE)
是識別符欄位和LIN回應訊息中第一個位元組之間的間隔時間。當特定的LIN頁框(標頭及回應)由LIN主站傳送完畢,LIN主站會用完整的回應間隔間來計算何時要再送出回應資料。若回應是由另外一個LIN從站送出,主站及從站點會在其逾時時間的計算上,各自處理50%的回應間隔。


  • 若識別符(IDENTIFIER)讓一個LIN從站(Slave Node)傳送回應訊息,此識別符稱為Rx識別符。若識別符讓LIN從站送出任務訊息,此識別符稱為Tx識別符。
  • 在一個頁框時間內,只允許一個從站傳送回復資料。
  • 標頭(header)必定由Master Node 發起。

回應

回應是由LIN從站任務產生(可能是從站,也可能是主站的從站任務)[13],分為資料及校验和[9]

資料
回應的從站可以送零個到八個位元組到網路上,資料數量由應用程式設計者決定,對應LIN從站應用程式中相關的資料。
檢查碼(CHECKSUM)
LIN有二種檢查碼模式:一種檢查碼只包括資料欄位(V1.3 之前的規範),又名classic checksum;另一種也包括識別符(V2.0之後的規範),又名enhanced checksum[14]。由應用程式的設計者事先定義要用的檢查碼模式。
  • 診斷訊息(ID=0x3C & 3D)使用classic checksum
  • 回應 Tx識別符的 又稱為 Publisher 或 Sender,發布者,傳送端,寄件者。
  • 回應 Rx識別符的 又稱為 Subscriber 或 Receiver,訂閱者,接收端,收件者。


從站節點位置偵測試(SNPD)或自動定址

從站節點位置偵測試(Slave node position detection, SNPD)或自動定址(autoaddressing)的技術可以偵測LIN網路上各從站節點的位置順序,並給予節點不重覆的節點位址(unique node address、NAD)[15],好處是可以讓同一類或是類似的設備可以直接連接到網路,不需要另外修改程式

限制:

  • 所有需要自動定址的從站,需要在同一條網路線上(若是不需要自動定址的標準從站,接線就不受限制)。
SNPD方法 SNPD方法ID 公司
外部接線菊花鏈(Extra wire daisy chain) 0x01 恩智浦半导体(以前的菲利浦)
總線分流法(Bus shunt method) 0x02 Elmos Semiconductor英语Elmos Semiconductor
保留 0x03 還不確定
保留 0x04 還不確定
保留 0xFF 還不確定

外部接線菊花鏈

外部接線菊花鏈(Extra wire daisy chain,XWDC)的方案中,每一個從站設備需要多提供一個輸入腳D1,以及一個輸出腳D2

  • 第一個SNPD節點的輸入腳D1接到GND,或是接到主站的輸出腳。
  • 第一個SNPD節點的輸出腳D2,接到第二個SNPD節點的輸入腳D1,以及類推。

每一個組態腳Dx(x=1-2)有以下額外的機能來進行位置偵測:

  1. 可以切換的上拉電阻,電阻另一端連接Vbat
  2. 下拉到GND
  3. 有比較器,電壓準位是Vbat/2

總線分流法

總線分流法(Bus shunt method,BSM)的從站設備中,有二個LIN節點

  1. bus_in
  2. bus_out

每一個節點需增加以下電路,進行位置偵測的機能。

  1. 可以切換的上拉電阻。
  2. 可以切換的,從Vbat提供的2 mA電流源。
  3. 分流電阻
  4. 差動放大器
  5. 類比—數位轉換器

在EP 1490772 B1及US 7091876的專利中,有提到BSM的自動定址技術。

LIN的優點

  • 方便使用
  • 元件容易取得
  • 比CAN或其他的通訊網路要便宜
  • 減少線束
  • 可以讓車輛更可靠
  • 網路延伸很容易
  • 不需通訊協定的權利金

LIN的目的不是為了完全取代CAN網路。不過若價格是主要考量,較沒有速度及頻寬上的需求時,LIN是很適合的替代方案。一般來說,LIN會用在車輛中對性能或安全性較不要求的子系統,以下是一些例子。

應用

應用場合 LIN應用的例子
車頂 感測器、光感測器、光線控制、天窗
方向盤 巡航控制、刮水器、方向燈、溫濕度控制、收音機,方向盤鎖
座椅 座椅調整馬達、乘員感測器、控制面板
引擎 感測器、小馬達、冷卻風扇馬達
溫濕度 小型馬達、控制面板
後視鏡、中控ECU、後視鏡開關、車窗升降器、座椅控制開關、門鎖
照明 窗台板的RGB LED照明

位址

LIN網路中的位址是透過NAD(Node ADdress、節點位址)來實現,NAD是PID(protected identifier、受保護識別碼[11])的一部份。NAD的值有7位元,其範圍從1到127 (0x7F)

開發工具

在開發LIN網路或是除錯時,硬體訊號的檢查格外的重要。逻辑分析仪通訊分析儀英语bus analyzer可以搜集、分析、解碼通訊訊號並加以儲存,方便開發及除錯使用。

相關條目

參考資料

  1. ^ "ISO/AWI 17987-8"页面存档备份,存于互联网档案馆
  2. ^ Mary Tamar Tan, Brian Bailey, Han Lin. "Microchip AN2059: LIN Basics and Implementation of the MCC LIN Stack Library on 8-Bit PIC Microcontrollers"页面存档备份,存于互联网档案馆).
  3. ^ "ATAN0049: Two-wire LIN Networking"页面存档备份,存于互联网档案馆).
  4. ^ Steve Winder. "Power Supplies for LED Driving"页面存档备份,存于互联网档案馆). p. 284
  5. ^ "The LIN Short Story"页面存档备份,存于互联网档案馆).
  6. ^ Lin Concept. LIN Overview. LIN Administration. [28 October 2011]. (原始内容存档于2011-10-05). 
  7. ^ Target Applications. LIN Overview. LIN Administration. [28 October 2011]. (原始内容存档于2011-10-05). 
  8. ^ 8.0 8.1 8.2 Clemson Vehicular Electronics Laboratory: AUTOMOTIVE BUSES. [2009-01-14]. (原始内容存档于2012-04-14).  090114 cvel.clemson.edu
  9. ^ 9.0 9.1 9.2 9.3 9.4 LIN Specification Package Rev. 2.2a. [2020-04-22]. (原始内容存档于2008-04-26). 
  10. ^ LIN Bus Description, Automotive Bus, Local Interconnect Network. [2020-04-22]. (原始内容存档于2021-01-05).  090114 interfacebus.com
  11. ^ 11.0 11.1 11.2 LIN PID 線上計算機. [2023-12-06]. (原始内容存档于2021-04-17). 
  12. ^ LIN Technical Overview. [2020-04-22]. (原始内容存档于2011-07-19). 
  13. ^ LIN 通訊流程 動畫圖示(按▶播放). [2023-12-06]. (原始内容存档于2021-09-25). 
  14. ^ LIN CRC 線上計算機(按 ↵ 計算). [2023-12-06]. (原始内容存档于2021-04-17). 
  15. ^ Anand Gopalan, Akeem Whitehead. "Automatic Slave Node Position Detection (SNPD)".

外部連結