摘 要:LIN是一種串行通訊協議,用于實現汽車中的分布式電子系統控制。介紹了具體的LIN主從節點硬件組成和軟件實現方法,同時提出若干抗干擾措施。測試證明按照這種方法設計的LIN網絡能正確實現通信。
關鍵詞:LIN總線;主節點;從節點;CAN總線
中圖分類號:TP336文獻標識碼:A
文章編號:1004-373X(2010)05-209-02
Design and Realization of Master Node and Slave Node Based on LIN Bus
LUO Xuemei,WU Qinmu
(Electric Engineering Institute,Guizhou University,Guiyang,550003,China)
Abstract:The LIN is a serial communication protocol which efficiently supports the control of mechatronics nodes in distributed automotive applictions.In details,the hardware configuration and software implementation are introduced of master and slaver,anti-interference metrics are advanced.Results of the test in the scene prove that the LIN network can communicate correctly.
Keywords:LIN bus;master node;slave node;CAN bus
LIN(Local Interconnect Network)是一種低速汽車網絡,采用單主多從、異步串行通信方式,定位于現有汽車網絡(如CAN總線)的輔助和補充,目的是以低廉的價格聯接車上的傳感器、執行器和處理器,并且允許不同廠家的模塊隨時添加進來[1]。LIN的主要特點有:低成本,基于通用UART接口,幾乎所有微控制器都具備LIN 必須的硬件;傳輸速率最高可達20 Kb/s;從節點不需晶振或陶瓷震蕩器就能實現自同步,節省了從設備的硬件成本;單主控器/多從設備模式,無需仲裁機制;不需要改變 LIN 從節點的硬件和軟件就可以在網絡上增加節點等[2]。
1 主從節點硬件設計
LIN網絡由一個主節點和最多15個從節點構成。設計LIN節點可以有三種方法:用普通I/O口線模擬異步串行通信;用UART和定時器實現;用專門的LIN模塊來實現。第一種方法成本最低,但CPU負擔最重,代碼較多;第二種方法成本適中,CPU負擔較輕;第三種方法成本較高,但CPU負擔最輕,代碼最少。這里采用最常用的一種,即基于UART和定時器的LIN節點設計和實現。LIN網絡拓撲結構如圖1所示[3]。
在LIN網絡中所有的通信都由主節點發起,同時還承擔與CAN總線通信的任務,因此主節點硬件電路主要包括微控制器、LIN收發器和CAN收發器。LIN收發器將協議控制器向TXD 引腳輸入的傳輸數據流轉換成總線信號并由收發器控制回轉速率和波形以減少EME;CAN收發器作為CAN總線與控制器之間的接口以及提供CAN總線的差動發送和接收功能。需要注意的是主節點電路中必須連接一個1 kΩ的上拉電阻和一個二極管。采用Microchip公司的PIC18系列單片機作為主節點的微控制器,MCP2551作為CAN總線收發器,MCP201作為LIN總線收發器。主節點硬件原理圖如圖2所示。在實際設計過程中還要注意EMI(電磁干擾)和ESD(靜電危害)對LIN總線的干擾,為了避免EMI的影響,LIN協會把LIN的最高位速率限制在20 Kb/s,同時最大傳輸距離不能超過40 m;ESD表現為短暫而幅度迅速衰減的高壓、大電流放電,而LIN總線收發器最容易受到ESD的沖擊,因此設計時可以在電源線和地線之間串聯電阻和電容,也可以把地線加粗,并與其他大面積接地導體就近、低阻抗連接[4]。
圖1 LIN網絡拓撲圖
圖2 主節點硬件原理圖
從節點采用PIC18F1320作為主控制器,MCP201作為LIN總線收發器;需要注意的是從節點中必須連接一個30 kΩ的上拉電阻,當然串聯二極管也是必須的,它可以防止電子控制單元在本地電池掉電的情況下通過LIN總線上電。從節點電路原理圖與主節點相似,去掉CAN收發器,其余不再贅述。
2 軟件設計
LIN主節點是 LIN 總線的控制者,它將決定在什么時候發送哪個報文到LIN總線上,同時它需要檢測從節點和總線的工作狀態[5]。因為 LIN主節點是通訊的發起者,在每個報文幀開始時它需要發送出同步間歇,同步字段以及標識字段。如果這個報文幀是發送控制命令到從節點,主節點接著將發送出數據字段及校驗和字段;而如果這個報文幀是發送查詢命令到從節點,此時主節點將從LIN總線讀取從節點發送的數據字段和校驗和字段[6]。
LIN從節點用UART實現通訊,從中檢出主節點發送給本從節點的命令,并執行相應動作。要正確實現LIN總線的通信,主從節點的初始化是非常重要的,圖3、圖4給出了主從節點的初始化流程圖。其余還有LIN主節點UART接收數據流程圖,LIN從節點中斷服務流程圖等限于篇幅不一一列出[7]。
圖3 主節點初始化流程圖
圖4 從節點初始化流程圖
3 LIN總線通信測試
如前所述,一個LIN網絡由一個LIN主節點和多個從節點組成,報文的傳送方向和時間由主節點決定。從節點是根據報頭中的ID號來決定是否接收一幀數據,在檢測到正確的報文ID號后,從節點將根據ID號判斷后續操作:是否接收后續數據或者發送數據到LIN總線,并初始化相應操作。在本子系統中,設計了兩個從節點,定義的報文ID號如表1所示[8]。
表1 報文ID號定義
ID號讀寫方向幀類型定義
0X01主→從無條件幀發控制命令給節點1
0X01主→從無條件幀發控制命令給節點2
0X01主→從無條件幀廣播方式發控制命令
0X01從→主無條件幀發查詢命令給主節點
0X01從→主無條件幀發查詢命令給主節點
0X01從→主事件觸發幀廣播方式發查詢命令
在LIN總線波特率設為9 600 b/s時,利用數字存儲示波器對LIN從接點通信過程進行了測試。另外,還利用ZLGCANtest軟件對LIN網絡的通信功能做了測試[9],一切結果顯示均正常,證明設計LIN網絡的通信程序設計是正確的。
4 結 語
在歐美、日本等發達國家,LIN總線被越來越多地應用到車身網絡中,但在我國LIN總線的應用還處在起步階段,因此對LIN總線通信的研究顯得尤為重要[10]。本文設計了基于PIC單片機的LIN總線主從節點,并實現了主從節點間的通信,其中,位定時的設定是影響通信速度的重要因素。該研究為下一步將LIN總線應用到汽車的聯合裝配控制單元中打下良好的基礎。
參考文獻
[1]廣州周立功單片機發展有限公司.LIN 規范1.2[Z].
[2]LIN Consortium.LIN Specification Package[Z].Revision 13[Z].2002.
[3]張虹.基于LIN總線的車身電控系統設計[J].儀表技術與傳感器,2009(7):57-59.
[4]潘新民.微型計算機控制技術[M].北京:人民郵電出版社,2001.
[5]陳新建.PIC系列單片機程序設計與開發應用[M].北京:北京航空航天大學出版社,2008.
[6]肖木,王麗芳.LIN總線數據打包算法[J].低壓電器,2007(3):29-32,59.
[7]Ahlmarkm.Local Interconnect Network(LIN) Packaging and Scheduling[D].Malardalen Real-time Research Centre (MRTC).2000.
[8]Microchip Application Note.http://www.microchip.com.
[9]Yalla M,Adamiak M,Apostolov A,et al.Application of Peer to Peer Communication for Protective Relaying[J].IEEE Trans.on Power Delivery,2002,17(2):446-451.
[10]王豐華.汽車上CAN/LIN混合網絡組網技術的研究與應用[D].鎮江:江蘇大學,2006.