車(chē)載防盜報警模塊設計應用
隨著(zhù)汽車(chē)工業(yè)的迅猛發(fā)展,車(chē)身上的電子控制單元也越來(lái)越多。傳統的車(chē)身線(xiàn)束不僅會(huì )增加制造成本,而且會(huì )降低系統的可靠性和可維護性。于是,汽車(chē)車(chē)身總線(xiàn)應運而生。采用車(chē)身總線(xiàn)設計不僅可以簡(jiǎn)化線(xiàn)路、節約制造成本、提高可靠性,同時(shí)也節省了系統的維護成本。車(chē)載防盜報警模塊是車(chē)身控制單元(BCM)的一部分,由于其本身對總線(xiàn)通信的實(shí)時(shí)性和速率要求不高,所以將其接入低速總線(xiàn)LIN上。
本文引用地址:http://dyxdggzs.com/article/196512.htmLIN總線(xiàn)
LIN總線(xiàn)主要用于不需要CAN性能、速率和復雜性的低速系統,是一種低成本的串行通信網(wǎng)絡(luò ),采用一個(gè)主節點(diǎn)及若干從節點(diǎn)的結構,基于通用的UART/SCI的硬件接口,最高速率可以達到20kb/s。
LIN總線(xiàn)通過(guò)報文幀進(jìn)行數據傳輸,一個(gè)完整的報文幀包括幀頭和信息響應。報文頭包括間隔場(chǎng)、同步場(chǎng)和標志符場(chǎng)。間隔場(chǎng)由至少13個(gè)位時(shí)的持續顯性電平(0)組成,標志著(zhù)一次數據通信過(guò)程中報文幀的開(kāi)始。同步場(chǎng)包含時(shí)鐘同步信息,其格式是0x55,所有從機節點(diǎn)在正確接收同步字節場(chǎng)后,準確計算出主機節點(diǎn)將要發(fā)送數據的波特率,并以此波特率作為下一步要發(fā)送或接收數據的波特率設定值,從而實(shí)現從機節點(diǎn)與主機節點(diǎn)時(shí)鐘的同步。標志符場(chǎng)定義了信息的內容和長(cháng)度。報文響應由主機節點(diǎn)或從機節點(diǎn)根據標志符場(chǎng)的信息發(fā)出,由2、4或8字節長(cháng)度的數據和1字節的校驗和構成。校驗通過(guò)計算數據的全部字節而得到,用于接收方驗證數據的正確性。

圖 1完整的LIN信息幀
功能描述
車(chē)載防盜報警模塊是車(chē)身控制模塊的一個(gè)從節點(diǎn),主要功能有以下3點(diǎn):一是與BCM之間保持通信聯(lián)系并上報防盜報警模塊的狀態(tài)信息;二是接收車(chē)身控制模塊的命令并驅動(dòng)喇叭發(fā)出報警聲;三是監測連接防盜報警模塊與BCM之間的電源線(xiàn)、地線(xiàn)和LIN線(xiàn)是否被割斷并發(fā)出報警聲。
實(shí)現方案
1 器件選擇
本系統的兩個(gè)主要器件為L(cháng)IN收發(fā)器和微處理器。由于防盜報警模塊是電池供電的LIN節點(diǎn),所以在器件選取時(shí)需要盡量考慮低功耗的器件。LIN收發(fā)器選取TJA1020,它是連接車(chē)身控制器與防盜報警模塊之間的物理媒體連接,也是LIN主/從機協(xié)議控制器和 LIN傳輸媒體之間的接口。協(xié)議控制器輸入引腳TXD的發(fā)送數據流被LIN收發(fā)器轉換為總線(xiàn)信號,而且電平翻轉速率和波形都受到限制,以減少電磁輻射。 TJA1020的接收器檢測到LIN總線(xiàn)上的數據流并通過(guò)RXD引腳將它傳送到協(xié)議控制器。TJA1020具備低功耗管理模式,它在睡眠模式中幾乎不消耗電流并在錯誤模式中減小功率消耗。所以,TJA1020非常適用于防盜報警模塊這種以電池供電的LIN節點(diǎn)。系統采用意法半導體的8位微處理器 STM8S105K4作為主控單片機,靠?jì)炔?28kHz時(shí)鐘驅動(dòng)運行時(shí),靜態(tài)功耗可以低至0.6mA。滿(mǎn)足系統對低功耗要求的同時(shí)具備LIN控制器與電池電量檢測10位ADC功能。
2 信息幀分類(lèi)與系統狀態(tài)定義
對車(chē)身控制系統與防盜報警模塊之間的通信信息幀做了如下的定義:

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