系統(tǒng)基本框圖如圖3所示,系統(tǒng)與外部的接口有3個(gè),LIN線、電源線和地線。車載蓄電池分別向可充電電池、TJA1020和MCU進(jìn)行供電,其中可充電電池的作用是在汽車蓄電池電源被剪斷時(shí)向系統(tǒng)提供報(bào)警所需的電源。

?
圖3 系統(tǒng)基本框圖
初始情況,TJA1020處于休眠狀態(tài)并通過(guò)INH引腳切斷對(duì)MCU的供電,此時(shí)系統(tǒng)的狀態(tài)定義為睡眠狀態(tài)。連接汽車蓄電池相當(dāng)于 TJA1020的NWAKE管腳產(chǎn)生電平變化,從而觸發(fā)TJA1020的外部中斷喚醒,同時(shí)TJA1020的Tx管腳會(huì)產(chǎn)生強(qiáng)下拉。當(dāng)有遠(yuǎn)程LIN信息幀喚醒TJA1020時(shí),Tx管腳會(huì)產(chǎn)生弱下拉。TJA1020被喚醒后,會(huì)通過(guò)INH管腳打開對(duì)MCU的供電使MCU開始工作,系統(tǒng)進(jìn)入未設(shè)防狀態(tài)。
在未設(shè)防狀態(tài)下,MCU通過(guò)GPA端口檢測(cè)是否存在汽車蓄電池供電信號(hào),如果不存在供電信號(hào),系統(tǒng)在一定時(shí)間后通過(guò)連接NSLP的GPB管腳令TJA1020進(jìn)入休眠狀態(tài),TJA1020則會(huì)通過(guò)INH管腳關(guān)閉MCU的電源供給,系統(tǒng)返回睡眠狀態(tài)。汽車蓄電池供電存在時(shí),若收到LIN睡眠信息幀,系統(tǒng)也進(jìn)入睡眠狀態(tài)。
系統(tǒng)在非睡眠狀態(tài)時(shí)可以通過(guò)接收BCM的LIN命令信息幀在未設(shè)防狀態(tài)、設(shè)防狀態(tài)和報(bào)警狀態(tài)之間進(jìn)行轉(zhuǎn)換。系統(tǒng)處于設(shè)防狀態(tài)和報(bào)警狀態(tài)時(shí),不會(huì)進(jìn)入睡眠狀態(tài)。
4 軟件流程
系統(tǒng)的軟件主要包括實(shí)現(xiàn)單片機(jī)與LIN總線通信的程序以及單片機(jī)對(duì)防盜報(bào)警喇叭控制的主程序。為確保通信的實(shí)時(shí)性,系統(tǒng)采用了高優(yōu)先級(jí)中斷來(lái)接收LIN總線上的信號(hào)。為了保證系統(tǒng)的實(shí)時(shí)性,在中斷處理時(shí)除了進(jìn)行一些簡(jiǎn)單的判斷和數(shù)據(jù)接收外,其他部分都在主程序中處理。

?
圖 4主程序流程圖
一旦總線上出現(xiàn)有效的顯性電平,控制器立即轉(zhuǎn)入高優(yōu)先級(jí)中斷處理函數(shù),首先判斷是否為主機(jī)節(jié)點(diǎn)發(fā)送的間隔場(chǎng),如果是間隔場(chǎng)則接收同步場(chǎng)和標(biāo)志符場(chǎng),若不是同步場(chǎng)則退出等待下一次中斷。在接收到正確的標(biāo)志符后,若標(biāo)志符要求系統(tǒng)發(fā)送信息,系統(tǒng)則發(fā)送數(shù)據(jù)場(chǎng)及校驗(yàn)和場(chǎng),發(fā)送完成后又開始等待接收下一幀數(shù)據(jù)。若標(biāo)志符不是要求本機(jī)進(jìn)行數(shù)據(jù)發(fā)送,則接收隨后的數(shù)據(jù)場(chǎng)及校驗(yàn)和場(chǎng),在主程序中再根據(jù)標(biāo)志符判斷所接收的數(shù)據(jù)是否對(duì)本機(jī)有效,有效的就進(jìn)行相應(yīng)的處理,無(wú)效就丟棄,處理完成后又開始等待接收下一幀數(shù)據(jù).
電子發(fā)燒友App

















































評(píng)論