韓 輝,湯春球,莫易敏,王 達(dá),蔣亞華
(武漢理工大學(xué) 機(jī)電工程學(xué)院,湖北 武漢 430070)
電動(dòng)汽車是新能源汽車注重發(fā)展的一個(gè)重要方向,近幾年我國出臺(tái)了多項(xiàng)政策,大力支持電動(dòng)汽車的發(fā)展。電動(dòng)汽車的使用離不開充電樁的支持,電動(dòng)汽車的快速普及也促使充電樁的安裝數(shù)量大幅增長。如此多的充電樁,必須配備完善的監(jiān)控系統(tǒng),才能保證充電樁的安全運(yùn)行,同時(shí)也便于維護(hù)人員對(duì)充電樁管理。
目前工程上對(duì)于分散設(shè)備的集中監(jiān)控大多采用CAN(controller area network)總線通信的方式。CAN總線最早應(yīng)用于汽車總線,后來經(jīng)過一系列的改進(jìn)和發(fā)展,目前已經(jīng)是一種具有國際性標(biāo)準(zhǔn)的串行總線。CAN總線具有抗干擾性好、實(shí)時(shí)性好、通信速率快,通信可靠性強(qiáng)等許多優(yōu)良特性,非常適合于充電樁的集中監(jiān)控設(shè)計(jì)。
充電樁大致可分為兩類,一類是直流充電樁,一類是交流充電樁。直流充電樁充電電流大,充電時(shí)間短,但對(duì)電池的損害較大;交流充電樁采用小電流充電,充電時(shí)間長,對(duì)電池的損害較小[1]。充電樁控制系統(tǒng)的硬件組成主要包括主控制器、觸摸屏、存儲(chǔ)模塊、IC讀卡器、傳感器芯片、智能電表以及通信模塊。主控制器用于控制充電樁的啟動(dòng)、停止、數(shù)據(jù)處理和對(duì)外通信;觸摸屏作為人機(jī)交互界面,顯示充電樁的運(yùn)行信息;讀卡器用于實(shí)現(xiàn)IC卡付費(fèi)功能;存儲(chǔ)模塊用于存儲(chǔ)用戶信息和充電樁運(yùn)行參數(shù);傳感器芯片和智能電表用于采集充電樁的電壓、電流和電量等數(shù)據(jù);通信模塊負(fù)責(zé)讀取其他元件數(shù)據(jù)以及與上位機(jī)通信[2]。
充電樁的CAN總線網(wǎng)絡(luò)采用總線型拓?fù)?,如圖1所示。CAN總線的雙絞線構(gòu)成單一信道,所有節(jié)點(diǎn)都接入這條公共信道,理論上任意一個(gè)節(jié)點(diǎn)都可以接收總線上的數(shù)據(jù)。為了避免對(duì)不需要的數(shù)據(jù)進(jìn)行解析,CAN節(jié)點(diǎn)可對(duì)報(bào)文標(biāo)識(shí)符進(jìn)行過濾,只接收特定標(biāo)識(shí)符的報(bào)文。在總線首尾兩端各接入一個(gè)120 Ω的終端電阻,目的是減少總線上信號(hào)反射,從而提高信號(hào)傳輸?shù)姆€(wěn)定性[3]。
圖1 CAN網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)
充電樁采用STM32F103ZET6芯片作為主控制器。該芯片基于ARM Cortex-M3內(nèi)核設(shè)計(jì),內(nèi)置64 kB SRAM和512 kB FLASH,可支持大量代碼的編寫,運(yùn)行速度快,帶有112個(gè)IO接口,84個(gè)中斷,可實(shí)現(xiàn)復(fù)雜的中斷嵌套,此外還支持I2C、SPI、USART、RS484、CAN等多種總線[4]。
主控制芯片與各個(gè)模塊之間采用的串行總線進(jìn)行通信,其中主控芯片和智能電表以及人機(jī)交互模塊之間的通信采用RS~485總線,這種總線擁有較強(qiáng)的抗電磁干擾性能,可有效提高數(shù)據(jù)傳輸?shù)姆€(wěn)定性和準(zhǔn)確性;與讀卡器模塊之間采用RS~232總線通信;與傳感器模塊則直接連接芯片的AD模塊。主控制系統(tǒng)結(jié)構(gòu)框圖如圖2所示。
圖2 主控制系統(tǒng)結(jié)構(gòu)框圖
STM32F103ZET6芯片帶有RS232、RS485、CAN等總線接口,但是芯片的輸出電平是TTL電平,并不滿足總線通信的電平標(biāo)準(zhǔn),因而需要外接芯片作為通信收發(fā)芯片[5]。CAN通信外接芯片采用TJA1050芯片。該芯片性能優(yōu)良,傳輸速度快,可靠性高,抗干擾能力強(qiáng),優(yōu)化了CAN-H和CAN-L之間的耦合,大幅降低了電磁輻射。具體的CAN總線通信接口電路如圖3所示。
圖3 TJA1050芯片接口電路圖
此外RS232總線和RS485總線的外接芯片分別為SP3232和SP3485,接口電路圖如圖4所示和圖5所示。
圖4 SP3232芯片接口電路圖
圖5 SP3485總線接口電路圖
由于STM32F103ZET6芯片不帶有操作系統(tǒng),因而所有的數(shù)據(jù)獲取和處理都是通過主循環(huán)和中斷來實(shí)現(xiàn)的。主循環(huán)是一個(gè)while(1)的無限循環(huán),不斷輪詢各個(gè)模塊的數(shù)據(jù);中斷則主要處理數(shù)據(jù)的發(fā)送和充電樁狀態(tài)的變更。系統(tǒng)運(yùn)行的流程是先初始化、系統(tǒng)自檢,自檢成功后進(jìn)入待機(jī)狀態(tài)。當(dāng)有用戶刷卡時(shí),判斷磁卡是否有效,若有效則進(jìn)入人機(jī)交互界面,提示用戶完成充電插頭連接工作,而充電樁也是通過檢測(cè)插頭上的CC信號(hào)來判斷連接是否正常。連接成功后提示用戶選擇充電模式,然后再根據(jù)模式的不同判斷磁卡余額是否滿足充電需求,若余額不足則跳轉(zhuǎn)充值界面,余額充足則開始充電。主控制系統(tǒng)主循環(huán)流程如圖6所示。此外,定時(shí)器中斷程序每隔1 s執(zhí)行一次,將充電樁的實(shí)時(shí)數(shù)據(jù)和故障報(bào)警信息打包,通過CAN總線發(fā)送到上位機(jī)。
圖6 系統(tǒng)主程序流程圖
本系統(tǒng)采用CAN 2.0B協(xié)議,他是一種基礎(chǔ)的底層協(xié)議。該協(xié)議有兩種格式,分別為標(biāo)準(zhǔn)幀格式和擴(kuò)展幀格式。標(biāo)準(zhǔn)幀含有11位標(biāo)識(shí)符,擴(kuò)展幀含有29位標(biāo)識(shí)符,二者主要的區(qū)別是ID的長度上不一樣,能夠擴(kuò)展的CAN節(jié)點(diǎn)數(shù)也不一樣[6]。由于停車場(chǎng)充電樁的數(shù)量有限,因而本系統(tǒng)采用CAN 2.0B的標(biāo)準(zhǔn)幀格式。標(biāo)準(zhǔn)幀的報(bào)文傳輸有4種不同的幀類型,分別為數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤幀和過載幀,其中數(shù)據(jù)幀使用最為廣泛,本系統(tǒng)也只需要使用數(shù)據(jù)幀。
通信的方式為從機(jī)主動(dòng)向上位機(jī)發(fā)送數(shù)據(jù),上位機(jī)不向從機(jī)發(fā)送查詢指令,只接收數(shù)據(jù)。從機(jī)發(fā)送數(shù)據(jù)的頻率為1 s一次。標(biāo)準(zhǔn)幀11位ID格式如表1所示。
表1 標(biāo)準(zhǔn)幀ID格式
地址位(ID10…ID5,5位),當(dāng)主站發(fā)送數(shù)據(jù)時(shí),該段位為接收數(shù)據(jù)的從站ID;當(dāng)從站發(fā)送數(shù)據(jù)時(shí)該段位為自身設(shè)備的ID。讀寫標(biāo)志位為0時(shí),表示主站向從站寫入數(shù)據(jù),為1時(shí)表示從站設(shè)備發(fā)送數(shù)據(jù)。數(shù)據(jù)傳輸波特率設(shè)定為100 kbps。
每一幀數(shù)據(jù)幀后面可以附帶8個(gè)字節(jié)的數(shù)據(jù),根據(jù)充電樁實(shí)際所需要傳輸?shù)臄?shù)據(jù)制定數(shù)據(jù)傳輸格式,幀數(shù)據(jù)格式如表2所示。輸入電壓為380 V三相交流電,在傳輸數(shù)據(jù)時(shí)默認(rèn)只傳輸AC相電壓;對(duì)于交流充電樁而言,輸出電壓也是三相的,因而也默認(rèn)傳輸AC相的輸出電壓和輸出電流。充電樁芯片將獲取的真實(shí)數(shù)據(jù)乘以10發(fā)送,當(dāng)上位機(jī)接受到數(shù)據(jù)后再除以10,得到保留一位小數(shù)的真實(shí)數(shù)據(jù),分辨率為0.1。
表2 幀數(shù)據(jù)格式
數(shù)據(jù)組合方式為:BYTE0-BYTE1,以此類推。其中索引幀號(hào)為0X01的BYTE7字節(jié)位定義如表3所示。其中1表示故障,0表示正常。
表3 故障報(bào)警字節(jié)位定義
CAN通信程序采用Keil5編寫,配合使用ST公司為STM32系列芯片編寫的庫函數(shù),這些函數(shù)已經(jīng)將芯片的底層操作封裝好了,用戶使用時(shí)只需調(diào)用API函數(shù)即可[7]。
CAN通信程序設(shè)計(jì)包括STM芯片自身的GPIO初始化、CAN芯片的初始化、CAN通信參數(shù)的配置、CAN數(shù)據(jù)發(fā)送和接受程序,其中CAN參數(shù)的配置包括設(shè)置波特率和采樣點(diǎn)。
在CAN通信參數(shù)的配置中,要通過位時(shí)序來設(shè)置采樣點(diǎn)和波特率。采樣點(diǎn)和波特率的計(jì)算公式如下:
波特率=CAN時(shí)鐘/((1+CAN_BS1+CAN_BS2)×CAN_Prescaler)
sample=(1+CAN_BS1)/(1+CAN_BS1+CAN_BS2)
CAN_BS1、CAN_BS2表示兩個(gè)時(shí)間段;CAN_Prescaler為波特率分頻器,二者與晶振頻率共同決定波特率的大小。波特率根據(jù)CAN網(wǎng)絡(luò)節(jié)點(diǎn)的個(gè)數(shù)進(jìn)行配置,節(jié)點(diǎn)數(shù)越多,波特率應(yīng)設(shè)置越低。而采樣點(diǎn)是根據(jù)波特率大小來設(shè)置的,一般來說采樣點(diǎn)隨著波特率的提高而靠前,波特率為500 kbps時(shí),采樣點(diǎn)應(yīng)設(shè)置為80%左右。
計(jì)算機(jī)沒有CAN接口,因此需要采用CAN轉(zhuǎn)USB將CAN信號(hào)轉(zhuǎn)換為計(jì)算機(jī)可讀取的USB信號(hào)。本系統(tǒng)采用的USBCAN-II Pro分析儀,該分析儀支持兩路CAN同時(shí)收發(fā)數(shù)據(jù),支持多種CAN協(xié)議,且USB、CAN1、CAN2完全隔離,互不干擾。該分析儀提供了各種主流開發(fā)平臺(tái)的驅(qū)動(dòng)接口。當(dāng)分析儀接收到CAN網(wǎng)絡(luò)的數(shù)據(jù)時(shí),保存在R-Buffer緩沖區(qū),上位機(jī)程序調(diào)用分析儀的接口函數(shù),請(qǐng)求查詢接收,分析儀則將緩沖區(qū)數(shù)據(jù)發(fā)送到USB接口。如圖7所示,上位機(jī)軟件主要由以下4個(gè)部分組成:
(1)充電實(shí)時(shí)監(jiān)控。該部分作為上位機(jī)主界面,可以實(shí)時(shí)顯示各充電樁的狀態(tài)和基本參數(shù)。
(2)歷史充電數(shù)據(jù)記錄。充電樁每一次充電記錄和故障記錄都會(huì)存儲(chǔ)下來,便于后期查詢分析。
(3)電能質(zhì)量管理。獲取充電樁在充電過程中電壓、電流值數(shù)據(jù),并繪制圖表,以實(shí)現(xiàn)對(duì)電能質(zhì)量的分析。
(4)用戶管理。監(jiān)控軟件需要登錄賬戶才可以使用,實(shí)現(xiàn)用戶的權(quán)限管理。
圖7 上位機(jī)監(jiān)控界面
針對(duì)數(shù)量多且分散的充電樁,設(shè)計(jì)了一種監(jiān)控系統(tǒng),對(duì)充電樁所要實(shí)現(xiàn)的功能進(jìn)行了分析。確定充電樁的主控芯片和相關(guān)模塊,并且提煉出充電樁與上位機(jī)通信的具體內(nèi)容,根據(jù)此內(nèi)容設(shè)計(jì)出充電樁與上位機(jī)之間的CAN通信協(xié)議,編寫上位機(jī)監(jiān)控界面。本系統(tǒng)采用CAN總線實(shí)現(xiàn)對(duì)充電樁的集成監(jiān)控,設(shè)計(jì)簡(jiǎn)單方便,性能穩(wěn)定,數(shù)據(jù)傳輸快,能很好地滿足監(jiān)控系統(tǒng)對(duì)實(shí)時(shí)性和可靠性的要求。