徐碩繁,戴飛,吉爽
(長春理工大學(xué)光電信息學(xué)院, 吉林長春 130000)
隨著汽車電子工業(yè)的高速發(fā)展,汽車越來越向著電氣化、智能化控制方向發(fā)展,帶來了用戶對于汽車的電子電器越來越苛刻的控制要求。傳統(tǒng)的電子電器架構(gòu)已經(jīng)嚴(yán)重制約了其發(fā)展,需要引入網(wǎng)絡(luò)化控制[1]。CAN總線技術(shù)廣泛應(yīng)用在工業(yè)領(lǐng)域,其高可靠性和強(qiáng)實時性[2]給汽車智能電氣化帶來了可能,在汽車控制系統(tǒng)中,CAN總線已經(jīng)從動力總成控制系統(tǒng)中逐步延伸到汽車車身控制系統(tǒng)中,為汽車車身控制帶來了方便。
CAN(Controller Area Network)即控制器局域網(wǎng)[3],是德國著名的Bosch 公司為了解決現(xiàn)代車輛中眾多ECU之間的數(shù)據(jù)交換問題提出的一種現(xiàn)場總線結(jié)構(gòu)的通信方式。該總線通信的最高速率可達(dá)1 Mb/s,總線通信的長度大約為40 m[4]。以多主控制方式工作,整個總線系統(tǒng)相連的各個單元沒有類似于“地址”的信息即系統(tǒng)具有柔軟性。與常用的通信總線相比(IIC、SPI總線等),CAN總線的通信方式具有突出的實時性、可靠性和柔軟性,是目前使用最廣泛的一種汽車網(wǎng)絡(luò)通信[5]。
其主要特征為:
(1)多主控;
(2)固定格式發(fā)送消息;
(3)網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)置靈活,延遲時間必須保證;
(4)通信速度設(shè)置靈活,同一網(wǎng)絡(luò)速度必須一致;
(5)每條消息都有優(yōu)先級;
(6)錯誤檢測功能、錯誤恢復(fù)功能和錯誤通知功能;
(7)只要總線處于空閑,根據(jù)報文優(yōu)先級自動重新傳輸。
MCS08DZ60微控制器[6]Freescale公司HCS08系列8位單片機(jī)中的一種,其內(nèi)部結(jié)構(gòu)主要由單片機(jī)基本部分和CAN功能塊部分組成。基本結(jié)構(gòu)包括:中央處理器單元HCS08(CPU)、1個24通道12位分辨率ADC、2個異步串行通信口SCI并支持LIN2.0和SAE J2602協(xié)議、2個同步串行通信口SPI和IIC、8通道輸入捕捉/輸出比較定時器、53個通用獨(dú)立數(shù)字I/O口和1個專用輸入I/O(其中24個具有外部中斷及喚醒功能),在片內(nèi)還擁有60 kB的Flash、4 kB的RAM和2 kB的EEPROM。其中CAN功能塊包括兩個兼容CAN2.0A/B協(xié)議的MSCAN控制器組成。這些豐富的內(nèi)部資源和外部接口資源可以滿足ECU對各種數(shù)據(jù)的處理、CAN網(wǎng)絡(luò)數(shù)據(jù)的發(fā)送和接收。芯片集成了兩個MSCAN12模塊,能夠?qū)崿F(xiàn)高低速CAN網(wǎng)絡(luò)的網(wǎng)關(guān)節(jié)點(diǎn)功能。
MSCAN控制器是Motorola Scaleable CAN的縮寫[7],而HCS08系列MCU上的CAN控制器是通過MSCAN12模塊實現(xiàn)的,其結(jié)構(gòu)如圖1所示,它遵循CAN2.0A/B協(xié)議,支持標(biāo)準(zhǔn)和擴(kuò)展數(shù)據(jù)幀;并且集成了除收發(fā)器外CAN總線控制器的所有功能,此外它還采用了5個先進(jìn)先出(FIFO)的緩沖器機(jī)制改善了實時性能,簡化了應(yīng)用軟件的設(shè)計。其中還支持睡眠、關(guān)機(jī)和MSCAN使能3種低功耗模式。CAN報文在發(fā)送時,MCU首先將要發(fā)送的數(shù)據(jù)發(fā)送到數(shù)據(jù)緩沖區(qū)中,然后通過軟件設(shè)置相關(guān)寄存器使其發(fā)出發(fā)送報文命令,數(shù)據(jù)通過固定格式組裝成報文后通過發(fā)送引擎送到TxCAN,再經(jīng)過外部的CAN收發(fā)器將數(shù)據(jù)送到CAN總線上。報文接收時,接收引擎通過外部CAN收發(fā)器將CAN總線上的數(shù)據(jù)流引入RxCAN,經(jīng)過解碼、錯誤和校驗檢查,再經(jīng)由報文過濾器過濾后將數(shù)據(jù)送到接收緩沖區(qū),并通過中斷或標(biāo)志通知CPU讀取數(shù)據(jù)。
圖1 MSCAN12 內(nèi)部結(jié)構(gòu)圖
該車燈控制系統(tǒng)主要有左前車燈系統(tǒng)、左后車燈系統(tǒng)、右前車燈系統(tǒng)、右后車燈系統(tǒng)4個部分通過CAN總線連接組成。
考慮到整車網(wǎng)絡(luò)的實時性和簡化網(wǎng)絡(luò)的連接,將這4個ECU單元連接到同一個CAN網(wǎng)絡(luò)控制系統(tǒng)中,對于響應(yīng)的實時性要求必須一致。由于車燈控制系統(tǒng)對實時性要求不高的特點(diǎn),設(shè)計該車燈控制系統(tǒng)網(wǎng)絡(luò)為傳輸速率為125 kb/s的低速CAN網(wǎng)??刂凭W(wǎng)絡(luò)拓?fù)鋱D如圖2所示。
圖2 車燈控制系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖
每個ECU單元的基本CAN節(jié)點(diǎn)電路主要包括:帶有CAN控制器的微控制器MCU和用于數(shù)據(jù)收發(fā)的CAN收發(fā)器TJA1050。設(shè)計中使用的是Freescale 8位微控制器MC9S08DZ60,它帶有MSCAN的控制器,主要負(fù)責(zé)CAN的初始化和數(shù)據(jù)處理。CAN收發(fā)器的種類很多,主要有Philips的82C250、NXP的TJA1050以及Motorola的MC33388、33889、MC33989和MC33997等,這些CAN收發(fā)器之間很多都是可兼容的。此例中采用的是NXP的TJA1050 CAN收發(fā)器,它是一種CAN高速收發(fā)器[8]。CAN節(jié)點(diǎn)結(jié)構(gòu)框圖與部分實際電路圖如圖3所示。
圖3 CAN基本節(jié)點(diǎn)的結(jié)構(gòu)框圖及部分實際電路圖
每個ECU單元的基本車燈驅(qū)動電路主要包括:微控制器MCU和用于驅(qū)動車燈的ULQ2003以及控制車燈通斷電的繼電器。通過微控制器的I/O口結(jié)合ULQ2003來控制繼電器的通斷,從而實現(xiàn)車燈的控制。圖4為車燈驅(qū)動控制電路圖。
圖4 車燈驅(qū)動控制電路設(shè)計圖
CAN模塊軟件設(shè)計部分主要實現(xiàn)的功能是各節(jié)點(diǎn)的數(shù)據(jù)收發(fā)。根據(jù)圖2所示網(wǎng)絡(luò)結(jié)構(gòu)分布,對于實時性要求不高的車燈控制電路采用低速CAN網(wǎng)絡(luò),所設(shè)波特率為125 kb/s。CAN初始化程序如下所示:
void //初始化CAN;
init_can(void)
{
// 進(jìn)入初始化模式;
CAN0CTL0=1;
//設(shè)置CANE=1,初始化模式確認(rèn);
CAN0CTL1=0xc1;
//SJW=0; 分頻因子為4;
CAN0BTR0=0x03;
//SAMP=1;波特率=8/(4*16)=125k
CAN0BTR1=0xd8;
CAN0IDAC=0x10;
}
為了減少網(wǎng)絡(luò)資源的占用率、提高網(wǎng)絡(luò)通信實時性性能,在高低速的CAN網(wǎng)絡(luò)之間除了必要的通信外,其余各自網(wǎng)絡(luò)的報文是相互獨(dú)立傳輸?shù)?,這就需要使用MSCAN中的標(biāo)識符驗收過濾器進(jìn)行報文的過濾,通過對于過濾器寄存器的設(shè)置實現(xiàn)這一功能。以下是CAN寄存器的驗收寄存器與屏蔽寄存器的設(shè)置:
CAN0CIDAR0=0x51; //CAN0驗收寄存器設(shè)置
CAN0CIDAR1=0x00;
CAN0CIDAR2=0x51;
CAN0CIDAR3=0x00;
CAN0CIDMR0=0xdf; //CAN0屏蔽寄存器設(shè)置
CAN0CIDMR1=0xff;
CAN0CIDMR2=0xdf;
CAN0CIDMR3=0xff;
以左車燈ECU作為整個車燈控制系統(tǒng)的外部I/O輸入檢測節(jié)點(diǎn),根據(jù)檢測的I/O數(shù)據(jù)做出相應(yīng)的動作以及發(fā)送相應(yīng)的報文。當(dāng)駕駛?cè)藛T打開圖5所示真值表的任意一個燈的開關(guān)時,左前車燈ECU會有兩種執(zhí)行狀態(tài):第一種直接I/O輸出,且一直輸出高電平該車燈常亮,直到該車燈開關(guān)關(guān)閉時,I/O輸出低電平該車燈常滅;第二種通過CAN總線發(fā)送固定的報文,其他幾個車燈ECU接收到報文后,通過解析報文,再通過相應(yīng)的I/O輸出高電平該車燈常亮。如圖5所示為整個車燈系統(tǒng)常亮車燈的控制狀態(tài)圖及真值表。
圖5 車燈系統(tǒng)常量車燈控制狀態(tài)圖
當(dāng)駕駛?cè)藛T打開圖6所示真值表的任意一個燈的開關(guān)時,左前車燈ECU執(zhí)行會有兩種狀態(tài):第一種直接IO輸出,且一直以固定頻率輸出高低電平,該車燈以固定頻率閃爍,直到該車燈關(guān)閉時,IO輸出低電平;第二種通過CAN總線發(fā)送固定的報文,其他幾個車燈ECU接收到報文后,通過解析報文,再通過相應(yīng)的IO輸出固定頻率高低電平。圖6所示為整個車燈系統(tǒng)閃爍車燈的控制狀態(tài)圖及真值表。
圖6 車燈系統(tǒng)閃爍車燈控制狀態(tài)圖
通過RTC定時器產(chǎn)生一個100 ms的時間基準(zhǔn),實現(xiàn)控制燈光的閃爍以及CAN報文發(fā)送的測試。
此系統(tǒng)通過一些本地的按鈕模擬車身的車燈控制開關(guān)。
測試的具體過程是:給車燈控制系統(tǒng)上電,打開電源開關(guān)。當(dāng)把按鈕打到近光檔時,近光燈點(diǎn)亮,繼續(xù)把按鈕打到遠(yuǎn)光燈時,近光燈、遠(yuǎn)光燈同時點(diǎn)亮;當(dāng)按下剎車燈的開關(guān)時,剎車燈點(diǎn)亮;當(dāng)按下倒車燈的開關(guān)時,倒車燈點(diǎn)亮;當(dāng)把按鈕打到左轉(zhuǎn)檔時,左轉(zhuǎn)指示燈會出現(xiàn)周期性(閃爍頻率10 Hz)的閃爍,把按鈕打到右轉(zhuǎn)檔時,右轉(zhuǎn)指示燈會出現(xiàn)周期性(閃爍頻率10 Hz)的閃爍,把按鈕打到中間檔時,左轉(zhuǎn)燈和右轉(zhuǎn)燈全部熄滅;當(dāng)按下警示燈開關(guān)時,左轉(zhuǎn)向燈、右轉(zhuǎn)向燈同時周期性(閃爍頻率10 Hz)的閃爍,并且車身上的4個門燈全部打開。
為了監(jiān)測車燈控制系統(tǒng)的CAN網(wǎng)絡(luò)之間通信的準(zhǔn)確性和實時性,給出了一個典型的CAN報文監(jiān)測測試實例。通過這次測試,可以看到CAN報文在CAN網(wǎng)絡(luò)之間傳輸。
測試的具體過程是:首先在本地上位機(jī)的CANOE軟件中將仿真環(huán)境搭建好[9];其次將CANOE工具接入該網(wǎng)絡(luò)中。給整個系統(tǒng)上電,最后通過按鈕控制車燈節(jié)點(diǎn)的實際動作,并通過上位機(jī)觀察CAN報文。測試結(jié)果界面如圖7所示。
圖7 CAN報文顯示及其控制結(jié)果顯示
文中給出了一個基于低速CAN網(wǎng)絡(luò)的汽車車燈控制的網(wǎng)絡(luò)設(shè)計方案,介紹了Freescale的8位單片機(jī)MC9S08DZ60在該CAN網(wǎng)絡(luò)中作為控制節(jié)點(diǎn)的軟硬件設(shè)計,以及上位機(jī)對其報文進(jìn)行監(jiān)測顯示的結(jié)果。用此芯片設(shè)計的車燈控制電路具有結(jié)構(gòu)簡單、易于升級、成本低廉但功能強(qiáng)大的特點(diǎn)。該網(wǎng)絡(luò)方案已經(jīng)在某車型的車身上試驗成功,控制網(wǎng)絡(luò)及電路運(yùn)行穩(wěn)定,證明方案可行。采用CAN網(wǎng)絡(luò)來控制汽車車燈電器具有結(jié)構(gòu)簡單、實時性好、可靠性高的優(yōu)點(diǎn),是現(xiàn)代汽車電器控制的發(fā)展趨勢。
參考文獻(xiàn):
[1]路園.OSEK網(wǎng)絡(luò)管理在汽車CAN系統(tǒng)中的研究[D].合肥:合肥工業(yè)大學(xué),2011.
[2]袁昊昀.車載CAN網(wǎng)絡(luò)管理策略研究[D].上海:同濟(jì)大學(xué),2008.
[3]饒運(yùn)濤,鄒繼軍,鄭勇蕓.現(xiàn)場總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2003.
[4]翟躍.電動汽車網(wǎng)絡(luò)管理系統(tǒng)的研究與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2010.
[5]陳綱.基于CAN總線的OSEK/VDX直接網(wǎng)絡(luò)管理的研究與實現(xiàn)[D].南京:東南大學(xué),2015.
[6]MC9S08DZ60 Device User Guide[Z/OL].http:www.nxp.com.
[7]楊國田,白焰.Motorola68HC12系列微控制器原理、應(yīng)用與開發(fā)技術(shù)[M].北京:中國電力出版社,2003.
[8]黃忠能.基于OSEK標(biāo)準(zhǔn)的車載網(wǎng)絡(luò)管理系統(tǒng)的研究與應(yīng)用[D].太原:太原科技大學(xué),2009.
[9]湯志強(qiáng).汽車CAN網(wǎng)絡(luò)中OSEK網(wǎng)絡(luò)管理系統(tǒng)設(shè)計與優(yōu)化[D].合肥:合肥工業(yè)大學(xué),2014.