- CAN總線下的燃料電池汽車空調(diào)控制節(jié)點(diǎn)
- 采用MCU和獨(dú)立CAN控制器和收發(fā)器
- 由數(shù)字信號(hào)處理器DSP2407為控制芯片
在能源日趨緊張、空氣污染日益嚴(yán)重的今天,開(kāi)發(fā)具有自主知識(shí)產(chǎn)權(quán)的新型燃料電池汽車是我國(guó)汽車產(chǎn)業(yè)的一個(gè)重要飛躍和里程碑,也是國(guó)家重點(diǎn)扶持的主要領(lǐng)域之一。燃料電池汽車與傳統(tǒng)燃油汽車相比具有環(huán)保、節(jié)能(氫氣為燃料)、運(yùn)行平穩(wěn)無(wú)噪聲等特點(diǎn)。燃料電池汽車系統(tǒng)的核心 是它的動(dòng)力系統(tǒng),即燃料電池發(fā)動(dòng)機(jī),同時(shí)配備高功率鋰離子電池,能夠回收下坡和制動(dòng)能量。整個(gè)汽車系統(tǒng)由若干控制單元組成,各單元通過(guò)汽車總線彼此相連, 其中空調(diào)控制系統(tǒng)是這種新型能源汽車的一個(gè)輔助控制單元,但它也是汽車系統(tǒng)的一個(gè)重要組成部分。本文將給出一種采用通用微控制器(MCU)和獨(dú)立CAN控制器和收發(fā)器為核心的智能節(jié)點(diǎn),完成與汽車系統(tǒng)之間的通信和控制由數(shù)字信號(hào)處理器DSP2407為控制芯片的直流變轉(zhuǎn)速空調(diào)控制器的運(yùn)行,并且整個(gè)空調(diào)系統(tǒng)已成功地運(yùn)行在以燃料電池為動(dòng)力的試驗(yàn)汽車當(dāng)中。
1 CAN總線原理
控制器局域網(wǎng)絡(luò)CAN屬于現(xiàn)場(chǎng)總線的范疇,它是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò)。CAN是1986 年由Bosch公司領(lǐng)先推出的一種最初應(yīng)用于現(xiàn)代汽車微控制器通信的多主機(jī)局部網(wǎng),實(shí)現(xiàn)車裁各類電子控制裝置之間的信息交換。國(guó)際標(biāo)準(zhǔn)組織ISO為其制訂 了規(guī)范CAN總線的國(guó)際標(biāo)準(zhǔn),CAN已被公認(rèn)為幾種最有前途的現(xiàn)場(chǎng)總線之一,它在當(dāng)今自動(dòng)控制領(lǐng)域的發(fā)展中將發(fā)揮出越來(lái)越重要的作用。CAN協(xié)議建立在國(guó) 際標(biāo)準(zhǔn)組織ISO的開(kāi)放系統(tǒng)互連參考模型OSI基礎(chǔ)上,主要工作在物理層、數(shù)據(jù)鏈路層和應(yīng)用層,用戶可在其基礎(chǔ)上開(kāi)發(fā)適合實(shí)際系統(tǒng)需要的應(yīng)用層通信協(xié)議。 信號(hào)的傳輸一般采用雙絞線、同軸電纜或光纖。CAN總線系統(tǒng)通信距離遠(yuǎn),通信速率高,最高通信速率可達(dá)1Mbit/s,當(dāng)信號(hào)傳輸距離達(dá)到10km時(shí),仍 可提供高達(dá)5kbit/s的數(shù)據(jù)傳輸速率。由于CAN總線的這一特點(diǎn),使其更利于構(gòu)成大系統(tǒng)。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 空調(diào)控制系統(tǒng)結(jié)構(gòu)
由于整個(gè)汽車系統(tǒng)是一個(gè)復(fù)雜的控制系統(tǒng),可以將其分成若干個(gè)模塊或子系統(tǒng),每個(gè)子系統(tǒng)負(fù)責(zé)完成一定的功能。各個(gè)控制 單元都通過(guò)CAN總線連接在一起,構(gòu)成總線型結(jié)構(gòu)的局域網(wǎng)絡(luò)。雖然CAN中各個(gè)節(jié)點(diǎn)處于對(duì)等的地位,但為了更好協(xié)調(diào)各個(gè)控制單元,以整車控制器作為核心控 制單元部分,控制其他電控單元的運(yùn)行和系統(tǒng)動(dòng)力的分配。系統(tǒng)CAN總線結(jié)構(gòu)圖如圖1所示。空調(diào)控制系統(tǒng)一方面作為整個(gè)汽車系統(tǒng)的一個(gè)子系統(tǒng),同時(shí)也作為 CAN總線上的一個(gè)節(jié)點(diǎn),其主要功能是通過(guò)CAN總線接收主控節(jié)點(diǎn)的控制命令及將空調(diào)相關(guān)數(shù)據(jù)傳送給主控節(jié)點(diǎn),完成汽車空調(diào)的開(kāi)啟、溫度設(shè)定、車內(nèi)外溫度 采集等控制??照{(diào)系統(tǒng)與CAN總線上的整車控制器的通信至關(guān)重要,而空調(diào)控制部分又涉及到高壓部分,為了整車系統(tǒng)的安全和可靠,將空調(diào)系統(tǒng)的CAN通訊部 分和壓縮機(jī)驅(qū)動(dòng)部分分開(kāi)設(shè)計(jì),兩者之間通過(guò)光電耦合器進(jìn)行電氣隔離,保證空調(diào)系統(tǒng)與整車的通訊安全、可靠。
2.2 硬件設(shè)計(jì)
由于空調(diào)控制系統(tǒng)的智能節(jié)點(diǎn)處理的信息量不是很大,主要完成和主控節(jié)點(diǎn)即整車控制器的通信,其次負(fù)責(zé)對(duì)空調(diào)控制器的 控制和幾路溫度模擬量的采集以及顯示控制,因此,選用通用性較好、開(kāi)發(fā)較靈活的微控制器(MCU)和獨(dú)立CAN控制器及CAN總線驅(qū)動(dòng)器方案完成,智能節(jié) 點(diǎn)硬件設(shè)計(jì)原理如圖2所示。其中,智能節(jié)點(diǎn)中微控制器選用P89C51Rx2,CAN接口由獨(dú)立控制器SJA1000和CAN總線驅(qū)動(dòng)器 PCA82C250組成。SJA1000作為微控制器MCU的片外擴(kuò)展芯片,SJA1000和MCU之間的數(shù)據(jù)傳送通過(guò)MCU數(shù)據(jù)端口P0來(lái)完成,數(shù)據(jù)接 收信號(hào)用中斷方式,以提高數(shù)據(jù)處理的實(shí)時(shí)性。CAN控制器SJA1000通過(guò)總線驅(qū)動(dòng)器PCA82C250連接在物理總線上。PCA82C250器件提供 對(duì)總線的差動(dòng)發(fā)送能力和對(duì)CAN控制器的差動(dòng)接受能力,采用差分驅(qū)動(dòng)有助于抑制汽車等惡劣電氣環(huán)境下的瞬變干擾。為增強(qiáng)CAN總線節(jié)點(diǎn)的抗干擾能 力,SJA1000的TX0和RX0并不直接與82C250的TXD和RXD相連,而是通過(guò)高速光耦與82C250相連,這樣就很好地實(shí)現(xiàn)了收發(fā)器與控制 器之間的電氣隔離,保護(hù)智能節(jié)點(diǎn)核心電路安全工作,并實(shí)現(xiàn)了總線上各CAN節(jié)點(diǎn)間的電氣隔離。為了進(jìn)一步增強(qiáng)系統(tǒng)抗干擾能力,可在總線入口處并接雙向穩(wěn)壓 管,限制線路上可能出現(xiàn)的短時(shí)尖峰過(guò)電壓和增加共模抑制線圈以消除共模信號(hào)的干擾。此外,通信信號(hào)在線路上傳輸時(shí),信號(hào)傳輸?shù)綄?dǎo)線的端點(diǎn)時(shí)會(huì)發(fā)生反射,反 射信號(hào)會(huì)干擾正常信號(hào)的傳輸。為消除這種影響,可在CAN總線兩端并接2個(gè)120Ω的電阻起到匹配總線阻抗和消除反射的雙重作用。若忽略這些措施,會(huì)使數(shù) 據(jù)通信的抗干擾性和可靠性大大降低,甚至無(wú)法通信。
節(jié)點(diǎn)中MCU除了與CAN控制器連接外,還需要完成空調(diào)系統(tǒng)的控制和數(shù)據(jù)采集,采集的數(shù)據(jù)主要有車內(nèi)溫度、空調(diào)設(shè)定 溫度、空調(diào)盤(pán)管溫度、車外溫度、日照強(qiáng)度、壓力保護(hù)等模擬量,根據(jù)采集的數(shù)據(jù)通過(guò)閉環(huán)控制方式,給空調(diào)壓縮驅(qū)動(dòng)器發(fā)出啟動(dòng)指令和運(yùn)行頻率,同時(shí)壓縮機(jī)驅(qū)動(dòng) 器會(huì)實(shí)時(shí)將壓縮機(jī)的運(yùn)行狀態(tài)傳遞給MCU。根據(jù)狀態(tài)信息,MCU會(huì)做出相應(yīng)的處理。
圖2中無(wú)刷直流壓縮機(jī)驅(qū)動(dòng)控制部分,其核心控制芯片采用TI公司的電機(jī)控制專用數(shù)字信號(hào)處理器 TMS320LF2407,由于其運(yùn)算速度的快速性,能夠保證系統(tǒng)復(fù)雜算法的實(shí)現(xiàn)和轉(zhuǎn)子何置的檢測(cè)。位置檢測(cè)通過(guò)檢測(cè)反電動(dòng)勢(shì)的方法來(lái)實(shí)現(xiàn),DSP除了完 成驅(qū)動(dòng)信號(hào)的發(fā)生和位置檢測(cè)外,還接受空調(diào)智能節(jié)點(diǎn)的指令來(lái)啟動(dòng)壓縮機(jī)和反饋壓縮機(jī)運(yùn)行狀態(tài)。
[page]
3 系統(tǒng)軟件設(shè)計(jì)
空調(diào)控制系統(tǒng)軟件設(shè)計(jì)主要包括智能節(jié)點(diǎn)部分和壓縮機(jī)控制部分,智能節(jié)點(diǎn)主要完成有關(guān)初始化;溫度采樣;接收主控節(jié)點(diǎn) 的控制指令及發(fā)送相關(guān)數(shù)據(jù),如空調(diào)允許的功率上限等;檢測(cè)空調(diào)開(kāi)關(guān)狀態(tài)和設(shè)定溫度值;發(fā)送給空調(diào)控制器的啟動(dòng)信號(hào)以及運(yùn)行頻率信號(hào);檢測(cè)壓縮機(jī)的運(yùn)行狀態(tài) 和故障處理等。壓縮機(jī)控制器部分主要完成壓縮機(jī)的驅(qū)動(dòng)信號(hào)的產(chǎn)生、位置檢測(cè)信號(hào)的處理和接受空調(diào)智能節(jié)點(diǎn)的起停信號(hào)和運(yùn)行頻率等。限于篇幅,這里只對(duì)控制 節(jié)點(diǎn)部分程序進(jìn)行討論??刂乒?jié)點(diǎn)的主程序流程圖如圖3所示。
對(duì)于智能節(jié)點(diǎn)軟件設(shè)計(jì) 而言,主要是節(jié)點(diǎn)初始化、報(bào)文發(fā)送和接收。而要使節(jié)點(diǎn)能夠正常工作,關(guān)鍵是節(jié)點(diǎn)的初始化要正確。節(jié)點(diǎn)的初始化主要是指系統(tǒng)上電后對(duì)微處理器和CAN控制器 SJA1000進(jìn)行的初始化,以確定工作主頻、波特率和輸出特性等。對(duì)P89C51Rx2的初始化可根據(jù)具體的控制對(duì)象進(jìn)行,主要是對(duì)中斷、定時(shí)器的使用 與設(shè)置等,這里不作詳細(xì)介紹。此處主要介紹SJA1000的初始化。由于SJA1000內(nèi)部無(wú)微處理器,故其初始化仍要通過(guò)P89C51Rx2對(duì)其進(jìn)行編 程實(shí)現(xiàn)。SJA1000初始化程序流程如圖4所示。SJA1000的初始化應(yīng)在復(fù)位模式下進(jìn)行,所以在SJA1000初始化程序中首先要將工作方式置為復(fù) 位模式,之后要設(shè)置驗(yàn)收濾波方式、驗(yàn)收屏蔽寄存器(AMR)和驗(yàn)收代碼寄存器(ACR)、波特率參數(shù)和中斷允許寄存器(IER)等。CAN協(xié)議物理層中的 同步跳轉(zhuǎn)寬度和通信波特率的大小由定時(shí)寄存器BTR0、BTR1的內(nèi)容決定。這里需要指出的是:對(duì)于一個(gè)系統(tǒng)中的所有節(jié)點(diǎn),這兩個(gè)寄存器的內(nèi)容必須相同, 否則將無(wú)法進(jìn)行通信。初始化設(shè)置完成后,將復(fù)位請(qǐng)求位置“0”,SJA1000就可以進(jìn)入工作狀態(tài),執(zhí)行正常的通信任務(wù)。
設(shè)計(jì)的CAN智能節(jié)點(diǎn)具有很高的可靠性和較優(yōu)的性能價(jià)格比,尤其使用獨(dú)立CAN控制器實(shí)現(xiàn)智能節(jié)點(diǎn)具有實(shí)現(xiàn)方便和很 好的通用性等特點(diǎn)。整個(gè)空調(diào)控制系統(tǒng)能夠很好地實(shí)現(xiàn)和主控制節(jié)點(diǎn)的通信和無(wú)刷直流壓縮機(jī)的驅(qū)動(dòng)控制,各項(xiàng)運(yùn)行參數(shù)達(dá)到設(shè)計(jì)的要求。文中設(shè)計(jì)的汽車空調(diào)控制 系統(tǒng)已經(jīng)在燃料電池汽車上進(jìn)行了實(shí)際運(yùn)行,能夠滿足設(shè)計(jì)要求。