基于CAN總線的分布式電池管理系統(tǒng)
摘要:主要探討了汽車和電動汽車數(shù)字化技術(shù)、計算機(jī)控制系統(tǒng)的結(jié)構(gòu)以及現(xiàn)場通訊的相關(guān)問題。以蓄電池能源系統(tǒng)為應(yīng)用背景,研究和設(shè)計出采用雙CAN總線作為內(nèi)外通訊方式及具有多模塊分布式結(jié)構(gòu)的管理系統(tǒng)。該系統(tǒng)分為若干模塊,分別實現(xiàn)各自獨立的功能,包括數(shù)據(jù)采集、測量多路電壓、電流和溫度、進(jìn)行電量估算和通訊管理以及大液晶屏的顯示。
為滿足系統(tǒng)發(fā)展所需要的高性能、安全性和可擴(kuò)展的要求,提出雙CAN總線通訊、分布處理的管理系統(tǒng)結(jié)構(gòu)思想。重點介紹了CAN總線設(shè)計、電路和應(yīng)用的技術(shù)問題。關(guān)鍵詞:電池管理系統(tǒng);CAN總線;分布結(jié)構(gòu);電動汽車
Distributed Battery Management System Basedon CAN Bus
LIAN Zi-feng,ZHENG Hang-bo,QI Guo-guang
Abstract:The digital technology of vehicle and electronic vehicle (EV), with the emphasis on the structure of the system controlled by computer and something about the communication are mainly discussed.The management system which has been studied and designed uses double CAN(Controller Area Network) bus as its interior and exterior communication method. The system adopts distributed structure and consists of several modules, each of which realizes its special function, such as data collection, the measure of multi loop voltage,current and temperature, the computing of the SOC(State of Charge), the management of communication and liquid? crystal display.
In order to fulfill the need of high performance, security and extend for the system,some ideas, including communication with double CAN bus and distributed process are putted forward. The CAN bus design,the circuit and the technological problem in the application of CAN bus are also discussed.
Keywords:Battery management system (BMS); CAN bus; Distributed structure; EV
1 前言
隨著高科技及其產(chǎn)業(yè)的迅速發(fā)展,大存儲容量的電池組能源系統(tǒng)已經(jīng)越來越被人們所重視,在很多領(lǐng)域中都得到廣泛地應(yīng)用,如在汽車產(chǎn)業(yè)發(fā)展的新方向、新熱點——電動汽車及混合動力車的研究及產(chǎn)業(yè)化中,將作為車載能源的主要供給者。
蓄電池組是由一定數(shù)量的單體電池串聯(lián)組成的,它可以進(jìn)行百次至千次的充放電;在使用中必須注意其各個單體電池的各種特性、電池溫度、電池的剩余電量及總電流等參數(shù),因為這些參數(shù)直接影響電池的使用壽命,必須做到優(yōu)化運行和有效監(jiān)控,防止電池出現(xiàn)過充、過放及溫度過高等問題,從而延長電池的使用壽命和降低成本,特別是提高電池的可靠性??梢园呀o電池組配套的電子、控制及數(shù)字技術(shù)稱為數(shù)字“電池電子技術(shù)”。同樣在汽車的電子、數(shù)字技術(shù)中,已經(jīng)使用多個CPU完成各種參數(shù)、功能的控制問題,考慮汽車的安全性,運行必須十分可靠,于是發(fā)展了并聯(lián)的獨立多個系統(tǒng)結(jié)構(gòu),再由現(xiàn)場總線聯(lián)接,組成統(tǒng)一的大系統(tǒng)。
2 分布式結(jié)構(gòu)的管理系統(tǒng)
2.1 系統(tǒng)結(jié)構(gòu)
系統(tǒng)要實現(xiàn)不同類型的多種功能,集中的或中央處理方式無法滿足安全性要求,自然要采用分布式結(jié)構(gòu) ; 系 統(tǒng) 的 工 作 環(huán) 境 惡 劣 , 常 處 于 強(qiáng) 電 磁 干 擾 及 脈 沖 電 流 的 干 擾 下 , 為 了 確 保 可 靠 性 , 考 慮 采 用 和 發(fā) 展 了 高 性 能CAN現(xiàn) 場 總 線 作 為 通 訊 系 統(tǒng) ; 而 且CAN總 線 在 汽 車 上 已 使 用 很 久 , 具 有 很 強(qiáng) 的 抗 干 擾 性 , 同 時 該 技 術(shù) 比 較 成 熟 , 已 成 為 汽 車 使 用 通 訊 的 標(biāo) 準(zhǔn) 。 因 此 , 在 系 統(tǒng) 的 內(nèi) 部 通 訊 以 及 跟 外 部 通 訊 都 采 用CAN總 線 來 實 現(xiàn) 。
本分布系統(tǒng)是以CPU80C552為公用模塊平臺來設(shè)計的,由于CPU存儲空間及運算的有限性,必須采用多CPU來分別實現(xiàn)管理系統(tǒng)所需的各種功能。完成的基本系統(tǒng)由四個模塊并行組成:數(shù)據(jù)采集、均衡充電、電量估計及通訊顯示;各個模塊分別實現(xiàn)其功能,通過CAN總線進(jìn)行數(shù)據(jù)通訊,能夠?qū)崿F(xiàn)單電池電壓、總電壓、充放電電流、溫度的采集和測量,電量估算。同時,系統(tǒng)還具有很強(qiáng)的擴(kuò)展性,可以進(jìn)行具體的電池診斷和電池安全性能保護(hù)等功能的研究和開發(fā)。在鋰電池的管理系統(tǒng)中,108只電池采用9塊測量主板,再加上4塊基本板,共計13塊板。
圖1 電 池 管 理 系 總 體 結(jié) 構(gòu) 圖
2.2 管理系統(tǒng)主模塊的設(shè)計
系統(tǒng)的主要功能包括數(shù)據(jù)采集、電量估計及顯示診斷等。由于80C552具有8路10位A/D轉(zhuǎn)換的功能,因此,采集模塊先采用線性光耦法測量單電池的電壓,通過其4個A/D口將模擬量轉(zhuǎn)換為數(shù)字量存入存儲器,溫度測量采用單總線技術(shù),使用Dallas數(shù)字芯片來測量溫度,該芯片具有12位的精度等級,能非常準(zhǔn)確地測量到系統(tǒng)的溫度??傠妷骸㈦娏餍盘柾ㄟ^特殊的傳感器將其信號轉(zhuǎn)換為0~10V的信號,通過14位的A/D轉(zhuǎn)換器件轉(zhuǎn)換為數(shù)字量存入系統(tǒng)。
通訊及顯示模塊提供了雙CAN通訊接口,能夠與系統(tǒng)內(nèi)各個模塊及外部整車系統(tǒng)通過CAN進(jìn)行數(shù)據(jù)傳輸;同時系統(tǒng)提供RS232接口,能夠?qū)崿F(xiàn)與PC機(jī)通訊;模塊還提供5口寸半液晶顯示驅(qū)動功能,和按鍵進(jìn)行人機(jī)友好操作;模塊還設(shè)有電壓、電量、電流及溫度的上下限報警及自檢功能,保證系統(tǒng)的安全性。
各個系統(tǒng)模塊的基本結(jié)構(gòu)框圖如圖2所示。
圖2 模 塊 結(jié) 構(gòu) 框 圖 [!--empirenews.page--]
2.3 電量估算
電量估算采用實時電流積分的安時法進(jìn)行基本估算,然后通過對影響電池電量的溫度、自放電及老化等各種參數(shù)進(jìn)行修正,并考慮單塊電池間的不一致性,從而得到精確的電池組電量。
圖3 電 池 電 量 估 算 框 圖
3 CAN總線系統(tǒng)
3.1 CAN簡介
CAN總線是現(xiàn)場總線的一種,是德國Bosch公司在1986年為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行高速數(shù)據(jù)通信總線。它采用了ISO/OSI模型的七層結(jié)構(gòu)中的物理層和數(shù)據(jù)鏈路層,具有較高的可靠性、實時性和靈活性。
CAN總線具有以下獨特的優(yōu)點:
1)CAN能以多主方式工作,網(wǎng)絡(luò)上任意一個節(jié)點均可以在任意時刻向網(wǎng)絡(luò)上其他節(jié)點發(fā)送信息,而不分主從,通信方式靈活;
2)CAN可以實現(xiàn)點對點、一點對多點及全局廣播等方式傳送和接受數(shù)據(jù),通信介質(zhì)采用雙絞線、同軸電纜或光纖,選擇靈活,通信距離最遠(yuǎn)可達(dá)10km/5kb/s,通信速率最高可達(dá)1Mb/s/40m。CAN上節(jié)點數(shù)取決于總線驅(qū)動電路,實際可達(dá)110個;
3)CAN節(jié)點在錯誤嚴(yán)重的情況下,具有自動關(guān)閉輸出的功能,切斷它與總線的聯(lián)系,以使總線上其它操作不受影響。采用NRZ編碼/解碼方式,并采用位填充技術(shù)。用戶接口簡單,編程方便,很容易構(gòu)成用戶系統(tǒng);
4)CAN采用非破壞性仲裁技術(shù),當(dāng)兩個節(jié)點同時向網(wǎng)絡(luò)上傳送信息時,優(yōu)先級低的節(jié)點主動停止數(shù)據(jù)發(fā)送,而優(yōu)先級高的節(jié)點可不受影響地繼續(xù)傳輸數(shù)據(jù),有效避免了總線沖突。
5)CAN采用短幀結(jié)構(gòu),每一幀為8bite,傳輸時間短,受干擾的概率低,每幀信息都有CRC校驗及其它檢錯措施,保證了數(shù)據(jù)的出錯率極低。
3.2 CAN總線設(shè)計
CAN總線總體結(jié)構(gòu)如圖4所示,在總線的兩端配置了兩個120Ω的電阻,其作用是總線匹配阻抗,可以增加總線傳輸?shù)姆€(wěn)定性和抗干擾能力,減少數(shù)據(jù)傳輸中的出錯率。CAN總線節(jié)點結(jié)構(gòu)一般分為兩類:一類采用CAN適配卡與PC機(jī)相連,實現(xiàn)上位機(jī)與CAN總線的通訊;另一類則是由單片機(jī)、CAN控制器及CAN驅(qū)動器構(gòu)成,作為一類節(jié)點與CAN總線進(jìn)行數(shù)據(jù)傳輸。在本系統(tǒng)中,CAN控制器采用Philips公司生產(chǎn)的SJA1000和82C200,它作為一個發(fā)送、接受緩沖器,實現(xiàn)主控制器和總線之間的數(shù)據(jù)傳輸;CAN收發(fā)器采用PCA82C250芯片,它是CAN控制器和物理總線的接口,主要可以提供對總線的差動發(fā)送能力和對CAN控制器的差動接受能力。
圖4 CAN總 線 系 統(tǒng) 結(jié) 構(gòu) 圖
4 CAN總線的軟件設(shè)計
CAN總線的三層結(jié)構(gòu)模型為:物理層、數(shù)據(jù)鏈路層和應(yīng)用層。其中物理層和數(shù)據(jù)鏈路層的功能由SJA1000完成,系統(tǒng)的開發(fā)主要在應(yīng)用層軟件的設(shè)計上,它主要由三個子程序:初始化子程序、發(fā)送數(shù)據(jù)和接收數(shù)據(jù)程序。同時,還包括一些數(shù)據(jù)溢出中斷以及幀出錯的處理。
SJA1000在上電硬件復(fù)位之后,必須對其進(jìn)行軟件初始化之后才可以進(jìn)行數(shù)據(jù)通訊,初始化過程主要包括對其復(fù)位模式下配置時鐘分頻寄存器CDR、總線定時寄存器BTR0和BTR1、驗收代碼寄存器ACR、驗收屏蔽寄存器AMR及輸出控制寄存器OCR等,實現(xiàn)對總線的速率、驗收屏蔽碼、輸出引腳驅(qū)動方式、總線模式及時鐘分頻進(jìn)行定義。具體的流程如圖5所示。下面為SJA1000發(fā)送和接收數(shù)據(jù)的流程,基本過程為主控制器將數(shù)據(jù)保存到SJA1000發(fā)送緩沖器,然后對命令寄存器的發(fā)送請求TR標(biāo)志位進(jìn)行置位開始發(fā)送;接收過程為SJA1000將從總線上接收到的數(shù)據(jù)存入接收緩沖器,通過其中斷標(biāo)志位通知主控制器來處理接收到的信息,接收完畢之后清空緩沖器,等待下次接收,具體的流程如圖6和圖7所示。
圖 5 CAN總 線 初 始 化
圖 6 CAN的 發(fā) 送 數(shù) 據(jù) 流 程 [!--empirenews.page--]
圖 7 CAN接 收 數(shù) 據(jù) 的 流 程
例如:電池管理系統(tǒng)向整車系統(tǒng)發(fā)送總電壓的格式,見表1所列。
表1 BCU_VCU_VOLTAGE(0x08)向VCU送回電池組當(dāng)前的電壓
備注 | ||
---|---|---|
ID | FRM_BCU_VCU | 0x40 |
FrameType | DataFrame | |
DataLength | 3 | |
DataByte0 | BCU_VCU_VOLTAGE | 0x08 |
DataByte1 | VoltageLowByte | LowByte(10×電壓值) |
DataByte2 | VoltageHighByte | HighByte(10×電壓值) |
其中,ID為接收節(jié)點總線的地址,電壓值先乘10取整再發(fā)送,0x08表示發(fā)送幀的內(nèi)容為電池組的電壓。
5 CAN總線應(yīng)用問題
在硬件方面必須考慮合理的供電,注意對各個CAN器件的電源、地之間的濾波,以及復(fù)位電路的設(shè)計;同時在實際進(jìn)行印刷電路板的設(shè)計時,合理布線,要加強(qiáng)地線,增強(qiáng)系統(tǒng)的抗干擾性。
在軟件設(shè)計時,CAN總線定時器的設(shè)置非常關(guān)鍵,BTR0決定傳播時間段、相位緩沖段1和相位緩沖段2;BTR1決定同步跳轉(zhuǎn)寬度和分頻值。在位定時寄存器中,TSEG1,TSEG2,SJW和BRP設(shè)定的值要比其功能值小1,因此設(shè)定范圍是[0.....N-1]而不是[1.....N]。所以位時間可以由[TSEG1+TSEG2+3]tq或者[同步段+傳播段+相位緩沖段1+相位緩沖段2]tq得到,其中,tq由系統(tǒng)時鐘tSCL和波特率預(yù)分頻值BRP決定:tq=BRP/tSCL。同時,還要注意由于不同節(jié)點的CAN系統(tǒng)時鐘是由不同振蕩器提供的,每個節(jié)點的實際CAN系統(tǒng)時鐘頻率與實際位時有一容差,環(huán)境溫度的變化和振蕩器老化影響起始容差,為確保準(zhǔn)確地進(jìn)行數(shù)據(jù)傳輸,必須保證每個節(jié)點對CAN系統(tǒng)時鐘頻率都在特定的頻率容差限值以內(nèi),因此,在選擇振蕩器時要以對振蕩器容差范圍要求最高的節(jié)點為準(zhǔn)。而且,在一個可以擴(kuò)展的總線結(jié)構(gòu)中,最大節(jié)點延遲和總線最大長度必須考慮,一般情況下,延遲為5.5ns/m。
在實際運行中,經(jīng)常會遇到CAN總線不通或者總線突然關(guān)閉現(xiàn)象,其主要原因是由于在數(shù)據(jù)傳輸過程中出現(xiàn)丟幀現(xiàn)象,從而引起出錯,當(dāng)錯誤計數(shù)器達(dá)到一定時會自動關(guān)閉總線,因此,必須在軟件設(shè)計的過程中,及時對其錯誤狀態(tài)ES位進(jìn)行判別,在出現(xiàn)錯誤時需對SJA1000進(jìn)行軟件復(fù)位,恢復(fù)通訊。
6 結(jié)語
在“863重大專項”電動汽車的電池管理模塊的研制中,就是采用CAN總線通訊的分布式結(jié)構(gòu)。通過對鎳氫電池組、鋰電池組的臺架試驗結(jié)果表明了系統(tǒng)結(jié)構(gòu)的先進(jìn)性,實現(xiàn)了各模塊的獨自功能,工作正常可靠,鋰電池組系統(tǒng)的CAN總線的節(jié)點數(shù)增加到12,在強(qiáng)電磁干擾下,仍能正常工作,而且線路連接十分簡單、實用。
兩種電池組的參數(shù)、測量方法、電池個數(shù)、安全要求都不相同,分組也不一樣,但系統(tǒng)均能有效地適應(yīng),反映出其具有良好的適應(yīng)性和較大的靈活性。