低成本LIN總線協(xié)議在汽車網絡中的應用
該協(xié)議沒有定義直接錯誤報告機制,然而由于每個從節(jié)點都應自行追蹤各自的錯誤,因此主節(jié)點可利用正常的報文協(xié)議來請求獲得錯誤狀態(tài)。
LIN和系統(tǒng)要求
那么LIN是如何滿足對低功耗、低系統(tǒng)成本、功能增加甚至減少汽車總重量的要求呢?
首先它可以方便地用軟件實現LIN協(xié)議,該協(xié)議不需要單片機給予過多的硬件支持,通過使用一個簡單的USART或增強型USART就可以實現。USART支持諸如自動波特率檢測等功能,這意味著在LIN應用中可以使用一個簡單的質優(yōu)價廉的8位單片機。還有一個優(yōu)點就是LIN在協(xié)議層不需要復雜的操作系統(tǒng),不多的軟件開銷還使得設計人員能夠選擇存儲器容量較小的單片機。
如何運用像LIN這樣的簡單協(xié)議對汽車進行控制呢?以車鏡控制為例,許多汽車的車鏡相互之間仍是硬連接,或者在豪華型汽車中通過CAN這樣的昂貴協(xié)議連接,其實利用LIN總線就可以方便地將左右車鏡和四向儀(可以改變車鏡位置的四方向開關)連接起來。在典型的LIN方案中,四向儀是主節(jié)點,兩個車鏡是從節(jié)點。四向儀讀取按鍵的狀態(tài),將報文發(fā)送給相應的車鏡。
那么使用LIN能夠為諸如車鏡控制等應用增加新功能嗎?回答是不需要額外連線,就可以方便地添加其它功能,如集成式轉向信號、集成式照地燈或車鏡加熱器。這里車鏡只需要與地電位、VBAT和LIN總線連接,需要改動的只有主節(jié)點,它必須知道要實現哪些車鏡功能。
圖2說明了用于車鏡應用的LIN網絡。為了更清楚地理解這個例子,讓我們更深入地研究一下。該網絡中的主節(jié)點是一個PIC18F4680 8位閃存單片機,它讀取車鏡選擇開關和四向儀,還通過CAN總線接收報文。從CAN總線發(fā)送給主控LIN節(jié)點的報文包括左右轉向信號和開門,接收到來自CAN總線的報文后,主節(jié)點通過LIN總線向從節(jié)點發(fā)出命令,如“左車鏡上升或左車鏡下降”。
在此例中,從節(jié)點由PIC16F688 8位閃存單片機組成。PIC16F688具有一個集成的LIN收發(fā)器和一個增強型USART,其中USART能自動執(zhí)行自動波特率檢測。從節(jié)點收到報文并利用步進電機使車鏡上升或下降。假設車鏡模塊沒有集成式轉向信號等其它功能,當從節(jié)點從LIN總線上接收到一條諸如“左轉向信號”的報文時,它就會忽略這一報文或者觸發(fā)I/O用于轉向信號(這部分內容已超出本文討論范圍)。觸發(fā)I/O的好處是無論車鏡是否集成了轉向信號都可應用相同的軟件,只需要對硬件做適當更改即可運行,也就是說功能不同的各種車鏡都可以使用同一軟件。
LIN軟件
LIN主節(jié)點有三個主要的軟件進程,第一個進程接收CAN報文,并將其轉變?yōu)長IN報文;第二個進程讀取四向儀和車鏡選擇開關的狀態(tài);第三個進程向從節(jié)點發(fā)出報文。
如果主節(jié)點從CAN總線上接收到“左轉向信號打開”的報文,它會將該報文轉變成LIN協(xié)議,并發(fā)送給適當的LIN總線節(jié)點(在本例中為左車鏡)。對PIC18F4680中的CAN控制器進行編程后,它可以只接收來自CAN總線的特定報文,而不會有任何其它軟件開銷,這一硬件過濾方式使CAN總線的通訊只有極少軟件工作量。PIC18F4680也集成了一個可用于LIN總線通訊的USART,由于LIN總線主節(jié)點不必執(zhí)行自動波特率檢測,因此它能夠通過USART發(fā)送整條報文。
車鏡從節(jié)點有n+1個進程,其中n是車鏡中集成的功能數目。如果只要控制車鏡的上下左右,軟件進程就只有2個,第一個是收發(fā)進程,第二個是車鏡控制進程,主要驅動步進電機,其它可能的進程有“照地燈開”和“左轉向信號開”。因為PIC16F688有一個增強型USART,可實現波特率檢測,所以LIN通訊的軟件開銷非常少,這就為實現其它功能(包括檢修)留出了很大余地。
本文總結
正如前面所述,LIN總線能夠增加功能和降低成本,可以用軟件編程實現各種特性,也可以通過軟硬件功能增添新的特性,這樣不同的模塊就都可以用一個硬件或一個軟件平臺實現。LIN總線的靈活性有利于降低生產和軟/硬件維護方面的成本。因為LIN總線非常簡單,所以用質優(yōu)價廉的8位單片機就可以實現,從而降低系統(tǒng)總成本。
評論