一、LIN總線概述
1、什么是LIN總線
LIN(Local Interconnect Network)即局部連接網(wǎng)絡(luò),也被稱為“局域網(wǎng)子系統(tǒng)”即LIN總線是CAN總線網(wǎng)絡(luò)下的子系統(tǒng),車上各個(gè)LIN總線系統(tǒng)之間的數(shù)據(jù)交換是由控制單元通過CAN數(shù)據(jù)總線實(shí)現(xiàn)的
LIN總線是一種輔助的串行通信總線網(wǎng)絡(luò),多用于不需要CAN總線的帶寬和多功能的場合,LIN的目標(biāo)是為現(xiàn)有汽車網(wǎng)絡(luò)(例如CAN總線)提供輔助功能
LIN典型的應(yīng)用是車上傳感器和執(zhí)行器的聯(lián)網(wǎng),LIN屬于汽車上的A級(jí)網(wǎng)絡(luò)。
2、LIN總線的特點(diǎn)
(1)工作方式:LIN總線為單主/多從方式
(2)數(shù)據(jù)傳輸線:LIN總線為單線傳輸
(3)工作電壓:LIN總線為12V
(4)傳輸速率:LIN總線最高為20kb/s,屬于低速總線(A類)
(5)傳輸距離:LIN總線最長為40m
(6)LIN總線無需仲裁
(7)傳輸?shù)臄?shù)據(jù)長度:LIN總線一幀信息中數(shù)據(jù)長度為2、4或8B
(8)標(biāo)識(shí)符的位數(shù):LIN總線有6位標(biāo)識(shí)符
(9)節(jié)點(diǎn)數(shù):LIN總線一般不超過16個(gè)
(10)傳輸線的顏色:LIN總線主色為紫色
3、LIN總線的優(yōu)點(diǎn)
(1)在LIN系統(tǒng)中,加入新節(jié)點(diǎn)時(shí),不需要其它從節(jié)點(diǎn)作任何軟件或硬件的改動(dòng)
(2)整個(gè)網(wǎng)絡(luò)的配置信息只包含在主節(jié)點(diǎn)中,從節(jié)點(diǎn)可以自由地接入或脫離網(wǎng)絡(luò)而不會(huì)影響網(wǎng)絡(luò)中的通信LIN的網(wǎng)絡(luò)結(jié)構(gòu)
(3)從節(jié)點(diǎn)不需振蕩器就能實(shí)現(xiàn)同步,節(jié)省了多個(gè)控制器部件的硬件成本
(4)基于通用UART接口,幾乎所有微控制器都具備LIN必需的硬件,價(jià)格低廉、結(jié)構(gòu)簡單
二、LIN總線的結(jié)構(gòu)原理
1、LIN總線的網(wǎng)絡(luò)結(jié)構(gòu)
一個(gè)主節(jié)點(diǎn),主節(jié)點(diǎn)可以執(zhí)行主任務(wù)(引起LIN網(wǎng)絡(luò)通信)也可以執(zhí)行從任務(wù),總線上的信息傳送由主節(jié)點(diǎn)控制。主節(jié)點(diǎn)連接在CAN數(shù)據(jù)總線上
多個(gè)從節(jié)點(diǎn),從節(jié)點(diǎn)只能執(zhí)行從任務(wù)。
奧迪A6L轎車LIN總線內(nèi)部組成示意圖
2、主節(jié)點(diǎn)(主控制單元)
LIN總線主控單元監(jiān)控?cái)?shù)據(jù)傳遞及其速率,發(fā)送信息標(biāo)題
主控制單元的軟件內(nèi)已設(shè)定了一個(gè)周期,這個(gè)周期用于決定何時(shí)將哪些信息發(fā)送到LIN數(shù)據(jù)總線上多少次
該控制單元在LIN數(shù)據(jù)總線與CAN總線之間起溝通作用(“翻譯”),它是LIN總線系統(tǒng)中唯一與CAN數(shù)據(jù)總線相連的控制單元
通過LIN主控制單元進(jìn)行與之相連的LIN從控制單元的自診斷
3、從節(jié)點(diǎn)(從控制單元)
接收、傳遞或忽略與從主節(jié)點(diǎn)接收到的主任務(wù)(起始報(bào)文/信息標(biāo)題)相關(guān)的數(shù)據(jù)
可以通過一個(gè)“叫醒”信號(hào),喚醒主節(jié)點(diǎn)
檢查所接收數(shù)據(jù)總量和所發(fā)送數(shù)據(jù)的總量
同主節(jié)點(diǎn)的同步字節(jié)保持一致
只能按照主節(jié)點(diǎn)的要求同其他從節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交換
注意:只有當(dāng)LIN主節(jié)點(diǎn)發(fā)送出主任務(wù)(起始報(bào)文或信息標(biāo)題)后,從節(jié)點(diǎn)才會(huì)反應(yīng)
奧迪A6L轎車CAN LIN總線與從控制器示意圖
4、LIN總線的物理結(jié)構(gòu)
三、LIN總線報(bào)文幀的類型
無條件幀:
攜帶數(shù)據(jù)信息;
事件觸發(fā)幀:
處理偶發(fā)的事件
偶發(fā)幀:
保證在調(diào)度表確定性的條件下為系統(tǒng)動(dòng)態(tài)行為的靈活性而設(shè)定的
上述3中幀的報(bào)文標(biāo)識(shí)符的范圍為0~59(0x3b)
診斷幀(命令幀、應(yīng)答幀):
攜帶8個(gè)字節(jié)的診斷信息或組態(tài)信息,主節(jié)點(diǎn)診斷請(qǐng)求幀的標(biāo)識(shí)符為60(0x3c),從節(jié)點(diǎn)診斷應(yīng)答幀的標(biāo)識(shí)符為61(0x3d)
用戶自定義幀:
可攜帶用戶自定義的任何信息,標(biāo)識(shí)符為62(0x3e),在調(diào)度時(shí)可給用戶自定義幀分配報(bào)文幀時(shí)隙,每當(dāng)時(shí)隙到來時(shí)發(fā)送用戶自定義幀的幀頭
保留幀:
保留幀標(biāo)識(shí)符63(0x3f),在LIN2.0中沒有被使用
報(bào)文傳輸是由報(bào)文幀的格式表示和控制。
四、報(bào)文幀格式
一個(gè)主機(jī)節(jié)點(diǎn)發(fā)送的報(bào)文頭;
一個(gè)主機(jī)或從機(jī)節(jié)點(diǎn)發(fā)送的響應(yīng)組成。
報(bào)文頭包含同步間隙、同步字節(jié)和報(bào)文標(biāo)識(shí)符(0~63)
響應(yīng)報(bào)文由1-9個(gè)字節(jié)構(gòu)成:
其中2、4或8個(gè)字節(jié)的數(shù)據(jù)場和1個(gè)校驗(yàn)和場。
報(bào)文幀之間有幀間間隔分隔;
報(bào)文與響應(yīng)之間有幀內(nèi)響應(yīng)空間分隔;
最小幀間間隔和幀內(nèi)響應(yīng)空間均為0;
最大長度收到報(bào)文幀的最大長度FRAME_max限制。
1、字節(jié)場
每一個(gè)字節(jié)場的長度由10個(gè)定時(shí)位定時(shí)(BIT TIME);
起始位(START BIT)是一個(gè)“顯性”位,標(biāo)志字節(jié)的開始;
8為數(shù)據(jù)位,先發(fā)送最低位;
停止位(STOP BIST)是一個(gè)“隱性”位,標(biāo)志著字節(jié)場的結(jié)束。
2、報(bào)文頭(HEADER FIELDS)
A、同步間隔(synchronisation break)
作用:
標(biāo)識(shí)報(bào)文的開始,由主節(jié)點(diǎn)發(fā)送;使得所有的從機(jī)任務(wù)和總線時(shí)鐘信號(hào)同步。
同步間隔:
至少13bit的顯性位,之后緊隨至少1bit隱性值的同步界定符。
同步界定符的作用:
用來檢測接下來的同步域(Synch Field)的起始位。
B、同步場(SYNCH FIELD)
包含了時(shí)鐘的同步信息。格式為0x55,表現(xiàn)為8個(gè)位定時(shí)中有5個(gè)下降沿(隱性到顯性的跳變)
C、標(biāo)識(shí)符場(IDENTIFIER FIELD)
6個(gè)標(biāo)識(shí)符位(ID0~ID5)和2個(gè)標(biāo)識(shí)符奇偶校驗(yàn)位(P0 P1);
ID4和ID5定義了數(shù)據(jù)場的數(shù)據(jù)長度;
3、數(shù)據(jù)場(DATE FIELDS)
由多個(gè)8位的字節(jié)場組成,傳輸由LSB開始
4、校驗(yàn)和場(CHECK SUM FIELDS)
校驗(yàn)和域是數(shù)據(jù)域所有字節(jié)的和的反碼。
校驗(yàn)和按“帶進(jìn)位加(ADDC)”方式計(jì)算,每個(gè)進(jìn)位都被加到本次結(jié)果的最低位(LSB)。這就保證了數(shù)據(jù)字節(jié)的可靠性。
所有數(shù)據(jù)字節(jié)的和的補(bǔ)碼與校驗(yàn)和字節(jié)之加的和必須是“0xFF”。
五、命令幀
0x3C(ID 60)表示主節(jié)點(diǎn)請(qǐng)求幀(診斷幀),以便從主節(jié)點(diǎn)向從節(jié)點(diǎn)發(fā)送命令和數(shù)據(jù)。
0x3D(ID 61)表示從響應(yīng)幀,該幀觸發(fā)從節(jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送數(shù)據(jù)。
過程:
標(biāo)識(shí)符為0x3c一個(gè)的“主機(jī)請(qǐng)求幀”,主機(jī)向從機(jī)發(fā)送數(shù)據(jù)和命令;標(biāo)志符為0x3dD的“從機(jī)相應(yīng)幀”觸發(fā)一個(gè)從機(jī)向主機(jī)發(fā)送數(shù)據(jù)。
命令幀中的第一個(gè)數(shù)劇場為0x00~0x7F, 其用法由LIN協(xié)會(huì)定義;
剩下的命令幀用戶可以自行分配.
1、睡眠模式命令
總線有兩種狀態(tài):
睡眠模式:從主節(jié)點(diǎn)發(fā)送睡眠模式命令后到總線上出現(xiàn)喚醒信號(hào)結(jié)束,沒有任何總線活動(dòng)的這種模式。
喚醒模式:被喚醒信號(hào)喚醒之后的總線處于喚醒模式,可以有總線活動(dòng)。
睡眠模式命令:
是第一個(gè)數(shù)據(jù)字節(jié)為0x00的命令幀
總線的睡眠模式可以通過任何節(jié)點(diǎn)的從任務(wù)發(fā)送一個(gè)喚醒幀來終止。
2、喚醒過程
某一個(gè)節(jié)點(diǎn)的從任務(wù)發(fā)送喚醒信號(hào)后,所有的節(jié)點(diǎn)都運(yùn)行啟動(dòng)過程
并等待主機(jī)任務(wù)發(fā)送一個(gè)同步間隔場和同步場;
若等待超時(shí)(TIME_OUT),請(qǐng)求第一個(gè)喚醒信號(hào)的節(jié)點(diǎn)再一次發(fā)送新的喚醒信號(hào);
上述情況最多出現(xiàn)3次,此后,若還沒將總線喚醒,則等待3個(gè)TIME_OUT時(shí)間,再發(fā)送喚起信號(hào)。
六、用戶自定義幀
0x3E(ID 62)表示用戶定義的擴(kuò)展幀,后跟任意數(shù)量的數(shù)據(jù)字節(jié)。
0x3F(ID 63)預(yù)留供將來使用。
七、LIN總線的報(bào)文長度
報(bào)文幀以一個(gè)同步間隔作為開始,以校驗(yàn)和域作為結(jié)束。
報(bào)文幀中的字節(jié)域用字節(jié)間空間和幀內(nèi)響應(yīng)空間分隔。
字節(jié)間空間和幀內(nèi)響應(yīng)空間的長度沒有定義,但限制了整個(gè)報(bào)文幀的長度。
最小的幀長度TFRAME_MIN是傳輸一個(gè)幀的所需要的最小時(shí)間(字節(jié)間空間和幀內(nèi)響應(yīng)空間應(yīng)為0);
最大的幀長度TFRAME_MAX是傳輸一個(gè)幀的最大時(shí)間。
八、LIN的報(bào)文濾波和確認(rèn)
1、報(bào)文濾波
LIN的報(bào)文濾波是基于標(biāo)識(shí)符的,即每一個(gè)從機(jī)任務(wù)對(duì)應(yīng)一個(gè)傳送標(biāo)識(shí)符。
說明:用戶通過網(wǎng)絡(luò)配置保證任務(wù)和標(biāo)識(shí)符間的對(duì)應(yīng)關(guān)系
2、報(bào)文確認(rèn)
如果直到幀的末尾均沒有檢測到錯(cuò)誤,則此報(bào)文對(duì)于發(fā)送器和接收器都有效。
如果報(bào)文發(fā)生錯(cuò)誤,則主機(jī)和從機(jī)任務(wù)都認(rèn)為報(bào)文沒有發(fā)送。
注意:主機(jī)任務(wù)和從機(jī)任務(wù)在發(fā)送和接收到一個(gè)錯(cuò)誤報(bào)文時(shí)所采取的措施,并沒有在協(xié)議規(guī)范中定義。像主機(jī)重新發(fā)送或從機(jī)的后退操作都由用戶按照應(yīng)用要求在應(yīng)用層程序中來實(shí)現(xiàn),這些需要用戶在應(yīng)用層中說明
九、LIN錯(cuò)誤和異常處理:
1、錯(cuò)誤檢測
A、位錯(cuò)誤:
節(jié)點(diǎn)在發(fā)送時(shí)也監(jiān)控總線,當(dāng)監(jiān)控到的位的值與發(fā)送的位的值不同時(shí),則在這個(gè)位時(shí)間內(nèi)檢測到一個(gè)錯(cuò)誤。
B、校驗(yàn)和錯(cuò)誤:
所有數(shù)據(jù)字節(jié)的和的補(bǔ)碼與校驗(yàn)和之和不是“0xFF”,則檢測到校驗(yàn)和錯(cuò)誤。
C、標(biāo)識(shí)符奇偶錯(cuò)誤
所有的從機(jī)節(jié)點(diǎn)都能區(qū)分 ID 場中 8 位都已知的標(biāo)識(shí) 符和一個(gè)已知但錯(cuò)誤的標(biāo)識(shí)符。
D、從機(jī)不響應(yīng)錯(cuò)誤
如果任何主機(jī)任務(wù)在發(fā)送同步場和標(biāo)識(shí)符后,在最大長度時(shí)間內(nèi)TFRAME_MAX中沒有完成報(bào)文幀 的發(fā)送,則產(chǎn)生一個(gè)不響應(yīng)錯(cuò)誤。
E、同步場不一致錯(cuò)誤
當(dāng)從機(jī)檢測到同步場的邊沿在給出的容差外,則檢測到一個(gè)同步場不一致錯(cuò)誤。
F、沒有總線活動(dòng)
如果在接收到最后的一個(gè)有效信息后,在Ttime_out時(shí)間內(nèi)沒有檢測到有效的同步間隔場和字節(jié)場,則檢測到一個(gè)沒有總線活動(dòng)錯(cuò)誤。
2、故障界定
故障界定主要依靠主節(jié)點(diǎn),使它可以處理盡量多的錯(cuò)誤檢測、錯(cuò)誤回復(fù)和診斷。故障界定基于系統(tǒng)的要求,不是LIN協(xié)議內(nèi)容。
主機(jī)控制單元要檢測以下錯(cuò)誤狀態(tài):
主機(jī)任務(wù)發(fā)送:
當(dāng)回讀自己的發(fā)送時(shí),在同步或標(biāo)識(shí)符字節(jié)中的位錯(cuò)誤、標(biāo)識(shí)符奇偶錯(cuò)誤和沒有總線活動(dòng)錯(cuò)誤需要被檢測。
主機(jī)節(jié)點(diǎn)的從機(jī)任務(wù):
當(dāng)期望或讀取來自總線上的數(shù)據(jù)時(shí),從機(jī)不響應(yīng)錯(cuò)誤和校驗(yàn)和錯(cuò)誤被檢測。
從機(jī)控制單元需檢測以下錯(cuò)誤情況:
從機(jī)任務(wù)發(fā)送:當(dāng)回讀自己的發(fā)送時(shí),數(shù)據(jù)或校驗(yàn)和場中的位錯(cuò)誤被檢測。
從機(jī)任務(wù)接受:當(dāng)從總線讀取數(shù)據(jù)時(shí),標(biāo)識(shí)符奇偶錯(cuò)誤和校驗(yàn)和錯(cuò)誤需被檢測。
十、汽車上LIN總線的應(yīng)用
現(xiàn)以車門LIN網(wǎng)絡(luò)為例介紹LIN總線設(shè)計(jì)的一般方法。
車門控制LIN網(wǎng)絡(luò)的結(jié)構(gòu)及其在車門上的布置如右圖所示,該網(wǎng)絡(luò)由主機(jī)節(jié)點(diǎn)、后視鏡從機(jī)節(jié)點(diǎn)、搖窗機(jī)從機(jī)節(jié)點(diǎn)、門鎖從機(jī)節(jié)點(diǎn)構(gòu)成。
車門控制LIN網(wǎng)絡(luò)
主機(jī)節(jié)點(diǎn)
從機(jī)節(jié)點(diǎn)
主機(jī)節(jié)點(diǎn)采集本地各控制開關(guān)的狀態(tài)并接受CAN總線上的遠(yuǎn)程信息,據(jù)此產(chǎn)生控制指令,并將指令轉(zhuǎn)換為LIN報(bào)文幀通過LIN網(wǎng)絡(luò)發(fā)送給相應(yīng)從機(jī)節(jié)點(diǎn),從機(jī)節(jié)點(diǎn)接收到與自己相關(guān)的報(bào)文幀后對(duì)報(bào)文幀進(jìn)行拆封、解讀,然后根據(jù)獲得的指令控制相應(yīng)的執(zhí)行器動(dòng)作,從而實(shí)現(xiàn)對(duì)車門各部件的控制。同時(shí),在需要時(shí)從機(jī)節(jié)點(diǎn)分別將其控制部件所處狀態(tài)反饋給主機(jī)節(jié)點(diǎn),主機(jī)節(jié)點(diǎn)再將該狀態(tài)信息通過指示燈或喇叭提供給駕駛員或通過CAN總線發(fā)送給其他控制單元。主機(jī)節(jié)點(diǎn)也作為本LIN網(wǎng)絡(luò)與上層CAN網(wǎng)絡(luò)連接的網(wǎng)關(guān)。
主機(jī)節(jié)點(diǎn)主要由控制器、電源、控制按鈕、LIN接口、CAN接口和指示燈幾部分組成。
后視鏡從機(jī)節(jié)點(diǎn)主要由控制器、電源、LIN接口、執(zhí)行器驅(qū)動(dòng)單元和執(zhí)行器如后視鏡調(diào)整電機(jī)、除霜加熱器等組成。
評(píng)論