LIN（Local Interconnect Network 的簡稱，中譯是 區域網際網路路），是應用在汽車內零元件之間通訊的串列網路傳輸協議。由於汽車上的技術及裝置漸漸增加，需要低價的串列網路，而控制器區域網路（CAN）的成本太高，無法在車上的每一個裝置中都裝設。歐洲汽車製造商開始使用不同的串列通訊技術，因此出現彼此無法相容的問題。 在 1990 年代末期，由 BMW、大眾集團、奧迪、富豪汽車及梅賽德斯 賓士這五家車廠開始了 LIN Consortium，也有從 Volcano 汽車集團及摩托羅拉而來的軟體及硬體協助。第一個完全實現的新 LIN 協定（LIN version 13）是在 2002 年 11 月釋出。在 2003 年 9 月釋出了 20 版，增加了額外的診斷功能。若是配合特製的 LIN over DC power line（DCLIN）收發器，LIN 也可以用在汽車車池的電力線通訊。 LIN over DC power line（DCLIN）的相關標準是 ISOAWI 179878ISOAWI 179878 。 ISO 技術管理委員會（ISO Technical Management Board，ISO TMB）已指定為依照 ISO 17987 的 LIN 供應商 ID 的序號產生器構。 網路拓樸 LIN 是廣播序列網路，其中包括 16 個裝置（一臺主站，15 臺從站）Mary Tamar Tan Brian Bailey Han Lin Microchip AN2059 LIN Basics and Implementation of the MCC LIN Stack Library on 8Bit PIC Microcontrollers ATAN0049 Twowire LIN Networking Steve Winder Power Supplies for LED Driving p 284The LIN Short Story 所有的訊息都是由主站開始，最多會有一臺從站回覆有特定識別碼的訊息。主站節點也可能當作一個從站，回應自己發出的訊息。 因為所有的通訊都是由主站開始，不需要有偵測的方案。 主站和從站一般都是用微控制器實現，不過為了節省成本、空間或是電源，也可以用特殊的硬體或是特殊應用積體電路來實現。 目前的應用會結合低價的 LIN 網路及小型感測器來建構小型網路。這些子系統之間可以用骨幹網路連線（在汽車中可能是 CAN）。 簡介 LIN 是低成本的串列通訊協定，可以有效支援車內網路的遠端應用。 LIN 特別適用在分散在汽車不同位置的機械式節點，也適用於工業應用。 LIN 設計時是和 CAN 網路互補，組成車內的階層式網路。 LIN Consortium 是在 1990 代末期組成的，組成成員是五家歐洲車廠，以及明導國際（以前的 Volcano 車輛集團）及飛思卡爾（之前的摩托羅拉，現在已併入恩智浦半導體）。 新的 LIN 規範中，第一個完全實現的版本是在 2002 年 11 月釋出的 LIN 13 版。在 2003 年 9 月提出了 20 版，擴充了組態能力，以及額外的診斷機能以及工具介面。 協定的主要特點如下： 單一主站，最多 16 個從站（沒有匯流排仲裁的過程）。這是 LIN Consortium 強調的特點，以達到確定性的時間反應。 從站節點位置偵測（Slave Node Position Detection、SNPD），可以在送電後才指定節點的位址。 單線通訊，在長度 40 公尺時，可以到 192 kbits 090114 cvelclemsonedu 090114 interfacebuscom。在 LIN 規範 22 中，速率最高可到 20 kbits。 可確保的延遲時間。 可變長度的資料頁框（2 4 及 8 位元組）。 可變動的組態。 多播接收的時間同步。裝置電路的時脈不需非常準確。不需要晶振（crystal）或是。 資料檢查碼以及錯誤檢測。 可以檢測故障的節點。 以標準 UARTSCI（串列通訊介面）為基礎的電路，低成本的方案。 可以建立階層式的網路 工作電壓為 12 V。 資料是透過可變長度，固定格式的訊息來在網路上傳播。 主站會送出標頭（header）資料，其中包括同步間隔（Synchronization break）訊號，之後是同步欄位以及識別符（ID）欄位。從站回應資料頁框（frame），其中包括 2 個、4 個或 8 個位元組的資料，再加上 3 個位元組的控制資訊。 LIN 訊息頁框 訊息包括以下的欄位： 同步間隔（Synchronization break） 同步位元組 識別符（ID）位元組 資料位元組 檢查碼位元組 頁框種類 無條件頁框（Unconditional frame）：識別符會在 0 到 59 0x3b 之內。BR 會帶有訊號，所有無條件頁框的收聽節點都要接收此頁框，若沒有錯誤的話，其應用程式需處理對應的內容。 事件驅動頁框（Eventtriggered frame）：BR 其目的是增加 LIN 節點的反應能力，不需要為了偶爾出現的訊號而用輪詢的方式向各節點確認，消耗網路的頻寬。BR 無條件頁框的第一個位元組需和某個事件驅動頁框的保護識別符 PID 相同。BR 從站只有在其數值變化時才需要回應對應的無條件頁框。若沒有節點回應，該頁框的剩餘時間沒有訊號，會忽略該標頭資料。BR 若不止一個節點回覆，此頁框時間會出現資料碰撞，主站需處理碰撞的情形，在下一次提出事件驅動頁框前需要先請求所有相關的無條件頁框。 偶發頁框（Sporadic frame）：BR 此頁框是在主站有需要時，由主站發出，因此不會有碰撞。BR 只有在主站知道某頁框的資料有變化時，才會在對應的頁框時間區間內送出偶發頁框的標頭。BR 偶發頁框的傳送者需要回應標頭的資料。 診斷頁框（Diagnostic frame）：識別符是 60 0x3c（主站請求頁框）或 61 0x3d（從站回應頁框）。BR 其中包括診斷或是組態的資訊，長度 8 位元組。BR 主站在產生診斷頁框的標頭之前，需要先問診斷模組是否應送診斷資料，以及網路上是否應有資訊。BR 從站也會接收這些資料，依照其診斷模組的訊息回應資訊， 自定頁框（Userdefined frame）：識別符是 62 0x3e。BR 可以包括任何資訊。當處理了指定給該頁框的頁框時間區間時，會送出指定頁框的標頭。 保留頁框（Reserved frame）：其識別符是 63 0x3f。BR LIN 20 cluster 不會使用。 LIN 硬體 LIN 規範就是為了設計在網路中很低價的硬體節點所開發。LIN 裝置是以 ISO 9191 為基礎的低成本、單線網路。 以現今的汽車網架構來看，會使用有 UART 能力，或是有專門 LIN 硬體的微控制器。 微控制器會產生通訊協定、同位元等 LIN 通訊需要的所有資料，透過 LIN 收發器（可能只是電壓轉換，再加上一些機能） LIN 的從站節點越便宜越好，因此其時脈可能不是用石英晶體諧振器或陶瓷諧振器，而是用 RC 振盪器產生時脈。為了確保 LIN 頁框內波特率的穩定性，頁框中會有 SYNC（同步）的欄位。 LIN 通訊協定 LIN 主站會依照一個或是幾個事先定義的表，在 LIN 網路上開始傳送或是接收訊息。排程表中至少會包括各訊息開始傳送的相對時序。 LIN 頁面由兩部份組成：標頭（header）及回應（response）。標頭是由 LIN 主站送出，回應可能由特定的 LIN 從站送出，或是由 LIN 主站本身送出。 LIN 是用串列的方式傳送資料，一個位元組中有八個位元，一個起始位元，一個結束位元，無同位元檢查（break 欄位沒有起始位元及停止位元。位元率的範圍最慢到 1 kbits，最快到 20 kbits。 在網路上的資料可以分為隱性 recessive，邏輯上的高準位 及顯性 dominant，邏輯上的低準位 其時間基礎是由 LIN 主站的穩定時脈來源來決定，最小的單位是 1（52 µs 192 kbits）。 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 ）。 回應間隔（RESPONSE SPACE） 是識別符欄位和 LIN 回應訊息中第一個位元組之間的間隔時間。當特定的 LIN 頁框 標頭及回應 由 LIN 主站傳送完畢，LIN 主站會用完整的回應間隔間來計算何時要再送出回應資料。若回應是由另外一個 LIN 從站送出，主站及從站點會在其逾時時間的計算上，各自處理 50 的回應間隔。 若識別符（IDENTIFIER）讓一個 LIN 從站 Slave Node 傳送回應訊息，此識別符稱為 Rx 識別符。若識別符讓 LIN 從站送出任務訊息，此識別符稱為 Tx 識別符。 在一個頁框時間內，只允許一個從站傳送回復資料。 ID0x3c 為特定用途，請參考 頁框種類 說明。 標頭（header）必定由 Master Node 發起。 回應 回應是由 LIN 從站任務產生（可能是從站，也可能是主站的從站任務），分為資料及校驗和。 資料：回應的從站可以送零個到八個位元組到網路上，資料數量由應用程式設計者決定，對應 LIN 從站應用程式中相關的資料。 檢查碼（CHECKSUM） LIN 有二種檢查碼模式：一種檢查碼只包括資料欄位（V13 之前的規範），又名 classic checksum；另一種也包括識別符（V20 之後的規範，又名 enhanced checksum。由應用程式的設計者事先定義要用的檢查碼模式。 診斷訊息 ID0x3C 3D 使用 classic checksum 回應 Tx 識別符的 又稱為 Publisher 或 Sender，發布者，傳送端，寄件者。 回應 Rx 識別符的 又稱為 Subscriber 或 Receiver，訂閱者，接收端，收件者。 從站節點位置偵測試（SNPD）或自動定址 從站節點位置偵測試（Slave node position detection SNPD）或自動定址（autoaddressing）的技術可以偵測 LIN 網路上各從站節點的位置順序，並給予節點不重覆的節點位址（unique node address、NAD） Anand Gopalan Akeem Whitehead Automatic Slave Node Position Detection SNPD ，好處是可以讓同一類或是類似的裝置可以直接連線到網路，不需要另外修改程式 限制： 所有需要自動定址的從站，需要在同一條網路線上（若是不需要自動定址的標準從站，接線就不受限制）。 SNPD 方法 SNPD 方法 ID 公司 外部接線菊花鏈（Extra wire daisy chain） 0x01 恩智浦半導體（以前的菲利浦） 匯流排分流法（Bus shunt method） 0x02 保留 0x03 還不確定 保留 0x04 還不確定 保留 0xFF 還不確定 外部接線菊花鏈 外部接線菊花鏈（Extra wire daisy chain，XWDC）的方案中，每一個從站裝置需要多提供一個輸入腳 D1，以及一個輸出腳 D2。 第一個 SNPD 節點的輸入腳 D1 接到 GND，或是接到主站的輸出腳。 第一個 SNPD 節點的輸出腳 D2，接到第二個 SNPD 節點的輸入腳 D1，以及類推。 每一個組態腳 Dx（x12）有以下額外的機能來進行位置偵測： 可以切換的上拉電阻，電阻另一端連線 Vbat 下拉到 GND 有比較器，電壓準位是 Vbat2 匯流排分流法 匯流排分流法（Bus shunt method，BSM）的從站裝置中，有二個 LIN 節點 bus_in bus_out 每一個節點需增加以下電路，進行位置偵測的機能。 可以切換的上拉電阻。 可以切換的，從 Vbat 提供的 2 mA 電流源。 分流電阻 差動放大器 類比 數位轉換器 在 EP 1490772 B1 及 US 7091876 的專利中，有提到 BSM 的自動定址技術。 LIN 的優點 方便使用 元件容易取得 比 CAN 或其他的通訊網路要便宜 減少線束 可以讓車輛更可靠 網路延伸很容易 不需通訊協定的權利金 LIN 的目的不是為了完全取代 CAN 網路。不過若價格是主要考量，較沒有速度及頻寬上的需求時，LIN 是很適合的替代方案。一般來說，LIN 會用在車輛中對效能或安全性較不要求的子系統，以下是一些例子。 應用 應用場合 LIN 應用的例子 車頂 感測器、光感測器、光線控制、天窗 方向盤 巡航控制、刮水器、方向燈、溫濕度控制、收音機，方向盤鎖 座椅 座椅調整馬達、乘員感測器、控制面板 引擎 感測器、小馬達、冷卻風扇馬達 溫濕度 小型馬達、控制面板 門 後視鏡、中控 ECU、後視鏡開關、車窗升降器、座椅控制開關、門鎖 照明 窗臺板的 RGB LED 照明 位址 LIN 網路中的位址是透過 NAD（Node ADdress、節點位址）來實現，NAD 是 PID（protected identifier、受保護識別碼）的一部份。NAD 的值有 7 位元，其範圍從 1 到 127 0x7F 開發工具 在開發 LIN 網路或是除錯時，硬體訊號的檢查格外的重要。邏輯分析儀及可以蒐集、分析、解碼通訊訊號並加以儲存，方便開發及除錯使用。 相關條目 （LINCP） 參考資料 外部連結 LIN Consortium it is not longer available because the latest LIN specification 22A is being transcribed to the ISO International Organization for Standardization as part of the process to be accepted as ISO standard ISO 17987 Part 17 LIN Supplier ID Registration Authority Registration Authority for the LIN Supplier ID standardized in the ISO 17987 series Deep dive LIN training course with handson examples CANLIN Training Brief CANLIN Background Information Chinese Article about a free open hardwaresoftware implementation of the LIN protocol An open source Arduino based LIN protocol analyzer Open source Arduino based platform with LIN connectivity A free online LIN checksum calculator Category 序列匯流排