文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.05.016
中文引用格式: 陳如尹,賴松林. 基于事件觸發的充電機與BMS通信設計[J].電子技術應用,2017,43(5):67-69,73.
英文引用格式: Chen Ruyin,Lai Songlin. Design of communication between charger and BMS based on event trigger[J].Application of Electronic Technique,2017,43(5):67-69,73.
0 引言
隨著石油資源的日漸枯竭、環境污染的不斷惡化、溫室效應的不斷加劇,電動汽車(Electric Vehicle,EV)已經成為了國際社會高度關注的熱點問題。伴隨著電動汽車技術的日漸成熟,與之配套的充電設施也隨之發展和普及。近年來,已經投產了一定量的充電站和充電樁,主要包含快充、慢充、更換電池等功能。
電動汽車的充電過程主要是充電機與電池實現物理對接后,通過電池管理系統BMS(Battery Management System)與充電機進行通信,傳遞相關數據信息。充電機對BMS傳輸的數據進行解析和辨識后,調整充電的策略,完成電池的充電過程。因此,充電機與BMS之間的正常通信是保證整個充電系統正常工作的關鍵。
本文提出一種基于事件觸發邏輯的充電機與電池管理系統BMS通信模塊設計,該設計基于國家標準充電協議GB/T 27930-2011《電動汽車非車載傳導式充電機與電池管理系統之間的通信協議》(以下簡稱新國標)所規定的充電機與BMS的通信流程。將該流程以其實現的功能為依據劃分為多個事件,運用CAN總線建立一套可實現與BMS進行數據的請求、接收、解析和應答的通信系統,起到搭建BMS與充電機之間通信橋梁的作用。
1 基于CAN總線的充電機與BMS通信流程解析
新國標規定,BMS與充電機通信的過程可分為為握手階段、參數配置階段、充電階段和充電結束階段。
1.1 握手階段主要通信流程
握手階段是充電機與BMS上電后,主動發送握手請求報文CRM,可視為握手觸發事件。BMS發送電池身份編碼信息BRM給充電機,用于其辨識電池組。
電池身份編碼信息報文BRM包含BMS通信協議版本號和電池類型等信息,最長可達41 B。BMS可啟用數據傳輸協議TC.PM來進行數據的傳輸。
TC.PM協議可視為一連串固定事件的集成,BMS首先發送連接管理請求(TP.CM_RTS),該幀是用于向充電機進行數據發送的請求。充電機收到連接管理請求后,回復TP.CM_CTS報文給BMS,表示已經做好接收數據的準備。
BMS以多幀形式發送電池身份編碼信息BRM,其中每一幀的首字節均為幀編號,后6字節為具體的數據信息。
在接收完電池身份編碼信息BRM后,充電機發送TP.CM_EM報文給BMS,表示數據包已被成功接收。傳輸協議TC.PM的數據交換流程如圖1所示。
1.2 參數配置階段主要通信流程
當BMS收到充電機發送的辨識成功報文后,進入到參數配置階段。
蓄電池充電參數BCP包括最高允許充電電壓、最高允許充電電流和電池額定容量等信息數據。可通過TP.CM數據傳輸協議進行BCP數據的傳輸。
充電機接收到BCP報文后,開始發送時間同步信息報文CTS和充電機最大輸出能力報文CML。BMS根據其內容完成時間的同步和確認充電機的輸出能力,并判斷自身狀態反饋是否能夠開始充電。充電機收到BMS的反饋后,同樣反饋充電機準備狀態。
1.3 充電階段主要通信流程
充電階段BMS和充電機各以不同周期實時發送充電相關數據。
BMS執行發送電池充電需求、充電狀態和電池狀態等信息的事件,主要可用于充電機了解電池的充電狀況,根據需求來調整充電策略。
CCS報文事件為充電機發送的自身實時充電狀態。該報文用于讓BMS監視充電機當前輸出的充電電流、電壓等信息。
當BMS或充電機判斷不能再繼續充電時,會觸發終止充電事件,發送結束充電報文BST或CST,并結束充電階段。
1.4 充電結束階段主要通信流程
當BMS觸發終止充電事件后,主動發送統計數據報文BSD給充電機。同理,當充電機檢測到終止充電命令后,也會發送統計數據報文CSD給BMS。由此充電階段全部完成,充電機和BMS通信結束,等待充電機和BMS下一次握手啟動。
2 基于事件觸發的充電機與BMS通信系統的設計
2.1 硬件設計
本設計運用增強型STM32F103ZET6作為充電機端的通信模塊的開發平臺,運用CAN總線實現數據的請求、接收、辨識和應答等功能。
STM32內部已經集成了CAN總線模塊,支持CAN2.0A和CAN2.0B。因此,需將CAN的通信端口轉換并外接出來,便可以實現運用CAN發送和接收數據。基于STM32的通信系統硬件原理圖如圖2所示。
主芯片STM32主要實現CAN總線數據的發送、接收和處理。PA11和PA12為CAN通信的IO口,通過與TJA1040高速CAN轉換器芯片連接引出CAN_H和CAN_L到外接端口P1上, P1端口用于實現與BMS的CAN端口對接,進行數據的通信。為保證通信的穩定性,并聯120 Ω的R1電阻。
2.2 軟件設計
本設計以實現的功能為依據將通信流程劃分為多個通信事件,并將這些事件按觸發或響應的順序封裝成功能函數。這種方式可以主動規范充電機的動作,避開冗余數據的接收,方便充電機上層軟件的選擇調用。CAN總線的初始化過程中,應將標識符屏蔽寄存器的值置高,表示要ID完全匹配才能進行數據位的傳輸。
數據的辨識主要通過對通信協議中的PGN來判定,PGN是美國汽車工程學會SAE J1939協議中用來識別CAN報文中數據場的參數組,共24 bit。而在新國標中,傳輸的每一組參數都有其固有的PGN值,從000100H~001D00H,通過對PGN值的檢測,可以用于辨識參數組。
2.2.1 充電機請求握手函數
充電機請求握手函數主要實現握手階段中針對BMS相關動作事件的觸發響應,當充電機尚未識別BMS時,主動發送握手請求CRM。隨后通過設立標志位進入循環等待,等待BMS發送的連接管理請求TP.CM_RTS的到來。當接收到連接管理請求后,充電機觸發重置標志位動作,跳出等待循環,并答復CTS已經做好接收數據準備。
BMS發送多字節的電池身份編碼信息BRM,充電機則同樣觸發循環等待數據的到來,并通過對幀編號的判定來確定每個數據所代表的意義。本文中為了方便上層控制端對電池身份編碼信息的識別和調用,將該報文的數據通過一個結構體進行儲存,結構體中每個變量的定義與協議中定義一致。在完全接收BRM后,再度重置循環標志位,跳出循環,并將辨識結果反饋給BMS。
CRM的發送周期為250 ms,發送周期的邏輯主要是通過數據接收過程中的循環計數來配合實現的,在進入循環之前設定一個帶有初值的變量i,每次執行循環判斷時將i的值減小,當i遞減到0時,觸發CRM發送函數,同時重置i。因此,只要確定i的初值,使其遞減到0的時間為250 ms,即可實現CRM每250 ms發送一次。同時一旦充電機跳出循環等待進入新的通信階段,CRM的循環發送也會終止。等待接收和循環定時發送數據功能的流程圖如圖3所示。
充電機握手請求函數可以根據上層軟件的調用改變其發送的充電機辨識報文CRM,同時輸出一個保存有電池身份編碼信息的結構體。
2.2.2 充電機參數配置函數1
充電機參數配置函數1主要是在BMS和充電機進入參數配置過程中時,充電機針對BMS發出的數據請求進行回應,并接收13字節的蓄電池充電參數BCP。
該函數無輸入變量,輸出為一個保存有BCP的結構體。其接收BCP數據和將其保存到結構體中的方式與接收BRM基本一致。
2.2.3 充電機參數配置函數2
充電機在配置函數1中接收BMS發送的蓄電池充電參數BCP,通過參數配置函數2來主動發送時間同步報文CTS和充電機最大輸出能力報文CML給BMS,之后進入循環等待,等待BMS發送的電池充電準備就緒,報文BRO來觸發充電動作,循環等待方式與握手函數中一致。
2.2.4 充電機充電函數
充電階段是整個充電通信過程中的持續時間最長、通信數據量最大的一個階段。
相比之前模塊中按流程順序觸發數據接收,充電函數采用的接收邏輯是統一接收,再通過對不同PGN的判斷,進行數據的辨識。簡而言之,充電機接收BMS發來的所有數據(不再是按照順序只接收固定類型的數據),然后通過內部分析判斷,對接收到的數據進行分類處理。
由于數據的類型和發送周期具有不確定性,所以在該階段對數據的接收不采用之前的循環等待按順序接收固定類型數據的邏輯。在接收之前,首先重新配置CAN總線的標識符設置,將屏蔽寄存器置0,表示可以接收一切ID發來的數據。然后以平等的條件判斷來初步確定每次接收到的數據類型,并針對不同的種類的數據進行深入辨識,將正確的數據儲存到預先定義好的各類結構體中,以供充電機其他模塊的調用。
充電機在接收數據的同時,還以50 ms為周期發送充電機實時充電狀態報文CCS,CCS報文的發送周期的設計邏輯與CRM報文的設計邏輯類似。充電機充電函數程序流程圖如圖4所示。
2.2.5 充電機結束充電函數
本設計中結束充電報文CST的發送采用外部中斷(EXTI)發送,在充電階段的任意時刻,一旦充電機認為滿足終止充電的條件時,便觸發外部中斷事件,發送結束充電報文CST給BMS,報告終止充電的原因,隨后發送統計數據報文CSD。充電機結束充電函數并不是一個單純的外部函數,而是一個集成了外部中斷的功能模塊。
3 結束語
本文以充電機與BMS的新國標通信協議為基礎,提出一種基于事件觸發邏輯的充電機與電池管理系統BMS數據交換和處理的通信系統。
該系統通過新國標協議的事件觸發時序,將數據傳輸流程和識別邏輯劃分為事件單元并封裝成外部功能函數,運用單片機STM32作為開發平臺,可以在一定程度上簡化上層軟件的操作,并容易實現可視化相關數據參數,方便充電機其他模塊的調用。
在實際充電應用中,本系統經過測試,能夠按要求實現對BMS發來的數據進行接收和辨識處理,并做出正確的答復。后續進一步深入開發,可以擴展成充電機與BMS的通信中繼站或通信節點,進一步優化充電機與BMS的通信流程。
參考文獻
[1] [墨]Rodrigo Garcia-Valle,[葡]Joao A.Pecas Lopes.電動汽車融入現代電網[M].北京:機械工業出版社,2014.
[2] 何承坤,宋娟,周唯,等.非車載充電機與BMS通信協議標準解析與對比[J].電子科學技術,2015,2(5):598-603.
[3] 李霽雰,陳陽生,章瑋.基于CAN總線的電動汽車中繼站研究[J].機電工程,2015,32(3):380-383.
[4] 劉建敏,高云飛.CAN總線在電動汽車BMS系統與充電樁之間通信的應用[J].微計算機信息,2012,28(9):205-207.
[5] 張萱,馬彥華,李志明.非車載充電機與電動汽車通信兼容性測試研究[J].電測與儀表,2015,52(16):101-106.
[6] 王旭,齊向東.電動汽車智能充電樁的設計與研究[J].機電工程,2014,31(3):394-396.
[7] 衛星,張建軍,張利,等.電動汽車CAN網絡應用層協議研究[J].電子測量與儀器學報,2011,25(9):799-804.
[8] 李然,武俊峰,王海英,等.電動公交客車CAN總線網絡通信結構的設計[J].哈爾濱理工大學學報,2012,17(1):69-73.
作者信息:
陳如尹,賴松林
(福州大學 物理與信息工程學院,福建 福州350108)