徐碩繁,戴飛,吉爽
(長春理工大學光電信息學院, 吉林長春 130000)
隨著汽車電子工業的高速發展,汽車越來越向著電氣化、智能化控制方向發展,帶來了用戶對于汽車的電子電器越來越苛刻的控制要求。傳統的電子電器架構已經嚴重制約了其發展,需要引入網絡化控制[1]。CAN總線技術廣泛應用在工業領域,其高可靠性和強實時性[2]給汽車智能電氣化帶來了可能,在汽車控制系統中,CAN總線已經從動力總成控制系統中逐步延伸到汽車車身控制系統中,為汽車車身控制帶來了方便。
CAN(Controller Area Network)即控制器局域網[3],是德國著名的Bosch 公司為了解決現代車輛中眾多ECU之間的數據交換問題提出的一種現場總線結構的通信方式。該總線通信的最高速率可達1 Mb/s,總線通信的長度大約為40 m[4]。以多主控制方式工作,整個總線系統相連的各個單元沒有類似于“地址”的信息即系統具有柔軟性。與常用的通信總線相比(IIC、SPI總線等),CAN總線的通信方式具有突出的實時性、可靠性和柔軟性,是目前使用最廣泛的一種汽車網絡通信[5]。
其主要特征為:
(1)多主控;
(2)固定格式發送消息;
(3)網絡節點設置靈活,延遲時間必須保證;
(4)通信速度設置靈活,同一網絡速度必須一致;
(5)每條消息都有優先級;
(6)錯誤檢測功能、錯誤恢復功能和錯誤通知功能;
(7)只要總線處于空閑,根據報文優先級自動重新傳輸。
MCS08DZ60微控制器[6]Freescale公司HCS08系列8位單片機中的一種,其內部結構主要由單片機基本部分和CAN功能塊部分組成。基本結構包括:中央處理器單元HCS08(CPU)、1個24通道12位分辨率ADC、2個異步串行通信口SCI并支持LIN2.0和SAE J2602協議、2個同步串行通信口SPI和IIC、8通道輸入捕捉/輸出比較定時器、53個通用獨立數字I/O口和1個專用輸入I/O(其中24個具有外部中斷及喚醒功能),在片內還擁有60 kB的Flash、4 kB的RAM和2 kB的EEPROM。其中CAN功能塊包括兩個兼容CAN2.0A/B協議的MSCAN控制器組成。這些豐富的內部資源和外部接口資源可以滿足ECU對各種數據的處理、CAN網絡數據的發送和接收。芯片集成了兩個MSCAN12模塊,能夠實現高低速CAN網絡的網關節點功能。
MSCAN控制器是Motorola Scaleable CAN的縮寫[7],而HCS08系列MCU上的CAN控制器是通過MSCAN12模塊實現的,其結構如圖1所示,它遵循CAN2.0A/B協議,支持標準和擴展數據幀;并且集成了除收發器外CAN總線控制器的所有功能,此外它還采用了5個先進先出(FIFO)的緩沖器機制改善了實時性能,簡化了應用軟件的設計。其中還支持睡眠、關機和MSCAN使能3種低功耗模式。CAN報文在發送時,MCU首先將要發送的數據發送到數據緩沖區中,然后通過軟件設置相關寄存器使其發出發送報文命令,數據通過固定格式組裝成報文后通過發送引擎送到TxCAN,再經過外部的CAN收發器將數據送到CAN總線上。報文接收時,接收引擎通過外部CAN收發器將CAN總線上的數據流引入RxCAN,經過解碼、錯誤和校驗檢查,再經由報文過濾器過濾后將數據送到接收緩沖區,并通過中斷或標志通知CPU讀取數據。

圖1 MSCAN12 內部結構圖
該車燈控制系統主要有左前車燈系統、左后車燈系統、右前車燈系統、右后車燈系統4個部分通過CAN總線連接組成。
考慮到整車網絡的實時性和簡化網絡的連接,將這4個ECU單元連接到同一個CAN網絡控制系統中,對于響應的實時性要求必須一致。由于車燈控制系統對實時性要求不高的特點,設計該車燈控制系統網絡為傳輸速率為125 kb/s的低速CAN網。控制網絡拓撲圖如圖2所示。

圖2 車燈控制系統網絡結構圖
每個ECU單元的基本CAN節點電路主要包括:帶有CAN控制器的微控制器MCU和用于數據收發的CAN收發器TJA1050。設計中使用的是Freescale 8位微控制器MC9S08DZ60,它帶有MSCAN的控制器,主要負責CAN的初始化和數據處理。CAN收發器的種類很多,主要有Philips的82C250、NXP的TJA1050以及Motorola的MC33388、33889、MC33989和MC33997等,這些CAN收發器之間很多都是可兼容的。此例中采用的是NXP的TJA1050 CAN收發器,它是一種CAN高速收發器[8]。CAN節點結構框圖與部分實際電路圖如圖3所示。

圖3 CAN基本節點的結構框圖及部分實際電路圖
每個ECU單元的基本車燈驅動電路主要包括:微控制器MCU和用于驅動車燈的ULQ2003以及控制車燈通斷電的繼電器。通過微控制器的I/O口結合ULQ2003來控制繼電器的通斷,從而實現車燈的控制。圖4為車燈驅動控制電路圖。

圖4 車燈驅動控制電路設計圖
CAN模塊軟件設計部分主要實現的功能是各節點的數據收發。根據圖2所示網絡結構分布,對于實時性要求不高的車燈控制電路采用低速CAN網絡,所設波特率為125 kb/s。CAN初始化程序如下所示:
void //初始化CAN;
init_can(void)
{
// 進入初始化模式;
CAN0CTL0=1;
//設置CANE=1,初始化模式確認;
CAN0CTL1=0xc1;
//SJW=0; 分頻因子為4;
CAN0BTR0=0x03;
//SAMP=1;波特率=8/(4*16)=125k
CAN0BTR1=0xd8;
CAN0IDAC=0x10;
}
為了減少網絡資源的占用率、提高網絡通信實時性性能,在高低速的CAN網絡之間除了必要的通信外,其余各自網絡的報文是相互獨立傳輸的,這就需要使用MSCAN中的標識符驗收過濾器進行報文的過濾,通過對于過濾器寄存器的設置實現這一功能。以下是CAN寄存器的驗收寄存器與屏蔽寄存器的設置:
CAN0CIDAR0=0x51; //CAN0驗收寄存器設置
CAN0CIDAR1=0x00;
CAN0CIDAR2=0x51;
CAN0CIDAR3=0x00;
CAN0CIDMR0=0xdf; //CAN0屏蔽寄存器設置
CAN0CIDMR1=0xff;
CAN0CIDMR2=0xdf;
CAN0CIDMR3=0xff;
以左車燈ECU作為整個車燈控制系統的外部I/O輸入檢測節點,根據檢測的I/O數據做出相應的動作以及發送相應的報文。當駕駛人員打開圖5所示真值表的任意一個燈的開關時,左前車燈ECU會有兩種執行狀態:第一種直接I/O輸出,且一直輸出高電平該車燈常亮,直到該車燈開關關閉時,I/O輸出低電平該車燈常滅;第二種通過CAN總線發送固定的報文,其他幾個車燈ECU接收到報文后,通過解析報文,再通過相應的I/O輸出高電平該車燈常亮。如圖5所示為整個車燈系統常亮車燈的控制狀態圖及真值表。

圖5 車燈系統常量車燈控制狀態圖
當駕駛人員打開圖6所示真值表的任意一個燈的開關時,左前車燈ECU執行會有兩種狀態:第一種直接IO輸出,且一直以固定頻率輸出高低電平,該車燈以固定頻率閃爍,直到該車燈關閉時,IO輸出低電平;第二種通過CAN總線發送固定的報文,其他幾個車燈ECU接收到報文后,通過解析報文,再通過相應的IO輸出固定頻率高低電平。圖6所示為整個車燈系統閃爍車燈的控制狀態圖及真值表。

圖6 車燈系統閃爍車燈控制狀態圖
通過RTC定時器產生一個100 ms的時間基準,實現控制燈光的閃爍以及CAN報文發送的測試。
此系統通過一些本地的按鈕模擬車身的車燈控制開關。
測試的具體過程是:給車燈控制系統上電,打開電源開關。當把按鈕打到近光檔時,近光燈點亮,繼續把按鈕打到遠光燈時,近光燈、遠光燈同時點亮;當按下剎車燈的開關時,剎車燈點亮;當按下倒車燈的開關時,倒車燈點亮;當把按鈕打到左轉檔時,左轉指示燈會出現周期性(閃爍頻率10 Hz)的閃爍,把按鈕打到右轉檔時,右轉指示燈會出現周期性(閃爍頻率10 Hz)的閃爍,把按鈕打到中間檔時,左轉燈和右轉燈全部熄滅;當按下警示燈開關時,左轉向燈、右轉向燈同時周期性(閃爍頻率10 Hz)的閃爍,并且車身上的4個門燈全部打開。
為了監測車燈控制系統的CAN網絡之間通信的準確性和實時性,給出了一個典型的CAN報文監測測試實例。通過這次測試,可以看到CAN報文在CAN網絡之間傳輸。
測試的具體過程是:首先在本地上位機的CANOE軟件中將仿真環境搭建好[9];其次將CANOE工具接入該網絡中。給整個系統上電,最后通過按鈕控制車燈節點的實際動作,并通過上位機觀察CAN報文。測試結果界面如圖7所示。

圖7 CAN報文顯示及其控制結果顯示
文中給出了一個基于低速CAN網絡的汽車車燈控制的網絡設計方案,介紹了Freescale的8位單片機MC9S08DZ60在該CAN網絡中作為控制節點的軟硬件設計,以及上位機對其報文進行監測顯示的結果。用此芯片設計的車燈控制電路具有結構簡單、易于升級、成本低廉但功能強大的特點。該網絡方案已經在某車型的車身上試驗成功,控制網絡及電路運行穩定,證明方案可行。采用CAN網絡來控制汽車車燈電器具有結構簡單、實時性好、可靠性高的優點,是現代汽車電器控制的發展趨勢。
參考文獻:
[1]路園.OSEK網絡管理在汽車CAN系統中的研究[D].合肥:合肥工業大學,2011.
[2]袁昊昀.車載CAN網絡管理策略研究[D].上海:同濟大學,2008.
[3]饒運濤,鄒繼軍,鄭勇蕓.現場總線CAN原理與應用技術[M].北京:北京航空航天大學出版社,2003.
[4]翟躍.電動汽車網絡管理系統的研究與實現[D].哈爾濱:哈爾濱工業大學,2010.
[5]陳綱.基于CAN總線的OSEK/VDX直接網絡管理的研究與實現[D].南京:東南大學,2015.
[6]MC9S08DZ60 Device User Guide[Z/OL].http:www.nxp.com.
[7]楊國田,白焰.Motorola68HC12系列微控制器原理、應用與開發技術[M].北京:中國電力出版社,2003.
[8]黃忠能.基于OSEK標準的車載網絡管理系統的研究與應用[D].太原:太原科技大學,2009.
[9]湯志強.汽車CAN網絡中OSEK網絡管理系統設計與優化[D].合肥:合肥工業大學,2014.