杜常清,朱體剛
(1.武漢理工大學(xué) 現(xiàn)代汽車零部件技術(shù)湖北省重點實驗室,武漢 430070;2.汽車零部件技術(shù)湖北省協(xié)同創(chuàng)新中心,武漢 430070)
與傳統(tǒng)的內(nèi)燃機汽車相比,電動汽車動力系統(tǒng)中增加了電機驅(qū)動模塊和動力電池模塊;一般傳統(tǒng)的內(nèi)燃機汽車沒有整車控制器,因此電動汽車動力系統(tǒng)在結(jié)構(gòu)、控制等方面更為復(fù)雜。整車控制器(VCU)、電機控制器(MCU)和電池管理系統(tǒng)(BMS)這三者之間的通信直接影響到電動汽車的運行狀態(tài),開發(fā)一套實時性高、可靠性好的動力系統(tǒng)CAN網(wǎng)絡(luò)對于電動汽車來講十分重要。通信協(xié)議的制定是CAN網(wǎng)絡(luò)設(shè)計過程中的關(guān)鍵環(huán)節(jié)。由于電動汽車動力系統(tǒng)與傳統(tǒng)的內(nèi)燃機汽車在結(jié)構(gòu)原理、控制方式上的差異,已經(jīng)成功應(yīng)用于傳統(tǒng)內(nèi)燃機汽車上的通信協(xié)議并不能完全適用于電動汽車。此外,目前的電動汽車動力系統(tǒng)CAN網(wǎng)絡(luò)的應(yīng)用層協(xié)議的制定并不統(tǒng)一。因此,制定一套適用于電動汽車動力系統(tǒng)的CAN通信協(xié)議具有較大的實用意義。
CANoe(CAN open environment)是德國 Vector公司開發(fā)的一款總線開發(fā)環(huán)境,是CAN通信網(wǎng)絡(luò)開發(fā)、測試和分析的專業(yè)工具,支持從需求分析到系統(tǒng)實現(xiàn)的整個系統(tǒng)的開發(fā)過程,具備提高工作效率、節(jié)省開發(fā)成本、工作可靠等優(yōu)勢。以某微型客車改裝而成的電動汽車為載體,參照SAE J1939協(xié)議制定了動力系統(tǒng)應(yīng)用層協(xié)議;利用CANoe搭建仿真模型并對設(shè)計的CAN網(wǎng)絡(luò)進行性能分析;在CANoe提供的環(huán)境中接入真實的通信節(jié)點硬件,進行硬件在環(huán)測試CAN網(wǎng)絡(luò)性能;驗證了設(shè)計的CAN網(wǎng)絡(luò)的可靠性和實時性,以及所制定的應(yīng)用層協(xié)議的有效性和可行性。
電動汽車動力系統(tǒng)的核心由3大部分組成:整車控制器(VCU)、電機與電機控制器(MCU)以及電池與電池管理系統(tǒng)(BMS)。VCU主要通過獲取駕駛員的操控指令和行車狀態(tài),如制動踏板信號、加速踏板信號、檔位信號等,經(jīng)過判斷處理后再將相應(yīng)的控制指令發(fā)給其他控制單元如MCU,以實現(xiàn)對整車狀態(tài)的控制。MCU一方面實現(xiàn)將電池提供的直流電轉(zhuǎn)換為電機運行所需的高壓交流電;另一方面,通過接收VCU發(fā)送的車輛運行狀態(tài)控制指令,來控制電機的運行狀態(tài),如輸出轉(zhuǎn)矩、輸出轉(zhuǎn)速等,并將電機當(dāng)前狀態(tài)反饋給VCU。BMS則實現(xiàn)對電池狀態(tài)的監(jiān)測作用,進行電池的SOC估算,防止電池過充電或者過放電,提高電池利用率和使用壽命,并及時與VCU進行通信,將電池狀態(tài)反饋給VCU。
動力系統(tǒng)的通信主要存在于VCU、MCU、BMS三者之間,實現(xiàn)對整車運行狀態(tài)的控制,因此動力系統(tǒng)CAN網(wǎng)絡(luò)中主要包括3個節(jié)點,此外還有1個儀表顯示(HEC)節(jié)點。HEC節(jié)點在CAN網(wǎng)絡(luò)上處于只接聽不發(fā)送的狀態(tài),接收網(wǎng)絡(luò)中的整車行駛信息、電機運行信息以及電池狀態(tài)信息等并實時顯示。
CAN網(wǎng)絡(luò)有多種不同的拓撲結(jié)構(gòu),其中的總線型結(jié)構(gòu)實時性好;錯誤檢測校正能力強,系統(tǒng)可靠性高;能判斷錯誤節(jié)點,具有故障節(jié)點自動脫離的功能。因而,采用總線型CAN網(wǎng)絡(luò)結(jié)構(gòu)從理論上講能夠滿足可靠性和實時性的要求。圖1為設(shè)計的電動汽車動力系統(tǒng)CAN網(wǎng)絡(luò)結(jié)構(gòu)及信號流動圖。
圖1 電動汽車動力系統(tǒng)CAN網(wǎng)絡(luò)結(jié)構(gòu)及信號流動Fig.1 CAN network structure and signal flow diagram of electric vehicle power system
CAN網(wǎng)絡(luò)通信協(xié)議的制定通常包括3個方面:數(shù)據(jù)鏈路層、物理層和應(yīng)用層。數(shù)據(jù)鏈路層的主要功能是保證總線上節(jié)點之間數(shù)據(jù)的可靠傳輸,ISO 11898-1協(xié)議對數(shù)據(jù)鏈路層做了完整的定義,且不可隨意更改。物理層的設(shè)計主要涉及物理層接口的機械、電氣、功能和過程特性以及傳輸介質(zhì)等,這些主要通過硬件來實現(xiàn),目前已有相應(yīng)的國際標準可供參考。而對于應(yīng)用層來講,主要定義通信過程中所用到的各種參數(shù),包括源地址(SA)、優(yōu)先級(P)、參數(shù)群編號(PGN)等,完成標識符(ID)的設(shè)定、報文攜帶數(shù)據(jù)的分配、報文發(fā)送與接收節(jié)點的定義等[1]。
由于應(yīng)用層協(xié)議與實際應(yīng)用聯(lián)系緊密,目前沒有針對電動汽車應(yīng)用層制定特定的標準;另一方面,應(yīng)用層協(xié)議也是動力系統(tǒng)可靠實時控制的重要保證。因此,制定動力系統(tǒng)CAN網(wǎng)絡(luò)通信協(xié)議主要是制定應(yīng)用層協(xié)議。本設(shè)計中主要參考SAE J1939的規(guī)范來制定適用于電動汽車動力系統(tǒng)的應(yīng)用層協(xié)議。
源地址場長8位,網(wǎng)絡(luò)中一個特定的源地址只能分配給一個設(shè)備,因此源地址確保CAN標識符符合CAN協(xié)議中的唯一性要求。根據(jù)SAE J1939-81來定義該電動汽車動力系統(tǒng)節(jié)點源地址。0~127都不受產(chǎn)業(yè)類群和汽車系統(tǒng)的約束,可以分配給最常用的 ECU;128~247 留給行業(yè)特定分配;248~253 留給特殊的ECU。整車控制器(VCU)屬于新定義的節(jié)點,可以使用208~231這段屬于公路用車的預(yù)留地址;電機控制器(MCU)和電池管理系統(tǒng)(BMS)可在231~247中進行安排。
優(yōu)先級可以從最高0(0002)設(shè)置到最低7(1112),所有控制消息的默認優(yōu)先級是3(1102),請求和應(yīng)答報文的默認優(yōu)先級為6(1102)??偩€上通信量發(fā)生變化時優(yōu)先級可以發(fā)生改變。
對各ECU節(jié)點的參數(shù)進行定義時應(yīng)盡量將相同功能的參數(shù)、相近刷新率的參數(shù)以及同屬一個子系統(tǒng)的參數(shù)放在相同的參數(shù)組中,以此來減少報文數(shù)量,達到降低總線負載的目的。參數(shù)群編號(PGN)應(yīng)按照參數(shù)組的重要程度來定義,主要用協(xié)議數(shù)據(jù)單元格式(PF)和群擴展場(PS)共同決定[2-4]。
根據(jù)功能需求,VCU、BMS和MCU 3個節(jié)點總共發(fā)出7條報文,這3個節(jié)點之間存在信息交流,HEC節(jié)點接收VCU發(fā)送的部分信息,實時顯示車輛運行狀態(tài)。根據(jù)應(yīng)用層協(xié)議的制定原則,可以確定動力系統(tǒng)各個參數(shù)群的參數(shù)。報文的標識符(ID)中包含了報文的源地址、目標地址、報文優(yōu)先級等信息,是CAN網(wǎng)絡(luò)中進行仲裁和接收濾波的重要依據(jù)。動力系統(tǒng)中傳輸?shù)男盘柖酁闋顟B(tài)信號,這里采用29位標識符(ID28~ID0)的幀格式來定義通信報文。圖2為SAE J1939協(xié)議中29位ID的對應(yīng)關(guān)系,由此可確定各條報文的ID。表1中列出了參數(shù)群的參數(shù)定義。
圖2 SAE J1939協(xié)議中29位ID的對應(yīng)關(guān)系Fig.2 Corresponding relation of 29 bit ID in SAE J1939 protocol
表1 參數(shù)群定義Tab.1 Parameter group definition
信息類型可以根據(jù)觸發(fā)方式分為固定周期型信息、事件觸發(fā)周期型信息和非周期型信息,一般可將非周期型信息合并到固定周期型信息中[5]。本設(shè)計中的信息類型為固定周期型。在數(shù)據(jù)場中進行字節(jié)和位的分配時,應(yīng)考慮總線帶寬的利用率,盡量將相同節(jié)點發(fā)送的信號裝載到同一幀報文中進行傳輸。
根據(jù)電動汽車動力系統(tǒng)需要實現(xiàn)的功能來頂一個個節(jié)點的輸出參數(shù),主要包括信號的發(fā)送周期、字節(jié)和位的分配、目標地址以及分辨率、偏移量等。表2中定義了報文的發(fā)送周期,介紹了每條報文中包含的具體內(nèi)容。表3以VCU1這條報文為例,給出了相應(yīng)的輸出信號參數(shù),在制定通信協(xié)議時,其他報文的參數(shù)也應(yīng)符合相應(yīng)的規(guī)定。
表2 各節(jié)點報文信息Tab.2 Information of each node
表3 VCU1信號輸出參數(shù)Tab.3 Signal parameter of VCU1
CAN網(wǎng)絡(luò)的測試過程在CANoe提供的環(huán)境中進行,可以分別實現(xiàn)虛擬仿真和硬件在環(huán)測試。
在進行CAN網(wǎng)絡(luò)仿真時,由于在使用CANoe軟件建模之前已經(jīng)制定了應(yīng)用層協(xié)議,把已有的協(xié)議通過CANoe創(chuàng)建網(wǎng)絡(luò)配置文件,通過對網(wǎng)絡(luò)配置文件中的每個報文的信號進行定義,相當(dāng)于把整個應(yīng)用層協(xié)議輸入到了CANoe,當(dāng)運行該網(wǎng)絡(luò)模型時即可模擬整個網(wǎng)絡(luò)的運行狀況。如圖3所示為搭建的動力系統(tǒng)CAN總線網(wǎng)絡(luò)。
圖3 動力系統(tǒng)CAN總線網(wǎng)絡(luò)Fig.3 Power system CAN bus network
利用CANoe進行硬件在環(huán)測試時,需要將模型中的虛擬節(jié)點從總線上斷開,再將真實的節(jié)點通過CANoe提供的硬件接口連接,完成各個真實節(jié)點的信號通道與CANoe中的信號通道匹配,實現(xiàn)真實節(jié)點在CANoe環(huán)境下的通信。
CAN網(wǎng)絡(luò)性能的好壞主要體現(xiàn)在實時性和可靠性方面,而CAN網(wǎng)絡(luò)的負載率直接影響到網(wǎng)絡(luò)的可靠性和實時性,負載率越高,CAN網(wǎng)絡(luò)上報文延遲時間越大,丟幀的可能性越大,進而導(dǎo)致CAN網(wǎng)絡(luò)的實時性和可靠性變差。波特率和報文發(fā)送周期是影響CAN網(wǎng)絡(luò)負載率的主要因素,可以通過CANoe的虛擬仿真環(huán)境進行測試。
波特率是對信號傳輸速率的一種度量,網(wǎng)絡(luò)設(shè)定不同的波特率時,其負載率也必然不同。CAN總線上的通信速率最高可達1 Mb/s,仿真測試了報文發(fā)送周期為50 ms時,波特率從100 kb/s~1 Mb/s變化的CAN總線上的負載率,將不同波特率下對應(yīng)的總線負載率繪制成曲線,如圖4所示。當(dāng)總線波特率越大時,負載率越小,100 kb/s波特率下對應(yīng)的負載率為52.36%,而當(dāng)波特率為1 Mb/s時負載率驟降到8.06%;隨著波特率的增大,負載率降低的程度也越來越小,即波特率對負載率的影響在逐漸變小。
圖4 總線負載率與波特率關(guān)系曲線Fig.4 Curve of bus load rate and baud rate
由于在實際應(yīng)用中,波特率的設(shè)定需要考慮硬件性能,波特率高時相應(yīng)的硬件配置要求也越高;此外,雖然波特率高時有利于降低總線負載,但是過高的波特率會造成總線利用率降低。在一般的設(shè)計中,CAN總線系統(tǒng)要求負載率不超過30%,最佳負載率不超過25%[6]。綜合上述的條件因素,可將總線波特率設(shè)定為500 kb/s,此時仿真測試的總線負載率為19.07%。
通常情況下,報文的發(fā)送周期越長,總線的負載率越低。這里仿真測試了波特率為500 kb/s時,不同報文發(fā)送周期對應(yīng)的總線負載率,繪制成總線負載率與報文發(fā)送周期關(guān)系曲線,如圖5所示,當(dāng)報文發(fā)送周期增大時網(wǎng)絡(luò)負載率有明顯下降。但是報文發(fā)送周期過長又可能導(dǎo)致實時性變差,選擇適中的報文發(fā)送周期是保證實時性的一種途徑。
圖5 總線負載率與報文發(fā)送周期關(guān)系曲線Fig.5 Curve of bus load rate and message transmission cycle
圖6是CANoe中的總線統(tǒng)計窗口,仿真設(shè)定的波特率為500 kb/s、報文發(fā)送周期為50 ms。從窗口中可以看到仿真測試的總線負載率為19.07%,峰值負載率為19.11%,沒有出現(xiàn)錯誤幀,網(wǎng)絡(luò)運行狀態(tài)良好。
圖6 仿真測試時的總線統(tǒng)計窗口Fig.6 Bus statistics of simulation
硬件在環(huán)測試是將真實的MCU、VCU和BMS 3個真實的節(jié)點通過CANoe硬件接口連接,在CANoe環(huán)境下實現(xiàn)相互通信,并監(jiān)測該通信網(wǎng)絡(luò)的工作狀況[7]。根據(jù)仿真測試的結(jié)果,將硬件在環(huán)測試的網(wǎng)絡(luò)波特率設(shè)定為500 kb/s,報文發(fā)送周期為50 ms。從如圖7所示的總線統(tǒng)計窗口中可以看到,總線負載率為21.16%,峰值負載率為22.96%,沒有出現(xiàn)錯誤幀。
圖7 硬件在環(huán)測試時的總線統(tǒng)計窗口Fig.7 Bus statistics of hardware in the loop test
CANoe中的write控件統(tǒng)計了各條報文的發(fā)送時間間隔,統(tǒng)計結(jié)果如表4所示。設(shè)定報文發(fā)送周期為50 ms,在虛擬節(jié)點的仿真測試中,各條報文發(fā)送周期認為50 ms,沒有出現(xiàn)延遲;硬件在環(huán)測試中的各條報文均有延遲。報文延遲時間可以分為4個部分[8]:
(1)生成延遲:從發(fā)送節(jié)點處理器接收到本節(jié)點的請求,到它將準備好的數(shù)據(jù)寫入緩存隊列里的時刻。
(2)隊列延遲:從消息幀進入發(fā)送緩存到消息幀獲得總線控制權(quán)的時刻。
(3)傳輸延遲;從消息幀占據(jù)總線到消息幀脫離總線的時刻。
(4)接收延遲:從消息幀脫離總線到將其中的有效數(shù)據(jù)提供給接收節(jié)點微處理器中目標任務(wù)的時刻。
表4 報文延遲時間統(tǒng)計對比Tab.4 Statistical comparison of packet delay time
虛擬節(jié)點仿真時整個通信過程處于理想狀態(tài),故而沒有出現(xiàn)報文延遲。而硬件在環(huán)測試時是真實節(jié)點之間的通信,按照現(xiàn)在的微處理器水平,生成延遲和接收延遲可以忽略不計,但是存在隊列延遲和傳輸延遲,因此各條報文均出現(xiàn)延遲。此外,從VCU節(jié)點發(fā)出的報文延遲時間相對最小,而從BMS節(jié)點發(fā)出的報文延遲時間最大,這主要是因為VCU節(jié)點發(fā)出的報文優(yōu)先級最高,產(chǎn)生的隊列延遲最小,相對延遲時間最短;而BMS節(jié)點發(fā)出的報文優(yōu)先級最低,產(chǎn)生的隊列延遲最大,相對延遲時間最長。
實時性與總線負載率又是相互影響的,報文延遲在一定程度上會造成相應(yīng)的總線擁堵,使得總線負載變大。因此在相同的通信參數(shù)配置下,由于硬件在環(huán)測試存在報文延遲,總線負載率要比仿真時的略高。
從硬件在環(huán)測試結(jié)果來看,報文延遲時間均不超過0.5 ms,延遲率均控制在1%;總線負載率也在最佳負載率25%以內(nèi)。整個CAN網(wǎng)絡(luò)工作正常,具有良好的可靠性和實時性。
以某微型客車改裝而成的電動汽車為載體,基于SAE J1939協(xié)議,系統(tǒng)介紹了電動汽車動力系統(tǒng)應(yīng)用層通信協(xié)議的開發(fā)流程。利用CANoe提供的軟件和硬件分別做了CAN網(wǎng)絡(luò)的仿真測試和硬件在環(huán)測試。仿真和測試的結(jié)果表明,設(shè)計的CAN總線型網(wǎng)絡(luò)運行狀況良好,總線峰值負載率為21.16%,控制在最佳負載率25%以內(nèi);報文最大延遲時間不超過0.5 ms,延遲率在1%以內(nèi);證明了制定的應(yīng)用層協(xié)議是可行的,設(shè)計的CAN總線型網(wǎng)絡(luò)具有良好的實時性和可靠性。
[1]李芳,張俊智,王麗芳,等.電動汽車動力總成系統(tǒng)控制器局域網(wǎng)(CAN)總線通信協(xié)議[J].機械工程學(xué)報,2008,44(5):102-107.
[2]羅峰,孫澤昌.汽車CAN總線系統(tǒng)原理、設(shè)計與應(yīng)用[M].北京:電子工業(yè)出版社,2010.
[3]袁傳義,吳志新,劉成曄,等.應(yīng)用于電動汽車的CAN網(wǎng)絡(luò)應(yīng)用層協(xié)議研究[J].工礦自動化,2012(7):29-32.
[4]萬曉鳳,張燕飛,余運俊,等.基于嵌入式的純電動汽車CAN總線通信及實現(xiàn)[J].計算機測量與控制,2013,21(10):38-42.
[5]劉龍龍,楊正林,蓋福祥.深度混合動力汽車CAN網(wǎng)絡(luò)設(shè)計及研究[J].機械設(shè)計與制造,2015(1):35-38.
[6]馬付屹,郭朋彥,張瑞珠,等.基于CANoe的AMT汽車動力總成控制系統(tǒng) CAN 通信設(shè)計[J].汽車電器,2015(2):34-36.
[7]Peter Waeltermann,Thomas Michalsky,Johannes Held.Hardwarein-the-loop testing in racing applications.SAE Paper 2004-01-3502.
[8]李佳,朱元,田光宇.CAN與TTCAN通信延遲時間的分析[J].清華大學(xué)學(xué)報:自然科學(xué)版,2006(2):261-265.