LIN总线知识基础
LIN(Local Interconnect Network)總線,即本地互聯(lián)網(wǎng)是一種通信網(wǎng)絡(luò)協(xié)議,它是一種單線串行網(wǎng)絡(luò)協(xié)議,在40米長的總線上支持高達19.2Kbit/s的通信,速度為20bit/s。雖然了解了LIN總線這些規(guī)格后,人們可能會意識到CAN總線的強大,但LIN總線的低速也正是它在通信網(wǎng)絡(luò)協(xié)議世界中存在的原因。LIN總線滿足了對具有相當?shù)偷乃俣群偷蛶捯蟮慕M件的低成本選擇的需要。實際上,CAN總線如果用于汽車的每一個部件,成本會很高。因此,LIN作為一種低成本的替代方案,可以在車輛的大部分機電部件之間進行通信。
通常情況下,不影響車輛性能的部件會使用LIN總線進行通信,它主要是由五家汽車制造商開發(fā)的;即寶馬、大眾集團、奧迪、沃爾沃汽車、梅賽德斯-奔馳),網(wǎng)絡(luò)和硬件等技術(shù)由Volcano汽車集團和摩托羅拉提供。LIN 1.3版是新LIN規(guī)范的第一個完全實施的版本(2002年11月),于2003年9月又推出2.0版,擴大了配置能力,規(guī)定了重要的額外診斷功能和工具接口等。
LIN總線的特點
有許多功能增加了 LIN 總線的普及,比如:
??比其他協(xié)議的成本低
??減少線束
??使用可靠
??配置靈活
??觸發(fā)調(diào)度時間較少
??損失更少
??延遲時間的準確性
??錯誤檢測和校驗
??節(jié)點低廉
??不需要協(xié)議許可
??支持睡眠和喚醒模式
??分層網(wǎng)絡(luò)的可變使能器
??工作電壓為12V[8]
??數(shù)據(jù)幀的長度(2、4和8字節(jié))
LIN總線工作原理
LIN 僅使用一根線(單線總線), 在這樣一個網(wǎng)絡(luò)上,可以容納 16 個節(jié)點。16 個節(jié)點中的一個充當“主節(jié)點”,其他節(jié)點自動充當“從節(jié)點”;與純粹主-主設(shè)置的 CAN 不同,LIN 是典型的主-從配置,其中一個節(jié)點傳遞指令或命令,另一個跟隨。這里可以有1到15個從屬設(shè)備,主設(shè)備同時包含一個主任務(wù)和一個從屬任務(wù)。主機和從機通常是微控制器。車輛內(nèi)部的通信網(wǎng)絡(luò)是 CAN 和 LIN 總線的協(xié)作, LIN 總線用于車身電子,CAN 用于主流動力總成和車身通信。在 LIN 中,各子系統(tǒng)可以通過使用 CAN 總線的骨干網(wǎng)絡(luò)連接。
許多組件可以使用LIN總線進行連接。而速度和成本是使用CAN或LIN的重要決定因素。
LIN可以使用標準的串行通用異步接收/發(fā)送器(嵌入到大多數(shù)現(xiàn)代低成本的8位微控制器中),而且相對來說更為低廉,其中CAN服務(wù)于高速且容錯率低的,并在5V差分總線上運行;而LIN在12V單線總線上滿足低速、低帶寬的要求。
幀結(jié)構(gòu):數(shù)據(jù)以固定格式的信息(可選擇長度)在總線上傳輸。主站任務(wù)傳送一個報頭,包括一個中斷信號,然后是同步和標識符字段。每當有請求時,從站都會以信息(以包含 2、4 和 8 個數(shù)據(jù)字節(jié)以及 3 個字節(jié)的控制信息的數(shù)據(jù)幀的形式)進行響應(yīng)。從屬設(shè)備不會自己進行通信;只有主站可以使它們進行通信。所有的消息都是由主站發(fā)起的,最多只有一個從站對給定的消息標識符進行回復(fù)。如果從屬任務(wù)需要發(fā)布響應(yīng),它將向總線傳輸1到8個數(shù)據(jù)字節(jié),然后是一個校驗字節(jié)。主節(jié)點也可以通過回復(fù)其消息來充當從節(jié)點。由于主節(jié)點發(fā)起了所有的通信,因此沒有必要實施沖突檢測。
LIN報文幀分為兩個主要部分,即??
??“報文幀頭 "總是只由主節(jié)點傳送,由中斷、同步(同步)和標識符字段組成。
??“報文響應(yīng)”可由主節(jié)點和從節(jié)點傳輸,由數(shù)據(jù)和校驗和字段組成。
Break 中斷: 標志著幀的開始,用來使所有的從站都能收聽到標題中即將出現(xiàn)的部分;由 13 位(顯性位)和 1 位(隱性)中斷定界符(十六進制值 0X00)組成。
Sync 同步:它允許從屬設(shè)備調(diào)整其內(nèi)部波特率以與總線同步,通過允許執(zhí)行自動波特率檢測的從屬設(shè)備來測量波特率的周期(十六進制值 0X55)。
Identifier 標識符:該字段為每條消息提供標識,并指定網(wǎng)絡(luò)中的哪些節(jié)點需要接收或響應(yīng)每次傳輸。所有從節(jié)點都偵聽 ID 字段并驗證它們的奇偶,以確定它們是否必須發(fā)送或接收特定標識符(低六位包含原始 ID,高兩位包含奇偶性)。
LIN總線總共提供64個ID
| ID 0-59 | 用于攜帶信號的數(shù)據(jù)幀 |
| ID 60-61 | 用于攜帶診斷數(shù)據(jù) |
| ID 62 | 保留給用戶定義的擴展 |
| ID 63 | 保留給未來的協(xié)議增強功能 |
響應(yīng)空間:LIN幀的ID字段和第一個數(shù)據(jù)字節(jié)消息響應(yīng)部分之間的時間間隔。當一個特定的 LIN 幀由 LIN 主節(jié)點完整傳輸時,包括一個報頭和一個響應(yīng),它使用整個響應(yīng)空間來計算在發(fā)送報頭之后何時發(fā)送響應(yīng)。如果 LIN 幀的響應(yīng)部分來自物理上不同的從節(jié)點,則每個節(jié)點(主節(jié)點和從節(jié)點)在其超時計算中使用 50% 的響應(yīng)空間時間。
數(shù)據(jù):標志著信息響應(yīng)的開始。它由一個LIN從站作為響應(yīng)傳送到網(wǎng)絡(luò)上,形式為1到8個字節(jié)的有效載荷數(shù)據(jù)字節(jié)。
校驗和:?LIN總線定義了使用兩種校驗算法中的一種來計算八位校驗和字段中的值。傳統(tǒng)的校驗算法是單獨計算數(shù)據(jù)字節(jié)的總和,而增強型校驗和是通過計算數(shù)據(jù)字節(jié)和受保護的ID的總和。
LIN總線的高級幀類型:根據(jù)幀傳輸?shù)臅r序或它們所包含的數(shù)據(jù)字節(jié)的內(nèi)容,LIN幀被分為六種高級類型。
| 無條件幀 | ●?最常用的框架類型。 ●?總是攜帶信號/數(shù)據(jù)。 ●?標識符范圍 - 0至59(0x00至0x3b)。 ●?所有訂閱者都收到該幀。 ●?使其可用于應(yīng)用程序(假設(shè)沒有檢測到錯誤)。 |
| 事件幀 | ●?允許多個從屬站在一個幀槽時間內(nèi)響應(yīng)。 ●?節(jié)省帶寬。 ●?標識符范圍 - 0至59 ●?攜帶的無條件幀的第一個數(shù)據(jù)字節(jié)等于分配給事件觸發(fā)幀的保護標識符。 ●?從站用一個相關(guān)的無條件幀進行回復(fù)。(只有當其數(shù)據(jù)值發(fā)生變化時) ●?如果沒有任何從屬任務(wù)對頭的響應(yīng),幀槽的其余部分是靜默的,報頭被忽略。 ●?如果在同一個幀槽中,有一個以上的從屬任務(wù)對標頭作出響應(yīng),就會發(fā)生碰撞。 ●?主站必須在再次請求事件觸發(fā)的幀之前,通過請求所有相關(guān)的無條件幀來解決碰撞問題。 |
| 零星幀 | ●?由主節(jié)點按要求傳送。 ●?無碰撞。 ●?只有當主站任務(wù)知道幀中攜帶的信號已被更新時,才應(yīng)在其相關(guān)的幀槽中發(fā)送報頭 ●?零星幀的發(fā)布者應(yīng)始終響應(yīng)報文頭。 ●?使得LIN動態(tài)化。 |
| 診斷幀 | ●?攜帶診斷或配置數(shù)據(jù)。 ●?包含八個數(shù)據(jù)字節(jié) ●?識別器 60 (0x3C) :主站請求幀。 ● 61 (0x3D) :從站響應(yīng)幀。 ●?主節(jié)點在生成診斷幀的報頭之前,詢問診斷模塊是否應(yīng)發(fā)送或總線是否應(yīng)沉默。 ●?從屬節(jié)點根據(jù)其診斷模塊發(fā)布和訂閱響應(yīng)。 |
| 用戶定義幀 | ●?可以攜帶任何種類的信息。 ●?識別器62 (0x3E) ●?幀頭總是在處理分配給該幀的幀槽時被傳送。 |
| 保留幀 | ●?不能在LIN 2.0集群中使用 ●?識別碼63 (0x3F) |
盡管LIN總線是一種具有成本效益的通信方法,但它并不能完全替代CAN總線。它只有在低速或帶寬沒有過高要求,而且成本可以有效操縱的情況下,才是一個很好的替代品。通常情況下,它被用作連接模塊的中央系統(tǒng)CAN總線的子系統(tǒng)支持,這些模塊對車輛性能或安全并不重要。
在Influx Technology 公司,數(shù)據(jù)記錄儀支持LIN總線和CAN總線(數(shù)字和模擬), "完整的數(shù)據(jù)記錄儀 "使其成為您的車輛網(wǎng)絡(luò)系統(tǒng)的理想選擇。
總結(jié)
- 上一篇: Pod控制器(一)ReplicaSet
- 下一篇: STC15单片机-ADC获取环境温度(N