摘要:CAN/LIN(Local Interconnect Network)總線的引入帶來了車身電子控制的模塊化和智能化。在低速的車身控制條件下,與CAN總線相比較,LIN總線控制方案成本較低是的優勢。本文介紹了基于Freescale半導體公司(原摩托羅拉半導體部)的單片機(MCU)和智能模擬器件的LIN總線Demo系統,為汽車電子用戶提供了一種能快速掌握的車身LIN總線控制的開發平臺。
關鍵詞:汽車電子;車身電子;總線;LIN
引言
在汽車電子系統中,主要存在如圖1所示的幾種網絡協議。LIN主要應用低速(<20Kb/s)的車身控制環境,低速CAN多用于事件驅動的控制環境(125Kb/s),高速CAN(>500Kb/s),Flexray和Byteflight主要應用于時間驅動的同步高速控制環境,而D2B和MOST主要應用于汽車娛樂(圖像和語音)的傳輸和控制。
就車身控制而言,主要的應用基于CAN/LIN總線協議。基于CAN總線車身控制,在汽車電子上已經有廣泛的應用。隨著車上總線節點的增加及高性能系統向中低檔汽車的發展,CAN總線相對較高的實現成本就成為一種障礙。因此LIN總線隨之產生。由于LIN硬件的實現是基于普通的串行通信接口(SCI),甚至在子節點中可以用普通I/O口加上定時器進行模擬,所以其實現成本較低。LIN的目標應用是不需要CAN的性能、帶寬及復雜性的低端系統。通常LIN子總線是現有的CAN網絡的擴充,與CAN網絡一起形成汽車的控制網絡(圖2)。當然,由于其成本較低,也可以獨立用于不是特別復雜的車身控制網絡中。
為了加速基于LIN總線控制系統的開發周期,Freescale半導體公司開發了LIN開發平臺(LIN DEMO)。LIN DEMO系統提供了完整的軟件和硬件,其中,軟件包括標準的LIN底層驅動軟件和LED顯示的應用軟件。用戶可以在此平臺上很快的搭建起LIN控制網絡
LIN DEMO應用系統
DEMO節點
LIN DEMO由2個主節點(9S12C32和MC68HC908GZ60)和4個從節點(MC68HC908GR60、MC68HC908EY16、MC68HC908QY和MC68HC908QL組成。每個LIN節點上,都提供了調試和編程接口(BDM接口(16位單片機)和CYCLONE/Multilink08接口(8位單片機)),同時每個節點還有1個RS232的串口,可以和PC通信。主節點有兩種工作模式,兩種模式的切換由1個轉換開關來控制。
LIN總線睡眠模式(此模式下,與主節點相連的所有從節點都處于睡眠模式,主節點不發送任何幀頭。)
LIN總線工作模式(此模式下,主節點發送幀頭,LED燈用來顯示從節點LED的狀態。)
LIN總線工作模式下,主節點LED顯示LED狀態有變化的從節點LED狀態。每個從節點有4個LED燈,這些燈的狀態可以通過1個單片機的鍵盤中斷引腳來改變。主節點有8個LED燈,其中的右邊(低位)4個LED用來顯示從節點LED燈的狀態,另外的左邊(高位)4個LED燈用來從節點的類型和ID號,其中2個用來顯示節點類型(GR、EY、QY和QL),另外2用來顯示和此從節點類型相匹配的節點ID號的兩位。
這樣主節點上左邊(高位)4個LED為i*16的高4位。同時,主節點上右邊(低位)4個LED用來顯示從節點LED的數值(同樣次序的LED燈亮)。
所有的從節點可以在不斷電情況下加入或者脫離總線。當監測到有新的從節點加入,主節點從0到7清除主節點的LED,然后把該節點存入主節點LED的顯示序列。當監測到有節點脫離總線時候,主節點從7到0清除主節點的LED,然后從主節點LED的顯示序列去掉該從節點。
正常工作模式下,復位后,每個從節點響應對于該從節點ID(可以重新配置)的主接點幀頭,響應的數據定義為2個字節。按動從節點上的開關,可以增加從節點上LED的值(從1到15,除去全為零的情況)。當從節點上的LED值變化之后,主接點上的LED的右邊(低位)4個LED將顯示對應從節點上LED的值。
在模式配置模式下,用戶可以改變從節點的ID。從節點的LED用來顯示本節點的ID號。從節點上位的LED點亮,表示XXXXXX00;第二位的LED點亮,表示XXXXXX01;第三位的LED點亮,表示XXXXXX10;第四位的LED點亮,表示XXXXXX11。
當所有的從節點連接到主節點并且工作正常的時候,通過撥動主節點上的1個開關,我們可以很容易的讓從節點進入睡眠狀態。撥動此開關到OFF檔,5秒鐘以后,GR60和EY16就進入了睡眠(QY4不支持此操作)。
MC68HC908EY16的基本電路原理圖,它包含了LIN節點和3個跳線。值得注意的是,這些跳線只是在對芯片編程和調試的時候用到。對芯片編程和調試時,需要用到Freescale的開發工具(MULTILIN08/12、CYCLONE08),通過這些工具再和PC相連。完整的電路圖,還包括一些編程接口和雙排接口(連接MCU的引腳到其他的應用中)。
基本的LIN節點電路圖比較簡單,主要包括MCU,LIN物理層接口和1個5V的電壓調節器。本電路中,物理層接口用MC33399,電壓調節器用的是LT1121,可以被Freescale一顆新的系統基礎芯片(SBC)所替換。MCU允許MC33399控制電壓調節器。當LIN總線上沒有任何活動時,MC33399控制電壓調節器LT1121停止工作,從而使MCU掉電,使LIN從結點進入睡眠狀態,整個從節點的靜態電流將小于50微安。在從結點的電路板(除去QY4)上,我們可以看到所有的LED燈都關閉了(程序的初設計,使得當MCU上電后,總是有1個LED燈是亮)。
其他節點得電路圖和MC68HC908EY16的差不多。48腳的GR60主要是用于一些高端應用的LIN節點中,但是GR60沒有內部時鐘,需要外接1個時鐘。GZ60和GR60比較接近,但是,GZ60主接點上多出了1個MC33388的CAN接口。C32是16位單片機,和8位單片機相比,它有了BDM模塊,相對于8位單片機的MULTILINK接口,調試簡單了很多。
DEMO軟件結構
1.主節點的軟件結構
主節點的軟件流程圖。在單片機和LIN驅動程序初始化以后,通過主節點PCB板上的1個開關,調整LIN是否被允許工作。如果睡眠,主節點上的LED燈會關閉;如果LIN總線工作,則主函數Main將會周期的發送幀頭到從節點。所有的ID號(如表1)在idList[16]中定義。如果函數LIN_MSG_STATUS()顯示有對應于幀頭的特定ID,從節點有反應,則反饋回來的數據被讀取,同時,檢查idActiveList[16]判斷這是否為新的LIN從節點,如果是,則idActiveList[16]對應的位置1,然后NewNode()函數被執行,節點的LED燈顯示有新的節點加入。
如果對應于幀頭的特定ID,從節點沒有反饋,則檢查idActiveList[16]判斷對應的位置是否為1,如果為1,則表明有節點被除去。同時,LostNode()函數執行,節點的LED燈顯示有節點丟失。
2.從節點的軟件結構
首先,配置寄存器(CONFIG),I/O寄存器和定時器寄存器初始化。初始化完成后,進入主程序While(1)循環。對GR60和EY16,程序中的定時由時間基準模塊來實現(TBM)。由于QY4沒有時間基準模塊(TBM),所以程序中的定時由定時器來實現。由于不同的從節點上,時鐘不一樣,所以每個從節點執行完1個主程序程序環的時間也不一樣。程序中我們用#Define定義了2個時間周期:按一次開關的時間(按下和跳起,60毫秒)和持續按住開關的時間(3秒)。對于第3個定時(LIN總線持續5秒沒有活動,則進入睡眠)在文件Slave.cfg中定義。
是LIN從節點的主軟件結構。當完成初始化工作,進入主循環之后,如果LIN總線5秒鐘沒有活動,則進入睡眠狀態;如果由,則查看按鍵(開關)的類型判斷是進入ID節點的配置模式,還是進入正常模式。如果是正常模式,則將數據(DATA)寫入LED,若進入ID節點配置模式,則配置ID,然后將ID寫入LED。
是按鍵軟件流程圖。首先判斷按鍵有沒有被按下,如果有則計算按鍵被按下的時間。如果按鍵按下的時間超過3秒,則進入節點ID配置模式(從0到4,然后再到0,反復進行);如果按鍵按下的時間為60毫秒,則數據(DATA)加1,然后用這個數據給LED顯示,同時反饋給主節點(主節用LED顯示此數據)。
3.LIN底層驅動軟件
前面的兩個小節我們講到了應用軟件。本小節將對LIN底層的驅動函數作一個介紹。首先是數據類型,主要的數據類型是無符號8位數,惟一的一個16位數,用來給地址變量(指針)。在驅動函數中,主要用到的常量有兩種,一種用來標示LIN總線的驅動狀態,一種用來表示LIN傳輸過程中消息幀的狀態。由于篇幅有限,與作者聯系可獲得免費的軟件源程序。總結
Freescale的LIN節點通信演示平臺,提供了一個很好的LIN控制開發平臺。用戶可以基于此LIN控制開發平臺的軟件(驅動程序)和硬件非常簡單的編寫自己的應用程序(利用CODEWARRIOR集成開發環境),然后利用此平臺的底層驅動軟件和硬件環境,利用與PC相連的通信接口,燒寫程序,并進行調試。
參考文獻
1 Motorola Inc.,MC68HC908EY/D,09/2003.
2 Motorola Inc.,MC68HC908QY/D,09/2003.
3 Motorola Inc.,MC68HC908GZ/D,09/2003.
4 Motorola Inc.,MC68HC908GR/D,09/2003.
5 Motorola Inc.,MC9S12C32,2003.
6 LIN Protocol 1.3.
7 AN2573/D,2003.
8 AN2396/D,2003.
Freescale LIN總線應用開發平臺
更新時間: 2005-10-19 00:00:00來源: 粵嵌教育瀏覽量:8257