LIN總線簡介
LIN總線主要用于汽車電子控制系統(tǒng),構成CAN、TTP/C等高速總線的輔助網(wǎng)絡,實現(xiàn)汽車網(wǎng)絡的分級制結構,以簡化線束,合理利用網(wǎng)絡資源,節(jié)約成本。
LIN網(wǎng)絡設計中關鍵問題是LIN總線接口的軟件和硬件設計。筆者在研究LIN規(guī)范的新修訂版本LIN2.0的基礎上設計了基于該規(guī)范的LIN節(jié)點,針對LIN接口設計中幾個關鍵問題提出了解決方法。
LIN節(jié)點硬件設計
1 LIN接口總體設計
LIN節(jié)點硬件上主要包括LIN接口電路部分、控制輸入部分、顯示電路或負載驅(qū)動輸出等,其中LIN接口為節(jié)點的核心。以Microchip公司的PIC16F87為控制器、TJA1020為LIN收發(fā)器、SA57022 為開關電源的LIN接口電路如圖1所示。SA57022電源輸出的打開與關斷由LIN收發(fā)器控制通過INH引腳控制。
圖1 LIN接口原理圖
因主機節(jié)點需為網(wǎng)絡中的從機節(jié)點提供時鐘基準,故在主機節(jié)點中為PIC16F87配置了外部晶振。在從機節(jié)點中,從機節(jié)點可通過主機節(jié)點發(fā)送幀頭中的同步場來校準自身波特率,故可省去外部晶振而使用PIC16F87內(nèi)置的RC振蕩器。
2 LIN收發(fā)器應用設計
TJA1020為LIN收發(fā)器,它是LIN 協(xié)議控制器和LIN傳輸媒體之間的接口,是節(jié)點的核心器件,負責收發(fā)數(shù)據(jù)時總線的波形調(diào)整和電平轉(zhuǎn)換及節(jié)點多種工作模式的實現(xiàn)。TJA1020按LIN物理層規(guī)范集成了片內(nèi)從機端電阻,在從機節(jié)點應用中無須再外接從機端電阻,在主機節(jié)點應用中按圖1所示在其INH引腳和LIN引腳之間串接主機端電阻和二極管可提高總線的驅(qū)動能力,并在總線對地短路時使節(jié)點自動進入睡眠狀態(tài),減少電流損耗。
以TJA1020為收發(fā)器構造的LIN節(jié)點具有普通、低斜率、睡眠、準備四種工作模式,以盡可能降低功耗和電磁輻射,各種模式下的節(jié)點狀態(tài)和模式間轉(zhuǎn)換如圖2所示。
圖2 工作模式的節(jié)點狀態(tài)以及模式間的切換
LIN節(jié)點軟件設計
1 LIN主機節(jié)點軟件設計
LIN主機節(jié)點行使幀處理和LIN網(wǎng)絡的通信管理職能,程序流程如圖3所示。
圖3 主機程序流程
LIN規(guī)范規(guī)定,同步間隔場為至少13個連續(xù)的顯性位(低電平)。LIN 通信基于通用UART/SCI接口,字節(jié)傳送使用8N1編碼,無法直接產(chǎn)生這樣一個顯性序列。
總線的正常通信波特率為9.6k,從機節(jié)點始終以此波特率工作,主機節(jié)點在需要發(fā)送同步間隔場時將波特率降低到4.8k,并發(fā)送0x00,則工作于9.6k波特率的從機節(jié)點將檢測到18個連續(xù)的顯性位,從而判斷一個新報文幀的到來。主機節(jié)點在發(fā)送完同步間隔場后將波特率恢復到9.6k。
2 LIN從機節(jié)點軟件設計
LIN從機節(jié)點的職能可概括為幀頭檢測與接收和幀處理這兩部分。在每個報文幀的幀頭中由配置晶體振蕩器的主機節(jié)點通過同步場給從機節(jié)點提供波特率基準,從機節(jié)點通過測量同步場來校準自身波特率,以保證在報文傳輸中各節(jié)點之間的同步。
同步場邏輯值為0x55,波形如圖4所示。從機節(jié)點通過測量同步場中第1和第5個下降沿之間的時間間隔來計算校準自身波特率。
圖4 同步場波形圖
設主機節(jié)點和從機節(jié)點的串行口均工作于方式1(8位UART,波特率可變),主機節(jié)點波特率為B,從機節(jié)點以定時器測量同步場第1和第5個下降沿得到的計數(shù)個數(shù)為C,從機節(jié)點振蕩器當前頻率為fs,得到式(1)。
(1)
設從機節(jié)點計數(shù)器1作為波特率發(fā)生器工作于常數(shù)自動重新裝入的8位定時器/計數(shù)器方式,得到式(2)。
(2)
使從機節(jié)點與主機節(jié)點同步,則令:
Bs=B (3)
由式(1)~式(3)可得到式(4)。
(4)
從機節(jié)點以由式(4)計算得到的N值作計數(shù)器1產(chǎn)生波特率的重新裝入值,可產(chǎn)生與主機節(jié)點一致的波特率。
節(jié)點制作與實驗
利用該設計制作LIN節(jié)點構建LIN網(wǎng)絡,對其進行了通信試驗和初步的抗干擾試驗。由于報文幀頭和報文幀響應均由主機節(jié)點發(fā)送,報文幀幀頭和報文幀響應間的幀間響應間隔較小。
當LIN從機節(jié)點在LIN主機節(jié)點的引導下相互傳送指令或信息時,LIN網(wǎng)絡上進行從機節(jié)點到從機節(jié)點的數(shù)據(jù)傳輸,此時LIN主機節(jié)點發(fā)送報文幀幀頭,一個LIN從機節(jié)點發(fā)送報文幀響應,另一個或幾個LIN從機節(jié)點接收報文幀響應。由于這種報文幀傳送需要3個甚至3個以上節(jié)點參與,故預留了較長的幀間間隔,以便報文幀響應的發(fā)送節(jié)點和接收節(jié)點有充足的響應時間,確保報文幀傳送的順利完成。
當LIN主機節(jié)點向某從機節(jié)點請求數(shù)據(jù)時,LIN總線上進行從機節(jié)點到主機節(jié)點的數(shù)據(jù)傳輸,此時LIN主機節(jié)點發(fā)送報文幀頭, LIN從機節(jié)點接收報文幀幀頭后發(fā)送報文幀響應, LIN主機節(jié)點接收報文幀響應。
汽車電磁環(huán)境惡劣,因此汽車通信系統(tǒng)的抗干擾能力尤為重要,按該設計制作的LIN網(wǎng)絡在BZ-5型汽車電火花干擾試驗臺上進行了抗干擾實驗,試驗中網(wǎng)絡通信順利,各項功能正常。
結束語
在車身控制系統(tǒng)中應用LIN總線降低了低端通信網(wǎng)絡的成本,同時增加了設計的靈活性,提高了系統(tǒng)的可靠性,有利于分布式車身控制系統(tǒng)的開發(fā)。多種工作模式的實現(xiàn)和它們之間的轉(zhuǎn)換可減少電能消耗和電磁輻射;調(diào)整波特率產(chǎn)生幀頭的方法可擺脫對額外或特殊器件的依賴;從機節(jié)點自同步的實現(xiàn)可減小節(jié)點體積降低成本。