基于CAN總線的汽車車身控制系統(tǒng)的研究與應(yīng)用
科學(xué)的發(fā)展使得汽車正增加著越來越多的功能,如何使這些眾多的獨(dú)立功能協(xié)調(diào)統(tǒng)一工作,亦即如何對整個車身進(jìn)行控制,已經(jīng)成為整個汽車電子研究領(lǐng)域中非常重要的課題。汽車網(wǎng)絡(luò),即汽車總線技術(shù)在這種環(huán)境下應(yīng)運(yùn)而生了。而CAN 總線技術(shù)以其高實時性、高可靠性在各種汽車控制總線中獨(dú)占鰲頭。
1 CAN 總線技術(shù)簡介
CAN,全稱為“Controller Area Network”,即控制器局域網(wǎng),是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。CAN 最初出現(xiàn)在80 年代末的汽車工業(yè)中,由德國Bosch 公司最先提出。CAN 是一種多主方式的串行通訊總線,基本設(shè)計規(guī)范要求有高的位速率,高抗電磁干擾性,而且能夠檢測出產(chǎn)生的任何錯誤。當(dāng)信號傳輸距離達(dá)到10km 時,CAN 仍可提供高達(dá)50Kbit/s 的數(shù)據(jù)傳輸速率。目前CAN 總線已經(jīng)形成國際標(biāo)準(zhǔn),廣泛應(yīng)用于歐美轎車,被公認(rèn)為幾種最有前途的現(xiàn)場總線之一。
2 系統(tǒng)設(shè)計思想
汽車車身系統(tǒng)的控制對象包括: 4 個車門鎖、2 個以上車窗玻璃升降器、行李箱鎖、除霜加熱器、電動后視鏡、前后大燈、小燈、轉(zhuǎn)向燈、危險燈、霧燈、牌照燈、車內(nèi)閱讀燈、車廂頂燈等。在具備遙控功能的情況下,還包括對遙控信號的接收處理和防盜系統(tǒng)的控制。因此,根據(jù)以上要完成的各功能,將本系統(tǒng)設(shè)計為 5 個子模塊,分別是中央控制模塊( 實現(xiàn)中控門鎖、防盜、雨刮、內(nèi)外燈和后窗及后視鏡加熱等功能) ,4 個門控模塊( 分別為主駕門模塊、右前門模塊、左后門模塊、右后門模塊,來控制車窗升降器和門鎖)。
圖1 給出了車身控制模塊CAN 總線結(jié)構(gòu)。
3.1 系統(tǒng)各模塊電路框圖
根據(jù)以上設(shè)計思想分為5個子模塊。
主控單元接收開關(guān)信號之后,先進(jìn)行分析處理,然后通過CAN總線把控制指令發(fā)送給各受控端,各受控端響應(yīng)后作出相應(yīng)的動作。
以下是各模塊的電路框圖見圖2、圖3、圖4。
3.2 系統(tǒng)主要使用的元器件
(1)CAN控制器??紤]到系統(tǒng)拓展的需要,我們采用PHILIPS公司生產(chǎn)的SJA 1000來作為此系統(tǒng)的CAN控制器。它既和PCA82C200獨(dú)立CAN控制器引腳兼容,又和PCA82C200獨(dú)立CAN控制器電氣兼容;既支持BasicCAN模式,又支持PeliCAN模式;和CAN2.0B協(xié)議兼容;可同時支持11位和29位識別碼;位速率可達(dá)1Mbits/s。
(2)CAN收發(fā)器。采用PHILIPS公司生產(chǎn)TJA1050,跟PCA82C250一樣,TJA 1050符合ISO 11898標(biāo)準(zhǔn),但在關(guān)鍵的AM波段上它的輻射比PCA82C250低20dB以上。在不上電時總線呈現(xiàn)無源特性。
(3)單片機(jī)。采用P89C51。該單片機(jī)是80C51微控制器的派生器件,是采用先進(jìn)CMOS工藝制造的8位微控制器,指令系統(tǒng)與80C51完全相同。
4 、基于CAN總線車身控制系統(tǒng)的軟件開發(fā)
在CAN 總線構(gòu)成的系統(tǒng)中,用戶要根據(jù)自己的要求來編寫應(yīng)用層和用戶層軟件。用戶層實現(xiàn)用戶要求的控制策略和系統(tǒng),而應(yīng)用層則是在用戶層與接口之間,CAN建立了報文發(fā)送時的方法、信號電平及協(xié)議,應(yīng)用層則定義了結(jié)構(gòu)、響應(yīng)及報文的意義,應(yīng)用層要根據(jù)CAN系統(tǒng)應(yīng)用場合的不同而有所變化。
4.1 CAN控制器的初始化
CAN控制器SJA1000在正式收發(fā)信號之前必須進(jìn)行初始化設(shè)置。對SJA 1000的初始化是對工作方式、接收濾波寄存器、接收屏蔽寄存器、接收代碼寄存器、波特率參數(shù)等的設(shè)置,要求對寫入每個寄存器的內(nèi)容進(jìn)行仔細(xì)和全面的考慮。
4.2 CAN總線上數(shù)據(jù)的發(fā)送和接收
對SJA 1000初始化成功后,就可以用它來傳輸和接收報文。節(jié)點向總線發(fā)送報文的過程是:單片機(jī)P89C51將待發(fā)送的數(shù)據(jù)按CAN格式組成一幀報文,寫入SJA1000的發(fā)送緩沖區(qū),然后啟動SJA1000,把報文發(fā)送到總線上去。接收報文的過程是:SJA 1000從總線上自動接收報文,并經(jīng)過過濾后存入接收緩沖區(qū),并向單片機(jī)發(fā)出中斷請求,單片機(jī)從緩沖區(qū)讀取報文。發(fā)送和接收流程見圖6、圖7。
5 結(jié)束語
CAN總線以其高性能、高可靠性及其獨(dú)特的設(shè)計越來越受到人們的重視,并被公認(rèn)為是汽車電控系統(tǒng)中最有前途的總線之一。它作為一種可靠的汽車計算機(jī)網(wǎng)絡(luò)總線已在許多先進(jìn)汽車上得到應(yīng)用,使得各汽車計算機(jī)控制單元能夠通過CAN總線共享所有信息和資源,達(dá)到簡化布線、減少傳感器數(shù)量、避免控制功能重復(fù)、提高系統(tǒng)可靠性和維護(hù)性、降低成本、更好地匹配和協(xié)調(diào)各個控制系統(tǒng)的目的。