唐 鍵,胡艷峰
(陜西汽車控股集團有限公司,陜西 西安 710200)
CANoe做為專業的總線開發測試工具,不但具有強大的總線設計仿真功能,在總線測試、數據分析領域也具有強大的數據處理功能。CANoe的半殘余仿真功能可廣泛應用于測試、標定等方面。本文中將應用CANoe中信號發生器的功能作為標定軟件,對轉角位移傳感器進行零位標定,涉及到總線半殘余仿真、信號發生器、數據記錄與分析等方面的應用。
CANoe的半殘余仿真功能,可以模擬實際節點發送數據到總線上。除此之外,CANoe還有信號發生器的功能,應用信號發生器功能,可以按需求發送想要發送的數據,并且在CANoe工程運行的情況下,信號發生器可以實現暫停、修改數據、然后重新發送。CANoe中有2個模塊有信號發生器的功能,一是IG(Interactive Generator)模塊,另一個是Signal Generators and Signal Replay(以下簡稱SGSR)模塊。
IG模塊可以通過配置實現周期發送報文和按鍵發送報文。如圖1所示,在CANoe中的SimulationSetup中,在CAN網絡主干線上點擊右鍵,選擇“Insert Interactive Generator Block”,即可插入IG模塊,雙擊該模塊,可以對IG模塊進行配置,如圖2所示。
IG模塊定義的報文可周期發送,也可以定義按鍵發送,在配置界面中,勾選[Key]選項,并定義一個字母按鍵,當按下按鍵后定義的報文才會發送。此外,IG模塊可以作為GateWay使用,實現2個及多個網段上報文的轉發。

圖1 插入IG模塊

圖2 IG模塊配置界面
Signal Generators可用來定義信號的時序,評價一個ECU的反應,換言之,Signal Generators可以模擬一個工況來測試ECU功能。如圖3所示,CANoe菜單欄View標簽下點擊“Signal Generators and Signal Replay”即可打開SGSR界面。

圖3 SGSR界面
Signal Generators標簽下,使用按鈕[Signal…]和[Variable…]可以添加信號到Signal Generator對話框。在[Active]標簽下,通過打“√”可激活信號發生器功能。把相應信號在Panel面板中與控件關聯后,Panel控件右上角會出現“ ”符號,這表明Panel中該控件是一個信號發生器,如圖4所示。
如圖5所示,Panel面板信號發生器的編輯為鼠標左鍵單擊“ ”后,可以選擇信號發生器的信號類型、編輯信號發生器以及刪除信號發生器。當刪除信號發生器時,該控件僅作為顯示用。

圖4 Panel面板信號發生器

圖5 Panel面板信號發生器的編輯
IG模塊,完全規避了CANoe的信號層,IG模塊發出的報文通常在IG模塊中直接給信號賦值;Signal Generators是在CANoe的信號層中傳輸信號值。因為CANoe的信號層需要經過濾波,而IG模塊產生的數據可以直接使用不需要經過濾波,所以IG模塊特別適合應用于快速、臨時的測量場合。
CANoe具有數據記錄的功能和數據回放功能,多用于故障排查或測試ECU功能。如圖6所示,首先在Measurement Setup中激活數據記錄的Logging模塊,然后在Logging模塊后面的文件夾圖標上單擊右鍵,選擇Logging File Configuration,打開記錄數據的配置界面,界面中可設置記錄數據的格式和記錄的模式。
這里記錄數據的格式有:.blf、.asc、.mdf。數據分析時可以應用CANape工具直接打開記錄的數據 (CANape中要事先添加相應的.DBC文件)。推薦記錄數據格式為.asc,asc格式的數據可以在沒有CANape使用時,用記事本打開。

圖6 設置數據記錄
轉角傳感器 (SAS)主要用于實現非接觸式的角度檢測,目前應用領域有自適應前照燈系統AFS、電子穩定系統ESP/ESC、電動助力轉向系統EPS以及高級駕駛輔助系統ADAS等。本文中要進行標定的轉角傳感器如圖7所示。該轉角傳感器在電器接頭朝下時逆時針轉動轉角為正值,順時針轉動轉角為負值。
標定轉角傳感器需要關注的信號見表1。

圖7 轉角傳感器

表1 轉角傳感器信號列表
轉角傳感器零位標定的基本過程是:首先發送標定第1幀報文SAS_CFG(ID為0x18 EF E4 0B),將傳感器處于未標定狀態,并激活編程模式,使得傳感器可以接收并相應標定設備的標定信號。然后再次發送標定報文SAS_CFG(ID為0x18 EF E4 0B)(根據標定手冊,發送的標定報文為同一報文,ID相同,但數據域不完全相同),標定傳感器當前位置為轉角0rad位置,此時傳感器處于已標定狀態,同時進入常規模式。
這里要特別注意的是MessageCheckSum信號,當MessageCheckSum計算不正確的時候,標定工作是無法完成的。MessageCheckSum信號spn為3690,查詢SAE J1939-71,獲得MessageCheckSum計算方法如下:
Checksum=(Byte1+Byte2+Byte3+Byte4+Byte5+Byte6+Byte7+message counter&0x0F+message ID low byte+message ID mid low byte+message ID mid high byte+message ID high byte)。
Checksum=((Checksum>>4)+Checksum)&0x0F。
由于在裝車過程中,不可避免地會使得SAS的零位偏移,因此在車輛運行前,SAS的零位標定工作是必不可少的一環。
3.3.1 標定工程建立
首先,應用CANoe建立SAS標定的工程配置文件SAS-CAL.cfg,建立SASCAL.dbc文件,之后建立網絡架構 (包含SAS和IG兩個節點),如圖8所示,應用IG模塊做為標定工具對SAS進行標定。

圖8 SAS標定網絡架構
3.3.2 IG模塊配置
如圖9所示,配置IG模塊。將數據庫中的標定報文添加到IG模塊中,并設置按下鍵[t]時才發送標定報文。這樣當第1次按[t]時,第1幀報文SAS_CFG發出;然后修改標定報文SAS_CFG的數據域,再次按[t]時,標定報文SAS_CFG再次發出。

圖9 配置IG模塊
3.3.3 標定過程
1)首先連接好硬件,CANoe作為發送節點,SAS作為接收節點。同時設置CANoe記錄數據,記錄整個標定過程。
2)運行CANoe程序。然后按下鍵[t],標定工具發送第1幀標定報文SAS_CFG (ID為0x18 EF E4 0B),使得傳感器處于未標定狀態,并激活編程模式。由圖10 Trace窗口SAS反饋的信號可看出,傳感器已處于未標定狀態,編程模式已激活。
3)按照標定手冊,修改標定報文SAS_CFG的數據域,再次按下鍵[t],再次發送標定報文SAS_CFG (ID為0x18 EF E4 0B),將轉角傳感器標定至零位,同時轉角傳感器處于已標定狀態,進入常規模式。由圖11 Trace窗口SAS反饋的信號可看出,傳感器已標定至零位,處于已標定狀態,并進入常規模式。
4)將SAS電器接頭朝下,先逆時針轉動,然后順時針轉動,此時SAS發送數據并被CANoe記錄。

圖10 傳感器已處于未標定狀態,進入編程模式

圖11 傳感器已標定至零位,處于已標定狀態,進入常規模式
5)停止運行CANoe。
將CANoe記錄的數據,用CANape打開,查看轉角信號反饋的值。傳感器已標定后,電氣接頭朝下默認向左轉動是正值,向右轉動是負值,如圖12所示。

圖12 轉動傳感器數值表現
本文介紹了CANoe中的信號發生器模塊功能,并應用IG模塊實現了轉角傳感器的零位標定。一般情況,零位標定工作應該由SAS供應商使用專用標定工具來進行,但在試制車或問題排查中,供應商有可能不能快速到位,因此本文給出了一種應急方案。CANoe的功能非常強大,需要我們在工作中逐漸開發。本文就信號發生器的使用拋磚引玉,希望對相關人員能有一定的幫助。