《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于CAN總線的電動車控制系統(tǒng)設(shè)計
基于CAN總線的電動車控制系統(tǒng)設(shè)計
電子設(shè)計工程
沈 瑤 李小清 周云飛
摘要: 針對電動汽車具有良好的能源和環(huán)保等性能,提出一種基于CAN總線的電動車控制系統(tǒng)設(shè)計方案,,該控制系統(tǒng)能提高電動車控制系統(tǒng)間的通信可靠性,,實現(xiàn)電池管理系統(tǒng)、電機(jī)控制器,、充電機(jī)和整車控制器的實時通信和集中管理,,使電動車運(yùn)行更加實時和穩(wěn)定。詳細(xì)論述了系統(tǒng)的總體結(jié)構(gòu),、CAN通信協(xié)議協(xié)議的制定,、節(jié)點硬件電路設(shè)計及軟件設(shè)計。經(jīng)過實驗,,各節(jié)點間通信實時可靠,,驗證了電動車控制系統(tǒng)的可靠性和正確性。
Abstract:
Key words :

  當(dāng)前全球汽車工業(yè)面臨金融危機(jī)和能源環(huán)境問題的巨大挑戰(zhàn),,實現(xiàn)汽車能源動力系統(tǒng)的電氣化,,已經(jīng)成為汽車產(chǎn)業(yè)的趨勢。提高電動汽車上的各個控制單元間通信的可靠性和實現(xiàn)高傳輸速率,,選擇CAN總線協(xié)議,。CAN總線為多主工作方式,網(wǎng)絡(luò)上任何節(jié)點均可在任意時刻向其他節(jié)點發(fā)送信息,。它采用非破壞性的基于優(yōu)先權(quán)的總線仲裁技術(shù),,可靠性高。CAN總線通信距離長達(dá)10 km,,通信速率最高可達(dá)1 Mb/s,。CAN通信系統(tǒng)抗干擾性好,工作穩(wěn)定,。某個節(jié)點出現(xiàn)故障,,不會導(dǎo)致整個系統(tǒng)通信的不正常。由于采用短幀的報文結(jié)構(gòu),,數(shù)據(jù)傳輸時間短,,具有很強(qiáng)的抗干擾性,具有高效的非破壞總線仲裁,,出錯檢測和故障自動關(guān)閉等優(yōu)點,。

1 控制系統(tǒng)整體結(jié)構(gòu)
   
電動車控制系統(tǒng)由電池管理,、充電機(jī)、電動機(jī)和整車控制等模塊組成,。本系統(tǒng)總體結(jié)構(gòu)如圖1所示,。


    由圖1知,CAN通信網(wǎng)絡(luò)上共有4個通信節(jié)點,。整車控制器接收BMS,、CCS、電機(jī)控制器的報文提供的各種參數(shù),;充電機(jī)接收BMS發(fā)送的控制信息并根據(jù)報文數(shù)據(jù)的電壓電流設(shè)置來工作,;電機(jī)控制器接收BMS發(fā)送的電池狀態(tài)信息設(shè)置來工作,同時電機(jī)控制器接收由整車控制器發(fā)送的控制信息并根據(jù)報文數(shù)據(jù)的轉(zhuǎn)矩設(shè)置來工作,。

2 CAN總線節(jié)點的硬件電路設(shè)計
   
整車控制模塊這一節(jié)點所實現(xiàn)的功能主要是接收其他節(jié)點的數(shù)據(jù)信息,,通過控制算法等進(jìn)行數(shù)據(jù)處理,然后發(fā)送控制信息給電機(jī)控制器,,從而實現(xiàn)電動車的正常功能運(yùn)行,。
    整車控制節(jié)點是基于STM32F103VE設(shè)計的。ARMCortex TM-M3是一款高性能,、低成本,、低功耗的32位BISC處理器,可在高達(dá)72 MHz的頻率下運(yùn)行,,擁有512 KB的片內(nèi)Flash程序存儲器,,具有64 KB的RAM數(shù)據(jù)存儲器,可進(jìn)行高性能的CPU訪問,。該徽控制器包含1個USB2.0全速(12 Mb/s)設(shè)備,、1路CAN2.0B通道、1個通用DMA控制器,、3個16位的A/D轉(zhuǎn)換器和1個16位的D/A轉(zhuǎn)換器,。同時該微控制器具有4個16位捕獲/比較定時器和1個看門狗定時器,因此ARM cortexTM-M3可以滿足電動車控制的需要,,減少了系統(tǒng)硬件設(shè)計的復(fù)雜度,。STM32F103VE支持J-Link實時仿真和跟蹤,內(nèi)部搭載有1通道的支持CAN20.B規(guī)格的CAN控制器,,使得CAN通信模塊的設(shè)計更加方便,。整車控制節(jié)點硬件電路圖如圖2所示,由徽控制器STM32F103VE,、CAN總線收發(fā)器82C250,、2個高速光耦16N137等組成,。


    STM32F103VE采用單電源供電,,時鐘由8 MHz外部晶振產(chǎn)生,。對Flash存儲器的編程通過J-Link進(jìn)行編程(IAR)實現(xiàn)。STM32F103VE內(nèi)部集成一路CAN控制器,,簡化了傳統(tǒng)單片機(jī)外接CAN控制器和CAN收發(fā)器的復(fù)雜外圍電路,。收發(fā)器82C250是CAN控鑭器和物理總線之問的驅(qū)動器接口,它可以提供對總線的差動發(fā)送能力和對CAN控制器的差動接收能力,,其位速度高達(dá)1Mb/s,,與ISO11898標(biāo)準(zhǔn)兼容。它的斜率控制功能使電磁兼容性能增強(qiáng),,準(zhǔn)備模式可以減少網(wǎng)絡(luò)的功耗,,準(zhǔn)備模式中,網(wǎng)絡(luò)一旦檢測到總線上有報文就會被立即激活,。同時,,它可提供更強(qiáng)抗干擾能力,以及有熱保護(hù),、短路保護(hù),、支持多達(dá)110個節(jié)點等好處。
    在微控制器和CAN總線收發(fā)器之間,,采用了2個高速光電耦合器6N137進(jìn)行電氣隔離,,防止將總線干擾引入系統(tǒng),提高了系統(tǒng)的可靠性,。同時,,在節(jié)點端部接有1個120 Ω終端匹配電阻,提高了數(shù)據(jù)通信的抗干擾性,。

3 CAN通信協(xié)議的設(shè)計
   
根據(jù)ISO/OSI模型,,CAN總線規(guī)范了只制定了數(shù)據(jù)鏈路層中的媒體訪問子層和一小部分的邏輯鏈路控制子層,CAN的ISO標(biāo)準(zhǔn)規(guī)定了總線及驅(qū)動器的電氣特性,。因此需要根據(jù)自己的需求設(shè)計通信協(xié)議,。
    CAN協(xié)議標(biāo)準(zhǔn)2.0B的數(shù)據(jù)幀的ID長度為29位,為擴(kuò)展格式數(shù)據(jù)幀結(jié)構(gòu),,如圖3所示,。


    數(shù)據(jù)幀由幀起始、仲裁段,、控制段,、數(shù)據(jù)段、CRC段,、ACK段,、幀結(jié)束組成。協(xié)議的設(shè)計是對標(biāo)識符和數(shù)據(jù)位的定義,。
    本系統(tǒng)協(xié)議的設(shè)計參照SAEJ1939協(xié)議標(biāo)準(zhǔn),,標(biāo)識符分配為優(yōu)先級(P),、保留位(R)、數(shù)據(jù)頁(DP),、代碼域(PF),、目標(biāo)域(PS)、源地址(SA)和數(shù)據(jù)域(DF)7個部分,。根據(jù)需求定義了5個報文,,報文標(biāo)識符定義如表1所示。


    整車控制器的節(jié)點地址為OxA7,;BMS節(jié)點地址為OxE4,;CCS節(jié)點地址為OxE5;電機(jī)控制器節(jié)點地址為OxE6,。
    根據(jù)實際需求,,設(shè)計了5個報文,分別為:BMS發(fā)給CCS和電機(jī)控制器的2個報文,,CCS和電機(jī)控制器發(fā)給整車控制器的2個報文,,整車控制器發(fā)給電機(jī)的報文。根據(jù)信息的重要程度,,將電機(jī)控制器和整車控制器間的報文設(shè)計為最高優(yōu)先級3,,其他報文優(yōu)先級設(shè)計為6。

4 CAN總線節(jié)點的軟件設(shè)計
   
系統(tǒng)采用基于C語言的程序設(shè)計,。在IAB開發(fā)環(huán)境下進(jìn)行調(diào)試和仿真,。整車控制節(jié)點的軟件設(shè)計主要包括4個部分:CAN控制器的初始化、報文發(fā)送,、報文接收和錯誤處理,。
4.1 CAN控制器的初始化
   
在啟動CAN通信前必需進(jìn)行CAN模塊的初始化,包括硬件使能,、CAN工作模式設(shè)置,、總線波特率設(shè)置、設(shè)置中斷,、驗收過濾器設(shè)置等,。初始化操作在CAN模塊復(fù)位的模式下進(jìn)行。初始化程序流程圖如圖4所示,。


    本設(shè)計中采用的是29位擴(kuò)展標(biāo)示符,,符合CAN2.0B的標(biāo)準(zhǔn),所以在驗收屏蔽過濾器設(shè)置中進(jìn)行相應(yīng)的設(shè)定,。同時,,本設(shè)計的CAN波特率設(shè)置為250 Kb/s,與總線上其他節(jié)點的波特率相同,,才能進(jìn)行正常的通信,。
4.2 數(shù)據(jù)的發(fā)送
   
對CAN數(shù)據(jù)的發(fā)送采用查詢方式,,提高處理器的效率,STM32F103VE的CAN模塊有3個發(fā)送郵箱,,發(fā)送報文的流程為:應(yīng)用程序選擇一個空發(fā)送郵箱,;設(shè)置標(biāo)識符,,數(shù)據(jù)長度和待發(fā)送數(shù)據(jù),;對CAN+TixR寄存器的TXRQ位置1,請求發(fā)送,;郵箱進(jìn)入掛號狀態(tài),,等待發(fā)送;一旦CAN總線進(jìn)入空閑狀態(tài),,發(fā)送郵箱中的報文則立即發(fā)送,,成功發(fā)送后,郵箱為空,;通過查詢CAN_TSR寄存器的TXOK位來查詢報文是否發(fā)送成功,。數(shù)據(jù)發(fā)送程序的流程圖如圖5所示。


4.3 數(shù)據(jù)的接收
   
對CAN報文的接收采用中斷方式,,提高通信的實時性,。接收報文的流程如圖6所示。當(dāng)CAN總線發(fā)來一個報文,,根據(jù)屏蔽過濾器設(shè)置的標(biāo)識符進(jìn)行過濾,,如果是要接收的報文,則CAN控制器將總線上的報文按順序存入接收FIFO,,并進(jìn)入接收中斷,,在中斷中對接收FIFO中的報文進(jìn)行存儲,然后釋放FIFO郵箱,。如果不釋放郵箱,,當(dāng)總線上再發(fā)送過來報文時,會直接覆蓋上一個報文,,從而導(dǎo)致報文丟失,。數(shù)據(jù)接收程序流程如圖6所示。


4.4 錯誤處理
   
電動車的整車控制器需要接收BMS,、CCS和電機(jī)控制器這3個節(jié)點發(fā)來的報文,,如果超過1 s未接收到例如BMS的報文,則通信鏈路超時,,此時需要進(jìn)行故障處理,。所以在軟件設(shè)計時,定義一個全局變量,,在每個定時周期中加1,,在接收BMS報文中斷中,,對此變量清零,則可以實現(xiàn)通信超時檢測,。當(dāng)總線發(fā)生嚴(yán)重故障時,,CAN節(jié)點錯誤寄存器累積到一定次數(shù)時,CAN控制器會關(guān)閉總線,,節(jié)點脫離總線,。

5 結(jié)論
   
在實車實驗中,各個節(jié)點可以實現(xiàn)可靠的數(shù)據(jù)通信,,可以實現(xiàn)電動車的加減速和勻速運(yùn)行,。在本電動車控制系統(tǒng)中,設(shè)計的CAN通信節(jié)點體積小,、功耗低,、處理能力強(qiáng)、抗干擾性好,,能在電磁環(huán)境復(fù)雜的環(huán)境中穩(wěn)定,、可靠地工作。在電動車控制系統(tǒng)中可實現(xiàn)數(shù)據(jù)的實時快速通信,,可靠性強(qiáng),。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。