Freescale LIN總線應用開發平臺
如果對應于幀頭的特定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.
評論