基于STM32的電動(dòng)汽車快速充電機(jī)監(jiān)控終端的設(shè)計(jì)

基于STM32的電動(dòng)汽車快速充電機(jī)監(jiān)控終端的設(shè)計(jì)

隨著物聯(lián)網(wǎng)時(shí)代的到來,,實(shí)現(xiàn)對快速充電機(jī)的智能遠(yuǎn)程管理,,其監(jiān)控終端的設(shè)計(jì)是其中的關(guān)鍵技術(shù)。結(jié)合單片機(jī)STM32和實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ,,介紹了快速充電機(jī)監(jiān)控終端的整體設(shè)計(jì)方案,,研究了大功率充電機(jī)CAN總線及GPRS數(shù)據(jù)發(fā)送的協(xié)議制定及軟件設(shè)計(jì)方法,并對GPRS流量費(fèi)用進(jìn)行了經(jīng)濟(jì)性分析,。結(jié)果表明該監(jiān)控終端保證監(jiān)控網(wǎng)絡(luò)工作穩(wěn)定,,實(shí)現(xiàn)對充電機(jī)的運(yùn)行狀態(tài)的監(jiān)測及其遠(yuǎn)程管理。

基于STM32的電動(dòng)汽車快速充電機(jī)監(jiān)控終端的設(shè)計(jì)

引言

隨著國家對新能源技術(shù)的大力扶持,,電動(dòng)汽車逐漸成為國家在新能源汽車產(chǎn)業(yè)大力發(fā)展的對象,,而電動(dòng)汽車充電站、快速充電機(jī)是電動(dòng)汽車大規(guī)?;蟛豢苫蛉钡姆?wù)基礎(chǔ)設(shè)施之一,。大量分布于各住宅小區(qū)、停車場的電動(dòng)汽車用非車載智能快速充電機(jī),,實(shí)現(xiàn)高效,、安全、智能化的管理必定成為主流,。針對目前快速充電機(jī)群實(shí)行無人值守的運(yùn)行情況,,這就要求快速充電機(jī)須具有較高的可靠性和自動(dòng)化程度,功能更加完善,,可遠(yuǎn)程維護(hù)等功能,。

這樣,使得分布式,、模塊化,、智能化成為快速充電機(jī)的發(fā)展方向,而高性能,、低成本的充電機(jī)監(jiān)控終端是其中的關(guān)鍵技術(shù),。為管理區(qū)域多臺充電機(jī)的資源優(yōu)化利用與管理的智能化,監(jiān)控終端與Internet網(wǎng)的交互成為一種必然,。

1 監(jiān)控網(wǎng)絡(luò)的整體方案

如圖1的充電機(jī)的監(jiān)控網(wǎng)絡(luò)結(jié)構(gòu)圖所示,,監(jiān)控終端作為充電機(jī)與監(jiān)控中心之間的一個(gè)重要網(wǎng)關(guān)。其有效的通信鏈路有:監(jiān)控中心-監(jiān)控終端;監(jiān)控終端-充電機(jī)(或電池管理系統(tǒng)(BMS),、電動(dòng)汽車等),。

基于STM32的電動(dòng)汽車快速充電機(jī)監(jiān)控終端的設(shè)計(jì)

  圖1 充電機(jī)監(jiān)控網(wǎng)絡(luò)結(jié)構(gòu)圖

通過監(jiān)控終端作為媒介,,實(shí)現(xiàn)了監(jiān)控中心與充電機(jī)及電動(dòng)汽車的通信鏈路的建立。終端通過CAN網(wǎng)絡(luò)與充電機(jī),、BMS及電動(dòng)汽車等相互通信,,采集相關(guān)節(jié)點(diǎn)的數(shù)據(jù)信息并存儲,并將相關(guān)信息反饋給充電機(jī),。充電機(jī)根據(jù)相關(guān)信息從而實(shí)現(xiàn)電動(dòng)汽車電池的智能充電。終端與監(jiān)控中心之間是通過GPRS連接通信,,終端將充電機(jī),、電池、電動(dòng)汽車等相關(guān)數(shù)據(jù)傳回監(jiān)控中心,,監(jiān)控中心實(shí)現(xiàn)對充電機(jī)的遠(yuǎn)程控制和實(shí)時(shí)監(jiān)控功能,,記錄充電機(jī)的運(yùn)行及故障情況。車主可以由監(jiān)控中心查詢了解當(dāng)前空閑的充電機(jī)位置,,實(shí)現(xiàn)資源充分利用,。

2 監(jiān)控終端功能模塊

2.1監(jiān)控終端的總體設(shè)計(jì)

監(jiān)控終端是連接監(jiān)控中心與充電機(jī)的橋梁。其總體設(shè)計(jì)結(jié)構(gòu)如圖2所示,,監(jiān)控終端主要由Cortex-M3內(nèi)核的STM32ZGT6的核心模塊,、數(shù)據(jù)采集模塊(CAN網(wǎng)絡(luò))、用戶計(jì)費(fèi)交互信息模塊,、數(shù)據(jù)存儲模塊,、實(shí)時(shí)時(shí)鐘模塊和GPRS通信模塊6個(gè)部分所組成。終端采用Co-tex-M3內(nèi)核的STM32ZGT6微處理器芯片,。該單片機(jī)具有豐富的片上硬件資源,,內(nèi)含CAN 2.0B的控制器,以及多達(dá)4個(gè)串口,,滿足終端CAN與GPRS網(wǎng)絡(luò)接口的需求,。

基于STM32的電動(dòng)汽車快速充電機(jī)監(jiān)控終端的設(shè)計(jì)

  圖2 監(jiān)控終端的結(jié)構(gòu)框圖

監(jiān)控終端的工作流程如下:用戶計(jì)費(fèi)模塊讀取用戶信息以及選擇充電模式,通過CAN網(wǎng)絡(luò)向充電模塊發(fā)送相應(yīng)充電命令;同時(shí)監(jiān)控終端讀取CAN網(wǎng)絡(luò)中的關(guān)鍵數(shù)據(jù)幀如充電機(jī)的運(yùn)行狀況等,,并將數(shù)據(jù)保存于NandFlash中,。

定時(shí)將當(dāng)前充電用戶信息和充電機(jī)等運(yùn)行參數(shù)通過GPRS發(fā)送到監(jiān)控中心。監(jiān)控終端可以根據(jù)用戶的需要,,打印用戶的余額或收費(fèi)憑據(jù)等,。

2.2 CAN總線模塊

為了更好地保證CAN總線可靠的傳輸,系統(tǒng)定義了一套通用的應(yīng)用層的CAN總線協(xié)議,。主要針對CAN 2.0B協(xié)議的報(bào)文ID進(jìn)行了分配及定義,。如表1所示。

基于STM32的電動(dòng)汽車快速充電機(jī)監(jiān)控終端的設(shè)計(jì)

  1. 優(yōu)先級確定

CAN協(xié)議規(guī)定報(bào)文ID越小,,其報(bào)文的優(yōu)先級越高,。在競爭總線時(shí),優(yōu)先級高的報(bào)文優(yōu)先發(fā)送,優(yōu)先級低的退出總線競爭,。CAN總線競爭的算法效率很高,,是一種非破壞性競爭[3].因CAN協(xié)議規(guī)定標(biāo)識符由高至低,前7位不能全為顯性位,。所以優(yōu)先級1111b保留,,故系統(tǒng)具有15級優(yōu)先級別。

  1. 類型碼

協(xié)議將ID24~ID22規(guī)定消息的類型,。

在本系統(tǒng)中,,用到的消息類型主要有:控制、狀態(tài),、測量,、警告和廣播5種類型。根據(jù)將類型碼的具體分配如表2所示,。

基于STM32的電動(dòng)汽車快速充電機(jī)監(jiān)控終端的設(shè)計(jì)

  1. 源地址

協(xié)議規(guī)定ID12~ID16為源地址,,ID17~ID21為目標(biāo)地址,進(jìn)而標(biāo)識報(bào)文的各接收節(jié)點(diǎn)與發(fā)送節(jié)點(diǎn),。5位地址位,,保留11111b為廣播地址,可以確定31個(gè)控制節(jié)點(diǎn),,可滿足電動(dòng)汽車充電機(jī)的監(jiān)控需求,。在此系統(tǒng)中,定義00000b為監(jiān)控終端,,00001b為充電機(jī)節(jié)點(diǎn),,00010b為電池管理系統(tǒng)(BMS)節(jié)點(diǎn)。

  1. 分段碼

因不同的節(jié)點(diǎn)所發(fā)送的數(shù)據(jù)量不同,,可能會(huì)出現(xiàn)一個(gè)數(shù)據(jù)幀不能把從底層采集到的數(shù)據(jù)一次性發(fā)送完畢(即超過8個(gè)字節(jié)的情況),。協(xié)議中將ID11~ID4定義為分段碼,如表3所示,。

基于STM32的電動(dòng)汽車快速充電機(jī)監(jiān)控終端的設(shè)計(jì)

在表3中,,某節(jié)點(diǎn)的數(shù)據(jù)幀由分段碼00H開始,由FFH結(jié)束,,最大可支持發(fā)送256×8字節(jié)的數(shù)據(jù),。若該節(jié)點(diǎn)只有一幀數(shù)據(jù),定義FFH同時(shí)也為單幀數(shù)據(jù),。

例如,,BMS節(jié)點(diǎn),包含了電池組總電壓,、電池組總電流,、電池組SoC,、電池組各個(gè)箱體(9個(gè))的溫度以及電池組狀態(tài)的信息等。每個(gè)數(shù)據(jù)占用2 B.顯然一個(gè)數(shù)據(jù)幀是無法發(fā)送該節(jié)點(diǎn)的全部信息,,故須采用多幀方式發(fā)送,。

2.3數(shù)據(jù)發(fā)送模塊

終端是通過串口外接周立功GPRS模塊(ZWG-23A)連接到互聯(lián)網(wǎng)。通過GPRS網(wǎng)絡(luò)上網(wǎng),,連接到服務(wù)器之后,,按照通信協(xié)議定時(shí)向服務(wù)器發(fā)送數(shù)據(jù)。根據(jù)《深圳市電動(dòng)汽車充電系統(tǒng)技術(shù)規(guī)范》標(biāo)準(zhǔn)文件,,協(xié)議由報(bào)文起始標(biāo)識,、版本號、命令字,、報(bào)文長度、數(shù)據(jù)內(nèi)容,、校檢碼等組成的,,其具體格式如表4所示。

基于STM32的電動(dòng)汽車快速充電機(jī)監(jiān)控終端的設(shè)計(jì)

(1)起始標(biāo)識,。設(shè)為0xFAF5,,用于喚醒接收方準(zhǔn)備接收數(shù)據(jù)。

(2)報(bào)文長度,。是由[發(fā)送序列號]到[數(shù)據(jù)內(nèi)容]的總長度,。

(3)校驗(yàn)碼。是從[起始標(biāo)識]到[數(shù)據(jù)內(nèi)容]的無進(jìn)位累加和,。

(4)接收(發(fā)送)方類型與地址,。監(jiān)控中心為類型為“業(yè)務(wù)服務(wù)平臺”,其數(shù)值為1,,其地址為在此類型碼下的某一個(gè)惟一地址;終端的類型為“調(diào)度終端”,,其數(shù)值為255,地址為此類型下的某一個(gè)惟一地址,。

(5)數(shù)據(jù)內(nèi)容與命令字:不同的命令字決定該報(bào)文所攜帶的數(shù)據(jù)的內(nèi)容的構(gòu)成及所占用的字節(jié)數(shù),。

數(shù)據(jù)內(nèi)容一般由一個(gè)或多個(gè)數(shù)據(jù)對象組合而成,也可以為空,。發(fā)送方在應(yīng)答非正?;驘o應(yīng)答的情況下,每條數(shù)據(jù)報(bào)文最多重復(fù)發(fā)6次,,每次間隔時(shí)間為30 s.數(shù)據(jù)內(nèi)容根據(jù)命令字的不同其所組成的數(shù)據(jù)對象也不同,,通常情況下,終端與監(jiān)控中心的通信包括終端注冊,、中心應(yīng)答,、終端就緒,、定時(shí)發(fā)送4個(gè)階段。部分命令字與對應(yīng)的數(shù)據(jù)內(nèi)容見表5所示,。

基于STM32的電動(dòng)汽車快速充電機(jī)監(jiān)控終端的設(shè)計(jì)

3 軟件設(shè)計(jì)

3.1 μC/OS-Ⅱ的多任務(wù)管理

移植μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng)為監(jiān)控終端的系統(tǒng)平臺,,該系統(tǒng)是可剝奪性多任務(wù)內(nèi)核的實(shí)時(shí)操作系統(tǒng),具有實(shí)時(shí),、可裁剪,、可靠和穩(wěn)定性等優(yōu)點(diǎn)。μC/OS-Ⅱ的系統(tǒng)資源豐富,,除去自身的系統(tǒng)任務(wù)外,,用戶可以建立多達(dá)56個(gè)任務(wù),并提供信號量,、消息郵箱,、消息隊(duì)列及內(nèi)存管理等系統(tǒng)級服務(wù),足以滿足充電樁的監(jiān)控終端的系統(tǒng)要求,。

為實(shí)現(xiàn)監(jiān)控終端的功能要求,,在μC/OS-Ⅱ中設(shè)計(jì)了以下13個(gè)任務(wù):顯示任務(wù)、鍵盤查詢?nèi)蝿?wù),、輸入處理任務(wù),、打印任務(wù)、數(shù)據(jù)的存儲任務(wù),、IC卡的讀/寫任務(wù),、GPRS的發(fā)送任務(wù)、CAN數(shù)據(jù)的接收任務(wù),、CAN數(shù)據(jù)的發(fā)送任務(wù),、GPRS的接收任務(wù)、命令控制任務(wù),、報(bào)警任務(wù)及看門狗的喂狗和異常檢測任務(wù),。

μC/OS-Ⅱ的多任務(wù)的特點(diǎn),規(guī)定每個(gè)任務(wù)都必須具有不同的優(yōu)先級,。根據(jù)任務(wù)的關(guān)聯(lián)性,、關(guān)鍵性、緊迫性,、頻繁性,、實(shí)時(shí)要求性來確定任務(wù)的優(yōu)先級,既要保證每個(gè)任務(wù)的相對獨(dú)立性,,又要避免任務(wù)調(diào)度頻繁致使系統(tǒng)的效率下降,。任務(wù)的優(yōu)先級規(guī)劃如表6所示。

基于STM32的電動(dòng)汽車快速充電機(jī)監(jiān)控終端的設(shè)計(jì)

表1中基本數(shù)據(jù)包括城市區(qū)號,、停車場序號,、充電樁位置信息,、報(bào)文發(fā)送時(shí)間以及充電機(jī)、BMS和用戶IC卡的相關(guān)信息共計(jì)209 B.

表中各任務(wù)優(yōu)先級之間保留一定的間隔,,方便系統(tǒng)以后的改進(jìn)和升級,。系統(tǒng)設(shè)定時(shí)鐘節(jié)拍為10 ms,滿足充電樁的實(shí)時(shí)性要求,。μC/OS-Ⅱ系統(tǒng)利用信號量,、消息郵箱和消息隊(duì)列三種通信方式將本系統(tǒng)中的13個(gè)應(yīng)用任務(wù)關(guān)聯(lián)在一起,其關(guān)系如圖3所示,。

基于STM32的電動(dòng)汽車快速充電機(jī)監(jiān)控終端的設(shè)計(jì)

  圖3 μC/OS-Ⅱ各任務(wù)之間的關(guān)聯(lián)關(guān)系圖

3.2 ZWG-23A模塊的配置

ZWG-23A通過串口與終端鏈接,,它通過移動(dòng)通信的GPRS網(wǎng)絡(luò)鏈接互聯(lián)網(wǎng)。由于周立功公司并沒有提供基于μC/OS-Ⅱ的DTU配置程序,,所以系統(tǒng)中需要自行開發(fā)相關(guān)的配置程序,,其配置DTU的程序流程圖如圖4所示。

基于STM32的電動(dòng)汽車快速充電機(jī)監(jiān)控終端的設(shè)計(jì)

  圖4 DTU配置程序流程圖

假設(shè)終端每天與中心連接注冊一次,,以每隔30 s的心跳時(shí)間定時(shí)向中心發(fā)送監(jiān)控信息,,根據(jù)表6數(shù)據(jù)內(nèi)容字節(jié)計(jì)算,一臺終端一天發(fā)送報(bào)文所產(chǎn)生的GPRS流量大約為(228×2×60×24 + 294×2 + 100)(128×1 024)=5 MB,,以每月30天計(jì)算,一年一臺終端所產(chǎn)生的GPRS流量為1.7 GB.采用2 GB的包年流量套餐足以滿足終端一年所產(chǎn)生的流量費(fèi),。

4 結(jié)語

本文研究了電動(dòng)汽車快速充電機(jī)監(jiān)控網(wǎng)絡(luò)的結(jié)構(gòu)組成,,詳細(xì)分析了監(jiān)控終端的通信網(wǎng)絡(luò)的CAN與GPRS的通信應(yīng)用層協(xié)議。其CAN網(wǎng)絡(luò)協(xié)議具有廣泛的通用性,,GPRS的流量少,,可推廣到自動(dòng)化的其他領(lǐng)域中的應(yīng)用。

發(fā)表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: