新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 低成本LIN總線協議在汽車網絡中的應用

        低成本LIN總線協議在汽車網絡中的應用

        作者: 時間:2012-07-07 來源:網絡 收藏

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

        LIN和系統要求

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

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

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

        那么使用LIN能夠為諸如車鏡控制等應用增加新功能嗎?回答是不需要額外連線,就可以方便地添加其它功能,如集成式轉向信號、集成式照地燈或車鏡加熱器。這里車鏡只需要與地電位、VBAT和LIN總線連接,需要改動的只有主節點,它必須知道要實現哪些車鏡功能。

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

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

        LIN軟件

        LIN主節點有三個主要的軟件進程,第一個進程接收CAN報文,并將其轉變為LIN報文;第二個進程讀取四向儀和車鏡選擇開關的狀態;第三個進程向從節點發出報文。

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

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

        本文總結

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


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 西贡区| 惠安县| 龙陵县| 龙川县| 平泉县| 台州市| 长泰县| 旬邑县| 龙井市| 谷城县| 金塔县| 天长市| 开封县| 清徐县| 高安市| 东辽县| 博兴县| 武鸣县| 齐河县| 彰武县| 吉林市| 两当县| 平凉市| 古田县| 东明县| 准格尔旗| 台南市| 谢通门县| 宜城市| 宝坻区| 大英县| 曲阜市| 手游| 博湖县| 莱阳市| 镇康县| 永吉县| 佛山市| 丹巴县| 伽师县| 八宿县|