燃料電池城市客車數(shù)據(jù)支持系統(tǒng)設(shè)計(jì)
時(shí)鐘日歷模塊中,時(shí)鐘芯片與單片機(jī)的接口為8位地址/數(shù)據(jù)復(fù)用的并行接口。采用Motorola總線讀寫時(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í)間日期寄存器直接寫入當(dāng)前的時(shí)間日期,并置位DS12CR887芯片控制寄存器的計(jì)時(shí)鏈開啟標(biāo)志位來啟動(dòng)時(shí)鐘芯片運(yùn)行。
正常工作后,TPU模塊通過讀取各內(nèi)存的數(shù)據(jù)得到當(dāng)前的絕對時(shí)間,并將各時(shí)間變量存入Parameter RAM,CPU通過讀取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)行通信。對該芯片的操作時(shí)序主要有四種:復(fù)位、初始化、讀、寫。相對于普通的SPI協(xié)議,Micro-SD卡通信協(xié)議較為復(fù)雜,一個(gè)基本的操作往往需要持續(xù)幾千個(gè)時(shí)鐘周期(如圖6所示的SD卡寫時(shí)序),TPU模塊的微碼編程只能實(shí)現(xiàn)比較簡單的條件分支以及運(yùn)算。因此,本文在設(shè)計(jì)中,優(yōu)化了程序結(jié)構(gòu)以適應(yīng)復(fù)雜的SPI時(shí)序;同時(shí),考慮到TPU的程序內(nèi)存只有8 KB,在編程時(shí)需要注意對程序優(yōu)化,以節(jié)約代碼空間。程序運(yùn)行過程中,CPU和TPU之間的數(shù)據(jù)交換依然通過Parameter RAM實(shí)現(xiàn)。
數(shù)字核心MPC561的TPU模塊中,Parameter RAM區(qū)總共只有256 B,但是SD卡一次寫入的最小單位為一個(gè)block,即512 B。為了將512 B的變量從CPU連續(xù)地寫入Micro-SD卡,本文設(shè)計(jì)了緩存協(xié)議,即TPU從RAM區(qū)的低地址開始寫,每寫入128 B后產(chǎn)生TPU中斷,通知CPU更新已讀區(qū)域的數(shù)據(jù)。這樣便保證了TPU對Micro-SD卡寫時(shí)序操作的連續(xù)性,其控制流程如圖7所示。
本文設(shè)計(jì)了一種針對燃料電池城市客車的數(shù)據(jù)支持系統(tǒng)。該系統(tǒng)可以持續(xù)實(shí)時(shí)記錄燃料電池客車的所有運(yùn)行數(shù)據(jù),在運(yùn)行過程中為燃料電池客車提供絕對時(shí)間參照,并配套相應(yīng)的上位機(jī)處理軟件對數(shù)據(jù)進(jìn)行整理分析。相對于傳統(tǒng)的車用數(shù)據(jù)支持系統(tǒng),本系統(tǒng)無論從數(shù)據(jù)記錄量上還是時(shí)間跨度上都具有明顯優(yōu)勢。在處理器的選擇方面,本文采用了獨(dú)特的TPU模塊進(jìn)行控制,使數(shù)字核心的資源得到了合理利用,在節(jié)約成本的同時(shí)不影響主控制任務(wù)運(yùn)行的實(shí)時(shí)性。經(jīng)過一段時(shí)間的使用,該系統(tǒng)能正常工作,記錄的數(shù)據(jù)對燃料電池的控制策略起到了一定的參考作用。
評論