倪朋朋,顧海全,王文斌,鄭麗麗
(常州星宇車燈股份有限公司,江蘇常州 213000)
車燈是汽車必不可少的零部件,除了夜間照明外,更重要的是對其他行駛車輛和行人具有警示和提醒的作用,汽車轉向燈作為指示汽車運行狀態的信號燈關乎汽車運行安全,國際和國內都制定了一些重要法規來保障動態轉向燈的安全可靠。
主機廠和燈具生產企業為了保障燈具安全可靠,除了遵守相關法規外,還會制定一些項目開發流程來對項目進行規范和節點把控。燈具控制器作為燈具的核心部件,其硬件和軟件一直是設計過程中的重點。軟件的運行依賴于硬件平臺,按照傳統的開發方式,需要等硬件完成后才能調試軟件,如果此時發現大的邏輯缺陷,不僅軟件硬件需要修改,可能整個設計方案都需要更改,影響項目開發效率和項目節點。目前主機廠和一些零部件供應商對ECU單元的開發多采用基于模型的設計,使用MATLAB等工具箱進行前期模型的設計及仿真,可以驗證方案的可行性,并對模型進行測試。最后將可靠的模型生成不同的目標代碼下載到ECU單元,可縮短項目開發時間,提高開發效率。
動態轉向燈控制系統主要由車身端BCM、控制芯片MCU、LED驅動電路組成。BCM一個通道輸出13.5 V常電,一個通道輸出頻率為1.25 Hz;PWM的占空比為50%;13.5 V常電經LDO轉換成5 V給MCU供電,PWM給LED驅動供電。同時MCU檢測PWM信號的上升沿來保證動態轉向燈的同步性,系統原理如圖1所示。
動態轉向燈控制器會對LED驅動芯片錯誤反饋引腳進行實時監控,一旦出現錯誤信息,LED驅動芯片Fault引腳輸出高電平,MCU檢測到高電平信號時,首先關閉動態轉向燈,然后向MCU內部的EEPROM寫入錯誤代碼。
系統重新上電時若檢測到Fault反饋端仍然為高電平,那么動態轉向燈繼續關閉;若檢測到Fault反饋端為低電平,則說明上次的故障檢測屬于錯誤的檢測,那么MCU將擦除上次存儲的故障代碼,重新開啟動態轉向燈。邏輯功能流程如圖2所示。
圖1 系統硬件框圖
圖2 邏輯功能流程
根據動態轉向燈的控制系統硬件框圖,分別對BCM、LED驅動及MCU建模,其中MCU的模型主要包括信號濾波及信號處理功能。
通過對主機廠BCM輸出波形實測,發現BCM在電壓低于13.1 V時輸出頻率為1.25 Hz、占空比50%的方波;當電壓高于13.1 V時,BCM進行過壓保護,輸出的方波在高電平周期會帶有100 Hz的載波,且載波隨著電壓的升高,頻率不變、占空比減小。為了實現這種波形,選用鋸齒波模塊,該信號在周期內線性增大,每個周期都復位歸零。由于BCM輸出的方波為1.25 Hz,所以在鋸齒波的設置中,將幅值范圍設置為[0,2],周期為[0,0.8]。生成變占空比PWM信號,還需要正弦波模塊,與鋸齒波進行幅值比較,將正弦波幅值設為[0,1],經布爾邏輯運算輸出波形,搭建好的模型結構如圖3所示。
圖3 BCM模型
為了能準確反映BCM工作機制,同時也是生成代碼的需要,將仿真的步長設置為固定步長,步長越小仿真越精確不失真,所以將步長設置為1 ms。為了模擬出BCM在13.1 V以上帶載波的情況,需要將正弦波的頻率參數設置為2×π×100,即正弦波的頻率為100 Hz,BCM模型輸出波形如圖4所示。上面為鋸齒波,中間為頻率100 Hz的正弦波,下面為頻率1.25 Hz、占空比50%的方波,同時在高電平周期帶有100 Hz載波。
圖4 BCM模型輸出的波形
MCU作為主控芯片主要功能是對信號檢測濾波,根據信號進行邏輯判斷,輸出高電平驅動LED電路工作,因此對MCU的建模主要針對這些功能進行。
(1)信號檢測及濾波模型
MCU的管腳對PMW信號進行檢測,在高電平周期控制動態轉向燈流水點亮。為了保證所有燈具的同步性,需要對PWM上升沿檢測,由于BCM輸出電壓高于13.1 V時,高電平帶有100 Hz載波,因此如果不對載波進行濾波,動態轉向燈將無法正常工作。通過分析載波特征,發現載波周期不變、占空比隨電壓升高而變大。因此可以在轉向燈正常工作最高電壓下測出載波低電平時間,設置一個閾值,即可將載波濾除,輸出頻率1.25 Hz、占空比50%的方波。采用Sateflow建模如圖5所示。
圖5 載波濾波模型
濾波效果如圖6所示,下方為帶載波PWM,上方為濾波后PWM。
圖6 濾波效果
(2)上升沿檢測模型
為了保證汽車左右燈具的同步性,對PWM進行上升沿檢測,檢測到上升沿信號后才執行動態轉向功能,上升沿檢測模型如圖7所示。PWM信號輸入,通過一個Delay模塊將信號分為前一個狀態u和后一狀態u0,2個信號進入Chart進行邏輯判斷輸出上升沿信號PWM_edge。
圖7 上升沿檢測模型
圖8為上升沿檢測輸出波形,上方為輸入PWM信號,下方為輸出的上升沿信號,具有很好的追隨性,延遲時間為1 ms。
圖8 上升沿檢測信號輸出
(3)信號邏輯處理模型
經過上述幾個模塊對信號的檢測處理,可以獲得高電平狀態PWM_State及上升沿信號Up_Flag,對2個信號進行邏輯判斷的模型如圖9所示。模型有2個狀態:OFF和ON狀態。OFF狀態是默認狀態對LED進行關閉,ON狀態是按照設置的時序將LED依次打開。
圖9 動態轉向燈開關狀態切換
LED驅動模型工作流程如圖10所示。
圖10 模型工作流程
當MCU管腳輸出高電平時,可以使LED驅動導通將LED點亮。為了能夠顯示模型工作狀態,建立一個LED模型,當LED模型接收到高電平信號后,由白色變成黃色,表示LED點亮。采用S函數的方式創建LED模型,在仿真的各個階段,Simulink引擎調用不同的方法,執行各項任務。在第一次執行循環之前,Simulink引擎會初始化S函數,然后進入仿真循環階段,在每個循環內系統會按照初始化階段決定的次序依次執行各模塊,模型工作流程如圖10所示。
根據模型工作流程圖編寫S函數的t_led.m文件,將t_led.m添加到S-Function模塊中,再將模塊封裝成LED驅動模型,LED關閉時為白色,點亮時為灰色,如圖11所示。
圖11 LED驅動模型
將上述創建的各單元模型,根據硬件系統框圖,組成基于Simulink/Stateflow的動態轉向燈控制系統模型,如圖12所示。運行控制系統模型,BCM模塊輸出PWM信號,經過濾波模塊和上升沿檢測模塊,將處理的信號傳遞給Turn_LED模塊,控制LED周期性流水點亮。
圖12 控制系統模型
通過示波器Scope采樣每組LED的輸入電流,如圖13所示。共9組LED依次點亮,每組間隔20 ms,幅值可以表示電流大小,仿真結果符合預期。
將控制系統模型利用Simulink工具箱進行覆蓋度檢測、兼容性檢測、軟件在環測試、硬件在環測試后,將算法部分利用代碼生成工具Code Generation生成C代碼,并將代碼嵌入手寫應用程序中,編譯通過后下載到硬件電路板,用示波器和電流鉗實測時序電流圖,縱坐標設置為電流值(mA),橫坐標為時間(ms),如圖14所示。
圖13 仿真轉向燈時序電流圖
圖14 實測動態轉向燈時序電流圖
本文作者通過對汽車轉向燈控制系統的研究,采用基于模型設計的方式,以MATLAB2016a為軟件平臺,基于Simulink/Stateflow對硬件系統進行建模。對模型進行仿真和測試,并將控制算法自動生成C代碼,再將C代碼嵌入到工程中下載到硬件電路板,實測波形與仿真波形一致。采用基于模型設計的方式,工程師前期可以脫離硬件平臺研究需求,快速進行算法驗證。同時進行自動代碼生成和對代碼進行測試,避免了傳統手寫代碼開發項目,前期需要依賴硬件平臺,開發周期長,一般需要重復多次才能成功的弊端。