牛繼高,李晨旭,徐春華,李 彬
(中原工學院,河南 鄭州 450007)
汽車無鑰匙進入和一鍵啟動(PEPS,Passive Entry and Passive Start)系統(tǒng)因其安全性和便捷性逐步得到了市場的認可,已經(jīng)成為中高端車型的標配[1]。由于現(xiàn)在汽車電子設(shè)備的增加和更新?lián)Q代周期的加快,要求產(chǎn)品提高可靠性并縮短研發(fā)周期[2]。與此同時,自動代碼生成技術(shù)可將底層驅(qū)動和控制算法直接生成標準的C代碼,和手工編程相比,極大降低了軟件編寫和調(diào)試的勞動強度,保障了系統(tǒng)的工作質(zhì)量,提高了系統(tǒng)更新的效率[3-4]。因此,本文基于Stateflow開發(fā)工具對PDM系統(tǒng)的控制算法進行了建模分析,利用Targetlink軟件和codewarrior開發(fā)環(huán)境中的PE模式生成了自動代碼;最后,在飛思卡爾MC9S12G128電控單元上進行了試驗驗證。
當駕駛員進入車輛,按下一鍵啟動按鍵,控制器通過ATA5279驅(qū)動室內(nèi)天線向外界發(fā)送125 kHz的低頻定位信號。汽車鑰匙接收到定位信號后,檢測鑰匙ID是否和要求的一致。如果鑰匙ID正確,汽車鑰匙將被激活,并且通過443.92 MHz的高頻信號返回鑰匙相汽車的位置。若鑰匙在車內(nèi),則車內(nèi)天線向外界發(fā)送125 kHz的認證信號,汽車鑰匙被激活后,將通過高頻信號把加密后的響應(yīng)返回給PEPS主機。若其解密成功,則鑰匙合法,PEPS認證過程如圖1所示。
圖1 一鍵啟動認證過程
鑰匙完成鑒權(quán)后,PEPS控制器讀取當前車速和離合器狀態(tài)等信號,通過SPI通信控制驅(qū)動芯片對相應(yīng)繼電器進行開關(guān)控制,從而實現(xiàn)對車輛電源模式的重新分配。手動檔汽車的電源分配方式,如表1所示。即:攜帶合法智能鑰匙的駕駛員進入車內(nèi),車輛電源處于OFF檔;不踩離合的情況下,連續(xù)按一鍵啟動按鍵,電源模式在ACC-ON-OFF-ACC…之間循環(huán)切換,同時儀表盤顯示此時的電源模式;當踩下離合時,在OFF、ACC、ON任意一個狀態(tài)下,按一鍵啟動按鍵都可以直接切換到啟動狀態(tài);當車輛的速度大于5 km/h時,駕駛員長按一鍵啟動按鍵3 s,汽車進入緊急熄火狀態(tài),電源模式從ON檔切換至OFF檔。
表1 手動檔汽車的電源分配方式
如圖2所示,采用Simulink/Stateflow建立電源分配模塊頂層模型。其中,“system”為基于Stateflow的電源模式切換算法,通過此控制算法輸出將要切換的電源狀態(tài)“PDM_state”及一鍵啟動按鍵按下的時間“PDM_counter”。打開模型資源管理器(ModelExplorer),配置Stateflow模型中所用變量的I/O類別、數(shù)據(jù)范圍和類型。拖入常數(shù)模塊和開關(guān)模塊組成開關(guān)按鍵,按照對應(yīng)變量一致原則與Stateflow模型中輸入端口連接。運行模型,任意切換按鍵狀態(tài),對比“PDM_state”與期望電源狀態(tài)完全一致。通過離線仿真,驗證了電源模式切換算法的可行性,為軟件開發(fā)打下了理論基礎(chǔ)。
圖2 電源分配模塊頂層模型
將上述Stateflow模型中輸入輸出端口替換為Targetlink模塊庫中相應(yīng)模塊,并在屬性管理器中對各變量的變量名、取值范圍及數(shù)據(jù)類型等屬性,進行統(tǒng)一修改。為了與底層驅(qū)動代碼對接,將這些變量聲明為外部全局變量,并在模型中添加“Addfile”模塊,以便在自動代碼中包含底層驅(qū)動代碼的宏定義頭文件。修改后的Targetlink頂層模型如圖3所示。
圖3 Targetlink頂層模型
PEPS系統(tǒng)的主控芯片為飛思卡爾公司的MC9S-12G128,其集成開發(fā)環(huán)境支持專家(PE,ProcessorExpert)模式。在PE模式下,只需修改少量參數(shù),即可生成 CPU、Capture中斷、SPI通信、CAN 通信,EEPROM等模塊的底層驅(qū)動代碼,從而減少了翻閱DATASHEET的時間和配置繁雜寄存器的精力。
以PDM中按鍵時長計時所用的RTI定時中斷為例,生成底層驅(qū)動代碼的步驟如圖4所示。首先打開PE模式;然后在組件庫(Components Library)中找到Init-RTI模塊;之后打開組件,配置時鐘總線和預分頻器,自動計算出定時周期;接下來使能定時中斷,選擇優(yōu)先級,并命名中斷服務(wù)函數(shù)名稱;最后,選擇初始化,點擊代碼生成按鈕,去除屏蔽即可。為了與控制算法自動代碼對接,還需將底層驅(qū)動代碼中的相應(yīng)變量定義為全局變量。
圖4 生成底層驅(qū)動代碼步驟
在PE模式下生成的底層驅(qū)動代碼,會自動更新到Generated Code文件夾中,故只需再將Targetlink生成的控制算法代碼添加到工程文件下,通過編譯即可。其步驟如圖5所示,首先將Targetlink生成的TLProj文件夾下的c文件和h文件加載到PEPS工程中;其次新建PDMhongcode頭文件,并對相應(yīng)變量進行宏定義;然后,在主程序文件中加入TLProj文件夾下h文件;最后在需要用到電源模式切換的地方調(diào)用Subsystem_TL()函數(shù)即可。
圖5 代碼融合步驟
當PDM設(shè)計已經(jīng)結(jié)束,并且做成了真實的控制器,需要對其功能進行詳細的閉環(huán)測試。選用Dspace公司的DS1006平臺,建立車輛測試模型,編譯之后將其下載到Ecoline中,并對測試的總線解析,通過ControlDesk開發(fā)出測試界面,如圖6所示,對測試功能的效果進行圖形化的顯示。測試表明,PDM模塊滿足PEPS系統(tǒng)預期功能求。
圖6 PEPS功能測試圖
本文基于MATLAB/Simulink仿真平臺,對PEPS系統(tǒng)中電源分配模塊的控制功能進行了分析設(shè)計。通過離線仿真,驗證了算法的可靠性。利用Targetlink工具生成控制算法模型的C代碼,利用PE功能生成底層驅(qū)動代碼,并將其融合下載到控制器中,提高了軟件的開發(fā)效率。最后,建立了測試模型對真實PEPS控制系統(tǒng)進行了測試驗證,試驗結(jié)果表明,軟件設(shè)計方案能夠滿系統(tǒng)的功能要求。同時自動代碼開發(fā)技術(shù)的應(yīng)用,規(guī)范了PEPS系統(tǒng)的開發(fā)流程,并使其后期的更新和升級更加高效。
[1]張曉杰.汽車PEPS無鑰匙系統(tǒng)的設(shè)計與實現(xiàn)[D].上海:上海交通大學,2014.
[2]王迅佳.汽車電子ECU測試系統(tǒng)的構(gòu)建[J].信息技術(shù),2012,36(11):111-113.
[3]王曉雷,尹太元,嚴 攀.基于Matlab自動代碼生成的SVG研究[J].電力電子技術(shù),2015,49(07):47-49,58.
[4]董世駿,王 瑋,孫丙香,等.基于TargetLink的電池SOC估算軟件開發(fā)方法[J].電力建設(shè),2015,36(07):181-186.