摘要:采用單片機MC9S12XS128實現了一款車身中央控制器,實現了對中央集控門鎖、外部燈光、內部燈光、雨刷的控制,同時通過RF技術實現了防盜報警功能和遙控門鎖控制,通過LIN總線實現了對四個車窗的控制。
關鍵字:LIN;集控門鎖;防盜報警
引言

汽車電子已經進入大規模應用階段。總線技術、智能傳感、近距無線、射頻通信等技術大大提升了汽車的智能水平,拓展了汽車的使用空間。根據其使用領域的不同,一般把汽車電子劃分為車身控制系統、動力系統、行駛控制系統、信息娛樂系統四大部分,其中對于車身控制系統,一般采取集中式控制、分布式控制兩種方案進行設計。
對于成本敏感的低端汽車而言,集中式控制能更好地控制成本。而對于有一定功能升級要求的中高端汽車,采用分布式系統便于功能的擴展和升級。現在汽車廠商一般會針對汽車配置級別的不同采用不同的方案,對某一車系的低配,其車身中央控制器的集中度更高一些,而對于高配。則把車身中央控制器的部分功能以單節點的形式實現。并添加部分智能化的功能,節點和車身中央控制器之間采用CAN總線或LIN總線進行通信。比如可以把中央控制器中的車窗升降功能分離出來,以單節點形式實現并實現智能化的車窗防夾手功能。
圖1是某車型采用LIN總線設計實現的分布式車身控制系統,包括車身中央控制器(以下簡稱BCM)、四個車窗節點和兩個傳感器節點,其中BCM作為LIN主節點,接收來自車窗節點相傳感器節點的狀態信號并實現對車窗節點的控制,它是車身控制系統最主要的單元。以下結合為該車型開發的BCM的經驗,詳細介紹BCM的系統結構及其軟硬件實現。
BCM系統結構
BCM是個典型的控制系統。其輸入接口包括一系列開關信號和脈沖信號,控制對象包括門鎖、燈光、雨刷、車窗、報警器,通過RF信號和遙控車鑰匙通信,通過LIN總線和傳感器節點及車窗節點進行通信,其系統結構如圖2所示。
從圖2可以看出,輸出控制是BCM的核心模塊,輸入信號檢測、通訊、防盜報警狀態管理都是為輸出控制服務的。以下就輸入信號檢測、輸出控制、LIN通訊三方面描述其硬件設計及軟件開發。

輸入信號檢測
根據輸入信號的性質及其檢測方式,BCM輸入信號包括開關信號和脈沖信號。在電氣特性上,這些信號都表現為高低電平形式的單根物理連線,其中車速信號和碰撞信號為有周期特性的脈沖信號,開關信號則時間離散,由外部輸入(一般是人的操作)決定。
輸入檢測在硬件設計上比較簡單,進行簡單的限流和濾波,分壓后直接接在單片機的IO引腳上即可,如圖3所示。
在以組合邏輯形式出現的輸出控制邏輯中,在條件A滿足的情況下,激勵B會觸發控制c。開關信號的狀態及其變化經常作為某個控制邏輯的條件和激勵,所以對于這種在物理上表示為單根連線的開關量信號,在邏輯上則對應三個變量,分別表示該開關信號的當前狀態及變化。如左轉向燈開關對應于外部連接端口D3這個物理信號,在程序內部邏輯上對應的三個變量為:
Bool LeftTurnSwitch;
Bool LeftTurnSw_close_event;
Bool LeftTurnSw_open_event;
LeftTurnSwitch表示左轉向燈開關的“當前狀態”,LeftTurnSw_close_event表示該開關“從開啟到關閉”的變化,LeftTurnSw_open_event則表示該開關“從閉合到開啟”的變化。
設計一10ms的周期定時器,周期性讀取IO狀態,如果三次取值相同,則認為該狀態穩定。如果發生沿跳變,同樣也是三次取值相同才認為是有效的沿跳變,否則認為是一次抖動。這樣既實現了軟件消抖,又確定了開關信號所對應的三個變量的值。
輸出控制
BCM的控制負載包括門鎖電機、車燈、雨刷電機、報警喇叭和LED,輸出控制不僅要實現對負載的功率驅
動,還要提供一定的保護和故障診斷功能。對于車燈和電機負載,輸出功率比較大,通過綜合比較各種方案,選用英飛凌的智能功率芯片實現對車燈和電機的控制。下面以左右轉向燈的輸出控制為例。闡述智能功率芯片的特點和輸出控制的實現。
BCM需要同時驅動前轉向、后轉向和側轉向燈,前后轉向燈功率均為24W/12V,側轉向燈為6W/12V。經過比較,選擇智能高端功率開關BTS5246實現對轉向燈的控制。該芯片內部集成了功率驅動、電流檢測、溫度傳感器等電路,提供雙路高端輸出,輸出功率高達480W。完全可以滿足轉向燈功率要求,同時提供了完善的故障檢測及保護功能。相比分立元件的方式,電路更為簡單,工作頻率更高,大大減小了電路板空間,并提高了模塊的EMC性能。基于BTS5246的轉向燈控制電路如圖4所示。
在BCM的負載控制功能中,不僅要實現對負載的功率驅動,還要滿足一定的時間特性。在轉向燈控制中,需要實現對功率芯片BTS5246的開關控制,而且由于轉向燈依工作模式的不同有兩種閃爍頻率80次/min和160次/min,需要實現定時和計時功能。
在BCM的負載控制中,無論是周期閃爍的轉向燈、報警警示燈,PWM啟動和熄滅的鑰匙孔燈和室內頂燈,還是門鎖電機和車窗電機等,其功率開關都是采取Io控制的方式,而且很多都具有時間特性。這樣每個負載的控制信號對應兩個變量,分別表示其Io控制和時間特性。以左轉向燈控制為例:
#define FASTFLASH 1
#define SLOWFLASH 2
#define SHUTDOWN 3
extemuchat LftnLgt_Cyout;
extern Bool LftnLgt_Port;
其中LftnLgt_Cyout表示左轉向燈的輸出及其時間特性,LftnLgt_Cyout=FASTFLASH表示左轉向燈以160次/rain頻率閃爍;LftnLgt_Cyout=sLOWFLAsH表示左轉向燈以80次/min頻率閃爍;LftnLgt_Cyout=SHUTDOWN表示處于關斷狀態。LftnLgt Port是cPU上控制左轉向燈的Io端口,它直接控制BTSs246的功率開關,其接口函數為DrivePort(Driverport DrportjBoolOper);其中Drport為輸出控制端口宏定義,Oper有DRIVEON、DRIVEOFF兩個取值,控制智能功率開關的開啟與關閉。
LIN通訊
作為分布式車身控制系統的主節點,BCM與其它節點通過LIN總線進行通訊,采用LIN物理層收發器TJA1021和MCU片上外設UART完成LIN接口電路的設計。如圖5所示。
TJA1021是Philips(編者注:現在是NXP公司)的LIN物理層芯片,波特率高達20kbit/s,實現總線波形整形和電平轉換功能,具有很高的抗電磁干擾性和極低的電磁發射,可以滿足汽車環境的苛刻要求。它內部集成從機端電阻。在從機節點應用中無須再外接電阻便可以實現LIN總線的阻抗匹配,BCM是LIN主節點,如圖5所示,需要外接1k主機端電阻到VEE。
LIN總線數據采取SCI格式,將TJA1021的TXD和RXD連接到MCU的UART發送和接收引腳上,便可以在UART上以軟件的形式實現LIN的數據鏈路層。由于LIN在物理上為單線形式、發送和接收都是在LIN線上進行的,所以發送也會觸發接收,這樣便可以將其數據鏈路層的實現統一到UART的接收處理函數中來。該部分可以根據LIN幀的格式以狀態機的形式實現。
BCM做為車身控制系統的LIN主節點,以時間片輪轉的方式調度著LIN報文的傳輸,當時間片到達時,BCM發送包括間隔場、同步場和PID在內的幀頭,然后由各個節點根據該PID決定接收數據場還是發送數據場。時間片的輪轉是基于調度表實現的,定義如下形式的結構體實現對調度表條目的管理。
typedefstruct
{
uchar handle;
uchar pid;
uchar mode;
uchar*data;
uchar datalen;
uchar ticks;
}1_sch_table_item;
其中handle為調度表條目索引,每次時間片輪轉時加一,輪轉到調度表表尾時切換到調度表表頭繼續輪轉,pid為LIN報文的Protected ID,mode表示該幀數據場是由BcM發送還是由其他節點發送,data為數據場,datalen為數據場長度。ticks定義時間片長度即該幀和下一幀的時間間隔。
LIN幀調度表為1 sch table item結構體數組,根據當前調度表條目的ticks決定時間片計肘時間,超時發生時,切換當前時間片,同時切換調度表條目,這樣便實現了LIN報文的輪轉調度。
結語
本文針對某車型分析了其車身控制系統結構,從輸入信號檢測、輸出控制和LIN通訊三個方面,描述了其車身中央控制器的設計實現,該控制器經裝車試驗,運行良好,功能穩定,有很高的實用價值。