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