劉洪飛 汪春華 白穩峰 李衛朋
(1.河北工業大學,天津 300132;2.中國汽車技術研究中心有限公司,天津 300300)
主題詞:智能進入及啟動系統 基站 Stateflow 硬件在環測試 軟件在環測試
電子技術在汽車上的應用促使汽車防盜系統日益完善,安全性不斷提高。遙控門禁(Remote Keyless Entry,RKE)系統需要操作鑰匙才能進行解、閉鎖,便利性較低,而且單向認證通信防盜安全性不高。智能進入及啟動(Passive Entry&Passive Start,PEPS)系統與鑰匙進行低頻和高頻雙向認證通信,無需操作鑰匙即可解、閉鎖車門和起動發動機,具有較高的安全性、便利性和舒適性。
汽車電子系統的復雜性和成本日益增加,使其開發方式逐漸轉變為基于模型的方式[1]。在產品開發過程中,功能和需求的變化導致源代碼不斷變化,因此,軟件功能檢測和代碼自動生成技術越來越重要。Stateflow是集成于Simulink中的圖形化設計與開發工具,用于控制系統中復雜控制邏輯的建模[2],結合Simulink可對系統功能進行仿真測試,驗證控制邏輯的準確性。使用Embedded Coder工具能夠自動生成嵌入式C代碼,對汽車PEPS系統的設計有重要意義。
配備PEPS系統的汽車數量逐年上升,德國大陸、日本電裝、德爾福、博世等企業占領了PEPS系統的主要市場份額。我國也在自主開發,但由于技術因素和成本限制,產品有待進一步完善。本文提出基于XC2000的PEPS系統基站軟件設計方案,參考AUTOSAR架構設計軟件程序,闡述了系統建模和代碼自動生成過程,并使用硬件在環測試系統驗證了基站功能。
PEPS系統總體結構如圖1所示。PEPS系統基站復雜性日益提高,對微控制器(Microcontroller Unit,MCU)的要求較高,MCU的選型直接影響基站的可靠性和穩定性,綜合考慮系統需求和成本,選用英飛凌公司的XC2000系列芯片作為基站的MCU,其為16位MCU,具有32位處理器性能,存儲空間大、性能穩定、耗能少,能夠滿足系統需求。

圖1 PEPS系統總體結構
基站與鑰匙模塊進行無線通信認證,通過天線測量鑰匙場強,確定鑰匙位置。采集外開手柄微動開關、一鍵起動開關、制動踏板、離合器踏板和擋位信號,在MCU內部處理后驅動狀態指示燈顯示電源狀態,驅動ACC和IG繼電器實現電源狀態切換等。MCU與電動轉向柱鎖(Electrical Steering Colum Lock,ESCL)模塊進行LIN通信完成診斷和解、閉鎖控制,與車身控制器(Body Control Module,BCM)、發動機管理系統(Engine Manage?ment System,EMS)等電子控制單元進行CAN通信,完成車門解、閉鎖和身份認證等。
2.2.1 無鑰匙進入功能
用戶攜帶鑰匙進入有效探測區域內時,觸動外開手柄微動開關后,基站通過低頻天線發送低頻喚醒信號,鑰匙驗證該信號并檢測當前位置的場強,如驗證結果與內部存儲的數據相匹配且場強高于鑰匙的預設值,鑰匙被喚醒,將低頻場強反饋給基站,基站利用多個低頻場強的強弱程度綜合判斷鑰匙位置。
鑰匙被喚醒后將ID通過高頻信號發送給基站,基站驗證ID合法后向鑰匙發送驗證碼,鑰匙采用特定的跳轉碼算法對該驗證碼進行數據加密,并將加密結果反饋至基站[3]。基站將加密數據與自身的計算結果進行比對,如兩者匹配,則將鑰匙認證信息、解、閉鎖請求和鑰匙位置等信息通過CAN總線發送至BCM,BCM結合解、閉鎖請求、鑰匙位置和鎖狀態等條件執行相應的解、閉鎖動作和閃爍提示。
2.2.2 無鑰匙啟動功能
無鑰匙啟動流程如圖2所示,分為正常模式和應急模式。正常模式:按下一鍵啟動開關,基站驗證鑰匙合法且在車內,則控制ESCL解鎖。解鎖后,結合制動踏板、離合器踏板和擋位信號切換電源狀態。若電源狀態切換到CRANK,則與EMS進行認證通信。認證通過后,EMS起動發動機并將起動成功信息反饋給基站,將電源狀態切換為RUN。應急模式:在鑰匙電量低或者認證失敗的情況下進行備用認證。鑰匙內有轉發器無源芯片,當轉發器進入基站的讀寫范圍內,按下一鍵啟動開關啟動車輛時,轉發器通過發動機防盜鎖止系統(Immobilizer,IMMO)低頻天線在電磁場中的激勵得到工作電源和時鐘信號[4]。轉發器借助獲取的電能發送存儲在芯片中的相關信息,與基站進行認證通信。若基站成功認證轉發器,后續啟動流程與正常模式相同。

圖2 啟動流程
2.2.3 智能提示功能
智能提示功能包括啟動IMMO認證提示、智能鑰匙低電量提示、智能鑰匙在車內或離開提示、制動或離合踏板被踩下未找到鑰匙提示、ESCL解、閉鎖失敗和故障提示、PE鎖車時電源狀態非OFF提示功能等[5]。滿足相應條件后,基站通過CAN總線發送提示或報警信息,儀表進行相關提示。
參考AUTOSAR軟件架構,以層次化思想為目標,將軟件架構分為應用層、接口層和基礎層,各層遵循“高內聚、低耦合”原則。軟件總體架構如圖3所示,應用層實現系統功能,根據功能要求分模塊實現。基礎層與硬件電路密切相關,MCU驅動實現硬件驅動功能,ECU驅動封裝了微控制器以及外圍設備的驅動,COM實現協議棧功能,服務包括網絡管理、存儲管理和故障診斷等。基礎層和應用層可同時獨立開發,功能集成時通過修改接口層實現兩層之間的聯系,使得應用層與硬件平臺分離開來,避免了硬件系統更新造成的軟件重復開發。

圖3 軟件總體架構
3.2.1 模型搭建
根據電源分配模塊功能規范確定模型輸入和輸出信號的名稱、類型,分析不同電源狀態的轉換條件,搭建電源分配模型如圖4所示。模型包含電源狀態(OFF、ACC、ON、RUN、CRANK、ACC_Emergency)和延時等待(Delay)7個互斥狀態,Stateflow激活后默認進入OFF狀態,進行變量初始化。滿足相應條件會觸發從OFF狀態跳轉到相應狀態,同時持續調用圖形函數Power_Status_deal,控制相應繼電器吸合或斷開和發送繼電器狀態。

圖4 電源分配模型
正常啟動時,電源狀態由OFF切換至RUN的過程如下:在滿足AT車型踩下制動踏板或MT車型踩下離合器踏板的條件(((VEH_AT_AMT==1)&&(HW_Brake_ST==0))||((VEH_MT==1)&&(HW_Clutch_ST==1)))時,按下一鍵啟動開關,模型從OFF狀態跳轉到Delay狀態。400 ms內若在車內找到合法鑰匙且ESCL解鎖成功,模型跳轉到CRANK狀態,控制ACC和IG繼電器吸合,同時發送繼電器吸合狀態信息和起動發動機請求。從進入CRANK狀態開始計時,若16 s內接收到起動成功信號(EMS_Engine_start_flag==1),模型跳轉到RUN狀態。
3.2.2 模型策略仿真
應用Stateflow完成模型搭建后,建立用于仿真的Simulink模型,驗證功能規范中的控制策略,保證各功能模塊準確實現各控制策略。Simulink仿真模型、測試用例輸入和模型對應輸出如圖5所示,仿真結果與期望保持一致。仿真過程中,如果模型的輸出與測試用例期望輸出不一致,可以使用Debug調試器對仿真模型逐步調試。在模型內部設置斷點,或者使用狀態圖動畫顯示模型中的活動狀態和轉移。在模型調試過程中,可以逐步調試狀態圖中的不同函數,監視輸出值,實現系統仿真的可視化。
3.2.3 軟件在環測試
通過編譯器使模型自動生成代碼,為防止代碼生成過程中出現問題導致代碼不能表達原始模型,需要進行軟件在環(Software-In-the-Loop,SIL)測試,驗證代碼與模型的輸出結果是否一致。SIL測試的原理是通過編譯使模型生成一個S-Function封裝的動態鏈接庫模型,給定原始模型和動態鏈接庫模型相同的輸入,觀察輸出是否相同[6]。選擇覆蓋率較高的測試用例作為模型輸入,盡可能覆蓋多種情形,SIL測試如圖6所示。


圖5 模型仿真

圖6 SIL測試
3.2.4 自動生成代碼
完成Stateflow建模和Simulink仿真測試,定義輸入、輸出信號的數據類型、存儲類型和結構體名稱,選擇ert.tlc作為系統目標文件,Embedded Coder模塊即可將模型自動生成代碼。用于生成代碼的電源分配模型和模型自動生成代碼報告如圖7所示,可以看出,模型自動生成的源文件和頭文件包含了主函數、模型算法邏輯、數據結構與類型和宏定義結構體等。


圖7 自動生成代碼
首先利用DAvE軟件通過單片機選型和各模塊參數設置自動生成MCU驅動初始代碼,然后利用TASK?ING軟件編寫代碼,最后進行編譯、下載和調試工作。基站主程序流程如圖8所示,復位后關閉中斷功能,防止初始化過程中產生不必要的中斷。系統完成初始化后,使能中斷功能進行主循環。主循環用于實現輪詢時間和調度任務,首先判斷休眠條件:若滿足休眠條件則進入低功耗模式減少電流消耗;否則進入正常模式,采集和處理輸入信號,進行邏輯處理,輸出信號驅動負載,并完成通信、診斷和狀態存儲等功能。

圖8 基站主程序流程
硬件在環(Hardware-In-the-Loop,HIL)測試是以實時處理器運行仿真模型模擬受控對象的運行狀態,通過I/O接口與電控系統連接進行的測試[7]。硬件在環測試系統如圖9所示,選用德國dSPACE提供的仿真機柜,根據系統功能測試需求配置機柜板卡資源和連接線束。測試平臺軟件底層模型結合dSPACE軟件進行二次開發,利用Simulink與Stateflow更新底層機柜硬件接口模型和總線協議模型,同時設計測試管理界面控制信號和顯示數據。

圖9 硬件在環測試系統
功能測試是基站開發過程中必不可少的,以PE解、閉鎖功能為例,測試過程如表1所示。

表1 PEPS解、閉鎖測試用例
測試結果如圖10所示,PEPS解、閉鎖命令中,1代表閉鎖,3代表解鎖,各輸出信號中,0代表無效,1代表有效,測試結果與測試用例期望結果一致。

圖10 PE解閉鎖測試結果
上位機通過RS232串行總線控制故障注入單元(Fault Injection Unit,FIU),通過發送指令控制FIU各通道注入對應故障,故障產生后可通過診斷工具讀取與清除故障碼,驗證基站能否正確處理和記錄故障。以ACC繼電器開路為例,在上位機故障注入界面中對基站注入ACC繼電器開路,通過診斷工具發送當前診斷故障請求:19 02 09,診斷工具讀取到的故障結果如圖11所示,回復診斷碼為:59 02 7b c4 16 81 2b,其中故障碼c4 16 81代表ACC繼電器開路故障,此時ACC相關功能不能正常運行,滿足功能要求。

圖11 ACC繼電器開路故障注入測試結果
本文以系統安全性、便利性和舒適性為前提,提出了一種汽車PEPS系統基站軟件設計方案。參考AUTO?SAR架構分層設計軟件,降低了程序復雜性;通過標準接口交互解耦軟件,易于定位查找問題;硬件資源改變時,無需重新設計應用層,提高了軟件可移植性。利用硬件在環測試系統對基站分別進行了功能測試和故障注入測試,驗證了控制策略和自診斷策略,可有效提高測試效率和系統可靠性,縮短產品開發周期。