燃料電池城市客車數(shù)據(jù)支持系統(tǒng)設計
時鐘日歷模塊中,時鐘芯片與單片機的接口為8位地址/數(shù)據(jù)復用的并行接口。采用Motorola總線讀寫時序(如圖5所示),利用TPU模塊的16個端口模擬并口時序對時鐘的總線進行操作。時鐘芯片DS12CR887出廠時,計時鏈處于關閉狀態(tài),因此,在燃料電池ECU的調試階段需要校準時鐘并使能時鐘的計時鏈。校準的方法為向時間日期寄存器直接寫入當前的時間日期,并置位DS12CR887芯片控制寄存器的計時鏈開啟標志位來啟動時鐘芯片運行。
正常工作后,TPU模塊通過讀取各內存的數(shù)據(jù)得到當前的絕對時間,并將各時間變量存入Parameter RAM,CPU通過讀取Parameter RAM得到當前的時間。
3.2 數(shù)據(jù)存儲系統(tǒng)軟件設計
數(shù)據(jù)存儲模塊中,存儲器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之間的數(shù)據(jù)交換依然通過Parameter RAM實現(xiàn)。
數(shù)字核心MPC561的TPU模塊中,Parameter RAM區(qū)總共只有256 B,但是SD卡一次寫入的最小單位為一個block,即512 B。為了將512 B的變量從CPU連續(xù)地寫入Micro-SD卡,本文設計了緩存協(xié)議,即TPU從RAM區(qū)的低地址開始寫,每寫入128 B后產(chǎn)生TPU中斷,通知CPU更新已讀區(qū)域的數(shù)據(jù)。這樣便保證了TPU對Micro-SD卡寫時序操作的連續(xù)性,其控制流程如圖7所示。
本文設計了一種針對燃料電池城市客車的數(shù)據(jù)支持系統(tǒng)。該系統(tǒng)可以持續(xù)實時記錄燃料電池客車的所有運行數(shù)據(jù),在運行過程中為燃料電池客車提供絕對時間參照,并配套相應的上位機處理軟件對數(shù)據(jù)進行整理分析。相對于傳統(tǒng)的車用數(shù)據(jù)支持系統(tǒng),本系統(tǒng)無論從數(shù)據(jù)記錄量上還是時間跨度上都具有明顯優(yōu)勢。在處理器的選擇方面,本文采用了獨特的TPU模塊進行控制,使數(shù)字核心的資源得到了合理利用,在節(jié)約成本的同時不影響主控制任務運行的實時性。經(jīng)過一段時間的使用,該系統(tǒng)能正常工作,記錄的數(shù)據(jù)對燃料電池的控制策略起到了一定的參考作用。
評論