葛笑寒
(三門峽職業(yè)技術(shù)學(xué)院,河南三門峽472000)
現(xiàn)場總線以智能控制、計算機(jī)、數(shù)字通信等技術(shù)為主要內(nèi)容,已經(jīng)廣泛應(yīng)用于過程自動化、樓宇自動化等領(lǐng)域的現(xiàn)場智能設(shè)備中[1]。CAN總線是Controller Area Network的簡稱。它最早由BOSCH公司提出,用來實(shí)現(xiàn)汽車內(nèi)部測量及執(zhí)行部件之間的數(shù)據(jù)通信,它作為一種工業(yè)界的流行總線廣泛應(yīng)用于工業(yè)自動化、多種控制設(shè)備、交通工具、醫(yī)療儀器以及建筑、環(huán)境控制等各個行業(yè)中[2]。該總線具有高速、遠(yuǎn)距離、多負(fù)載的優(yōu)越性,可以實(shí)現(xiàn)1Mbps的傳輸速率,傳輸距離可達(dá)10KM,最多可以掛接110個設(shè)備。目前大多充電設(shè)備都采用以太網(wǎng)作為核心管理網(wǎng)絡(luò)、CAN總線做為現(xiàn)場網(wǎng)絡(luò)的服務(wù)體系。
CAN總線可以實(shí)現(xiàn)多主工作,任一節(jié)點(diǎn)任意時刻均能夠向其他節(jié)點(diǎn)發(fā)送數(shù)據(jù),容易實(shí)現(xiàn)多級系統(tǒng)。CAN能夠?qū)崿F(xiàn)一點(diǎn)對多點(diǎn)及全局廣播方式交換數(shù)據(jù)。工業(yè)中一般使用同軸電纜、雙絞線或者光纖作為通信介質(zhì),通信距離可達(dá)10KM,通信速度最高達(dá)1Mb/s。而CAN連接的節(jié)點(diǎn)數(shù)取決于驅(qū)動電路。CAN節(jié)點(diǎn)安全性好,能夠在嚴(yán)重錯誤時,自動關(guān)閉輸出,使得總線上的其他設(shè)備不受影響,且接口簡單易編程,很方便構(gòu)成用戶系統(tǒng)。CAN總線使用非破壞性仲裁方案,當(dāng)多個節(jié)點(diǎn)同時傳送信息時,高優(yōu)先級的節(jié)點(diǎn)優(yōu)先傳輸,低優(yōu)先級的節(jié)點(diǎn)停止發(fā)送信息。CAN使用短幀結(jié)構(gòu),耗時短,不易受干擾,每幀信息都有檢錯措施,保證數(shù)據(jù)傳輸?shù)恼_性。
圖1 CAN總線的分層模型
CAN遵從OSI模型,如圖1所示,CAN結(jié)構(gòu)劃分為兩層:數(shù)據(jù)鏈路層和物理層。數(shù)據(jù)鏈路層由邏輯鏈路控制和媒體訪問控制層構(gòu)成,邏輯鏈路層的作用主要是幀接收濾波,超載通告和恢復(fù)處理,媒體訪問層主要是即接收和發(fā)送。物理層由物理信令(PLS)、物理媒體附屬裝置(PMA)和媒體相關(guān)接口(MDI)構(gòu)成,主要實(shí)現(xiàn)編碼、解碼、總線接發(fā)送信號即定義電氣接口等。
該控制系統(tǒng)主要由整體結(jié)構(gòu)設(shè)計、系統(tǒng)的控制芯片選擇和通信接口設(shè)計三部分構(gòu)成。
如圖2所示,控制器與計費(fèi)裝置、讀卡裝置等通過RS485通信,而充電接口、電池管理系統(tǒng)和后臺監(jiān)控等通過雙路CAN實(shí)現(xiàn)數(shù)據(jù)傳遞。高速CAN與電池管理系統(tǒng)通信,采集電池的參數(shù)、電壓、電流等信號完成充電機(jī)的充電控制;高速CAN網(wǎng)絡(luò)把充電機(jī)的信息傳送給充電樁,并把信息傳送給后臺;高速CAN網(wǎng)絡(luò)實(shí)現(xiàn)充電樁和監(jiān)控系統(tǒng)交換數(shù)據(jù),并獲取啟動、停止等充電指令命令;高速CAN和充電接口通信,防止意外斷開和防止誤操作[3]。
圖2 直流充電系統(tǒng)通信結(jié)構(gòu)
根據(jù)控制要求,充電樁智能控制器采用嵌入式工業(yè)控制模塊CPULPC2387。該微控器自身帶有512KB的高速閃存和128位的存儲接口,支持32位代碼在高速下運(yùn)行,具有4個UART、2路CAN控制通道。該芯片自帶存儲卡和豐富的IO接口,且具有4組計數(shù)器、1個PWM模塊和看門狗定時器等外部設(shè)備。
表1 微處理器資源分配
2.3.1MAX3050ASA接口芯片
在CAN通信接口電路中,MAX3050ASA是CAN總線的一種接口芯片。它是CAN協(xié)議物理總線和控制器間的接口,能夠給控制器和總線提供多樣的接收功能和發(fā)送功能[4]。MAX3050ASA是MAX3050高速CAN收發(fā)器的子系統(tǒng)。該芯片采用5V電源供電,“RXD”和“TXD”分別為MAX3050ASA的輸入端和輸出端,“S”為接地端;“CANL”是CAN總線的輸入端,“CANH”是輸出端。MAX3050ASA的管腳功能見表2。
表2 MAX3050ASA的管腳功能
其主要特征為:速度高,最高可達(dá)2Mbps;有高速度、斜率控制、待機(jī)和關(guān)機(jī)四種操作模式;具有差動接收器,可以屏蔽電磁干擾;具有控制超時和引腳保護(hù)功能。
2.3.2CAN通信接口電路設(shè)計
CAN通信電路設(shè)計如圖3所示,LPC2387的P1.0端口經(jīng)光電耦合器6N137與MAX3050ASA芯片的發(fā)送數(shù)據(jù)輸入端“D”相連,實(shí)現(xiàn)輸出驅(qū)動器信號的采集功能;P1.0端口經(jīng)光電耦合器后與MAX3050ASA的接收數(shù)據(jù)端“R”相連,實(shí)現(xiàn)驅(qū)動器輸入信號的接收?!癈ANH”和“CANL”引腳用來采集CAN高電平和低電平輸出,MAX3050ASA采用+5V電源供電。本系統(tǒng)采用兩路CAN和后臺通信,另外一路電路結(jié)構(gòu)和該電路相同,只是發(fā)送數(shù)據(jù)輸入端“D”端和接收數(shù)據(jù)“R”端分別經(jīng)過光耦隔離后與微處理器另外一路CAN口連接。
圖3 CAN通信接口原理圖
(1)主站:處于一個監(jiān)控子網(wǎng)的中心,本處特指充電柱。
(2)數(shù)據(jù)單元(PDU):一種特定的CAN數(shù)據(jù)幀格式。
(3)數(shù)據(jù)單元格式(PF):一個8位數(shù)據(jù)域,用來識別協(xié)議中的數(shù)據(jù)格式,并且作為參數(shù)組的標(biāo)號。
(4)特定數(shù)據(jù)單元(PS):一個8位數(shù)據(jù)域,受PF的值制約。該域代表了目標(biāo)地址(DA)或者組擴(kuò)展(GE)。
應(yīng)用CAN總線的擴(kuò)展報文,并重新定義29位標(biāo)識符。在29位標(biāo)識符中,一共有8個優(yōu)先級,每個優(yōu)先級為3位。數(shù)據(jù)類型主要由P(數(shù)據(jù)優(yōu)先級)、R(保留位)、DP(頁碼)、PF(PDU格式位)、PS(特定 PDU位)、SA(源地址)和DATA(數(shù)據(jù)域)構(gòu)成。其中DP和R都為0,另外,報文代碼、目標(biāo)地址和發(fā)送報文源地址分別由8位PF、PS、SA實(shí)現(xiàn)。接入CAN網(wǎng)絡(luò)的任何節(jié)點(diǎn)都由名稱和地址構(gòu)成。每個節(jié)點(diǎn)可以有一個或者多個功能,多個節(jié)點(diǎn)也可以有同樣的功能[5]。系統(tǒng)的數(shù)據(jù)通信和節(jié)點(diǎn)識別借助名稱和地址實(shí)現(xiàn)。數(shù)據(jù)傳輸廣泛采用單播和廣播結(jié)合的方式傳遞。系統(tǒng)通信一般采用節(jié)點(diǎn)和數(shù)據(jù)塊編碼的形式進(jìn)行。
整個流程包括后臺發(fā)送和接收監(jiān)控系統(tǒng)的數(shù)據(jù),同時監(jiān)控系統(tǒng)轉(zhuǎn)發(fā)后臺控制命令,并接受充電樁返回信息。充電機(jī)發(fā)起的充電流程與后臺發(fā)起的充電流程既相似,又不同。流程設(shè)計時盡量考慮二者的統(tǒng)一。如圖4和5所示。
后臺發(fā)起的控制流程:
圖4 后臺發(fā)起的充電流程圖
充電樁發(fā)起的充電流程
圖5 充電樁發(fā)起的充電流程圖
3.4.1 直流柜監(jiān)控與充電樁傳輸信息
首先傳遞費(fèi)率信息,充電樁判定沒有費(fèi)率或費(fèi)率不合法時,充電樁向監(jiān)控裝置請求費(fèi)率,轉(zhuǎn)發(fā)給后臺。當(dāng)后臺收到充電樁的費(fèi)率請求時,監(jiān)控裝置下發(fā)費(fèi)率至直流充電樁;當(dāng)充電樁接收到后臺下發(fā)的費(fèi)率時,發(fā)送信息至監(jiān)控裝置作為對后臺的應(yīng)答。其次傳遞后臺控制信息,充電機(jī)接收來自后臺的命令并不直接啟動,充電機(jī)監(jiān)控收到后臺下發(fā)的選擇控制命令后,轉(zhuǎn)發(fā)給充電樁;充電樁將報文首字節(jié)的最高位置清零,轉(zhuǎn)發(fā)給后臺;若充電樁確認(rèn)信息為成功,則做出控制選擇操作,否則不做處理。另外傳遞充電樁控制信息,監(jiān)控裝置收到充電樁選擇命令后,監(jiān)控裝置若能夠執(zhí)行,則將報文首字節(jié)最高位置1,否則將報文首字節(jié)最高位清零,其他信息不變,發(fā)送給充電樁。充電樁發(fā)送執(zhí)行或撤銷命令時,若能夠執(zhí)行,則將報文首字節(jié)最高位置1,若無法執(zhí)行則將報文首字節(jié)最高位清零,其他信息不變,發(fā)送給監(jiān)控裝置。
3.4.2 直流柜監(jiān)控與充電樁傳輸消費(fèi)結(jié)帳信息
用戶刷卡時,直流充電樁向監(jiān)控裝置傳送結(jié)賬信息。當(dāng)監(jiān)控裝置接收到充電樁上送的卡號和充電樁號時回送;當(dāng)啟動充電時,直流充電樁向監(jiān)控裝置上送卡號、交易編號等。當(dāng)監(jiān)控裝置收到信息后將控制信號向直流充電裝傳輸。
3.4.3 在工作過程中直流樁與監(jiān)控的信息交互
充電樁正常工作過程中監(jiān)控信息一直下發(fā)。充電樁狀態(tài)數(shù)據(jù)向監(jiān)控裝置上傳狀態(tài)信息報文。包括充電連接器連接狀態(tài)、充電樁異常等。當(dāng)充電插頭連接時(充電連接信號),BMS正常通信,監(jiān)控系統(tǒng)將BMS狀態(tài)、測量信息發(fā)送給充電樁。包括控制、狀態(tài)、告警信息等。
系統(tǒng)按照模塊化設(shè)計思想進(jìn)行編寫,包括主程序、CAN初始化程序、CAN發(fā)送數(shù)據(jù)程序、CAN接收數(shù)據(jù)程序等[6]。系統(tǒng)主程序流程設(shè)計如圖6所示,主要包括初始化和主循環(huán)部分。
系統(tǒng)首先上電初始化,開通CAN的緩沖區(qū),根據(jù)接收的命令碼判斷先處理的信息。根據(jù)定時器中斷,進(jìn)行電壓、電流等信息采集,并計算后通過CAN發(fā)送數(shù)據(jù);否則CAN中斷,并讀取數(shù)據(jù),根據(jù)ID標(biāo)識解析命令。最后返回,進(jìn)行新的數(shù)據(jù)處理。
圖6 主程序流程圖
對充電樁控制系統(tǒng)進(jìn)行了結(jié)構(gòu)設(shè)計,對使用的微處理器和CAN接口轉(zhuǎn)換芯片進(jìn)行選型,并設(shè)計了CAN總線的接口電路。對充電樁的CAN通信協(xié)議制定,定義CAN總線的擴(kuò)展報文,并重新定義29位標(biāo)識符。充電樁能夠發(fā)送和接收后臺監(jiān)控的數(shù)據(jù),能夠?qū)崿F(xiàn)直流樁與監(jiān)控之間的消費(fèi)和信息交互,也能夠?qū)崿F(xiàn)直流樁和充電接頭及電池管理系統(tǒng)的交互。最后,基于模塊化設(shè)計了CAN總線的程序流程。能夠?qū)崿F(xiàn)充電樁和充電機(jī)及電池管理系統(tǒng)的聯(lián)動運(yùn)行。