基于CAN總線(xiàn)的電動(dòng)車(chē)控制系統設計方案
目前,由于環(huán)境污染和能源危機問(wèn)題日益嚴重,電動(dòng)汽車(chē)的發(fā)展開(kāi)始得到各國的高度重視,成為未來(lái)汽車(chē)發(fā)展的主流方向。電動(dòng)汽車(chē)主要具有三大關(guān)鍵技術(shù):驅動(dòng)控制系統、電池電源、整車(chē)電子控制系統。整車(chē)電子控制系統必須滿(mǎn)足純電動(dòng)汽車(chē)的設計理念,使之既節能又簡(jiǎn)單可靠。在目前電池技術(shù)水平下,解決兩大關(guān)鍵技術(shù),有助于電動(dòng)汽車(chē)在中國首先市場(chǎng)化,其經(jīng)濟意義不言而喻。 電動(dòng)汽車(chē)動(dòng)力系統結構復雜多樣,部件類(lèi)型繁多。先進(jìn)高效的控制體系結構,可以使電動(dòng)汽車(chē)各動(dòng)力系統之間的數據交換滿(mǎn)足簡(jiǎn)單迅速、可靠性高、抗干擾能力強、實(shí)時(shí)性好、系統錯誤檢測和隔離能力強等要求。
本文設計了一種基于CAN總線(xiàn)的電動(dòng)汽車(chē)整車(chē)電子控制系統,本系統采用短幀的報文結構,數據傳輸時(shí)間短,具有很強的抗干擾性,具有高效的非破壞總線(xiàn)仲裁,出錯檢測和故障自動(dòng)關(guān)閉等優(yōu)點(diǎn)。
1 控制系統整體結構
電動(dòng)車(chē)控制系統由電池管理、充電機、電動(dòng)機和整車(chē)控制等模塊組成。本系統總體結構如圖1所示。
由圖1知,CAN通信網(wǎng)絡(luò )上共有4個(gè)通信節點(diǎn)。整車(chē)控制器接收BMS、CCS、電機控制器的報文提供的各種參數;充電機接收BMS發(fā)送的控制信息并根據報文數據的電壓電流設置來(lái)工作;電機控制器接收BMS發(fā)送的電池狀態(tài)信息設置來(lái)工作,同時(shí)電機控制器接收由整車(chē)控制器發(fā)送的控制信息并根據報文數據的轉矩設置來(lái)工作。
2 CAN總線(xiàn)節點(diǎn)的硬件電路設計
CAN是ControllerAreaNetwork的縮寫(xiě),是ISO國際標準化的串行通信協(xié)議。在當前的汽車(chē)產(chǎn)業(yè)中,出于對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開(kāi)發(fā)了出來(lái)。由于這些系統之間通信所用的數據類(lèi)型及對可靠性的要求不盡相同,由多條總線(xiàn)構成的情況很多,線(xiàn)束的數量也隨之增加。為適應"減少線(xiàn)束的數量"、"通過(guò)多個(gè)LAN,進(jìn)行大量數據的高速通信"的需要,1986年德國電氣商博世公司開(kāi)發(fā)出面向汽車(chē)的CAN通信協(xié)議。此后,CAN通過(guò)ISO11898及ISO11519進(jìn)行了標準化,現在在歐洲已是汽車(chē)網(wǎng)絡(luò )的標準協(xié)議?,F在,CAN的高性能和可靠性已被認同,并被廣泛地應用于工業(yè)自動(dòng)化、船舶、醫療設備、工業(yè)設備等方面?,F場(chǎng)總線(xiàn)是當今自動(dòng)化領(lǐng)域技術(shù)發(fā)展的熱點(diǎn)之一,被譽(yù)為自動(dòng)化領(lǐng)域的計算機局域網(wǎng)。它的出現為分布式控制系統實(shí)現各節點(diǎn)之間實(shí)時(shí)、可靠的數據通信提供了強有力的技術(shù)支持。
整車(chē)控制節點(diǎn)是基于STM32F103VE設計的。ARMCortex TM-M3是一款高性能、低成本、低功耗的32位BISC處理器,可在高達72 MHz的頻率下運行,擁有512 KB的片內Flash程序存儲器,具有64 KB的RAM數據存儲器,可進(jìn)行高性能的CPU訪(fǎng)問(wèn)。該徽控制器包含1個(gè)USB2.0全速(12 Mb/s)設備、1路CAN2.0B通道、1個(gè)通用DMA控制器、3個(gè)16位的A/D轉換器和1個(gè)16位的D/A轉換器。同時(shí)該微控制器具有4個(gè)16位捕獲/比較定時(shí)器和1個(gè)看門(mén)狗定時(shí)器,因此ARM cortexTM-M3可以滿(mǎn)足電動(dòng)車(chē)控制的需要,減少了系統硬件設計的復雜度。STM32F103VE支持J-Link實(shí)時(shí)仿真和跟蹤,內部搭載有1通道的支持CAN20.B規格的CAN控制器,使得CAN通信模塊的設計更加方便。整車(chē)控制節點(diǎn)硬件電路圖如圖2所示,由徽控制器STM32F103VE、CAN總線(xiàn)收發(fā)器82C250、2個(gè)高速光耦16N137等組成。
STM32F103VE采用單電源供電,時(shí)鐘由8 MHz外部晶振產(chǎn)生。對Flash存儲器的編程通過(guò)J-Link進(jìn)行編程(IAR)實(shí)現。STM32F103VE內部集成一路CAN控制器,簡(jiǎn)化了傳統單片機外接CAN控制器和CAN收發(fā)器的復雜外圍電路。收發(fā)器82C250是CAN控鑭器和物理總線(xiàn)之問(wèn)的驅動(dòng)器接口,它可以提供對總線(xiàn)的差動(dòng)發(fā)送能力和對CAN控制器的差動(dòng)接收能力,其位速度高達1Mb/s,與ISO11898標準兼容。它的斜率控制功能使電磁兼容性能增強,準備模式可以減少網(wǎng)絡(luò )的功耗,準備模式中,網(wǎng)絡(luò )一旦檢測到總線(xiàn)上有報文就會(huì )被立即激活。同時(shí),它可提供更強抗干擾能力,以及有熱保護、短路保護、支持多達110個(gè)節點(diǎn)等好處。
在微控制器和CAN總線(xiàn)收發(fā)器之間,采用了2個(gè)高速光電耦合器6N137進(jìn)行電氣隔離,防止將總線(xiàn)干擾引入系統,提高了系統的可靠性。同時(shí),在節點(diǎn)端部接有1個(gè)120 Ω終端匹配電阻,提高了數據通信的抗干擾性。
3 CAN通信協(xié)議的設計
根據ISO/OSI模型,CAN總線(xiàn)規范了只制定了數據鏈路層中的媒體訪(fǎng)問(wèn)子層和一小部分的邏輯鏈路控制子層,CAN的ISO標準規定了總線(xiàn)及驅動(dòng)器的電氣特性。因此需要根據自己的需求設計通信協(xié)議。
CAN協(xié)議標準2.0B的數據幀的ID長(cháng)度為29位,為擴展格式數據幀結構,如圖3所示。
數據幀由幀起始、仲裁段、控制段、數據段、CRC段、ACK段、幀結束組成。協(xié)議的設計是對標識符和數據位的定義。
本系統協(xié)議的設計參照SAEJ1939協(xié)議標準,標識符分配為優(yōu)先級(P)、保留位(R)、數據頁(yè)(DP)、代碼域(PF)、目標域(PS)、源地址(SA)和數據域(DF)7個(gè)部分。根據需求定義了5個(gè)報文,報文標識符定義如表1所示。
整車(chē)控制器的節點(diǎn)地址為OxA7;BMS節點(diǎn)地址為OxE4;CCS節點(diǎn)地址為OxE5;電機控制器節點(diǎn)地址為OxE6.
根據實(shí)際需求,設計了5個(gè)報文,分別為:BMS發(fā)給CCS和電機控制器的2個(gè)報文,CCS和電機控制器發(fā)給整車(chē)控制器的2個(gè)報文,整車(chē)控制器發(fā)給電機的報文。根據信息的重要程度,將電機控制器和整車(chē)控制器間的報文設計為最高優(yōu)先級3,其他報文優(yōu)先級設計為6.
4 CAN總線(xiàn)節點(diǎn)的軟件設計
系統采用基于C語(yǔ)言的程序設計。在IAB開(kāi)發(fā)環(huán)境下進(jìn)行調試和仿真。整車(chē)控制節點(diǎn)的軟件設計主要包括4個(gè)部分:CAN控制器的初始化、報文發(fā)送、報文接收和錯誤處理。
4.1 CAN控制器的初始化
在啟動(dòng)CAN通信前必需進(jìn)行CAN模塊的初始化,包括硬件使能、CAN工作模式設置、總線(xiàn)波特率設置、設置中斷、驗收過(guò)濾器設置等。初始化操作在CAN模塊復位的模式下進(jìn)行。初始化程序流程圖如圖4所示。
本設計中采用的是29位擴展標示符,符合CAN2.0B的標準,所以在驗收屏蔽過(guò)濾器設置中進(jìn)行相應的設定。同時(shí),本設計的CAN波特率設置為250 Kb/s,與總線(xiàn)上其他節點(diǎn)的波特率相同,才能進(jìn)行正常的通信。
4.2 數據的發(fā)送
對CAN數據的發(fā)送采用查詢(xún)方式,提高處理器的效率,STM32F103VE的CAN模塊有3個(gè)發(fā)送郵箱,發(fā)送報文的流程為:應用程序選擇一個(gè)空發(fā)送郵箱;設置標識符,數據長(cháng)度和待發(fā)送數據;對CAN+TixR寄存器的TXRQ位置1,請求發(fā)送;一旦CAN總線(xiàn)進(jìn)入空閑狀態(tài),發(fā)送郵箱中的報文則立即發(fā)送,成功發(fā)送后,郵箱為空;通過(guò)查詢(xún)CAN_TSR寄存器的TXOK位來(lái)查詢(xún)報文是否發(fā)送成功。數據發(fā)送程序的流程圖如圖5所示。
4.3 數據的接收
對CAN報文的接收采用中斷方式,提高通信的實(shí)時(shí)性。接收報文的流程如圖6所示。當CAN總線(xiàn)發(fā)來(lái)一個(gè)報文,根據屏蔽過(guò)濾器設置的標識符進(jìn)行過(guò)濾,如果是要接收的報文,則CAN控制器將總線(xiàn)上的報文按順序存入接收FIFO,并進(jìn)入接收中斷,在中斷中對接收FIFO中的報文進(jìn)行存儲,然后釋放FIFO郵箱。如果不釋放郵箱,當總線(xiàn)上再發(fā)送過(guò)來(lái)報文時(shí),會(huì )直接覆蓋上一個(gè)報文,從而導致報文丟失。數據接收程序流程如圖6所示。
4.4 錯誤處理
電動(dòng)車(chē)的整車(chē)控制器需要接收BMS、CCS和電機控制器這3個(gè)節點(diǎn)發(fā)來(lái)的報文,如果超過(guò)1 s未接收到例如BMS的報文,則通信鏈路超時(shí),此時(shí)需要進(jìn)行故障處理。所以在軟件設計時(shí),定義一個(gè)全局變量,在每個(gè)定時(shí)周期中加1,在接收BMS報文中斷中,對此變量清零,則可以實(shí)現通信超時(shí)檢測。當總線(xiàn)發(fā)生嚴重故障時(shí),CAN節點(diǎn)錯誤寄存器累積到一定次數時(shí),CAN控制器會(huì )關(guān)閉總線(xiàn),節點(diǎn)脫離總線(xiàn)。
5 結論
在實(shí)車(chē)實(shí)驗中,各個(gè)節點(diǎn)可以實(shí)現可靠的數據通信,可以實(shí)現電動(dòng)車(chē)的加減速和勻速運行。在本電動(dòng)車(chē)控制系統中,設計的CAN通信節點(diǎn)體積小、功耗低、處理能力強、抗干擾性好,能在電磁環(huán)境復雜的環(huán)境中穩定、可靠地工作。在電動(dòng)車(chē)控制系統中可實(shí)現數據的實(shí)時(shí)快速通信,可靠性
評論