《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 燃料電池城市客車(chē)數(shù)據(jù)支持系統(tǒng)設(shè)計(jì)

燃料電池城市客車(chē)數(shù)據(jù)支持系統(tǒng)設(shè)計(jì)

2009-05-04
作者:胡明寅,華劍鋒,林辛凡,徐梁飛,

??? 摘? 要: 為了獲取并分析燃料電池城市客車(chē)的運(yùn)行數(shù)據(jù),研究燃料電池發(fā)動(dòng)機(jī)在長(zhǎng)期運(yùn)行下的性能變化和進(jìn)行控制策略?xún)?yōu)化,建立了相關(guān)的數(shù)據(jù)支持系統(tǒng)。本文所設(shè)計(jì)的數(shù)據(jù)支持系統(tǒng),使用低成本大容量的Micro-SD卡作為數(shù)據(jù)存儲(chǔ)器,實(shí)現(xiàn)大量運(yùn)行數(shù)據(jù)的記錄。在處理器方面,采用燃料電池發(fā)動(dòng)機(jī)主控制器MPC5xx的TPU模塊作為處理單元,無(wú)需增加額外的計(jì)算單元,同時(shí)該系統(tǒng)在運(yùn)行過(guò)程中不影響主控制任務(wù)的實(shí)時(shí)性。?

????關(guān)鍵詞: 燃料電池;ECU;數(shù)據(jù)支持;TPU

?

??? 在“863”國(guó)家重大專(zhuān)項(xiàng)燃料電池城市客車(chē)項(xiàng)目中,燃料電池發(fā)動(dòng)機(jī)占有舉足輕重的地位。隨著對(duì)燃料電池控制研究的逐漸深入,新的控制策略需要了解燃料電池在車(chē)用惡劣環(huán)境下的性能變化,以及燃料電池同其他部件之間的配合情況。因此,設(shè)計(jì)專(zhuān)用的燃料電池?cái)?shù)據(jù)支持系統(tǒng)以記錄并分析其運(yùn)行數(shù)據(jù)對(duì)于分析燃料電池發(fā)動(dòng)機(jī)在車(chē)用工況下的特性有著十分重要的意義。?

??? 傳統(tǒng)的車(chē)用數(shù)據(jù)記錄系統(tǒng)一般用于記錄交通事故發(fā)生前一段時(shí)間(如15min內(nèi))汽車(chē)的一些運(yùn)行參數(shù),其作用類(lèi)似于飛機(jī)上的“黑匣子”。傳統(tǒng)車(chē)用數(shù)據(jù)記錄系統(tǒng)記錄的數(shù)據(jù)僅為影響到汽車(chē)行駛安全的關(guān)鍵參數(shù),如剎車(chē)信號(hào)、安全氣囊等,其存儲(chǔ)數(shù)據(jù)的時(shí)間跨度不長(zhǎng),并且隨著車(chē)輛的運(yùn)行,新的數(shù)據(jù)會(huì)覆蓋前次記錄的數(shù)據(jù)。而燃料電池?cái)?shù)據(jù)支持系統(tǒng)的設(shè)計(jì)目的為分析燃料電池客車(chē)的運(yùn)行狀態(tài)以及燃料電池在車(chē)用條件下的性能,需要記錄整車(chē)所有的運(yùn)行參數(shù)。同時(shí),為了保證記錄數(shù)據(jù)在時(shí)間上的完整性,在記錄數(shù)據(jù)被導(dǎo)入數(shù)據(jù)分析系統(tǒng)進(jìn)行處理和保存之前,已記錄數(shù)據(jù)不會(huì)被覆蓋。本文所述的數(shù)據(jù)支持系統(tǒng),利用燃料電池控制器的TPU模塊作為控制單元,可在既不影響主控制任務(wù)實(shí)時(shí)性又不增加額外控制器的前提下進(jìn)行數(shù)據(jù)的存儲(chǔ)和時(shí)間的獲取。?

??? 本文所述的數(shù)據(jù)支持系統(tǒng),不僅適用于燃料電池發(fā)動(dòng)機(jī)控制系統(tǒng),還具有較強(qiáng)的適應(yīng)性,稍加改動(dòng)即可應(yīng)用于多種控制器。?

1 數(shù)據(jù)支持系統(tǒng)處理器選型?

??? 常規(guī)的車(chē)用數(shù)據(jù)記錄系統(tǒng)有兩種方案:直接在控制單元的處理器上進(jìn)行數(shù)據(jù)記錄功能的開(kāi)發(fā),或者使用額外的處理器進(jìn)行數(shù)據(jù)記錄功能的開(kāi)發(fā)。前者的優(yōu)點(diǎn)是可以直接利用控制程序中的變量作為存儲(chǔ)數(shù)據(jù),無(wú)需進(jìn)行額外的變量傳遞和采集,但是處理器在執(zhí)行數(shù)據(jù)存儲(chǔ)任務(wù)時(shí)會(huì)占用正常工作資源,降低控制單元的實(shí)時(shí)性能;后者在運(yùn)行過(guò)程中雖然不占用主控制器資源,但是需要通過(guò)外部總線、雙口RAM、模擬量采集等方式來(lái)獲取存儲(chǔ)數(shù)據(jù),設(shè)計(jì)較為復(fù)雜,并且增加成本??傊瑑煞N常用的方案各有利弊。?

??? 在燃料電池城市客車(chē)控制系統(tǒng)中,燃料電池發(fā)動(dòng)機(jī)控制任務(wù)較多,加入數(shù)據(jù)支持系統(tǒng)后,無(wú)疑會(huì)增加控制器CPU的負(fù)擔(dān),降低控制的實(shí)時(shí)性與可靠性。另一方面,燃料電池?cái)?shù)據(jù)支持系統(tǒng)需要記錄的數(shù)據(jù)較多,如采用單獨(dú)的處理器,則需要進(jìn)行大量的數(shù)據(jù)交換工作,會(huì)顯著增加成本。本文針對(duì)所述兩種方案的弊端,設(shè)計(jì)了一種新的數(shù)據(jù)支持系統(tǒng)方案——使用燃料電池發(fā)動(dòng)機(jī)電控單元處理器中的TPU模塊作為數(shù)據(jù)支持系統(tǒng)的運(yùn)算單元。?

??? 燃料電池控制器數(shù)字核心為Freescale公司的MPC5xx系列單片機(jī),相對(duì)于其他大部分車(chē)用處理器,該系列單片機(jī)擁有獨(dú)特的TPU模塊。TPU(Timer Processor Unit),即時(shí)間處理單元。在該模塊的結(jié)構(gòu)中,包括獨(dú)立的運(yùn)算單元、程序空間、內(nèi)存區(qū)域、中斷系統(tǒng)、端口,可以認(rèn)為T(mén)PU是一個(gè)嵌入在MPC5xx內(nèi)部的小型微處理器。?

??? 同常規(guī)的單片機(jī)程序不同,TPU模塊的程序由微碼編寫(xiě),經(jīng)過(guò)編譯器編譯后,集成在主程序工程文件中并由下載線燒寫(xiě)到單片機(jī)的Flash中。單片機(jī)復(fù)位完成后,在初始化任務(wù)中將TPU程序下載到TPU模塊的程序內(nèi)存,即DPTRAM中(如圖1左所示)。在此后的正常運(yùn)行過(guò)程中,CPU總線同DPTRAM斷開(kāi)(如圖1右所示),TPU模塊通過(guò)TPU內(nèi)部總線從DPTRAM中取指令,并在TPU模塊內(nèi)部的運(yùn)算單元中執(zhí)行,TPU擁有獨(dú)立的RAM區(qū)和寄存器進(jìn)行臨時(shí)變量的存放。因此,在正常運(yùn)行過(guò)程中,TPU和CPU是相互獨(dú)立的處理器,TPU的運(yùn)行不占用CPU資源,從而不會(huì)影響主控制任務(wù)的實(shí)時(shí)性。?

?

?

??? 在程序的正常運(yùn)行過(guò)程中,TPU與CPU之間通過(guò)Host Interface(如圖2所示)進(jìn)行連接,CPU可以通過(guò)修改HSR寄存器的值來(lái)觸發(fā)TPU運(yùn)行,TPU可以通過(guò)產(chǎn)生CPU中斷的方式與CPU交互。此外,CPU和TPU可以通過(guò)一段公共的內(nèi)存單元(Parameter RAM)交換數(shù)據(jù)。MPC5xx系列單片機(jī)擁有兩個(gè)獨(dú)立的TPU模塊——TPUA和TPUB,共有8 KB的程序存儲(chǔ)空間。每個(gè)TPU模塊擁有16路輸入/輸出通道,以及256 B的Parameter RAM、2個(gè)定時(shí)器,并可觸發(fā)16路中斷,能夠獨(dú)立完成較為復(fù)雜的任務(wù)。?

?

?

??? 在常規(guī)的發(fā)動(dòng)機(jī)控制中,TPU常用于柴油機(jī)的噴油控制等工作。然而,在燃料電池控制體系中,控制器基于CAN網(wǎng)絡(luò)控制,TPU模塊在實(shí)際控制中使用不多。在本文中,使用燃料電池控制器中空閑的TPU模塊作為數(shù)據(jù)支持系統(tǒng)的運(yùn)算單元,并不影響主控制任務(wù)的實(shí)時(shí)性能。同時(shí),該方案不需要增加單獨(dú)的控制器單元,簡(jiǎn)化了硬件設(shè)計(jì),節(jié)約了成本。因此,該方案可以很好地彌補(bǔ)兩種常用車(chē)用數(shù)據(jù)記錄方案的缺陷。設(shè)計(jì)控制部分的框圖如圖3所示,采用數(shù)字核心MPC5xx系列的TPUA控制數(shù)據(jù)存儲(chǔ)模塊,TPUB控制時(shí)間日歷模塊。?

?

?

2 硬件設(shè)計(jì)?

??? 燃料電池?cái)?shù)據(jù)支持系統(tǒng)的硬件部分包括時(shí)間日歷模塊和數(shù)據(jù)存儲(chǔ)模塊兩部分。前者的作用是為記錄的數(shù)據(jù)提供時(shí)間參考,后者的作用是存儲(chǔ)數(shù)據(jù)。?

2.1 時(shí)間日歷模塊?

??? 為了在燃料電池發(fā)動(dòng)機(jī)電控單元斷電后保持?jǐn)?shù)據(jù)記錄系統(tǒng)時(shí)間參考的準(zhǔn)確性,采用了獨(dú)立的時(shí)鐘芯片DS12CR887來(lái)獲取當(dāng)前時(shí)間。該芯片集成了時(shí)鐘振蕩器和內(nèi)置電池,無(wú)需外部供電和驅(qū)動(dòng)電路,同TPU的接口為并口。?

??? 時(shí)鐘芯片DS12CR887擁有128 B的內(nèi)存單元,包括年、月、日、星期、小時(shí)、分、秒寄存器以及三個(gè)控制寄存器,還有114 B的通用內(nèi)存。由于內(nèi)置電池的作用,無(wú)論ECU上電與否,時(shí)鐘芯片都在運(yùn)行之中;任何時(shí)刻,ECU都可以通過(guò)并口讀取時(shí)鐘芯片內(nèi)存得到當(dāng)前的絕對(duì)時(shí)間。該芯片對(duì)于少于31天的月份可自行調(diào)整,還可進(jìn)行閏年補(bǔ)償。該時(shí)鐘芯片精度較高,在25℃的環(huán)境下,每月的誤差不超過(guò)1min。?

2.2 數(shù)據(jù)存儲(chǔ)模塊?

??? 燃料電池?cái)?shù)據(jù)支持系統(tǒng)記錄的數(shù)據(jù)量大,記錄時(shí)間跨度長(zhǎng),對(duì)存儲(chǔ)器的容量要求很高。同時(shí),為了便于嵌入燃料電池電控單元,應(yīng)盡量減少存儲(chǔ)器的體積。除此之外,成本問(wèn)題也是需要考慮的因素。在比較了U盤(pán)、SD卡和EEPROM三種存儲(chǔ)器后,選擇了容量體積比最大且價(jià)格低廉的SD卡作為本數(shù)據(jù)支持系統(tǒng)的存儲(chǔ)設(shè)備。?

??? 本文采用Kingston公司2 GB的Micro-SD卡作為存儲(chǔ)器,Micro-SD卡的體積很小,可以很方便地通過(guò)卡座安裝在電路板上,便于拆卸。按照一天工作8小時(shí)計(jì)算,2 GB的容量可以存儲(chǔ)140天的運(yùn)行數(shù)據(jù),對(duì)于實(shí)際記錄來(lái)說(shuō),該性能可以完全滿(mǎn)足要求。在設(shè)計(jì)中,使用數(shù)字核心MPC5xx的TPUA模塊對(duì)Micro-SD卡進(jìn)行操作,兩者之間利用串行SPI協(xié)議進(jìn)行通信。由于Micro-SD卡的供電系統(tǒng)和信號(hào)系統(tǒng)都是3.3 V標(biāo)準(zhǔn),而ECU的數(shù)字核心為5 V標(biāo)準(zhǔn),因此在通信接口之間采用電平轉(zhuǎn)換芯片進(jìn)行信號(hào)轉(zhuǎn)換,并且增加獨(dú)立的電源模塊。該部分的硬件原理如圖4所示。?

?

?

3 軟件設(shè)計(jì)?

3.1 時(shí)間日歷系統(tǒng)軟件設(shè)計(jì)?

??? 時(shí)鐘日歷模塊中,時(shí)鐘芯片與單片機(jī)的接口為8位地址/數(shù)據(jù)復(fù)用的并行接口。采用Motorola總線讀寫(xiě)時(shí)序(如圖5所示),利用TPU模塊的16個(gè)端口模擬并口時(shí)序?qū)r(shí)鐘的總線進(jìn)行操作。時(shí)鐘芯片DS12CR887出廠時(shí),計(jì)時(shí)鏈處于關(guān)閉狀態(tài),因此,在燃料電池ECU的調(diào)試階段需要校準(zhǔn)時(shí)鐘并使能時(shí)鐘的計(jì)時(shí)鏈。校準(zhǔn)的方法為向時(shí)間日期寄存器直接寫(xiě)入當(dāng)前的時(shí)間日期,并置位DS12CR887芯片控制寄存器的計(jì)時(shí)鏈開(kāi)啟標(biāo)志位來(lái)啟動(dòng)時(shí)鐘芯片運(yùn)行。?

?

?

??? 正常工作后,TPU模塊通過(guò)讀取各內(nèi)存的數(shù)據(jù)得到當(dāng)前的絕對(duì)時(shí)間,并將各時(shí)間變量存入Parameter RAM,CPU通過(guò)讀取Parameter RAM得到當(dāng)前的時(shí)間。?

3.2 數(shù)據(jù)存儲(chǔ)系統(tǒng)軟件設(shè)計(jì)?

??? 數(shù)據(jù)存儲(chǔ)模塊中,存儲(chǔ)器Micro-SD卡采用SPI協(xié)議與單片機(jī)進(jìn)行通信。對(duì)該芯片的操作時(shí)序主要有四種:復(fù)位、初始化、讀、寫(xiě)。相對(duì)于普通的SPI協(xié)議,Micro-SD卡通信協(xié)議較為復(fù)雜,一個(gè)基本的操作往往需要持續(xù)幾千個(gè)時(shí)鐘周期(如圖6所示的SD卡寫(xiě)時(shí)序),TPU模塊的微碼編程只能實(shí)現(xiàn)比較簡(jiǎn)單的條件分支以及運(yùn)算。因此,本文在設(shè)計(jì)中,優(yōu)化了程序結(jié)構(gòu)以適應(yīng)復(fù)雜的SPI時(shí)序;同時(shí),考慮到TPU的程序內(nèi)存只有8 KB,在編程時(shí)需要注意對(duì)程序優(yōu)化,以節(jié)約代碼空間。程序運(yùn)行過(guò)程中,CPU和TPU之間的數(shù)據(jù)交換依然通過(guò)Parameter RAM實(shí)現(xiàn)。?

?

?

??? 數(shù)字核心MPC561的TPU模塊中,Parameter RAM區(qū)總共只有256 B,但是SD卡一次寫(xiě)入的最小單位為一個(gè)block,即512 B。為了將512 B的變量從CPU連續(xù)地寫(xiě)入Micro-SD卡,本文設(shè)計(jì)了緩存協(xié)議,即TPU從RAM區(qū)的低地址開(kāi)始寫(xiě),每寫(xiě)入128 B后產(chǎn)生TPU中斷,通知CPU更新已讀區(qū)域的數(shù)據(jù)。這樣便保證了TPU對(duì)Micro-SD卡寫(xiě)時(shí)序操作的連續(xù)性,其控制流程如圖7所示。?

?

?

??? 本文設(shè)計(jì)了一種針對(duì)燃料電池城市客車(chē)的數(shù)據(jù)支持系統(tǒng)。該系統(tǒng)可以持續(xù)實(shí)時(shí)記錄燃料電池客車(chē)的所有運(yùn)行數(shù)據(jù),在運(yùn)行過(guò)程中為燃料電池客車(chē)提供絕對(duì)時(shí)間參照,并配套相應(yīng)的上位機(jī)處理軟件對(duì)數(shù)據(jù)進(jìn)行整理分析。相對(duì)于傳統(tǒng)的車(chē)用數(shù)據(jù)支持系統(tǒng),本系統(tǒng)無(wú)論從數(shù)據(jù)記錄量上還是時(shí)間跨度上都具有明顯優(yōu)勢(shì)。在處理器的選擇方面,本文采用了獨(dú)特的TPU模塊進(jìn)行控制,使數(shù)字核心的資源得到了合理利用,在節(jié)約成本的同時(shí)不影響主控制任務(wù)運(yùn)行的實(shí)時(shí)性。經(jīng)過(guò)一段時(shí)間的使用,該系統(tǒng)能正常工作,記錄的數(shù)據(jù)對(duì)燃料電池的控制策略起到了一定的參考作用。?

參考文獻(xiàn)?

[1] 華劍鋒.新軟件技術(shù)在燃料電池城市客車(chē)控制系統(tǒng)中的應(yīng)用與研究.電子技術(shù)應(yīng)用,2007(4).?

[2] 張浩.基于?滋Clinux嵌入式系統(tǒng)的汽車(chē)黑匣子的設(shè)計(jì)與開(kāi)發(fā).微計(jì)算機(jī)信息,2006(14).?

[3] 牟順海.低成本汽車(chē)黑匣子的硬件系統(tǒng)設(shè)計(jì).計(jì)量與測(cè)試技術(shù),2006(4).

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。