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