燃料電池城市客車用整車控制器
關(guān)鍵詞: C8051F020;整車控制器;實時操作系統(tǒng);RTX51
整車控制器的功能分析
本文的汽車整車控制器是為國家863重大專項——“燃料電池城市客車”開發(fā)研制的。燃料電池城市客車的結(jié)構(gòu)如圖1所示。與傳統(tǒng)汽車的主要不同是動力源由發(fā)動機(jī)改為電動機(jī),同時由燃料電池和輔助電池組合提供電能。這樣車上的主要能量轉(zhuǎn)換方式就是將電能轉(zhuǎn)換成機(jī)械能。
汽車的整車控制器是整個汽車的大腦,它接受到駕駛員的踏板信號和其它信號,然后作出相應(yīng)的判斷,控制下層各個部件作出動作,驅(qū)動汽車正常行駛,并盡可能實現(xiàn)比較高的能量效率。所以說整車控制器是整個汽車的核心控制部件,它的優(yōu)劣直接影響著汽車的可靠性和其它性能。
圖1 燃料電池城市客車結(jié)構(gòu)簡圖
圖2 整車控制器功能框圖
在此,首先分析一下燃料電池城市客車整車控制器的功能需求。第一,整車驅(qū)動系統(tǒng)由驅(qū)動電機(jī)、燃料電池、蓄電池、DC/DC轉(zhuǎn)換器等部件組成,各個部件之間的信號通過CAN總線來傳遞,因而整車控制器必須具有CAN總線接口;第二,雖然采用CAN總線可以大大簡化系統(tǒng)的布線復(fù)雜程度,但從實時性和安全性的角度出發(fā),有一部分信號還要由整車控制器直接采集,包括制動踏板、油門踏板以及其它一些數(shù)字量信號;第三,整車控制器還要提供一些對相應(yīng)部件進(jìn)行直接控制的信號通道,包括D/A轉(zhuǎn)換和數(shù)字量輸出等等;第四,為保證駕駛員的安全操作和對汽車控制的可視化,采用了外接液晶顯示器以及觸摸屏的方式來顯示一些重要的信號量,因此選用了一個串行通信口(UART)。
C8051F020的主要功能和資源
基于以上的功能分析,我們最終選用了Cygnal單片機(jī)的特點,C8051F020型號的單片機(jī)作為整車控制器的核心器件CPU。其主要功能和資源包括:多達(dá)32路12位ADC(速度為100kHz)或高達(dá)500kHz的8位ADC;2路12位DAC和2路模擬比較器;內(nèi)部高精度基準(zhǔn)電源、可編程增益放大器和溫度傳感器;精確的VDD監(jiān)視器;4K片內(nèi)RAM、64K片內(nèi)FLASH以及64K外部數(shù)據(jù)存儲器接口;64位I/O口線,所有口線均可編程為弱上拉或推挽輸出;可同時使用的硬件SMBUS/I2C串行總線和SPI串行總線及兩個UART串口;16 位可編程計數(shù)器/定時器陣列帶5 個捕獲/比較模塊;5個通用16 位計數(shù)器/定時器;專用的看門狗定時器和雙向復(fù)位等等;獨特的數(shù)字交叉開關(guān)陣列(Digital Crossbar),可將內(nèi)部系統(tǒng)資源定向分配到P0,P1和P2;
其內(nèi)部資源的功能框圖從略。
整車控制器的功能框圖
通過比較整車控制器的功能需求和Cygnal單片機(jī)的特點可知,C8051F020芯片是一款非常適合用于汽車整車控制器的芯片。根據(jù)該單片機(jī)的特點,我們設(shè)計了控制器的整體框架(如圖2)。
首先,在外部總線上擴(kuò)展了一片32K的RAM,設(shè)計采用61C256,這樣的RAM容量足夠滿足實時操作系統(tǒng)及所需控制參數(shù)和變量的需求。其次,我們選用獨立的CAN控制器芯片SJA1000擴(kuò)展了一個CAN接口,用于和各個部件之間進(jìn)行數(shù)據(jù)通信。同時,由于C8051F020的很多片內(nèi)資源都是和數(shù)字I/O口復(fù)用的,所以需要利用片內(nèi)的數(shù)字交叉開關(guān)來選擇決定某個I/O口工作在何種方式;設(shè)計中選用了一片可編程邏輯芯片CPLD-EPM7128,利用它可以方便地配置芯片的各個I/O口和片內(nèi)資源,同時可以實現(xiàn)對一些外擴(kuò)設(shè)備的譯碼以及邏輯電路的設(shè)計等,這樣不僅節(jié)省了大量的外部譯碼芯片,同時還增加了系統(tǒng)的靈活性。此外,設(shè)計中利用一個串口(UART)與液晶顯示器及觸摸屏相連,提供了良好的司機(jī)交互操作界面。最后考慮到芯片內(nèi)部已經(jīng)具有A/D、D/A等資源,我們只選用了其中的4路A/D用于模擬量采集和2路D/A用于輸出控制,同時設(shè)計了8路數(shù)字量輸入(DI)和4路數(shù)字量輸出(DO)。出于對系統(tǒng)的電磁兼容性和安全性方面的考慮,我們對相應(yīng)的信號都采取了濾波和光電隔離措施。
完成以上所有的硬件功能設(shè)計后,一般來說,就應(yīng)該按照經(jīng)驗用傳統(tǒng)的軟件方法來編寫汽車整車控制器的軟件系統(tǒng)。然而,近年來嵌入式實時操作系統(tǒng)的普及為我們的軟件設(shè)計提供了一套新的解決思路。
嵌入式實時操作系統(tǒng)RTX51
針對中小型控制系統(tǒng)來說,mC/OS-II是目前最流行的、源碼公開、幾乎免費的RTOS。mC/OS-II具有執(zhí)行效率高,占用空間小,實時性能優(yōu)良和可擴(kuò)展性強(qiáng)等特點,最小內(nèi)核可編譯至2k。通常來講,是一種比較好的選擇方案。但是,我們在項目初期的實踐中證明mC/OS-II在8 位MCS51單片機(jī)系統(tǒng)中的效果并不是非常理想。因此,我們選用了一個最適用于8051家族單片機(jī)的實時多任務(wù)操作系統(tǒng)RTX51。在Keil C51的集成開發(fā)環(huán)境下,選用RTX51還具備如下優(yōu)點:
?使用便捷,當(dāng)用戶在集成開發(fā)環(huán)境里打開目標(biāo)選項對話框,選擇目標(biāo)操作系統(tǒng)以后,鏈接器便會自動添加合適的RTX-51庫文件;
?完全支持C51具有的浮點操作功能、可重入功能和中斷功能;
?對于8051系列單片機(jī)具有友好的用戶界面來進(jìn)行RTX51的配置;
?使用靈活,僅需占用少量的系統(tǒng)資源,也能夠應(yīng)用于實時性要求較高的系統(tǒng)中。
RTX51具有兩種不同的版本:RTX51 Full和RTX51 Tiny。
在燃料電池城市客車的整車控制器中,由于整個被控系統(tǒng)相對比較復(fù)雜,同時考慮到將來可能的系統(tǒng)擴(kuò)展,我們采用了功能較強(qiáng)的RTX51 Full版本。
RTX51 Full可適用于大多數(shù)8051系列單片機(jī),但是必須針對不同的單片機(jī)進(jìn)行相應(yīng)的配置。由于Cygnal的C8051系列單片機(jī)是比較新型的MCS51單片機(jī),所以RTX51并沒有為此系列單片機(jī)提供專門的配置。因此,我們首先找到了一個與C8051系列單片機(jī)比較接近的單片機(jī)Infienon C515單片機(jī),然后比較這兩種單片機(jī)的異同,修改RTX51為Infienon C515專門提供的配置,即可得到我們所需的配置。修改的部分如下:
INT_EN_MASK_NUMBER EQU 3
?RTX_IE DATA 0A8H
?RTX_IEN1DATA 0E6H
?RTX_IEN2 DATA 0E7H
如上所述,RTX51與C51編譯器是完全集成在一個uVision的集成環(huán)境中,作為RTX51應(yīng)用程序只要求用戶將RTX51.H頭文件包含進(jìn)來,并且選擇編譯選項Target中的operating為RTX51 Full即可。
整車控制器的軟件設(shè)計思路
燃料電池城市客車明顯區(qū)別于傳統(tǒng)汽車的一個主要特點就是:傳統(tǒng)汽車由司機(jī)根據(jù)自己的意愿,操縱油門踏板和制動踏板來直接控制汽車的運行狀態(tài);而燃料電池城市客車的油門踏板并沒有和底層部件直接相連,而是通過將踏板信號采集進(jìn)入多能源動力總成控制系統(tǒng),再根據(jù)一定的控制策略,最終確定汽車的實際運行狀態(tài)。
由此可見,對于燃料電池城市客車而言,對司機(jī)控制命令的信號采集和對司機(jī)意圖的解釋變得至關(guān)重要。因此,整車控制器的主要任務(wù)就是采集司機(jī)的各種控制信號(包括鑰匙位置、制動踏板、油門踏板和檔位信息等等),正確判斷司機(jī)的實際駕駛意圖,協(xié)調(diào)控制汽車各個部件的工作,對整車進(jìn)行有效的控制。
根據(jù)整車控制器所需完成的功能,我們結(jié)合RTOS分解其各項功能并制定出相對獨立的任務(wù)。目前,我們制定了以下幾個任務(wù):
任務(wù)0 系統(tǒng)初始化及控制策略數(shù)值計算:
初始化單片機(jī)的相關(guān)配置,啟動所有其它的任務(wù)。隨后進(jìn)行控制策略的數(shù)值計算。
任務(wù)1 發(fā)送CAN信息:
當(dāng)任務(wù)0完成了控制策略數(shù)值計算后,通過CAN總線發(fā)送相應(yīng)的控制命令。
任務(wù)2 模數(shù)轉(zhuǎn)換A/D:
采集油門踏板和制動踏板的信號,并進(jìn)行數(shù)字濾波。這些信號將提供給任務(wù)0進(jìn)行控制策略的計算。
任務(wù)3 數(shù)字量的輸入和輸出:
讀入鑰匙位置、緊急開關(guān)信號等數(shù)字量,輸出Ready等信號。這些信息將提供給任務(wù)0來判斷汽車應(yīng)該選擇的工作模式,同時在液晶屏幕上進(jìn)行相應(yīng)的狀態(tài)顯示。
任務(wù)4 故障診斷:
判斷單片機(jī)系統(tǒng)工作是否正常,CAN通信是否正常,并且給出相應(yīng)的報警信號。
中斷1 接收CAN信息:
接收其它控制器節(jié)點發(fā)來的CAN信息,并且按照CAN協(xié)議把接收到的數(shù)據(jù)信息進(jìn)行相應(yīng)的轉(zhuǎn)換。
上述各任務(wù)的程序流程圖從略。
結(jié)語
C8051F020這款單片機(jī)具有較快的運行速度和豐富的內(nèi)部資源,非常適合用于汽車整車控制器的開發(fā)。我們在搭建出其硬件平臺的基礎(chǔ)上,又開發(fā)了基于實時操作系統(tǒng)的軟件系統(tǒng),并且實現(xiàn)了數(shù)據(jù)采集、輸出控制、液晶顯示以及CAN總線通信等功能。實時操作系統(tǒng)的實施讓我們的軟件設(shè)計思路產(chǎn)生了很大的變化,使我們能夠更方便地進(jìn)行復(fù)雜軟件的設(shè)計。可以這樣說,實時操作系統(tǒng)的引入提高了軟件設(shè)計的起點,同時提高了軟件設(shè)計的效率?!?本文做了刪減,讀者可發(fā)郵件至articleb@edw.com.cn索閱全文)
評論