Freescale LIN總線應用開發(fā)平臺
摘要:CAN/LIN(Local Interconnect Network)總線的引入帶來了車身電子控制的模塊化和智能化。在低速的車身控制條件下,與CAN總線相比較,LIN總線控制方案成本較低是最大的優(yōu)勢。本文介紹了基于Freescale半導體公司(原摩托羅拉半導體部)的單片機(MCU)和智能模擬器件的LIN總線Demo系統(tǒng),為汽車電子用戶提供了一種能快速掌握的車身LIN總線控制的開發(fā)平臺。
本文引用地址:http://m.butianyuan.cn/article/149326.htm關鍵詞:汽車電子;車身電子;總線;LIN
引言
在汽車電子系統(tǒng)中,主要存在如圖1所示的幾種網(wǎng)絡協(xié)議。LIN主要應用低速(20Kb/s)的車身控制環(huán)境,低速CAN多用于事件驅(qū)動的控制環(huán)境(125Kb/s),高速CAN(>500Kb/s),F(xiàn)lexray和Byteflight主要應用于時間驅(qū)動的同步高速控制環(huán)境,而D2B和MOST主要應用于汽車娛樂(圖像和語音)的傳輸和控制。
就車身控制而言,主要的應用基于CAN/LIN總線協(xié)議?;贑AN總線車身控制,在汽車電子上已經(jīng)有廣泛的應用。隨著車上總線節(jié)點的增加及高性能系統(tǒng)向中低檔汽車的發(fā)展,CAN總線相對較高的實現(xiàn)成本就成為一種障礙。因此LIN總線隨之產(chǎn)生。由于LIN硬件的實現(xiàn)是基于普通的串行通信接口(SCI),甚至在子節(jié)點中可以用普通I/O口加上定時器進行模擬,所以其實現(xiàn)成本較低。LIN的目標應用是不需要CAN的性能、帶寬及復雜性的低端系統(tǒng)。通常LIN子總線是現(xiàn)有的CAN網(wǎng)絡的擴充,與CAN網(wǎng)絡一起形成汽車的控制網(wǎng)絡(圖2)。當然,由于其成本較低,也可以獨立用于不是特別復雜的車身控制網(wǎng)絡中。
為了加速基于LIN總線控制系統(tǒng)的開發(fā)周期,Freescale半導體公司開發(fā)了LIN開發(fā)平臺(LIN DEMO)。LIN DEMO系統(tǒng)提供了完整的軟件和硬件,其中,軟件包括標準的LIN底層驅(qū)動軟件和LED顯示的應用軟件。用戶可以在此平臺上很快的搭建起LIN控制網(wǎng)絡
LIN DEMO應用系統(tǒng)
DEMO節(jié)點
LIN DEMO由2個主節(jié)點(9S12C32和MC68HC908GZ60)和4個從節(jié)點(MC68HC908GR60、MC68HC908EY16、MC68HC908QY和MC68HC908QL組成。每個LIN節(jié)點上,都提供了調(diào)試和編程接口(BDM接口(16位單片機)和CYCLONE/Multilink08接口(8位單片機)),同時每個節(jié)點還有1個RS232的串口,可以和PC通信。主節(jié)點有兩種工作模式,兩種模式的切換由1個轉換開關來控制。
LIN總線睡眠模式(此模式下,與主節(jié)點相連的所有從節(jié)點都處于睡眠模式,主節(jié)點不發(fā)送任何幀頭。)
LIN總線工作模式(此模式下,主節(jié)點發(fā)送幀頭,LED燈用來顯示從節(jié)點LED的狀態(tài)。)
LIN總線工作模式下,主節(jié)點LED顯示LED狀態(tài)有變化的從節(jié)點LED狀態(tài)。每個從節(jié)點有4個LED燈,這些燈的狀態(tài)可以通過1個單片機的鍵盤中斷引腳來改變。主節(jié)點有8個LED燈,其中的右邊(低位)4個LED用來顯示從節(jié)點LED燈的狀態(tài),另外的左邊(高位)4個LED燈用來從節(jié)點的類型和ID號,其中2個用來顯示節(jié)點類型(GR、EY、QY和QL),另外2用來顯示和此從節(jié)點類型相匹配的節(jié)點ID號最低的兩位。
這樣主節(jié)點上左邊(高位)4個LED為i*16的高4位。同時,主節(jié)點上右邊(低位)4個LED用來顯示從節(jié)點LED的數(shù)值(同樣次序的LED燈亮)。
所有的從節(jié)點可以在不斷電情況下加入或者脫離總線。當監(jiān)測到有新的從節(jié)點加入,主節(jié)點從0到7清除主節(jié)點的LED,然后把該節(jié)點存入主節(jié)點LED的顯示序列。當監(jiān)測到有節(jié)點脫離總線時候,主節(jié)點從7到0清除主節(jié)點的LED,然后從主節(jié)點LED的顯示序列去掉該從節(jié)點。
正常工作模式下,復位后,每個從節(jié)點響應對于該從節(jié)點ID(可以重新配置)的主接點幀頭,響應的數(shù)據(jù)定義為2個字節(jié)。按動從節(jié)點上的開關,可以增加從節(jié)點上LED的值(從1到15,除去全為零的情況)。當從節(jié)點上的LED值變化之后,主接點上的LED的右邊(低位)4個LED將顯示對應從節(jié)點上LED的值。
在模式配置模式下,用戶可以改變從節(jié)點的ID。從節(jié)點的LED用來顯示本節(jié)點的ID號。從節(jié)點上第一位的LED點亮,表示XXXXXX00;第二位的LED點亮,表示XXXXXX01;第三位的LED點亮,表示XXXXXX10;第四位的LED點亮,表示XXXXXX11。
當所有的從節(jié)點連接到主節(jié)點并且工作正常的時候,通過撥動主節(jié)點上的1個開關,我們可以很容易的讓從節(jié)點進入睡眠狀態(tài)。撥動此開關到OFF檔,5秒鐘以后,GR60和EY16就進入了睡眠(QY4不支持此操作)。
MC68HC908EY16的基本電路原理圖,它包含了LIN節(jié)點和3個跳線。值得注意的是,這些跳線只是在對芯片編程和調(diào)試的時候用到。對芯片編程和調(diào)試時,需要用到Freescale的開發(fā)工具(MULTILIN08/12、CYCLONE08),通過這些工具再和PC相連。完整的電路圖,還包括一些編程接口和雙排接口(連接MCU的引腳到其他的應用中)。
基本的LIN節(jié)點電路圖比較簡單,主要包括MCU,LIN物理層接口和1個5V的電壓調(diào)節(jié)器。本電路中,物理層接口用MC33399,電壓調(diào)節(jié)器用的是LT1121,可以被Freescale一顆新的系統(tǒng)基礎芯片(SBC)所替換。MCU允許MC33399控制電壓調(diào)節(jié)器。當LIN總線上沒有任何活動時,MC33399控制電壓調(diào)節(jié)器LT1121停止工作,從而使MCU掉電,使LIN從結點進入睡眠狀態(tài),整個從節(jié)點的靜態(tài)電流將小于50微安。在從結點的電路板(除去QY4)上,我們可以看到所有的LED燈都關閉了(程序的最初設計,使得當MCU上電后,總是有1個LED燈是亮)。
其他節(jié)點得電路圖和MC68HC908EY16的差不多。48腳的GR60主要是用于一些高端應用的LIN節(jié)點中,但是GR60沒有內(nèi)部時鐘,需要外接1個時鐘。GZ60和GR60比較接近,但是,GZ60主接點上多出了1個MC33388的CAN接口。C32是16位單片機,和8位單片機相比,它有了BDM模塊,相對于8位單片機的MULTILINK接口,調(diào)試簡單了很多。
DEMO軟件結構
1.主節(jié)點的軟件結構
主節(jié)點的軟件流程圖。在單片機和LIN驅(qū)動程序初始化以后,通過主節(jié)點PCB板上的1個開關,調(diào)整LIN是否被允許工作。如果睡眠,主節(jié)點上的LED燈會關閉;如果LIN總線工作,則主函數(shù)Main將會周期的發(fā)送幀頭到從節(jié)點。所有的ID號(如表1)在idList[16]中定義。如果函數(shù)LIN_MSG_STATUS()顯示有對應于幀頭的特定ID,從節(jié)點有反應,則反饋回來的數(shù)據(jù)被讀取,同時,檢查idActiveList[16]判斷這是否為新的LIN從節(jié)點,如果是,則idActiveList[16]對應的位置1,然后NewNode()函數(shù)被執(zhí)行,節(jié)點的LED燈顯示有新的節(jié)點加入。
評論