詹克旭
(博世華域轉(zhuǎn)向系統(tǒng)有限公司,上海 201821)
隨著汽車電子技術(shù)的迅速發(fā)展,以及人們對汽車的舒適性、功能性、安全性要求的不斷提高,汽車上的電子控制單元變得越來越多。為了滿足汽車內(nèi)部各個節(jié)點(diǎn)之間的通信問題,CAN總線網(wǎng)絡(luò)被廣泛應(yīng)用于車載控制器局域網(wǎng)。雖然現(xiàn)在車載總線如FlexRay、以太網(wǎng)也在逐步的發(fā)展,但CAN總線因其速度高、成本低、結(jié)構(gòu)簡單、可靠性和實時性好等特點(diǎn),在車載總線應(yīng)用上沒有被影響,仍然占有重要的地位。
CANoe是德國Vector公司開發(fā)的系統(tǒng)級總線開發(fā)工具,它能支持總線開發(fā)的整個過程。從最初的設(shè)計、仿真到最終的分析測試,所有和總線相連的網(wǎng)絡(luò)節(jié)點(diǎn)都可被仿真,實現(xiàn)真實物理總線和虛擬總線的連接。此外,CANoe工具也是單節(jié)點(diǎn)網(wǎng)絡(luò)測試和整車網(wǎng)絡(luò)測試不可缺少的測試工具。它包含虛擬節(jié)點(diǎn)CAPL語言編程、CAN網(wǎng)絡(luò)數(shù)據(jù)庫編輯器CAN-db++、Panel Generator用戶自定義面板組件以及一些集成的調(diào)試監(jiān)控組件。因此,CANoe工具可以滿足各種開發(fā)測試的需要。本文基于EPS系統(tǒng)的特點(diǎn),就EPS系統(tǒng)工作所必須的ESC、EMS等關(guān)鍵節(jié)點(diǎn)進(jìn)行仿真設(shè)計,模擬實現(xiàn)總線數(shù)據(jù)通信[1-2]。
EPS(Electric Power Steering)即電動助力轉(zhuǎn)向系統(tǒng),是汽車轉(zhuǎn)向系統(tǒng)的發(fā)展方向。與傳統(tǒng)的液壓動力轉(zhuǎn)向系統(tǒng)相比,該系統(tǒng)的轉(zhuǎn)向助力由電動助力機(jī)直接提供,省去了液壓動力轉(zhuǎn)向系統(tǒng)所必需的裝于發(fā)動機(jī)上的皮帶輪、傳送帶、軟管、動力轉(zhuǎn)向油泵和液壓油,既保護(hù)了環(huán)境,又節(jié)省能量。此外,其還具有裝配靈活、調(diào)整簡單以及在多種狀況下都能提供轉(zhuǎn)向助力的特點(diǎn)[3-5]。
EPS的轉(zhuǎn)矩由電動機(jī)產(chǎn)生,提供給駕駛員的轉(zhuǎn)向動力需要經(jīng)過轉(zhuǎn)向系統(tǒng)減速及傳遞機(jī)構(gòu)轉(zhuǎn)化后產(chǎn)生。EPS是利用電動機(jī)作為助力源,由電子控制單元根據(jù)轉(zhuǎn)向參數(shù)和車速等因素完成助力控制,其原理概括如下。
轉(zhuǎn)向軸 (小齒輪軸)和轉(zhuǎn)矩傳感器連接在一起,當(dāng)轉(zhuǎn)向軸轉(zhuǎn)動時,轉(zhuǎn)矩傳感器開始工作,電子控制單元通過獲取輸入軸和輸出軸在扭桿作用下產(chǎn)生的相對轉(zhuǎn)動角位移變成的電信號,并根據(jù)轉(zhuǎn)矩傳感器和車速傳感器的信號決定電動機(jī)的助力電流的大小和旋轉(zhuǎn)方向,從而完成對助力轉(zhuǎn)向的實時控制。因此,EPS就可以很容易地實現(xiàn)在不同車速時提供電動機(jī)不同的助力效果,它保證了汽車在低速轉(zhuǎn)向行駛時輕便靈活,高速轉(zhuǎn)向行駛時穩(wěn)定可靠。
由于EPS正常工作離不開整車車速信號的獲取,考慮到安全等級的需要,車速值需要同時將總線車速、輪速、發(fā)動機(jī)轉(zhuǎn)速三者聯(lián)合起來進(jìn)行判斷,保證車速的真實有效。因此,EPS的功能離不開與ESC(電子穩(wěn)定系統(tǒng))和EMS(發(fā)動機(jī)管理系統(tǒng))的總線通信,如果需要EPS實現(xiàn)某些高級功能,例如自動泊車功能,還要獲取APA(自動泊車輔助系統(tǒng))的信號。
DBC (Data Base CAN) 文件是由德國Vector公司發(fā)布的[6],它被用來描述單一CAN網(wǎng)絡(luò)中各邏輯節(jié)點(diǎn)信息,依據(jù)該文件可以開發(fā)出監(jiān)視和分析CAN網(wǎng)絡(luò)中所有邏輯節(jié)點(diǎn)的運(yùn)行狀態(tài)。簡單來說,DBC是汽車ECU間進(jìn)行CAN通信的報文內(nèi)容,有了它相互之間才能聽懂。DBC是一種文件格式,.dbc文件是一個ASCII格式的文件,其.dbc擴(kuò)展名可用于定義CAN網(wǎng)絡(luò)。DBC由一系列的Message和Signal組成,文件定義了Message和Signal的屬性。
CAN總線DBC是分布式CAN網(wǎng)絡(luò)的主干。在開發(fā)基于CAN的分布式電子控制單元網(wǎng)絡(luò)時,以DBC文件形式進(jìn)行的通信描述是一個關(guān)鍵的組成部分。DBC數(shù)據(jù)庫的建立是按照OEM定義的通信Matrix列表來配置完成的,圖1為通信Matrix列表,定義了消息標(biāo)識符、消息名稱、發(fā)送周期、消息長度、信號位置等信息。相應(yīng)的,在DBC中需要實現(xiàn)Matrix列表中CAN網(wǎng)絡(luò)的特性和信息。
圖1 通信Matrix列表
DBC的編輯需要通過Vector工具的CANdb++實現(xiàn),CAN-db++是集成在CANoe中用于編輯總線系統(tǒng)數(shù)據(jù)庫文件的工具,利用它可以對報文及信號進(jìn)行解析,描述仿真對象總線的屬性,包括節(jié)點(diǎn)、報文、信號和環(huán)境變量等,根據(jù)CAN總線通信協(xié)議配置,把應(yīng)用層定義的各個參數(shù)加載到CANoe仿真環(huán)境中。
定義DBC數(shù)據(jù)庫時,先創(chuàng)建網(wǎng)絡(luò)節(jié)點(diǎn) (Nodes),再創(chuàng)建總線上所要傳輸?shù)膱笪?(Messages),按照從高到低的層次依次創(chuàng)建。此外,還要將報文與對應(yīng)的節(jié)點(diǎn)關(guān)聯(lián),該節(jié)點(diǎn)是接收報文還是發(fā)送報文需要進(jìn)行明確,最后還要創(chuàng)建報文中所要攜帶的數(shù)據(jù),即信號 (Signal),并與報文相關(guān)聯(lián)。圖2為建立的DBC數(shù)據(jù)庫??梢钥闯觯渲蠩SC網(wǎng)絡(luò)節(jié)點(diǎn)的其中一條報文已建立完成,DBC中詳細(xì)描述了ESC_Status報文,其內(nèi)部包含了諸如車速信號名稱、信號值、信號長度、信號起始位、信號存儲方式等相關(guān)詳細(xì)信號信息。
根據(jù)需求,上位機(jī)操作面板需要利用CANoe軟件自帶的的panel designer來編輯。在面板中添加所需要的控件,并編輯控件屬性??梢跃庉嬁丶淖痔?、顏色和字體。此外,為了實現(xiàn)將各個節(jié)點(diǎn)與相連設(shè)備 (如車速、輪速等)相關(guān)聯(lián),還需要定義與控制面板相關(guān)的環(huán)境變量 (Environment Variables),實現(xiàn)人機(jī)交互功能,來進(jìn)行相應(yīng)的控制,如圖3所示。
圖2 DBC數(shù)據(jù)庫
圖3 系統(tǒng)環(huán)境變量設(shè)置
本次設(shè)計的面板,主要是為了滿足EPS的功能需求,根據(jù)之前創(chuàng)建的DBC來進(jìn)行相應(yīng)消息和信號的添加。主要包括ESC、EMS、APA等,以此來提供EPS工作所必須的車速和發(fā)動機(jī)轉(zhuǎn)速等信號信息,以及EPS高級功能的信號信息。通過“Group Box”將不同的消息進(jìn)行區(qū)分,“Group Box”內(nèi)部為該消息的信號信息。為了方便測試,通過“Switch”控件來進(jìn)行消息的啟/停發(fā)送操作,此外,還通過設(shè)置“Radio Box”、“Input/Output Box”、“Check Box”等控件,實現(xiàn)對信號信息是否有效的選擇、輸入值的設(shè)置 (信號值、信號長度),以及使能與否 (CheckSum、AliveCounter)等操作,設(shè)計的面板除了要考慮到正常通信功能外,還要考慮到日后測試中可以通過仿真環(huán)境來方便制造故障等情況,具體面板設(shè)計如圖4所示。
CAPL(CAN Access Programming Language)語言是一種類似于C語言的語法,主要是針對CAN總線應(yīng)用系統(tǒng)開發(fā)的。在CANoe中,為了實現(xiàn)節(jié)點(diǎn)的控制功能和控制算法,需要使用CAPL語言對網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行編程。通過CAPL語言的使用,既可以用來仿真單個節(jié)點(diǎn),也可以用來仿真整個網(wǎng)絡(luò),還可以仿真外部環(huán)境,可以進(jìn)行半仿真或者全仿真測試[7-8]。
CAPL語言是面向事件的編程語言,在CANoe中,可以用來編程的事件包括總線控制器事件、總線消息事件、環(huán)境變量事件、錯誤幀事件、系統(tǒng)事件、時間事件和鍵盤事件,并執(zhí)行和事件相關(guān)的程序。總線控制器事件是硬件檢測到各種總線錯誤時執(zhí)行??偩€消息事件是接收到指定的消息時執(zhí)行,on message Message{……},表示接受到指定消息時執(zhí)行。環(huán)境變量事件是指定的環(huán)境變量值改變時執(zhí)行。錯誤幀事件是硬件每次檢測到錯誤幀時執(zhí)行。系統(tǒng)事件包括3種,CANoe初始化時執(zhí)行、測量開始時執(zhí)行和測量結(jié)束時執(zhí)行。時間事件是定時時間超過時執(zhí)行,on timer Mytimer{……},將Mytimer聲明為以秒為單位的定時。鍵盤事件是指定的按鍵被按下時執(zhí)行,on key'a'{……},表示按鍵盤'a'時反應(yīng)。
圖4 Panel控制面板
在代碼實現(xiàn)上,還要考慮到物理實際值和總線值可能是有區(qū)別的,使用CAPL編程來模擬實際節(jié)點(diǎn)的功能時,有些信號信息還需要通過轉(zhuǎn)換系數(shù)來進(jìn)行物理值和實際值的轉(zhuǎn)換,如圖5所示。此外,還要考慮到諸如CRC校驗算法等代碼實現(xiàn)。通過CAPL編輯器代碼實現(xiàn),代碼與控制面板相關(guān)聯(lián),最終實現(xiàn)可以通過控制面板,進(jìn)行收發(fā)數(shù)據(jù)幀。不同的虛擬節(jié)點(diǎn)配合CAPL代碼和控制面板,就可以在CANoe仿真環(huán)境中方便地實現(xiàn)與之相對應(yīng)的物理節(jié)點(diǎn)的功能。
創(chuàng)建CAN網(wǎng)絡(luò)的DBC文件、建立上位機(jī)操作面板和CAPL編程后,便可以對系統(tǒng)進(jìn)行全仿真。全仿真是全部虛擬節(jié)點(diǎn)的仿真,沒有物理節(jié)點(diǎn)的參與。
將CANoe一端連接電腦,另一端連接EPS,連接并配置好CANoe,點(diǎn)擊運(yùn)行,系統(tǒng)便開始工作。通過trace窗口,可以觀察總線上收發(fā)的數(shù)據(jù)。通過操作CANoe的上位機(jī)控制面板,可以輸入不同的信號值,更改不同的狀態(tài)來觀察信號的變化,如圖6所示。
為了驗證仿真是否有效,分別進(jìn)行如下幾方面的測試。
圖5 CAPL代碼實現(xiàn)
圖6 系統(tǒng)仿真
1)通過trace窗口觀察發(fā)送和接收的仿真消息,輸入的信號信息是否顯示正確,如果出現(xiàn)錯誤,則可以分析錯誤的原因。
2)通過操作上位機(jī)控制面板的開關(guān),來對消息進(jìn)行啟/停操作,觀察trace窗口,消息是否進(jìn)行正常發(fā)送和停止發(fā)送響應(yīng)。
3)通過操作上位機(jī)控制面板的復(fù)選框勾選,控制消息發(fā)送過程中是否進(jìn)行CheckSum、AliveCounter,觀察trace窗口,來確認(rèn)該功能是否實現(xiàn)。
4)在確認(rèn)1、2、3三項功能正常的情況下,通過操作CANoe上位機(jī)控制面板發(fā)送正確的信號信息,如車速信息,通過手動控制EPS,看是否提供相應(yīng)的助力,已確認(rèn)仿真信號真實有效。
5)通過操作上位機(jī)控制面板發(fā)送其他不同的消息信號信息,如高級功能所需信號信息,確定EPS是否具有相應(yīng)的功能響應(yīng)。
經(jīng)測試,該仿真控制面板可以正確模擬相關(guān)節(jié)點(diǎn)的信號發(fā)送,發(fā)送的信號真實有效。可以在仿真環(huán)境下模擬整車的信號信息,滿足EPS系統(tǒng)開發(fā)的信號需求,達(dá)到了仿真的預(yù)期效果。同時,通過仿真環(huán)境的設(shè)計,還可以進(jìn)行各種信號故障情況的模擬,有利于EPS系統(tǒng)的后續(xù)開發(fā)和系統(tǒng)的完善。
對于整車廠和汽車電子供應(yīng)商來說,Vector公司的CANoe軟件是車載網(wǎng)絡(luò)在開發(fā)過程中必不可少的工具。通過CANoe軟件對整車網(wǎng)絡(luò)仿真環(huán)境的搭建,在汽車電子產(chǎn)品開發(fā)過程中,這種方法對開發(fā)CAN總線車載網(wǎng)絡(luò)具有很大的幫助,可以有效地克服效率低、盲目性、高成本、重復(fù)性等不足。
本文利用CANoe軟件實現(xiàn)了EPS系統(tǒng)整車網(wǎng)絡(luò)通信系統(tǒng)的仿真開發(fā),仿真環(huán)境包括了EPS系統(tǒng)功能所需要的所有消息和信號信息。通過面板的設(shè)計,提供了人機(jī)操作界面,方便操作。通過仿真測試表明,該網(wǎng)絡(luò)的各節(jié)點(diǎn)之間的通信真實有效,本次設(shè)計的EPS系統(tǒng)網(wǎng)絡(luò)仿真環(huán)境是一個切實可行的CAN總線應(yīng)用網(wǎng)絡(luò),該仿真網(wǎng)絡(luò)的設(shè)計方法可以被廣泛應(yīng)用到不同汽車電子軟件產(chǎn)品的開發(fā)設(shè)計中。