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