系統基本框圖如圖3所示,系統與外部的接口有3個,LIN線、電源線和地線。車載蓄電池分別向可充電電池、TJA1020和MCU進行供電,其中可充電電池的作用是在汽車蓄電池電源被剪斷時向系統提供報警所需的電源。
?
圖3 系統基本框圖
初始情況,TJA1020處于休眠狀態并通過INH引腳切斷對MCU的供電,此時系統的狀態定義為睡眠狀態。連接汽車蓄電池相當于 TJA1020的NWAKE管腳產生電平變化,從而觸發TJA1020的外部中斷喚醒,同時TJA1020的Tx管腳會產生強下拉。當有遠程LIN信息幀喚醒TJA1020時,Tx管腳會產生弱下拉。TJA1020被喚醒后,會通過INH管腳打開對MCU的供電使MCU開始工作,系統進入未設防狀態。
在未設防狀態下,MCU通過GPA端口檢測是否存在汽車蓄電池供電信號,如果不存在供電信號,系統在一定時間后通過連接NSLP的GPB管腳令TJA1020進入休眠狀態,TJA1020則會通過INH管腳關閉MCU的電源供給,系統返回睡眠狀態。汽車蓄電池供電存在時,若收到LIN睡眠信息幀,系統也進入睡眠狀態。
系統在非睡眠狀態時可以通過接收BCM的LIN命令信息幀在未設防狀態、設防狀態和報警狀態之間進行轉換。系統處于設防狀態和報警狀態時,不會進入睡眠狀態。
4 軟件流程
系統的軟件主要包括實現單片機與LIN總線通信的程序以及單片機對防盜報警喇叭控制的主程序。為確保通信的實時性,系統采用了高優先級中斷來接收LIN總線上的信號。為了保證系統的實時性,在中斷處理時除了進行一些簡單的判斷和數據接收外,其他部分都在主程序中處理。
?
圖 4主程序流程圖
一旦總線上出現有效的顯性電平,控制器立即轉入高優先級中斷處理函數,首先判斷是否為主機節點發送的間隔場,如果是間隔場則接收同步場和標志符場,若不是同步場則退出等待下一次中斷。在接收到正確的標志符后,若標志符要求系統發送信息,系統則發送數據場及校驗和場,發送完成后又開始等待接收下一幀數據。若標志符不是要求本機進行數據發送,則接收隨后的數據場及校驗和場,在主程序中再根據標志符判斷所接收的數據是否對本機有效,有效的就進行相應的處理,無效就丟棄,處理完成后又開始等待接收下一幀數據.
評論
查看更多