劉洪飛 汪春華 白穩(wěn)峰 李衛(wèi)朋
(1.河北工業(yè)大學(xué),天津 300132;2.中國汽車技術(shù)研究中心有限公司,天津 300300)
主題詞:智能進(jìn)入及啟動系統(tǒng) 基站 Stateflow 硬件在環(huán)測試 軟件在環(huán)測試
電子技術(shù)在汽車上的應(yīng)用促使汽車防盜系統(tǒng)日益完善,安全性不斷提高。遙控門禁(Remote Keyless Entry,RKE)系統(tǒng)需要操作鑰匙才能進(jìn)行解、閉鎖,便利性較低,而且單向認(rèn)證通信防盜安全性不高。智能進(jìn)入及啟動(Passive Entry&Passive Start,PEPS)系統(tǒng)與鑰匙進(jìn)行低頻和高頻雙向認(rèn)證通信,無需操作鑰匙即可解、閉鎖車門和起動發(fā)動機(jī),具有較高的安全性、便利性和舒適性。
汽車電子系統(tǒng)的復(fù)雜性和成本日益增加,使其開發(fā)方式逐漸轉(zhuǎn)變?yōu)榛谀P偷姆绞絒1]。在產(chǎn)品開發(fā)過程中,功能和需求的變化導(dǎo)致源代碼不斷變化,因此,軟件功能檢測和代碼自動生成技術(shù)越來越重要。Stateflow是集成于Simulink中的圖形化設(shè)計與開發(fā)工具,用于控制系統(tǒng)中復(fù)雜控制邏輯的建模[2],結(jié)合Simulink可對系統(tǒng)功能進(jìn)行仿真測試,驗證控制邏輯的準(zhǔn)確性。使用Embedded Coder工具能夠自動生成嵌入式C代碼,對汽車PEPS系統(tǒng)的設(shè)計有重要意義。
配備PEPS系統(tǒng)的汽車數(shù)量逐年上升,德國大陸、日本電裝、德爾福、博世等企業(yè)占領(lǐng)了PEPS系統(tǒng)的主要市場份額。我國也在自主開發(fā),但由于技術(shù)因素和成本限制,產(chǎn)品有待進(jìn)一步完善。本文提出基于XC2000的PEPS系統(tǒng)基站軟件設(shè)計方案,參考AUTOSAR架構(gòu)設(shè)計軟件程序,闡述了系統(tǒng)建模和代碼自動生成過程,并使用硬件在環(huán)測試系統(tǒng)驗證了基站功能。
PEPS系統(tǒng)總體結(jié)構(gòu)如圖1所示。PEPS系統(tǒng)基站復(fù)雜性日益提高,對微控制器(Microcontroller Unit,MCU)的要求較高,MCU的選型直接影響基站的可靠性和穩(wěn)定性,綜合考慮系統(tǒng)需求和成本,選用英飛凌公司的XC2000系列芯片作為基站的MCU,其為16位MCU,具有32位處理器性能,存儲空間大、性能穩(wěn)定、耗能少,能夠滿足系統(tǒng)需求。
圖1 PEPS系統(tǒng)總體結(jié)構(gòu)
基站與鑰匙模塊進(jìn)行無線通信認(rèn)證,通過天線測量鑰匙場強(qiáng),確定鑰匙位置。采集外開手柄微動開關(guān)、一鍵起動開關(guān)、制動踏板、離合器踏板和擋位信號,在MCU內(nèi)部處理后驅(qū)動狀態(tài)指示燈顯示電源狀態(tài),驅(qū)動ACC和IG繼電器實現(xiàn)電源狀態(tài)切換等。MCU與電動轉(zhuǎn)向柱鎖(Electrical Steering Colum Lock,ESCL)模塊進(jìn)行LIN通信完成診斷和解、閉鎖控制,與車身控制器(Body Control Module,BCM)、發(fā)動機(jī)管理系統(tǒng)(Engine Manage?ment System,EMS)等電子控制單元進(jìn)行CAN通信,完成車門解、閉鎖和身份認(rèn)證等。
2.2.1 無鑰匙進(jìn)入功能
用戶攜帶鑰匙進(jìn)入有效探測區(qū)域內(nèi)時,觸動外開手柄微動開關(guān)后,基站通過低頻天線發(fā)送低頻喚醒信號,鑰匙驗證該信號并檢測當(dāng)前位置的場強(qiáng),如驗證結(jié)果與內(nèi)部存儲的數(shù)據(jù)相匹配且場強(qiáng)高于鑰匙的預(yù)設(shè)值,鑰匙被喚醒,將低頻場強(qiáng)反饋給基站,基站利用多個低頻場強(qiáng)的強(qiáng)弱程度綜合判斷鑰匙位置。
鑰匙被喚醒后將ID通過高頻信號發(fā)送給基站,基站驗證ID合法后向鑰匙發(fā)送驗證碼,鑰匙采用特定的跳轉(zhuǎn)碼算法對該驗證碼進(jìn)行數(shù)據(jù)加密,并將加密結(jié)果反饋至基站[3]。基站將加密數(shù)據(jù)與自身的計算結(jié)果進(jìn)行比對,如兩者匹配,則將鑰匙認(rèn)證信息、解、閉鎖請求和鑰匙位置等信息通過CAN總線發(fā)送至BCM,BCM結(jié)合解、閉鎖請求、鑰匙位置和鎖狀態(tài)等條件執(zhí)行相應(yīng)的解、閉鎖動作和閃爍提示。
2.2.2 無鑰匙啟動功能
無鑰匙啟動流程如圖2所示,分為正常模式和應(yīng)急模式。正常模式:按下一鍵啟動開關(guān),基站驗證鑰匙合法且在車內(nèi),則控制ESCL解鎖。解鎖后,結(jié)合制動踏板、離合器踏板和擋位信號切換電源狀態(tài)。若電源狀態(tài)切換到CRANK,則與EMS進(jìn)行認(rèn)證通信。認(rèn)證通過后,EMS起動發(fā)動機(jī)并將起動成功信息反饋給基站,將電源狀態(tài)切換為RUN。應(yīng)急模式:在鑰匙電量低或者認(rèn)證失敗的情況下進(jìn)行備用認(rèn)證。鑰匙內(nèi)有轉(zhuǎn)發(fā)器無源芯片,當(dāng)轉(zhuǎn)發(fā)器進(jìn)入基站的讀寫范圍內(nèi),按下一鍵啟動開關(guān)啟動車輛時,轉(zhuǎn)發(fā)器通過發(fā)動機(jī)防盜鎖止系統(tǒng)(Immobilizer,IMMO)低頻天線在電磁場中的激勵得到工作電源和時鐘信號[4]。轉(zhuǎn)發(fā)器借助獲取的電能發(fā)送存儲在芯片中的相關(guān)信息,與基站進(jìn)行認(rèn)證通信。若基站成功認(rèn)證轉(zhuǎn)發(fā)器,后續(xù)啟動流程與正常模式相同。
圖2 啟動流程
2.2.3 智能提示功能
智能提示功能包括啟動IMMO認(rèn)證提示、智能鑰匙低電量提示、智能鑰匙在車內(nèi)或離開提示、制動或離合踏板被踩下未找到鑰匙提示、ESCL解、閉鎖失敗和故障提示、PE鎖車時電源狀態(tài)非OFF提示功能等[5]。滿足相應(yīng)條件后,基站通過CAN總線發(fā)送提示或報警信息,儀表進(jìn)行相關(guān)提示。
參考AUTOSAR軟件架構(gòu),以層次化思想為目標(biāo),將軟件架構(gòu)分為應(yīng)用層、接口層和基礎(chǔ)層,各層遵循“高內(nèi)聚、低耦合”原則。軟件總體架構(gòu)如圖3所示,應(yīng)用層實現(xiàn)系統(tǒng)功能,根據(jù)功能要求分模塊實現(xiàn)?;A(chǔ)層與硬件電路密切相關(guān),MCU驅(qū)動實現(xiàn)硬件驅(qū)動功能,ECU驅(qū)動封裝了微控制器以及外圍設(shè)備的驅(qū)動,COM實現(xiàn)協(xié)議棧功能,服務(wù)包括網(wǎng)絡(luò)管理、存儲管理和故障診斷等。基礎(chǔ)層和應(yīng)用層可同時獨立開發(fā),功能集成時通過修改接口層實現(xiàn)兩層之間的聯(lián)系,使得應(yīng)用層與硬件平臺分離開來,避免了硬件系統(tǒng)更新造成的軟件重復(fù)開發(fā)。
圖3 軟件總體架構(gòu)
3.2.1 模型搭建
根據(jù)電源分配模塊功能規(guī)范確定模型輸入和輸出信號的名稱、類型,分析不同電源狀態(tài)的轉(zhuǎn)換條件,搭建電源分配模型如圖4所示。模型包含電源狀態(tài)(OFF、ACC、ON、RUN、CRANK、ACC_Emergency)和延時等待(Delay)7個互斥狀態(tài),Stateflow激活后默認(rèn)進(jìn)入OFF狀態(tài),進(jìn)行變量初始化。滿足相應(yīng)條件會觸發(fā)從OFF狀態(tài)跳轉(zhuǎn)到相應(yīng)狀態(tài),同時持續(xù)調(diào)用圖形函數(shù)Power_Status_deal,控制相應(yīng)繼電器吸合或斷開和發(fā)送繼電器狀態(tài)。
圖4 電源分配模型
正常啟動時,電源狀態(tài)由OFF切換至RUN的過程如下:在滿足AT車型踩下制動踏板或MT車型踩下離合器踏板的條件(((VEH_AT_AMT==1)&&(HW_Brake_ST==0))||((VEH_MT==1)&&(HW_Clutch_ST==1)))時,按下一鍵啟動開關(guān),模型從OFF狀態(tài)跳轉(zhuǎn)到Delay狀態(tài)。400 ms內(nèi)若在車內(nèi)找到合法鑰匙且ESCL解鎖成功,模型跳轉(zhuǎn)到CRANK狀態(tài),控制ACC和IG繼電器吸合,同時發(fā)送繼電器吸合狀態(tài)信息和起動發(fā)動機(jī)請求。從進(jìn)入CRANK狀態(tài)開始計時,若16 s內(nèi)接收到起動成功信號(EMS_Engine_start_flag==1),模型跳轉(zhuǎn)到RUN狀態(tài)。
3.2.2 模型策略仿真
應(yīng)用Stateflow完成模型搭建后,建立用于仿真的Simulink模型,驗證功能規(guī)范中的控制策略,保證各功能模塊準(zhǔn)確實現(xiàn)各控制策略。Simulink仿真模型、測試用例輸入和模型對應(yīng)輸出如圖5所示,仿真結(jié)果與期望保持一致。仿真過程中,如果模型的輸出與測試用例期望輸出不一致,可以使用Debug調(diào)試器對仿真模型逐步調(diào)試。在模型內(nèi)部設(shè)置斷點,或者使用狀態(tài)圖動畫顯示模型中的活動狀態(tài)和轉(zhuǎn)移。在模型調(diào)試過程中,可以逐步調(diào)試狀態(tài)圖中的不同函數(shù),監(jiān)視輸出值,實現(xiàn)系統(tǒng)仿真的可視化。
3.2.3 軟件在環(huán)測試
通過編譯器使模型自動生成代碼,為防止代碼生成過程中出現(xiàn)問題導(dǎo)致代碼不能表達(dá)原始模型,需要進(jìn)行軟件在環(huán)(Software-In-the-Loop,SIL)測試,驗證代碼與模型的輸出結(jié)果是否一致。SIL測試的原理是通過編譯使模型生成一個S-Function封裝的動態(tài)鏈接庫模型,給定原始模型和動態(tài)鏈接庫模型相同的輸入,觀察輸出是否相同[6]。選擇覆蓋率較高的測試用例作為模型輸入,盡可能覆蓋多種情形,SIL測試如圖6所示。
圖5 模型仿真
圖6 SIL測試
3.2.4 自動生成代碼
完成Stateflow建模和Simulink仿真測試,定義輸入、輸出信號的數(shù)據(jù)類型、存儲類型和結(jié)構(gòu)體名稱,選擇ert.tlc作為系統(tǒng)目標(biāo)文件,Embedded Coder模塊即可將模型自動生成代碼。用于生成代碼的電源分配模型和模型自動生成代碼報告如圖7所示,可以看出,模型自動生成的源文件和頭文件包含了主函數(shù)、模型算法邏輯、數(shù)據(jù)結(jié)構(gòu)與類型和宏定義結(jié)構(gòu)體等。
圖7 自動生成代碼
首先利用DAvE軟件通過單片機(jī)選型和各模塊參數(shù)設(shè)置自動生成MCU驅(qū)動初始代碼,然后利用TASK?ING軟件編寫代碼,最后進(jìn)行編譯、下載和調(diào)試工作。基站主程序流程如圖8所示,復(fù)位后關(guān)閉中斷功能,防止初始化過程中產(chǎn)生不必要的中斷。系統(tǒng)完成初始化后,使能中斷功能進(jìn)行主循環(huán)。主循環(huán)用于實現(xiàn)輪詢時間和調(diào)度任務(wù),首先判斷休眠條件:若滿足休眠條件則進(jìn)入低功耗模式減少電流消耗;否則進(jìn)入正常模式,采集和處理輸入信號,進(jìn)行邏輯處理,輸出信號驅(qū)動負(fù)載,并完成通信、診斷和狀態(tài)存儲等功能。
圖8 基站主程序流程
硬件在環(huán)(Hardware-In-the-Loop,HIL)測試是以實時處理器運(yùn)行仿真模型模擬受控對象的運(yùn)行狀態(tài),通過I/O接口與電控系統(tǒng)連接進(jìn)行的測試[7]。硬件在環(huán)測試系統(tǒng)如圖9所示,選用德國dSPACE提供的仿真機(jī)柜,根據(jù)系統(tǒng)功能測試需求配置機(jī)柜板卡資源和連接線束。測試平臺軟件底層模型結(jié)合dSPACE軟件進(jìn)行二次開發(fā),利用Simulink與Stateflow更新底層機(jī)柜硬件接口模型和總線協(xié)議模型,同時設(shè)計測試管理界面控制信號和顯示數(shù)據(jù)。
圖9 硬件在環(huán)測試系統(tǒng)
功能測試是基站開發(fā)過程中必不可少的,以PE解、閉鎖功能為例,測試過程如表1所示。
表1 PEPS解、閉鎖測試用例
測試結(jié)果如圖10所示,PEPS解、閉鎖命令中,1代表閉鎖,3代表解鎖,各輸出信號中,0代表無效,1代表有效,測試結(jié)果與測試用例期望結(jié)果一致。
圖10 PE解閉鎖測試結(jié)果
上位機(jī)通過RS232串行總線控制故障注入單元(Fault Injection Unit,F(xiàn)IU),通過發(fā)送指令控制FIU各通道注入對應(yīng)故障,故障產(chǎn)生后可通過診斷工具讀取與清除故障碼,驗證基站能否正確處理和記錄故障。以ACC繼電器開路為例,在上位機(jī)故障注入界面中對基站注入ACC繼電器開路,通過診斷工具發(fā)送當(dāng)前診斷故障請求:19 02 09,診斷工具讀取到的故障結(jié)果如圖11所示,回復(fù)診斷碼為:59 02 7b c4 16 81 2b,其中故障碼c4 16 81代表ACC繼電器開路故障,此時ACC相關(guān)功能不能正常運(yùn)行,滿足功能要求。
圖11 ACC繼電器開路故障注入測試結(jié)果
本文以系統(tǒng)安全性、便利性和舒適性為前提,提出了一種汽車PEPS系統(tǒng)基站軟件設(shè)計方案。參考AUTO?SAR架構(gòu)分層設(shè)計軟件,降低了程序復(fù)雜性;通過標(biāo)準(zhǔn)接口交互解耦軟件,易于定位查找問題;硬件資源改變時,無需重新設(shè)計應(yīng)用層,提高了軟件可移植性。利用硬件在環(huán)測試系統(tǒng)對基站分別進(jìn)行了功能測試和故障注入測試,驗證了控制策略和自診斷策略,可有效提高測試效率和系統(tǒng)可靠性,縮短產(chǎn)品開發(fā)周期。