隨著現(xiàn)代汽車新技術(shù)的飛速發(fā)展,車輛安全系統(tǒng)和舒適系統(tǒng)的不斷完善,用于車輛中的電氣設(shè)備越來越多。針對國產(chǎn)轎車車身控制模塊的多子系統(tǒng)分別工作、智能化程度低、功能可擴(kuò)展性差的現(xiàn)狀,提出了基于高層協(xié)議的分布式模塊化控制器局域網(wǎng) CAN 總線控制解決方案。本文闡述了CAN總線協(xié)議及其技術(shù)特點(diǎn)。結(jié)合應(yīng)用實(shí)例,分析了CAN總線技術(shù)在汽車中的應(yīng)用優(yōu)勢,并對系統(tǒng)的總體結(jié)構(gòu),數(shù)據(jù)傳輸方式以及控制過程進(jìn)行了詳細(xì)的描述,并完成節(jié)點(diǎn)電路設(shè)計(jì),協(xié)議定義及軟件實(shí)現(xiàn),試驗(yàn)驗(yàn)證了其可行性。
1:引言
計(jì)算機(jī)控制系統(tǒng)的發(fā)展在經(jīng)歷了基地式氣動(dòng)儀表控制系統(tǒng)、電動(dòng)單元組合式模擬儀表控制系統(tǒng)、集中式數(shù)字控制系統(tǒng)以及集散控制系統(tǒng)(DCS )后,隨著微處理器技術(shù)和集成電路技術(shù)的飛速發(fā)展,到了現(xiàn)在的現(xiàn)場總線控制系統(tǒng)。現(xiàn)場總線也被稱為自動(dòng)化領(lǐng)域的計(jì)算機(jī)網(wǎng)絡(luò),是當(dāng)今自動(dòng)化領(lǐng)域技術(shù)發(fā)展的熱點(diǎn)之一,它標(biāo)志著控制技術(shù)進(jìn)入了一個(gè)新的時(shí)代。現(xiàn)場總線以總線為紐帶,將現(xiàn)場設(shè)備連接起來成為一個(gè)能夠相互交換信息的控制網(wǎng)絡(luò),是一種雙向串行多節(jié)點(diǎn)數(shù)字通信的系統(tǒng)。CAN總線也是現(xiàn)場總線的一種,被廣泛應(yīng)用于汽車的控制系統(tǒng)、自動(dòng)控制、樓宇自動(dòng)化、醫(yī)學(xué)設(shè)備等各個(gè)領(lǐng)域。
2:CAN總線簡介
CAN是控制器局域網(wǎng)絡(luò)(Controller Area Network)的簡稱,它是由德國的Bosch公司及幾個(gè)半導(dǎo)體生產(chǎn)商開發(fā)出來的,CAN 總線是一種串行多主站控制器局域網(wǎng)總線。它具有很高的網(wǎng)絡(luò)安全性、通訊可靠性和實(shí)時(shí)性,簡單實(shí)用,網(wǎng)絡(luò)成本低。特別適用于汽車計(jì)算機(jī)控制系統(tǒng)和環(huán)境溫度惡劣、電磁輻射強(qiáng)和振動(dòng)大的工業(yè)環(huán)境。
CAN總線有如下基本特點(diǎn):
◎ CAN總線為多主站總線,各節(jié)點(diǎn)可在任意時(shí)刻向網(wǎng)絡(luò)上的其他節(jié)點(diǎn)發(fā)送信息,不分主從,通信靈活;
◎ CAN總線采用獨(dú)特的非破壞性總線仲裁技術(shù),優(yōu)先級高的節(jié)點(diǎn)優(yōu)先傳送數(shù)據(jù),可滿足實(shí)時(shí)性要求;
◎ CAN總線具有點(diǎn)對點(diǎn)、一點(diǎn)對多點(diǎn)及全局廣播傳送數(shù)據(jù)的功能;
◎ CAN總線采用短幀結(jié)構(gòu),每幀有效字節(jié)數(shù)最多為8個(gè),數(shù)據(jù)傳輸時(shí)間短,并有CRC及其他校驗(yàn)措施,數(shù)據(jù)出錯(cuò)率極低;
◎ CAN總線上某一節(jié)點(diǎn)出現(xiàn)嚴(yán)重錯(cuò)誤時(shí),可自動(dòng)脫離總線,而總線上的其他操作不受影響;
◎ CAN總線系統(tǒng)擴(kuò)充時(shí),可直接將新節(jié)點(diǎn)掛在總線上,因而走線少,系統(tǒng)擴(kuò)充容易,改型靈活;
◎ CAN總線最大傳輸速率可達(dá)1Mb/s(此時(shí)通信距離最長為40m),直接通信距離最遠(yuǎn)可達(dá)10km(速率5kbps以下);
◎ CAN總線上的節(jié)點(diǎn)數(shù)主要取決于總線驅(qū)動(dòng)電路。在標(biāo)準(zhǔn)幀(11位報(bào)文標(biāo)識符)可達(dá)110個(gè),而在擴(kuò)展幀(29位報(bào)文標(biāo)識符)其個(gè)數(shù)幾乎不受限制。
3: CAN總線控制系統(tǒng)的網(wǎng)絡(luò)構(gòu)建原理
CAN總線是一種串行總線式的通信網(wǎng)絡(luò)。與其他串行式網(wǎng)絡(luò)所不同的是,CAN總線采用了帶優(yōu)先級的CSMA/CD協(xié)議對總線進(jìn)行仲裁,所以,CAN總線構(gòu)建的網(wǎng)絡(luò)允許網(wǎng)絡(luò)上的節(jié)點(diǎn)同時(shí)發(fā)送信息,這樣,CAN總線既可以構(gòu)成多主結(jié)構(gòu)的系統(tǒng),保證了系統(tǒng)設(shè)計(jì)的可靠性,也能保證信息處理的實(shí)時(shí)性。此外,CAN總線采用短幀結(jié)構(gòu),且它的每幀信息都有CRC校驗(yàn),這樣就能夠保證很低數(shù)據(jù)傳輸出錯(cuò)率。CAN總線通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢測、優(yōu)先級判別等工作.CAN總線控制系統(tǒng)的網(wǎng)絡(luò)拓?fù)湓韴D如圖1所示,網(wǎng)絡(luò)通信介質(zhì)采用雙絞線。總線的每個(gè)末端接有終端電阻RT以抑制信號反射,采用雙絞線為通信介質(zhì)時(shí),一般選取Rt= 100~120歐姆。在實(shí)際組建網(wǎng)絡(luò)時(shí),圖中在參數(shù)D, S根據(jù)現(xiàn)場的情況來確定。節(jié)點(diǎn)分支的長度D應(yīng)小于3米,而相鄰節(jié)點(diǎn)的距離S則要取決于總線的通信速率,一般說速率越高,其允許值也就越小。根據(jù)CAN的國際標(biāo)準(zhǔn)IS011898的建議,在總線位速率為1 Mbps時(shí),S的值應(yīng)小于40m,而當(dāng)總線速率在5Kbps以下時(shí),則可達(dá)10Krn。設(shè)計(jì)CAN總線的串行網(wǎng)絡(luò)主要是考慮其網(wǎng)絡(luò)擴(kuò)展容易,增刪節(jié)點(diǎn)方便且成本較低等因素。系統(tǒng)的工作過程如下:系統(tǒng)上電復(fù)位后,CAN通信接口卡接收到PC機(jī)的數(shù)據(jù)后,便向總線上的各個(gè)節(jié)點(diǎn)傳播。CAN總線上的節(jié)點(diǎn)與被控對象(圖中未畫出)相連,當(dāng)它接收到PC機(jī)的數(shù)據(jù)后,則對被控對象作相應(yīng)的操作。當(dāng)CAN總線節(jié)點(diǎn)有數(shù)據(jù)向總線發(fā)送時(shí),便通過收發(fā)器把數(shù)據(jù)發(fā)到物理總線,或傳送到其它節(jié)點(diǎn),或經(jīng)CAN通信板卡傳送到上位機(jī)。

圖1 CAN控制系統(tǒng)的網(wǎng)絡(luò)拓?fù)湓韴D
4:基于AT89S8252 的汽車計(jì)算機(jī)控制
4.1 AT89S8252芯片簡介
美國ATMEL公司的89系列單片機(jī)在內(nèi)部功能和引腳上與MCS-51單片機(jī)兼容,而內(nèi)部程序存儲(chǔ)器采用FLASH存儲(chǔ)器,因而也稱FLASH單片機(jī)。這是一個(gè)十分有特色的單片機(jī)系列。它源于51而又優(yōu)于51。因此對熟悉51系列的用戶來說,用89系列單片機(jī)取代51系列是輕而易舉的事。在89系列單片機(jī)中有一款非常優(yōu)秀的單片機(jī)――AT89S8252,它幾乎囊括了目前單片機(jī)的全部功能是ATMEL89系列中最高檔的單片機(jī)。
AT89S8252的特點(diǎn)
AT89S8252除具有89系列所共有的特性,如與80C51插座兼容;靜態(tài)時(shí)鐘方式等,還增加了以下功能:
▲ 8KFLASH程序存儲(chǔ)器有可下載功能,其下載功能是由PC通過AT89S8252的串行外圍接口SPI執(zhí)行的。
▲ 除了8KFLASH存儲(chǔ)器之外,它還含有一個(gè)2K的EEPROM,從而提高了存儲(chǔ)容量。
▲ 含有9個(gè)中斷響應(yīng)的能力。
▲ 含有SPI接口。
▲ 含有WATCHDOG定時(shí)器。
▲ 含有雙數(shù)據(jù)指針。
▲ 含有從電源下降的中斷恢復(fù)。
如此這些使得89S8252成為目前以51為核心的單片機(jī)中功能較強(qiáng),性價(jià)比較高的。
4.2 車身控制系統(tǒng)的介紹與拓?fù)浣Y(jié)構(gòu)
車身控制模塊的控制功能包括遙控中央門鎖和防盜、電動(dòng)車窗玻璃升降器、內(nèi)外燈、雨刮、后窗和后視鏡加熱控制、電動(dòng)座椅和空調(diào)等。為了達(dá)到舒適、安全和方便的目的,同時(shí)隨著車上網(wǎng)絡(luò)技術(shù)的發(fā)展,集成了上述功能的全部或部分的車身控制模塊逐漸應(yīng)用于高檔轎車,提高了汽車的使用性能。本文的車身控制模塊功能包括遙控中央門鎖和防盜、電動(dòng)車窗玻璃升降器、內(nèi)外燈、雨刮、后窗和后視鏡加熱控制。其結(jié)構(gòu)包括中央控制模塊、主駕門模塊和其他三個(gè)門模塊。五個(gè)模塊之間采用波特率小于125k的低速雙線CAN總線通訊。可以通過獨(dú)立的或集成在儀表模塊中的網(wǎng)關(guān),將車身控制模塊系統(tǒng)連接到高速的動(dòng)力傳動(dòng)總線,從而獲得車速信號、發(fā)動(dòng)機(jī)轉(zhuǎn)速信號和安全氣囊觸發(fā)信號,或者自接從儀表模塊獲得車速信號、發(fā)動(dòng)機(jī)轉(zhuǎn)速信號,從碰撞傳感器獲得碰撞信號,從變速器獲得檔位信號。使用總線連接可實(shí)現(xiàn)一些智能化的控制:當(dāng)空調(diào)打開后或遙控閉鎖后,車身控制系統(tǒng)自動(dòng)將所有車窗升到頂:車速超過30km/h時(shí),自動(dòng)將車門鎖定:一旦發(fā)生碰撞事故,在氣囊打開的同時(shí)解鎖所有車門,便于車內(nèi)駕乘人員逃生。車身控制模塊CAN總線結(jié)構(gòu)如圖2所示。

圖2 車身控制模塊CAN總線結(jié)構(gòu)
4.3電路框圖
a: 主控單元硬件框圖(圖3)

圖3 主控單元硬件框圖
b: 受控單元硬件框圖(圖4)

圖4 受控單元硬件框圖
C: 門控單元硬件框圖(圖5)

圖5 門控單元硬件框圖
4.4 CAN總線系統(tǒng)智能節(jié)點(diǎn)設(shè)計(jì)
網(wǎng)絡(luò)中的節(jié)點(diǎn)是信息接收和發(fā)送站,根據(jù)接受的信息和本地采集的信息完成相應(yīng)的控制。簡化的CAN節(jié)點(diǎn)是一個(gè)單芯片,可以直接將采集到的管腳電平和AD信號并轉(zhuǎn)化為CAN報(bào)文遠(yuǎn)程傳送,在網(wǎng)絡(luò)中充當(dāng)一個(gè)沉默的網(wǎng)關(guān)。這種裝置對于驅(qū)動(dòng)遠(yuǎn)程感應(yīng)器、執(zhí)行器或采集數(shù)字和模擬數(shù)據(jù)都非常理想,它們能夠被看作中央微控制器的遠(yuǎn)程附件。

圖6 CAN總線系統(tǒng)智能節(jié)點(diǎn)硬件電路原理圖
本硬件電路設(shè)計(jì)中,采用ATMEL AT89S8252作為MCU, Philips SJA1000作為CAN控制器,Philips TJA1050作為總線驅(qū)動(dòng)器。從圖6可以看出,電路主要由上述三部分組成。微處理器AT89S8252負(fù)責(zé)SJA1000的初始化,通過SJA1000實(shí)現(xiàn)數(shù)據(jù)的接受和發(fā)送的等通信任務(wù)。SJA1000的AD0-AD7連接到AT89S8252的P0口,片選CS連接到AT89S8252 P2.l。P2.7為0時(shí),CPU片外存貯器地址可選中SJA1000 。CPU通過這些地址可對SJA1000執(zhí)行相應(yīng)的讀寫操作。SJA1000的RD, WR, ALE分別與AT89S8252的對應(yīng)引腳相連,INT接AT89S8252的INT0, AT89S8252也可通過中斷方式訪問SJA1000。
TJA1050是CAN協(xié)議控制器和物理總線之間的接口,應(yīng)用在波特率范圍在60k到1M的高速自動(dòng)化應(yīng)用中。TJA1050可以為總線提供不同的發(fā)送性能,為CAN控制器提供不同的接收性能,完全與ISO11898標(biāo)準(zhǔn)兼容。TJA1050有一個(gè)電流限制電路,保護(hù)發(fā)送器的輸出級,使由正或負(fù)電源電壓意外造成的短路不會(huì)對TJA1050造成損壞。TJA1050還有一個(gè)溫度保護(hù)電路,當(dāng)與發(fā)送器的連接點(diǎn)的溫度超過大約165 攝氏度時(shí),會(huì)斷開與發(fā)送器的連接。當(dāng)總線短路時(shí),尤其需要這個(gè)溫度保護(hù)電路。為了提高電磁兼容性,采用了終端分解結(jié)構(gòu)。CAN總線系統(tǒng)智能節(jié)點(diǎn)硬件電路原理圖如上圖6所示。
在實(shí)際應(yīng)用中,CAN總線大都用在如汽車和工業(yè)現(xiàn)場控制等的環(huán)境中,環(huán)境對電路的影響很大,所以為減少這些干擾,在設(shè)計(jì)CAN總線的節(jié)點(diǎn)時(shí),通常在電路中使用高速光禍,如6N137等,使SJA1000的TX0與RX0不直接與TJA1050的TXD和RXD相連,而是通過高速光藕與TJA1050相連,這樣就能很好地實(shí)現(xiàn)總線上各CAN節(jié)點(diǎn)間的電氣隔離。同時(shí)還必須指出的是,光禍部分所采用的兩個(gè)電源VCC和VDD必須完全隔離,否則光禍也就失去了意義,即無法達(dá)到隔離的目的。
4.5 CPU電源設(shè)計(jì)
CPU的5V電源采用LM2575進(jìn)行DC/DC轉(zhuǎn)換把12V的蓄電池電源轉(zhuǎn)換為SV的MCU控制的電源。LM2575的ON /OFF用來和MC33993的WAKE引腳相連,當(dāng)外部開關(guān)動(dòng)作時(shí)WAKE引腳為低,使LM2575正常工作,當(dāng)無開關(guān)動(dòng)作時(shí),LM2575停止工作,從而減少損耗。

圖7 CPU電源設(shè)計(jì)原理圖
4.6 軟件設(shè)計(jì)
本系統(tǒng)軟件由總的系統(tǒng)軟件和高( 低) 速CAN 總線網(wǎng)絡(luò)單元軟件組成,軟件流程圖如圖8和圖9所示。其中圖9 高速CAN 總線網(wǎng)絡(luò)單元負(fù)責(zé)對實(shí)時(shí)性要求高的發(fā)動(dòng)機(jī)控制、變速控制、安全控制和ABS 單元的控制動(dòng) 作的采集和傳送,一旦有這些控制單元?jiǎng)幼餍盘?經(jīng)過微控制器對它們進(jìn)行處理后將以最快的速度通過高速CAN 網(wǎng)絡(luò)傳給相應(yīng)控制單元的ECU ,由控制單元ECU對控制對象進(jìn)行控制;低速CAN 總線網(wǎng)絡(luò)的控制方法及單元軟件流程圖與此類似,但是由于它們的實(shí)時(shí)性要求相對前者不高,因此它們的傳輸優(yōu)先級相對較低。

圖8 總的系統(tǒng)軟件流程圖
5:結(jié)束語
CAN總線以其高通信速率、高性價(jià)比以及網(wǎng)絡(luò)構(gòu)建的靈活性等諸多特點(diǎn),成為目前最為流行的現(xiàn)場總線之一。隨著集成CAN協(xié)議的各種器件的不斷推出,CAN總線的應(yīng)用范圍已不再局限于汽車工業(yè),它涉及的應(yīng)用領(lǐng)域已擴(kuò)展到醫(yī)療器件、傳感器技術(shù)、數(shù)據(jù)采集系統(tǒng)以及樓宇自動(dòng)化和工業(yè)控制中。由此可見,CAN總線的應(yīng)用前景十分廣闊。
參考文獻(xiàn)
【1】饒運(yùn)濤,鄒繼軍 現(xiàn)場總線CAN原理與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2003.6.
【2】劉梅 基于CAN總線的汽車車身控制系統(tǒng)的研究與設(shè)計(jì) 合肥工業(yè)大學(xué) 2005-07
【3】 周震 基于CAN總線的車身控制模塊. 南京航空航天大學(xué) 2005-07
【4】 王箴.CAN總線在汽車中應(yīng)用[N]. 中國汽車報(bào),2004.9.20(28).
【5】戴西槐 朱建新等 基于CAN總線的EV電控系統(tǒng)通信的設(shè)計(jì)與開發(fā). 電子技術(shù)應(yīng)用網(wǎng)
【6】馬忠梅 籍順心 單片機(jī)的C語言應(yīng)用程序設(shè)計(jì). 北京航空航人大學(xué)出版社1999