Freescale LIN總線應(yīng)用開(kāi)發(fā)平臺(tái)
如果對(duì)應(yīng)于幀頭的特定ID,從節(jié)點(diǎn)沒(méi)有反饋,則檢查idActiveList[16]判斷對(duì)應(yīng)的位置是否為1,如果為1,則表明有節(jié)點(diǎn)被除去。同時(shí),LostNode()函數(shù)執(zhí)行,節(jié)點(diǎn)的LED燈顯示有節(jié)點(diǎn)丟失。
2.從節(jié)點(diǎn)的軟件結(jié)構(gòu)
首先,配置寄存器(CONFIG),I/O寄存器和定時(shí)器寄存器初始化。初始化完成后,進(jìn)入主程序While(1)循環(huán)。對(duì)GR60和EY16,程序中的定時(shí)由時(shí)間基準(zhǔn)模塊來(lái)實(shí)現(xiàn)(TBM)。由于QY4沒(méi)有時(shí)間基準(zhǔn)模塊(TBM),所以程序中的定時(shí)由定時(shí)器來(lái)實(shí)現(xiàn)。由于不同的從節(jié)點(diǎn)上,時(shí)鐘不一樣,所以每個(gè)從節(jié)點(diǎn)執(zhí)行完1個(gè)主程序程序環(huán)的時(shí)間也不一樣。程序中我們用#Define定義了2個(gè)時(shí)間周期:按一次開(kāi)關(guān)的時(shí)間(按下和跳起,60毫秒)和持續(xù)按住開(kāi)關(guān)的時(shí)間(3秒)。對(duì)于第3個(gè)定時(shí)(LIN總線持續(xù)5秒沒(méi)有活動(dòng),則進(jìn)入睡眠)在文件Slave.cfg中定義。
是LIN從節(jié)點(diǎn)的主軟件結(jié)構(gòu)。當(dāng)完成初始化工作,進(jìn)入主循環(huán)之后,如果LIN總線5秒鐘沒(méi)有活動(dòng),則進(jìn)入睡眠狀態(tài);如果由,則查看按鍵(開(kāi)關(guān))的類型判斷是進(jìn)入ID節(jié)點(diǎn)的配置模式,還是進(jìn)入正常模式。如果是正常模式,則將數(shù)據(jù)(DATA)寫(xiě)入LED,若進(jìn)入ID節(jié)點(diǎn)配置模式,則配置ID,然后將ID寫(xiě)入LED。
是按鍵軟件流程圖。首先判斷按鍵有沒(méi)有被按下,如果有則計(jì)算按鍵被按下的時(shí)間。如果按鍵按下的時(shí)間超過(guò)3秒,則進(jìn)入節(jié)點(diǎn)ID配置模式(從0到4,然后再到0,反復(fù)進(jìn)行);如果按鍵按下的時(shí)間為60毫秒,則數(shù)據(jù)(DATA)加1,然后用這個(gè)數(shù)據(jù)給LED顯示,同時(shí)反饋給主節(jié)點(diǎn)(主節(jié)用LED顯示此數(shù)據(jù))。
3.LIN底層驅(qū)動(dòng)軟件
前面的兩個(gè)小節(jié)我們講到了應(yīng)用軟件。本小節(jié)將對(duì)LIN底層的驅(qū)動(dòng)函數(shù)作一個(gè)介紹。首先是數(shù)據(jù)類型,主要的數(shù)據(jù)類型是無(wú)符號(hào)8位數(shù),惟一的一個(gè)16位數(shù),用來(lái)給地址變量(指針)。在驅(qū)動(dòng)函數(shù)中,主要用到的常量有兩種,一種用來(lái)標(biāo)示LIN總線的驅(qū)動(dòng)狀態(tài),一種用來(lái)表示LIN傳輸過(guò)程中消息幀的狀態(tài)。由于篇幅有限,與作者聯(lián)系可獲得免費(fèi)的軟件源程序??偨Y(jié)
Freescale的LIN節(jié)點(diǎn)通信演示平臺(tái),提供了一個(gè)很好的LIN控制開(kāi)發(fā)平臺(tái)。用戶可以基于此LIN控制開(kāi)發(fā)平臺(tái)的軟件(驅(qū)動(dòng)程序)和硬件非常簡(jiǎn)單的編寫(xiě)自己的應(yīng)用程序(利用CODEWARRIOR集成開(kāi)發(fā)環(huán)境),然后利用此平臺(tái)的底層驅(qū)動(dòng)軟件和硬件環(huán)境,利用與PC相連的通信接口,燒寫(xiě)程序,并進(jìn)行調(diào)試。
參考文獻(xiàn)
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.
評(píng)論