燃料電池城市客車數(shù)據(jù)支持系統(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ù)對燃料電池的控制策略起到了一定的參考作用。
評論