黃志華
(安徽芯核防務裝備技術股份有限公司,安徽合肥,230000)
新能源汽車火災事故頻發,其安全性受到了廣泛質疑。熱失控是電池安全研究中的關鍵科學問題,已經成為鋰離子電池在電動汽車大規模應用的主要障礙[1]。相關法規文件提出了對電池安全監控的要求,如國家質量監督檢驗檢疫總局和國家標準化管理委員會發布的GB7258-2017《機動車運行安全技術條件》規定:“車長大于等于6米的純電動客車、插電式混合動力客車,應能監測動力電池工作狀態并在發現異常情形時報警”[2]。應急管理部《CCCF/XFJJ-01電動客車鋰離子動力電池箱火災防控裝置通用技術要求》明確要求車輛停車3日內,火災防控裝置應能正常工作。本系統設計的火災報警控制器由備用電池、電源管理模塊、控制模塊、聲光報警模塊、滅火啟動模塊等組成。軟件采用μC/OS-II系統,按照事件的緊急情況對事件進行優先級劃分,實現了火災聲光報警、數據存儲、CAN通信、休眠、喚醒、手動/自動啟動等功能。
火災報警控制器包括多個硬件模塊:主控芯片,電源管理模塊,聲光報警控制模塊,CAN通信模塊,存儲模塊,液位檢測模塊,滅火啟動模塊等。主控芯片負責所有數據處理,控制策略執行。電源模塊UPS負責主備電切換,備用電源充放電管理,寬電壓輸入轉化等。聲光報警模塊負責報警和故障信號的聲光提示,CAN模塊負責控制器和整車的協議交互,存儲模塊負責所有傳感器信號記錄,液位檢測模塊負責滅火器泄露檢測,滅火啟動模塊負責輸出電流信號,驅動滅火器開啟。系統硬件原理框圖如圖1所示。

圖1 系統硬件框圖
(1)主控芯片。主控芯片采用STM32F105RBT6,基于ARM Cortex-M內核,屬于STM32互聯型產品,具有高性能、低成本、低功耗特點。具備兩路CAN通信,支持CAN2.0B協議,支持SPI和SDIO兩種讀寫SD卡模式。
(2)電源管理模塊。電源管理模塊在整車上電時使用主電對系統供電,整車斷電后,使用備用電池供電;在備用電池電壓不足時,通過報警開關發出綠燈閃爍信號,且當整車供電時自動對備用電池充電。主控芯片I/O口檢測到整車電壓信號ACC低電平時控制器進入低功耗休眠模式,檢測到高電平時上升沿中斷自動喚醒系統。ACC檢測電路如圖2所示。

圖2 ACC檢測電路
(3)聲光報警控制模塊。有3路高電平輸出和1路輸入檢測。發生數據存儲、通信、傳感器等硬件故障時,可通過I/O控制報警開關黃色指示燈閃爍;備用電池欠壓時,可控制綠色指示燈閃爍;發生火情時,根據探測器發送的報警等級高低可分別控制紅色指示燈和蜂鳴器的報警頻率。報警狀態下按下報警開關,主控芯片將通過高功率MOS管驅動滅火器啟動,滅火劑通過管路進入電池箱實現滅火;休眠狀態下按下報警開關,I/O上升沿中斷可將系統喚醒。
(4)CAN通信模塊。兩路CAN通信,其中CAN2連接整車,采用高速CAN隔離收發器CTM1042KATCAN模塊,2500V電氣隔離;為了抑制共模干擾信號,增加了共模信號抑制電路,共模濾波器采用TDK的ACT45B-510。為了防止靜電干擾,在CAN_H和CAN_L上分別設置了二極管SMBJ40CA,如圖3所示。CAN模塊支持CAN2.0A/B,防止高靜電、高浪涌,具有更高的可靠性。CAN1屬于系統內部使用CAN,CAN收發器采用恩智浦高速CAN收發器TJA1044T芯片,可通過其第8腳S腳設置低功耗模式和總線喚醒功能。通過CAN總線連接各個電池箱火災探測器,接收預警信息,故障信息。

圖3 CAN2通信電路
(5)滅火啟動模塊。為了防止滅火器在復雜車載的電磁環境下誤啟動,滅火啟動采用雙MOS驅動電路設計。由P型MOS管DMP6023LSS和N型MOS管DMT6016LSS和外圍電路組成,如圖4所示。當需要啟動滅火器時,需要主控芯片兩路I/O口分別對FC+和FC-輸出高電平信號,此時三極管導通,P型MOS管輸出24V高電平,N型MOS管輸出GND信號,滅火器點火頭處于兩路MOS管之間被輸出電流引爆,進而啟動滅火器。雙MOS啟動可大大降低單路驅動造成的滅火器誤啟動概率。

圖4 滅火啟動模塊
(6)其他模塊。包括液位檢測模塊,液位傳感器安裝在滅火器瓶內,當滅火劑發生泄露時,控制器發出故障報警信號。存儲模塊采用16G的SD卡,掛載Fat32文件系統,循環3個月覆蓋存儲,每1S記錄一次傳感器數據和故障狀態,存儲的時間信息由CAN2通過整車校時獲得。
μC/OS-II 是一款開源的實時性嵌入式操作系統,移植方便,可剪裁、可配置、搶占式,最多可支持64 個任務,任務間可通過信號量、消息郵箱、消息隊列等中間環節實現通信。μC/OS-II通過了FAA(Federal AviationAdministration)認證,在實時性要求很高的嵌入式工業控制領域能夠放心使用[3]。
μC/OS-II移植到主控芯片STM32F105RBT6上,首先要修改系統和硬件相關的三個文件。
(1)OS_CPU.H。需要改寫的是關于數據類型、堆棧增長方向、中斷屏蔽方式、以 及 任 務 調 度 函 數 的 定 義。
①STM32設置數據類型如圖5所示。

圖5 數據類型設置
②堆棧增長方向設置為高地址向低地址增長:

③中斷屏蔽方式,使用第3種方式保護臨界段,進入臨界段之前使用OS_ENTER_CRITICAL()調用OS_CPU_SR_Save()屏蔽中斷,臨界代碼結束后使用 OS_EXIT_CRITICAL()調用OS_CPU_SR_Restore(cpu_sr)開啟中斷功能[4]:

④任務切換函數重定義,在任務切換時調用:

(2)OS_CPU.C。STM32 單片機需要重新定義任務堆棧初始化函數 OSTaskStkInit() 。這個函數在任務創建時被調用,負責初始化任務的堆棧結構并返回新堆棧的指針[5]。
(3)OS_CPU_A.ASM。主要涉及高優先級任務就緒函數 OSStartHighRdy() 、任務切換函數 OSCtxSw() 等。OSStartHighRdy( )負責啟動優先級高的任務,使其從就緒態進入運行態。 OSCtxSw()負責用戶任務上下文切換。
使用μC/OS-II設計軟件時,需要對不同的任務按照緊急程度劃分優先級。在鋰離子動力電池滅火控制系統中,首先要確保滅火的時效性,在電池箱內發生火災時,按下報警開關啟動或自動啟動應設置成最高優先級1?;馂膱缶瘜崟r性的要求需要將CAN1通信設置成優先級2,即在探測器探測到火情時控制器能快速響應??刂破髦芷跒?s上傳預警信息至整車報文,或接收整車校時報文的CAN2通信任務設置成3。滅火劑泄露、傳感器故障或備用電池欠壓故障報警設置成4。傳感器信息、時間的數據存儲設置成5。ACC檢測到整車斷電時進入低功耗休眠狀態,設置成6,需要注意的是休眠后通過外部中斷喚醒,需要將單片機控制CAN1通信的I/O腳,設置成上升沿中斷模式,探測器監測到異常時,通過CAN報文喚醒控制器。報警開關按鍵輸入檢測和ACC電平檢測的I/O腳也要設置成上升沿中斷模式,以便開關按下或整車上電能喚醒系統。進入休眠之前,需調用OSSchedLock()禁止任務調度函數,在休眠期間鎖定任務不被其他任務搶占,被外部中斷喚醒后調用OSSchedUnlock()函數,允許任務調度。STM32休眠模式選擇STOP模式,任一外部中斷能喚醒,休眠前盡可能關閉一些功能模塊的電源,以節省功耗。任務劃分如表1所示。

表1 任務劃分
試驗驗證有兩個目的:(1)驗證控制器在一定的條件下能否自動進入休眠模式;(2)控制器休眠72小時,遇到異常情形能否自動喚醒。
使用安捷倫高精度數字源表U3606A接入控制器備用電源供電端,對控制器輸出12V直流電壓,測得控制器正常工作電流30mA。通過軟件設置,控制器在工作10min后沒有外部異常情況下進入休眠模式,通過CAN盒監測控制器停止發送報文,測得控制器休眠狀態下的電流為2.2mA,如圖6所示。
將鋰離子動力電池和探測器放入電池箱內,控制器滅火器放在箱外,探測器通過CAN線與控制器連接起來,如圖7所示,再蓋好箱蓋。系統使用備用電池供電,在系統進入低功耗模式持續72小時后,再使用恒流充電機對持續電池過充并觸發電池發生熱失控,探測器在監測到有害氣體濃度過高的時自動喚醒,通過CAN報文將控制器喚醒,進而整個系統從休眠模式喚醒,并發出聲光報警信號,在按下報警開關后,滅火劑噴射到電池箱內,實現了火災抑制。
因此,控制器在沒有主電供電,只用備用電源供電的情況下工作10min自動進入休眠模式;休眠72小時后,電池發生熱失控能喚醒整個系統。

圖6 控制器休眠測試

圖7 電池熱失控試驗
設計的火災報警控制器,實現了火災聲光報警,手動/自動啟動滅火器,備用電池充放電管理,硬件故障報警,數據存儲,滅火劑泄露檢測等功能。軟件采用μC/OS-II系統,通過任務的劃分和調度,系統在休眠狀態下能監測到電池熱失控并自動喚醒,通過手動方式觸發滅火器。試驗驗證表明,控制器在只有備用電源供電的情況下能自動進入休眠模式,遇到異常情形可通過探測器喚醒。既保證了節約了電池電量,又保證能正常監測鋰離子動力電池箱的工作狀態,滿足相關法規規定的停車3日內滅火系統正常工作要求。