牛繼高,李晨旭,徐春華,李 彬
(中原工學(xué)院,河南 鄭州 450007)
汽車無(wú)鑰匙進(jìn)入和一鍵啟動(dòng)(PEPS,Passive Entry and Passive Start)系統(tǒng)因其安全性和便捷性逐步得到了市場(chǎng)的認(rèn)可,已經(jīng)成為中高端車型的標(biāo)配[1]。由于現(xiàn)在汽車電子設(shè)備的增加和更新?lián)Q代周期的加快,要求產(chǎn)品提高可靠性并縮短研發(fā)周期[2]。與此同時(shí),自動(dòng)代碼生成技術(shù)可將底層驅(qū)動(dòng)和控制算法直接生成標(biāo)準(zhǔn)的C代碼,和手工編程相比,極大降低了軟件編寫和調(diào)試的勞動(dòng)強(qiáng)度,保障了系統(tǒng)的工作質(zhì)量,提高了系統(tǒng)更新的效率[3-4]。因此,本文基于Stateflow開發(fā)工具對(duì)PDM系統(tǒng)的控制算法進(jìn)行了建模分析,利用Targetlink軟件和codewarrior開發(fā)環(huán)境中的PE模式生成了自動(dòng)代碼;最后,在飛思卡爾MC9S12G128電控單元上進(jìn)行了試驗(yàn)驗(yàn)證。
當(dāng)駕駛員進(jìn)入車輛,按下一鍵啟動(dòng)按鍵,控制器通過(guò)ATA5279驅(qū)動(dòng)室內(nèi)天線向外界發(fā)送125 kHz的低頻定位信號(hào)。汽車鑰匙接收到定位信號(hào)后,檢測(cè)鑰匙ID是否和要求的一致。如果鑰匙ID正確,汽車鑰匙將被激活,并且通過(guò)443.92 MHz的高頻信號(hào)返回鑰匙相汽車的位置。若鑰匙在車內(nèi),則車內(nèi)天線向外界發(fā)送125 kHz的認(rèn)證信號(hào),汽車鑰匙被激活后,將通過(guò)高頻信號(hào)把加密后的響應(yīng)返回給PEPS主機(jī)。若其解密成功,則鑰匙合法,PEPS認(rèn)證過(guò)程如圖1所示。

圖1 一鍵啟動(dòng)認(rèn)證過(guò)程
鑰匙完成鑒權(quán)后,PEPS控制器讀取當(dāng)前車速和離合器狀態(tài)等信號(hào),通過(guò)SPI通信控制驅(qū)動(dòng)芯片對(duì)相應(yīng)繼電器進(jìn)行開關(guān)控制,從而實(shí)現(xiàn)對(duì)車輛電源模式的重新分配。手動(dòng)檔汽車的電源分配方式,如表1所示。即:攜帶合法智能鑰匙的駕駛員進(jìn)入車內(nèi),車輛電源處于OFF檔;不踩離合的情況下,連續(xù)按一鍵啟動(dòng)按鍵,電源模式在ACC-ON-OFF-ACC…之間循環(huán)切換,同時(shí)儀表盤顯示此時(shí)的電源模式;當(dāng)踩下離合時(shí),在OFF、ACC、ON任意一個(gè)狀態(tài)下,按一鍵啟動(dòng)按鍵都可以直接切換到啟動(dòng)狀態(tài);當(dāng)車輛的速度大于5 km/h時(shí),駕駛員長(zhǎng)按一鍵啟動(dòng)按鍵3 s,汽車進(jìn)入緊急熄火狀態(tài),電源模式從ON檔切換至OFF檔。

表1 手動(dòng)檔汽車的電源分配方式
如圖2所示,采用Simulink/Stateflow建立電源分配模塊頂層模型。其中,“system”為基于Stateflow的電源模式切換算法,通過(guò)此控制算法輸出將要切換的電源狀態(tài)“PDM_state”及一鍵啟動(dòng)按鍵按下的時(shí)間“PDM_counter”。打開模型資源管理器(ModelExplorer),配置Stateflow模型中所用變量的I/O類別、數(shù)據(jù)范圍和類型。拖入常數(shù)模塊和開關(guān)模塊組成開關(guān)按鍵,按照對(duì)應(yīng)變量一致原則與Stateflow模型中輸入端口連接。運(yùn)行模型,任意切換按鍵狀態(tài),對(duì)比“PDM_state”與期望電源狀態(tài)完全一致。通過(guò)離線仿真,驗(yàn)證了電源模式切換算法的可行性,為軟件開發(fā)打下了理論基礎(chǔ)。

圖2 電源分配模塊頂層模型
將上述Stateflow模型中輸入輸出端口替換為Targetlink模塊庫(kù)中相應(yīng)模塊,并在屬性管理器中對(duì)各變量的變量名、取值范圍及數(shù)據(jù)類型等屬性,進(jìn)行統(tǒng)一修改。為了與底層驅(qū)動(dòng)代碼對(duì)接,將這些變量聲明為外部全局變量,并在模型中添加“Addfile”模塊,以便在自動(dòng)代碼中包含底層驅(qū)動(dòng)代碼的宏定義頭文件。修改后的Targetlink頂層模型如圖3所示。

圖3 Targetlink頂層模型
PEPS系統(tǒng)的主控芯片為飛思卡爾公司的MC9S-12G128,其集成開發(fā)環(huán)境支持專家(PE,ProcessorExpert)模式。在PE模式下,只需修改少量參數(shù),即可生成 CPU、Capture中斷、SPI通信、CAN 通信,EEPROM等模塊的底層驅(qū)動(dòng)代碼,從而減少了翻閱DATASHEET的時(shí)間和配置繁雜寄存器的精力。
以PDM中按鍵時(shí)長(zhǎng)計(jì)時(shí)所用的RTI定時(shí)中斷為例,生成底層驅(qū)動(dòng)代碼的步驟如圖4所示。首先打開PE模式;然后在組件庫(kù)(Components Library)中找到Init-RTI模塊;之后打開組件,配置時(shí)鐘總線和預(yù)分頻器,自動(dòng)計(jì)算出定時(shí)周期;接下來(lái)使能定時(shí)中斷,選擇優(yōu)先級(jí),并命名中斷服務(wù)函數(shù)名稱;最后,選擇初始化,點(diǎn)擊代碼生成按鈕,去除屏蔽即可。為了與控制算法自動(dòng)代碼對(duì)接,還需將底層驅(qū)動(dòng)代碼中的相應(yīng)變量定義為全局變量。

圖4 生成底層驅(qū)動(dòng)代碼步驟
在PE模式下生成的底層驅(qū)動(dòng)代碼,會(huì)自動(dòng)更新到Generated Code文件夾中,故只需再將Targetlink生成的控制算法代碼添加到工程文件下,通過(guò)編譯即可。其步驟如圖5所示,首先將Targetlink生成的TLProj文件夾下的c文件和h文件加載到PEPS工程中;其次新建PDMhongcode頭文件,并對(duì)相應(yīng)變量進(jìn)行宏定義;然后,在主程序文件中加入TLProj文件夾下h文件;最后在需要用到電源模式切換的地方調(diào)用Subsystem_TL()函數(shù)即可。

圖5 代碼融合步驟
當(dāng)PDM設(shè)計(jì)已經(jīng)結(jié)束,并且做成了真實(shí)的控制器,需要對(duì)其功能進(jìn)行詳細(xì)的閉環(huán)測(cè)試。選用Dspace公司的DS1006平臺(tái),建立車輛測(cè)試模型,編譯之后將其下載到Ecoline中,并對(duì)測(cè)試的總線解析,通過(guò)ControlDesk開發(fā)出測(cè)試界面,如圖6所示,對(duì)測(cè)試功能的效果進(jìn)行圖形化的顯示。測(cè)試表明,PDM模塊滿足PEPS系統(tǒng)預(yù)期功能求。

圖6 PEPS功能測(cè)試圖
本文基于MATLAB/Simulink仿真平臺(tái),對(duì)PEPS系統(tǒng)中電源分配模塊的控制功能進(jìn)行了分析設(shè)計(jì)。通過(guò)離線仿真,驗(yàn)證了算法的可靠性。利用Targetlink工具生成控制算法模型的C代碼,利用PE功能生成底層驅(qū)動(dòng)代碼,并將其融合下載到控制器中,提高了軟件的開發(fā)效率。最后,建立了測(cè)試模型對(duì)真實(shí)PEPS控制系統(tǒng)進(jìn)行了測(cè)試驗(yàn)證,試驗(yàn)結(jié)果表明,軟件設(shè)計(jì)方案能夠滿系統(tǒng)的功能要求。同時(shí)自動(dòng)代碼開發(fā)技術(shù)的應(yīng)用,規(guī)范了PEPS系統(tǒng)的開發(fā)流程,并使其后期的更新和升級(jí)更加高效。
[1]張曉杰.汽車PEPS無(wú)鑰匙系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:上海交通大學(xué),2014.
[2]王迅佳.汽車電子ECU測(cè)試系統(tǒng)的構(gòu)建[J].信息技術(shù),2012,36(11):111-113.
[3]王曉雷,尹太元,嚴(yán) 攀.基于Matlab自動(dòng)代碼生成的SVG研究[J].電力電子技術(shù),2015,49(07):47-49,58.
[4]董世駿,王 瑋,孫丙香,等.基于TargetLink的電池SOC估算軟件開發(fā)方法[J].電力建設(shè),2015,36(07):181-186.