??? 摘? 要: 為了獲取并分析燃料電池城市客車的運行數據,研究燃料電池發(fā)動機在長期運行下的性能變化和進行控制策略優(yōu)化,建立了相關的數據支持系統(tǒng)。本文所設計的數據支持系統(tǒng),使用低成本大容量的Micro-SD卡作為數據存儲器,實現(xiàn)大量運行數據的記錄。在處理器方面,采用燃料電池發(fā)動機主控制器MPC5xx的TPU模塊作為處理單元,無需增加額外的計算單元,同時該系統(tǒng)在運行過程中不影響主控制任務的實時性。?
????關鍵詞: 燃料電池;ECU;數據支持;TPU
?
??? 在“863”國家重大專項燃料電池城市客車項目中,燃料電池發(fā)動機占有舉足輕重的地位。隨著對燃料電池控制研究的逐漸深入,新的控制策略需要了解燃料電池在車用惡劣環(huán)境下的性能變化,以及燃料電池同其他部件之間的配合情況。因此,設計專用的燃料電池數據支持系統(tǒng)以記錄并分析其運行數據對于分析燃料電池發(fā)動機在車用工況下的特性有著十分重要的意義。?
??? 傳統(tǒng)的車用數據記錄系統(tǒng)一般用于記錄交通事故發(fā)生前一段時間(如15min內)汽車的一些運行參數,其作用類似于飛機上的“黑匣子”。傳統(tǒng)車用數據記錄系統(tǒng)記錄的數據僅為影響到汽車行駛安全的關鍵參數,如剎車信號、安全氣囊等,其存儲數據的時間跨度不長,并且隨著車輛的運行,新的數據會覆蓋前次記錄的數據。而燃料電池數據支持系統(tǒng)的設計目的為分析燃料電池客車的運行狀態(tài)以及燃料電池在車用條件下的性能,需要記錄整車所有的運行參數。同時,為了保證記錄數據在時間上的完整性,在記錄數據被導入數據分析系統(tǒng)進行處理和保存之前,已記錄數據不會被覆蓋。本文所述的數據支持系統(tǒng),利用燃料電池控制器的TPU模塊作為控制單元,可在既不影響主控制任務實時性又不增加額外控制器的前提下進行數據的存儲和時間的獲取。?
??? 本文所述的數據支持系統(tǒng),不僅適用于燃料電池發(fā)動機控制系統(tǒng),還具有較強的適應性,稍加改動即可應用于多種控制器。?
1 數據支持系統(tǒng)處理器選型?
??? 常規(guī)的車用數據記錄系統(tǒng)有兩種方案:直接在控制單元的處理器上進行數據記錄功能的開發(fā),或者使用額外的處理器進行數據記錄功能的開發(fā)。前者的優(yōu)點是可以直接利用控制程序中的變量作為存儲數據,無需進行額外的變量傳遞和采集,但是處理器在執(zhí)行數據存儲任務時會占用正常工作資源,降低控制單元的實時性能;后者在運行過程中雖然不占用主控制器資源,但是需要通過外部總線、雙口RAM、模擬量采集等方式來獲取存儲數據,設計較為復雜,并且增加成本??傊?,兩種常用的方案各有利弊。?
??? 在燃料電池城市客車控制系統(tǒng)中,燃料電池發(fā)動機控制任務較多,加入數據支持系統(tǒng)后,無疑會增加控制器CPU的負擔,降低控制的實時性與可靠性。另一方面,燃料電池數據支持系統(tǒng)需要記錄的數據較多,如采用單獨的處理器,則需要進行大量的數據交換工作,會顯著增加成本。本文針對所述兩種方案的弊端,設計了一種新的數據支持系統(tǒng)方案——使用燃料電池發(fā)動機電控單元處理器中的TPU模塊作為數據支持系統(tǒng)的運算單元。?
??? 燃料電池控制器數字核心為Freescale公司的MPC5xx系列單片機,相對于其他大部分車用處理器,該系列單片機擁有獨特的TPU模塊。TPU(Timer Processor Unit),即時間處理單元。在該模塊的結構中,包括獨立的運算單元、程序空間、內存區(qū)域、中斷系統(tǒng)、端口,可以認為TPU是一個嵌入在MPC5xx內部的小型微處理器。?
??? 同常規(guī)的單片機程序不同,TPU模塊的程序由微碼編寫,經過編譯器編譯后,集成在主程序工程文件中并由下載線燒寫到單片機的Flash中。單片機復位完成后,在初始化任務中將TPU程序下載到TPU模塊的程序內存,即DPTRAM中(如圖1左所示)。在此后的正常運行過程中,CPU總線同DPTRAM斷開(如圖1右所示),TPU模塊通過TPU內部總線從DPTRAM中取指令,并在TPU模塊內部的運算單元中執(zhí)行,TPU擁有獨立的RAM區(qū)和寄存器進行臨時變量的存放。因此,在正常運行過程中,TPU和CPU是相互獨立的處理器,TPU的運行不占用CPU資源,從而不會影響主控制任務的實時性。?
?
?
??? 在程序的正常運行過程中,TPU與CPU之間通過Host Interface(如圖2所示)進行連接,CPU可以通過修改HSR寄存器的值來觸發(fā)TPU運行,TPU可以通過產生CPU中斷的方式與CPU交互。此外,CPU和TPU可以通過一段公共的內存單元(Parameter RAM)交換數據。MPC5xx系列單片機擁有兩個獨立的TPU模塊——TPUA和TPUB,共有8 KB的程序存儲空間。每個TPU模塊擁有16路輸入/輸出通道,以及256 B的Parameter RAM、2個定時器,并可觸發(fā)16路中斷,能夠獨立完成較為復雜的任務。?
?
?
??? 在常規(guī)的發(fā)動機控制中,TPU常用于柴油機的噴油控制等工作。然而,在燃料電池控制體系中,控制器基于CAN網絡控制,TPU模塊在實際控制中使用不多。在本文中,使用燃料電池控制器中空閑的TPU模塊作為數據支持系統(tǒng)的運算單元,并不影響主控制任務的實時性能。同時,該方案不需要增加單獨的控制器單元,簡化了硬件設計,節(jié)約了成本。因此,該方案可以很好地彌補兩種常用車用數據記錄方案的缺陷。設計控制部分的框圖如圖3所示,采用數字核心MPC5xx系列的TPUA控制數據存儲模塊,TPUB控制時間日歷模塊。?
?
?
2 硬件設計?
??? 燃料電池數據支持系統(tǒng)的硬件部分包括時間日歷模塊和數據存儲模塊兩部分。前者的作用是為記錄的數據提供時間參考,后者的作用是存儲數據。?
2.1 時間日歷模塊?
??? 為了在燃料電池發(fā)動機電控單元斷電后保持數據記錄系統(tǒng)時間參考的準確性,采用了獨立的時鐘芯片DS12CR887來獲取當前時間。該芯片集成了時鐘振蕩器和內置電池,無需外部供電和驅動電路,同TPU的接口為并口。?
??? 時鐘芯片DS12CR887擁有128 B的內存單元,包括年、月、日、星期、小時、分、秒寄存器以及三個控制寄存器,還有114 B的通用內存。由于內置電池的作用,無論ECU上電與否,時鐘芯片都在運行之中;任何時刻,ECU都可以通過并口讀取時鐘芯片內存得到當前的絕對時間。該芯片對于少于31天的月份可自行調整,還可進行閏年補償。該時鐘芯片精度較高,在25℃的環(huán)境下,每月的誤差不超過1min。?
2.2 數據存儲模塊?
??? 燃料電池數據支持系統(tǒng)記錄的數據量大,記錄時間跨度長,對存儲器的容量要求很高。同時,為了便于嵌入燃料電池電控單元,應盡量減少存儲器的體積。除此之外,成本問題也是需要考慮的因素。在比較了U盤、SD卡和EEPROM三種存儲器后,選擇了容量體積比最大且價格低廉的SD卡作為本數據支持系統(tǒng)的存儲設備。?
??? 本文采用Kingston公司2 GB的Micro-SD卡作為存儲器,Micro-SD卡的體積很小,可以很方便地通過卡座安裝在電路板上,便于拆卸。按照一天工作8小時計算,2 GB的容量可以存儲140天的運行數據,對于實際記錄來說,該性能可以完全滿足要求。在設計中,使用數字核心MPC5xx的TPUA模塊對Micro-SD卡進行操作,兩者之間利用串行SPI協(xié)議進行通信。由于Micro-SD卡的供電系統(tǒng)和信號系統(tǒng)都是3.3 V標準,而ECU的數字核心為5 V標準,因此在通信接口之間采用電平轉換芯片進行信號轉換,并且增加獨立的電源模塊。該部分的硬件原理如圖4所示。?
?
?
3 軟件設計?
3.1 時間日歷系統(tǒng)軟件設計?
??? 時鐘日歷模塊中,時鐘芯片與單片機的接口為8位地址/數據復用的并行接口。采用Motorola總線讀寫時序(如圖5所示),利用TPU模塊的16個端口模擬并口時序對時鐘的總線進行操作。時鐘芯片DS12CR887出廠時,計時鏈處于關閉狀態(tài),因此,在燃料電池ECU的調試階段需要校準時鐘并使能時鐘的計時鏈。校準的方法為向時間日期寄存器直接寫入當前的時間日期,并置位DS12CR887芯片控制寄存器的計時鏈開啟標志位來啟動時鐘芯片運行。?
?
?
??? 正常工作后,TPU模塊通過讀取各內存的數據得到當前的絕對時間,并將各時間變量存入Parameter RAM,CPU通過讀取Parameter RAM得到當前的時間。?
3.2 數據存儲系統(tǒng)軟件設計?
??? 數據存儲模塊中,存儲器Micro-SD卡采用SPI協(xié)議與單片機進行通信。對該芯片的操作時序主要有四種:復位、初始化、讀、寫。相對于普通的SPI協(xié)議,Micro-SD卡通信協(xié)議較為復雜,一個基本的操作往往需要持續(xù)幾千個時鐘周期(如圖6所示的SD卡寫時序),TPU模塊的微碼編程只能實現(xiàn)比較簡單的條件分支以及運算。因此,本文在設計中,優(yōu)化了程序結構以適應復雜的SPI時序;同時,考慮到TPU的程序內存只有8 KB,在編程時需要注意對程序優(yōu)化,以節(jié)約代碼空間。程序運行過程中,CPU和TPU之間的數據交換依然通過Parameter RAM實現(xiàn)。?
?
?
??? 數字核心MPC561的TPU模塊中,Parameter RAM區(qū)總共只有256 B,但是SD卡一次寫入的最小單位為一個block,即512 B。為了將512 B的變量從CPU連續(xù)地寫入Micro-SD卡,本文設計了緩存協(xié)議,即TPU從RAM區(qū)的低地址開始寫,每寫入128 B后產生TPU中斷,通知CPU更新已讀區(qū)域的數據。這樣便保證了TPU對Micro-SD卡寫時序操作的連續(xù)性,其控制流程如圖7所示。?
?
?
??? 本文設計了一種針對燃料電池城市客車的數據支持系統(tǒng)。該系統(tǒng)可以持續(xù)實時記錄燃料電池客車的所有運行數據,在運行過程中為燃料電池客車提供絕對時間參照,并配套相應的上位機處理軟件對數據進行整理分析。相對于傳統(tǒng)的車用數據支持系統(tǒng),本系統(tǒng)無論從數據記錄量上還是時間跨度上都具有明顯優(yōu)勢。在處理器的選擇方面,本文采用了獨特的TPU模塊進行控制,使數字核心的資源得到了合理利用,在節(jié)約成本的同時不影響主控制任務運行的實時性。經過一段時間的使用,該系統(tǒng)能正常工作,記錄的數據對燃料電池的控制策略起到了一定的參考作用。?
參考文獻?
[1] 華劍鋒.新軟件技術在燃料電池城市客車控制系統(tǒng)中的應用與研究.電子技術應用,2007(4).?
[2] 張浩.基于?滋Clinux嵌入式系統(tǒng)的汽車黑匣子的設計與開發(fā).微計算機信息,2006(14).?
[3] 牟順海.低成本汽車黑匣子的硬件系統(tǒng)設計.計量與測試技術,2006(4).