siemens x
行業(yè)資訊

低成本LIN總線協(xié)議在汽車網(wǎng)絡(luò)中的應(yīng)用

2025China.cn   2009年02月05日

當(dāng)前汽車應(yīng)用開發(fā)人員正面臨著眾多設(shè)計挑戰(zhàn),由于現(xiàn)代汽車增加了更多電子功能,對低功耗和更小印刷電路板的需求也越來越強烈,所有這些都表明在諸如車身控制和傳動系統(tǒng)等應(yīng)用領(lǐng)域中這樣的特性將日益重要。

 

如今汽車中的絕大多數(shù)電子控制單元互相之間都有連接,但汽車制造商對不同的應(yīng)用使用了不同的總線系統(tǒng)。例如傳動系統(tǒng)和制動系統(tǒng)多數(shù)通過控制器局域網(wǎng)絡(luò)(CAN)來聯(lián)系,而通訊不太密集的應(yīng)用(如車窗升降電機和控制車鏡的按鍵)則可能使用局域互聯(lián)網(wǎng)絡(luò)(LIN)協(xié)議。本文將論述怎樣利用LIN總線來滿足汽車業(yè)所需要的新增電子功能,并同時確保低功耗以及使用較小面積的PCB

 

LIN協(xié)議

 

LIN協(xié)議由歐洲汽車制造商協(xié)會設(shè)計,是一種低成本短距離低速網(wǎng)絡(luò)。它旨在傳送開關(guān)設(shè)置和傳感器輸入等狀態(tài)的變化,并對這類變化做出響應(yīng),因此可用于傳送發(fā)生時間約為幾分之一秒的事件,并不適用于汽車應(yīng)用中的高速事件(如引擎管理)LIN的另一個目的是利用該協(xié)議的簡單性降低系統(tǒng)成本,以便能夠方便地在質(zhì)優(yōu)價廉的8位單片機中實現(xiàn)。LIN總線協(xié)議的最新版本是V2.0,可以在LIN聯(lián)盟的網(wǎng)站()上得到。

 

LIN支持單線雙向通訊,采用廉價的由RC振蕩器驅(qū)動的單片機,可省掉晶體振蕩器或陶瓷振蕩器的費用。雖然LIN降低了系統(tǒng)總成本,但在時間和軟件上卻要付出代價,每條報文都必須經(jīng)過一個自動確定波特率的過程。LIN協(xié)議支持最高20kbps傳輸速率,以及一個低功耗休眠模式,此時總線將被關(guān)閉,不再消耗汽車電池。采用8位單片機并結(jié)合外部或內(nèi)部RC有助于降低系統(tǒng)成本,并減少PCB實際的面積。

 

LIN在汽車中的典型應(yīng)用??偩€上的地電位信號為顯性狀態(tài),只要任何節(jié)點將總線電壓拉低,就會出現(xiàn)這一狀態(tài)。當(dāng)總線處于電池電壓且所有節(jié)點都使總線處于懸空狀態(tài)時,會出現(xiàn)隱性狀態(tài)。在空閑狀態(tài)下,總線通過上拉電阻懸空為高電平。

 

LIN總線的工作電壓范圍為918V,但總線上所有部件都必須能夠承受40V電壓。通常,單片機通過線路驅(qū)動器/接收器與總線隔離,這種方案下總線每個節(jié)點都端接為VBAT電平,主節(jié)點通過1kΩ電阻端接,從節(jié)點則通過20-47kΩ的電阻端接??偩€最大設(shè)計長度為40米。

 

每個字節(jié)都利用起始位和停止位作為頭尾標(biāo)志位。起始位與空閑狀態(tài)相反,為0,而停止位則等同空閑狀態(tài)(1)。在每個字節(jié)內(nèi),數(shù)據(jù)從最低位(LSB)開始傳送。

 

報文協(xié)議

 

主節(jié)點用于控制LIN總線,它通過對從節(jié)點進行查詢,將數(shù)據(jù)發(fā)布到總線上。從節(jié)點僅在主節(jié)點的命令下發(fā)送數(shù)據(jù),從而在無需仲裁的情況下實現(xiàn)雙向通訊。報文的傳送是在主節(jié)點發(fā)出一個同步間隔脈沖后開始的,然后跟隨的是同步字段和報文字段。主節(jié)點通過在每個報文的開始處發(fā)送同步字段可設(shè)定整個總線時鐘。

 

每條報文的第二字節(jié)是一個標(biāo)識符字節(jié),它告訴LIN總線隨后將發(fā)送的是什么數(shù)據(jù),并指明哪個節(jié)點應(yīng)該應(yīng)答及應(yīng)答的長度是多少。對于給定的命令,只有一個從節(jié)點可以應(yīng)答。

 

從節(jié)點僅在主節(jié)點的控制下在LIN總線上發(fā)送數(shù)據(jù)。一旦數(shù)據(jù)發(fā)布到總線上,任何節(jié)點都可以接收該數(shù)據(jù)。因此,一個從節(jié)點向其它從節(jié)點發(fā)送數(shù)據(jù)無需主節(jié)點干預(yù)。

 

由于LIN協(xié)議使用低成本RC振蕩器,因此從節(jié)點必須檢測主節(jié)點每次發(fā)送的波特率,并調(diào)整為當(dāng)前速率,所以每次通訊都以同步字段開始,它是一個0、1交替出現(xiàn)的字節(jié)。

 

同步字段之后是標(biāo)識符字段,它告訴LIN總線接著出現(xiàn)的內(nèi)容。該字段進一步分為三個子字段:4(0-3)用于對總線上的設(shè)備進行尋址;2(4-5)指明此后報文的長度,最后2(6-7)用于奇偶校驗。

 

除休眠命令之外,LIN協(xié)議沒有定義任何報文的內(nèi)容,其它命令是在具體應(yīng)用中定義的。

 

錯誤檢測

 

以下錯誤必須在每一節(jié)點處進行檢測和計數(shù),一旦出現(xiàn)錯誤,該命令就要被丟棄,并記錄這一錯誤事件。位錯誤——正在發(fā)送的節(jié)點應(yīng)該對希望發(fā)送的數(shù)據(jù)與總線上實際出現(xiàn)的數(shù)據(jù)進行比較,控制器必須等待足夠時間以確??偩€對發(fā)出的數(shù)據(jù)做出反應(yīng),然后才可測試這一數(shù)據(jù)。假定總線響應(yīng)信號的最小邊沿變化速率為1V/μs,最大總線電壓為18V,那么發(fā)送器應(yīng)等待18μs后才可進行測試。校驗和錯誤——每條報文的數(shù)據(jù)內(nèi)容都受到校驗和字節(jié)的保護,該字節(jié)是數(shù)據(jù)字節(jié)相加后取256模的余數(shù)再取反的結(jié)果。奇偶校驗——命令字節(jié)使用2個奇偶位來保護其它6個數(shù)位,這兩個數(shù)位在接收后要重新計算,再與接收結(jié)果進行比較。

 

該協(xié)議沒有定義直接錯誤報告機制,然而由于每個從節(jié)點都應(yīng)自行追蹤各自的錯誤,因此主節(jié)點可利用正常的報文協(xié)議來請求獲得錯誤狀態(tài)。

 

LIN和系統(tǒng)要求

 

那么LIN是如何滿足對低功耗、低系統(tǒng)成本、功能增加甚至減少汽車總重量的要求呢?

 

首先它可以方便地用軟件實現(xiàn)LIN協(xié)議,該協(xié)議不需要單片機給予過多的硬件支持,通過使用一個簡單的USART或增強型USART就可以實現(xiàn)。USART支持諸如自動波特率檢測等功能,這意味著在LIN應(yīng)用中可以使用一個簡單的質(zhì)優(yōu)價廉的8位單片機。還有一個優(yōu)點就是LIN在協(xié)議層不需要復(fù)雜的操作系統(tǒng),不多的軟件開銷還使得設(shè)計人員能夠選擇存儲器容量較小的單片機。

 

如何運用像LIN這樣的簡單協(xié)議對汽車進行控制呢?以車鏡控制為例,許多汽車的車鏡相互之間仍是硬連接,或者在豪華型汽車中通過CAN這樣的昂貴協(xié)議連接,其實利用LIN總線就可以方便地將左右車鏡和四向儀(可以改變車鏡位置的四方向開關(guān))連接起來。在典型的LIN方案中,四向儀是主節(jié)點,兩個車鏡是從節(jié)點。四向儀讀取按鍵的狀態(tài),將報文發(fā)送給相應(yīng)的車鏡。

 

那么使用LIN能夠為諸如車鏡控制等應(yīng)用增加新功能嗎?回答是不需要額外連線,就可以方便地添加其它功能,如集成式轉(zhuǎn)向信號、集成式照地?zé)艋蜍囩R加熱器。這里車鏡只需要與地電位、VBATLIN總線連接,需要改動的只有主節(jié)點,它必須知道要實現(xiàn)哪些車鏡功能。

 

用于車鏡應(yīng)用的LIN網(wǎng)絡(luò)。為了更清楚地理解這個例子,讓我們更深入地研究一下。該網(wǎng)絡(luò)中的主節(jié)點是一個PIC18F4680 8位閃存單片機,它讀取車鏡選擇開關(guān)和四向儀,還通過CAN總線接收報文。從CAN總線發(fā)送給主控LIN節(jié)點的報文包括左右轉(zhuǎn)向信號和開門,接收到來自CAN總線的報文后,主節(jié)點通過LIN總線向從節(jié)點發(fā)出命令,如“左車鏡上升或左車鏡下降”。

 

在此例中,從節(jié)點由PIC16F688 8位閃存單片機組成。PIC16F688具有一個集成的LIN收發(fā)器和一個增強型USART,其中USART能自動執(zhí)行自動波特率檢測。從節(jié)點收到報文并利用步進電機使車鏡上升或下降。假設(shè)車鏡模塊沒有集成式轉(zhuǎn)向信號等其它功能,當(dāng)從節(jié)點從LIN總線上接收到一條諸如“左轉(zhuǎn)向信號”的報文時,它就會忽略這一報文或者觸發(fā)I/O用于轉(zhuǎn)向信號(這部分內(nèi)容已超出本文討論范圍)。觸發(fā)I/O的好處是無論車鏡是否集成了轉(zhuǎn)向信號都可應(yīng)用相同的軟件,只需要對硬件做適當(dāng)更改即可運行,也就是說功能不同的各種車鏡都可以使用同一軟件。

 

LIN軟件

 

LIN主節(jié)點有三個主要的軟件進程,第一個進程接收CAN報文,并將其轉(zhuǎn)變?yōu)?/SPAN>LIN報文;第二個進程讀取四向儀和車鏡選擇開關(guān)的狀態(tài);第三個進程向從節(jié)點發(fā)出報文。

 

如果主節(jié)點從CAN總線上接收到“左轉(zhuǎn)向信號打開”的報文,它會將該報文轉(zhuǎn)變成LIN協(xié)議,并發(fā)送給適當(dāng)?shù)?/SPAN>LIN總線節(jié)點(在本例中為左車鏡)。對PIC18F4680中的CAN控制器進行編程后,它可以只接收來自CAN總線的特定報文,而不會有任何其它軟件開銷,這一硬件過濾方式使CAN總線的通訊只有極少軟件工作量。PIC18F4680也集成了一個可用于LIN總線通訊的USART,由于LIN總線主節(jié)點不必執(zhí)行自動波特率檢測,因此它能夠通過USART發(fā)送整條報文。

 

車鏡從節(jié)點有n+1個進程,其中n是車鏡中集成的功能數(shù)目。如果只要控制車鏡的上下左右,軟件進程就只有2個,第一個是收發(fā)進程,第二個是車鏡控制進程,主要驅(qū)動步進電機,其它可能的進程有“照地?zé)糸_”和“左轉(zhuǎn)向信號開”。因為PIC16F688有一個增強型USART,可實現(xiàn)波特率檢測,所以LIN通訊的軟件開銷非常少,這就為實現(xiàn)其它功能(包括檢修)留出了很大余地。

 

本文小結(jié)

 

正如前面所述,LIN總線能夠增加功能和降低成本,可以用軟件編程實現(xiàn)各種特性,也可以通過軟硬件功能增添新的特性,這樣不同的模塊就都可以用一個硬件或一個軟件平臺實現(xiàn)。LIN總線的靈活性有利于降低生產(chǎn)和軟/硬件維護方面的成本。因為LIN總線非常簡單,所以用質(zhì)優(yōu)價廉的8位單片機就可以實現(xiàn),從而降低系統(tǒng)總成本。

(轉(zhuǎn)載)

標(biāo)簽:低成本 LIN總線協(xié)議 汽車網(wǎng)絡(luò) 我要反饋 
2024世界人工智能大會專題
即刻點擊并下載ABB資料,好禮贏不停~
優(yōu)傲機器人下載中心
西克
2024全景工博會
專題報道