《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于CAN總線的電動(dòng)車控制系統(tǒng)設(shè)計(jì)方案
基于CAN總線的電動(dòng)車控制系統(tǒng)設(shè)計(jì)方案
摘要: 本文設(shè)計(jì)了一種基于CAN總線的電動(dòng)汽車整車電子控制系統(tǒng),本系統(tǒng)采用短幀的報(bào)文結(jié)構(gòu),,數(shù)據(jù)傳輸時(shí)間短,,具有很強(qiáng)的抗干擾性,具有高效的非破壞總線仲裁,,出錯(cuò)檢測(cè)和故障自動(dòng)關(guān)閉等優(yōu)點(diǎn),。
Abstract:
Key words :

 隨著現(xiàn)代汽車的快速發(fā)展,汽車電子設(shè)備不斷增加,,傳統(tǒng)的接線方式已遠(yuǎn)遠(yuǎn)不能滿足汽車愈加復(fù)雜的控制系統(tǒng)要求,,汽車控制局域網(wǎng)CAN總線應(yīng)運(yùn)而生,它廣泛應(yīng)甩于汽車電子控制系統(tǒng)中,,也是唯一一個(gè)成為國(guó)際標(biāo)準(zhǔn)的汽車局域網(wǎng),。

目前,由于環(huán)境污染和能源危機(jī)問題日益嚴(yán)重,,電動(dòng)汽車的發(fā)展開始得到各國(guó)的高度重視,成為未來汽車發(fā)展的主流方向,。電動(dòng)汽車主要具有三大關(guān)鍵技術(shù):驅(qū)動(dòng)控制系統(tǒng),、電池電源、整車電子控制系統(tǒng),。整車電子控制系統(tǒng)必須滿足純電動(dòng)汽車的設(shè)計(jì)理念,,使之既節(jié)能又簡(jiǎn)單可靠。在目前電池技術(shù)水平下,,解決兩大關(guān)鍵技術(shù),,有助于電動(dòng)汽車在中國(guó)首先市場(chǎng)化,其經(jīng)濟(jì)意義不言而喻,。 電動(dòng)汽車動(dòng)力系統(tǒng)結(jié)構(gòu)復(fù)雜多樣,,部件類型繁多。先進(jìn)高效的控制體系結(jié)構(gòu),,可以使電動(dòng)汽車各動(dòng)力系統(tǒng)之間的數(shù)據(jù)交換滿足簡(jiǎn)單迅速,、可靠性高、抗干擾能力強(qiáng),、實(shí)時(shí)性好,、系統(tǒng)錯(cuò)誤檢測(cè)和隔離能力強(qiáng)等要求。

本文設(shè)計(jì)了一種基于CAN總線的電動(dòng)汽車整車電子控制系統(tǒng),,本系統(tǒng)采用短幀的報(bào)文結(jié)構(gòu),,數(shù)據(jù)傳輸時(shí)間短,,具有很強(qiáng)的抗干擾性,具有高效的非破壞總線仲裁,,出錯(cuò)檢測(cè)和故障自動(dòng)關(guān)閉等優(yōu)點(diǎn),。

1 控制系統(tǒng)整體結(jié)構(gòu)


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

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

  2 CAN總線節(jié)點(diǎn)的硬件電路設(shè)計(jì)

CAN是ControllerAreaNetwork的縮寫,是ISO國(guó)際標(biāo)準(zhǔn)化的串行通信協(xié)議,。在當(dāng)前的汽車產(chǎn)業(yè)中,,出于對(duì)安全性、舒適性,、方便性,、低公害、低成本的要求,,各種各樣的電子控制系統(tǒng)被開發(fā)了出來,。由于這些系統(tǒng)之間通信所用的數(shù)據(jù)類型及對(duì)可靠性的要求不盡相同,由多條總線構(gòu)成的情況很多,,線束的數(shù)量也隨之增加,。為適應(yīng)"減少線束的數(shù)量"、"通過多個(gè)LAN,進(jìn)行大量數(shù)據(jù)的高速通信"的需要,,1986年德國(guó)電氣商博世公司開發(fā)出面向汽車的CAN通信協(xié)議,。此后,CAN通過ISO11898及ISO11519進(jìn)行了標(biāo)準(zhǔn)化,,現(xiàn)在在歐洲已是汽車網(wǎng)絡(luò)的標(biāo)準(zhǔn)協(xié)議?,F(xiàn)在,CAN的高性能和可靠性已被認(rèn)同,,并被廣泛地應(yīng)用于工業(yè)自動(dòng)化,、船舶、醫(yī)療設(shè)備、工業(yè)設(shè)備等方面?,F(xiàn)場(chǎng)總線是當(dāng)今自動(dòng)化領(lǐng)域技術(shù)發(fā)展的熱點(diǎn)之一,,被譽(yù)為自動(dòng)化領(lǐng)域的計(jì)算機(jī)局域網(wǎng)。它的出現(xiàn)為分布式控制系統(tǒng)實(shí)現(xiàn)各節(jié)點(diǎn)之間實(shí)時(shí),、可靠的數(shù)據(jù)通信提供了強(qiáng)有力的技術(shù)支持,。

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

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

在微控制器和CAN總線收發(fā)器之間,采用了2個(gè)高速光電耦合器6N137進(jìn)行電氣隔離,,防止將總線干擾引入系統(tǒng),,提高了系統(tǒng)的可靠性。同時(shí),,在節(jié)點(diǎn)端部接有1個(gè)120 Ω終端匹配電阻,,提高了數(shù)據(jù)通信的抗干擾性。

3 CAN通信協(xié)議的設(shè)計(jì)


根據(jù)ISO/OSI模型,,CAN總線規(guī)范了只制定了數(shù)據(jù)鏈路層中的媒體訪問子層和一小部分的邏輯鏈路控制子層,,CAN的ISO標(biāo)準(zhǔn)規(guī)定了總線及驅(qū)動(dòng)器的電氣特性。因此需要根據(jù)自己的需求設(shè)計(jì)通信協(xié)議,。

CAN協(xié)議標(biāo)準(zhǔn)2.0B的數(shù)據(jù)幀的ID長(zhǎng)度為29位,,為擴(kuò)展格式數(shù)據(jù)幀結(jié)構(gòu),如圖3所示,。

數(shù)據(jù)幀由幀起始,、仲裁段、控制段,、數(shù)據(jù)段,、CRC段、ACK段,、幀結(jié)束組成,。協(xié)議的設(shè)計(jì)是對(duì)標(biāo)識(shí)符和數(shù)據(jù)位的定義。

本系統(tǒng)協(xié)議的設(shè)計(jì)參照SAEJ1939協(xié)議標(biāo)準(zhǔn),,標(biāo)識(shí)符分配為優(yōu)先級(jí)(P),、保留位(R)、數(shù)據(jù)頁(yè)(DP),、代碼域(PF),、目標(biāo)域(PS)、源地址(SA)和數(shù)據(jù)域(DF)7個(gè)部分,。根據(jù)需求定義了5個(gè)報(bào)文,,報(bào)文標(biāo)識(shí)符定義如表1所示。

整車控制器的節(jié)點(diǎn)地址為OxA7;BMS節(jié)點(diǎn)地址為OxE4;CCS節(jié)點(diǎn)地址為OxE5;電機(jī)控制器節(jié)點(diǎn)地址為OxE6.

根據(jù)實(shí)際需求,,設(shè)計(jì)了5個(gè)報(bào)文,,分別為:BMS發(fā)給CCS和電機(jī)控制器的2個(gè)報(bào)文,,CCS和電機(jī)控制器發(fā)給整車控制器的2個(gè)報(bào)文,整車控制器發(fā)給電機(jī)的報(bào)文,。根據(jù)信息的重要程度,,將電機(jī)控制器和整車控制器間的報(bào)文設(shè)計(jì)為最高優(yōu)先級(jí)3,其他報(bào)文優(yōu)先級(jí)設(shè)計(jì)為6.

  4 CAN總線節(jié)點(diǎn)的軟件設(shè)計(jì)

系統(tǒng)采用基于C語(yǔ)言的程序設(shè)計(jì)。在IAB開發(fā)環(huán)境下進(jìn)行調(diào)試和仿真,。整車控制節(jié)點(diǎn)的軟件設(shè)計(jì)主要包括4個(gè)部分:CAN控制器的初始化,、報(bào)文發(fā)送、報(bào)文接收和錯(cuò)誤處理,。

4.1 CAN控制器的初始化

在啟動(dòng)CAN通信前必需進(jìn)行CAN模塊的初始化,,包括硬件使能、CAN工作模式設(shè)置,、總線波特率設(shè)置,、設(shè)置中斷、驗(yàn)收過濾器設(shè)置等,。初始化操作在CAN模塊復(fù)位的模式下進(jìn)行,。初始化程序流程圖如圖4所示。

本設(shè)計(jì)中采用的是29位擴(kuò)展標(biāo)示符,,符合CAN2.0B的標(biāo)準(zhǔn),,所以在驗(yàn)收屏蔽過濾器設(shè)置中進(jìn)行相應(yīng)的設(shè)定。同時(shí),,本設(shè)計(jì)的CAN波特率設(shè)置為250 Kb/s,與總線上其他節(jié)點(diǎn)的波特率相同,,才能進(jìn)行正常的通信。

4.2 數(shù)據(jù)的發(fā)送

對(duì)CAN數(shù)據(jù)的發(fā)送采用查詢方式,,提高處理器的效率,,STM32F103VE的CAN模塊有3個(gè)發(fā)送郵箱,發(fā)送報(bào)文的流程為:應(yīng)用程序選擇一個(gè)空發(fā)送郵箱,;設(shè)置標(biāo)識(shí)符,,數(shù)據(jù)長(zhǎng)度和待發(fā)送數(shù)據(jù);對(duì)CAN+TixR寄存器的TXRQ位置1,請(qǐng)求發(fā)送,;一旦CAN總線進(jìn)入空閑狀態(tài),,發(fā)送郵箱中的報(bào)文則立即發(fā)送,成功發(fā)送后,,郵箱為空,;通過查詢CAN_TSR寄存器的TXOK位來查詢報(bào)文是否發(fā)送成功,。數(shù)據(jù)發(fā)送程序的流程圖如圖5所示,。


4.3 數(shù)據(jù)的接收

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


4.4 錯(cuò)誤處理

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

  5 結(jié)論

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

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