摘 要:當(dāng)前全球電動(dòng)汽車市場(chǎng)份額迅猛增長(zhǎng),各國(guó)的電動(dòng)汽車直流充電協(xié)議卻不盡相同,這就使得電動(dòng)汽車在不同協(xié)議標(biāo)準(zhǔn)的國(guó)家無法進(jìn)行充電使用。目前國(guó)際上直流充電是以PLC通信和CAN通信為主導(dǎo),現(xiàn)根據(jù)該需求,設(shè)計(jì)出一種基于STM32的國(guó)歐標(biāo)直流充電通信轉(zhuǎn)換設(shè)備,該設(shè)備一端以PLC通信與歐標(biāo)直流充電樁通信,另一端以CAN通信與國(guó)標(biāo)電動(dòng)汽車通信,以STM32F105為控制核心進(jìn)行數(shù)據(jù)交互轉(zhuǎn)換,達(dá)到兩套通信協(xié)議轉(zhuǎn)換的目的。
關(guān)鍵詞:CAN通信;PLC通信;STM32F105;歐標(biāo)充電樁;國(guó)標(biāo)電動(dòng)汽車
0? ? 引言
基于STM32主控芯片設(shè)計(jì)開發(fā)產(chǎn)品將是未來發(fā)展的一大趨勢(shì),尤其是在低成本的項(xiàng)目中其應(yīng)用將尤為明顯?,F(xiàn)歐標(biāo)直流充電PLC通信芯片以高通芯片QCA7005/7000為主導(dǎo);主控芯片則以飛思卡爾等芯片為主,此類芯片貨源管理渠道非常嚴(yán)格,必須從其授權(quán)的代理商購(gòu)買,并且售價(jià)很高。而STM32主控芯片獲取渠道非常多,供貨充足,價(jià)格低廉,硬件和軟件資源非常豐富,引腳兼容及軟件兼容做得也非常好。
本文將以STM32為主控芯片設(shè)計(jì)開發(fā)一款國(guó)歐標(biāo)直流充電通信轉(zhuǎn)換設(shè)備,使得國(guó)標(biāo)電動(dòng)汽車可以在歐標(biāo)充電樁上進(jìn)行直流充電。
1? ? 國(guó)歐標(biāo)直流充電通信轉(zhuǎn)換設(shè)備的總體結(jié)構(gòu)
國(guó)歐標(biāo)直流充電通信轉(zhuǎn)換設(shè)備結(jié)構(gòu)示意圖如圖1所示,本設(shè)備由電源部分、PLC數(shù)據(jù)通信部分、A/D轉(zhuǎn)換部分、單片機(jī)部分、模擬量輸出部分等組成。
工作時(shí),PLC控制芯片首先預(yù)讀FLASH中芯片所需的系統(tǒng)啟動(dòng)信息,然后PLC數(shù)據(jù)通過隔離變壓器與PLC控制芯片進(jìn)行交互,接著PLC控制芯片將PLC數(shù)據(jù)轉(zhuǎn)換后再與單片機(jī)進(jìn)行數(shù)據(jù)交互,與此同時(shí),單片機(jī)通過CAN接口與國(guó)標(biāo)電動(dòng)汽車按照充電協(xié)議ISO 1939進(jìn)行交互。PLC數(shù)據(jù)與CAN數(shù)據(jù)在單片機(jī)內(nèi)進(jìn)行數(shù)據(jù)信息處理和轉(zhuǎn)換,以達(dá)到國(guó)歐標(biāo)直流充電通信轉(zhuǎn)換的目的。另外,在工作過程中,單片機(jī)實(shí)時(shí)通過A/D轉(zhuǎn)換部分對(duì)PLC傳輸線電壓進(jìn)行監(jiān)控,對(duì)于不同的電壓值按照DIN 70121標(biāo)準(zhǔn)內(nèi)要求進(jìn)行處理。
本系統(tǒng)采用的PLC控制芯片為QCA7000,它可將PLC信號(hào)直接轉(zhuǎn)換成可以與單片機(jī)相連的數(shù)字信號(hào),PLC控制芯片與單片機(jī)采用SPI接口方式進(jìn)行連接。
另外,國(guó)歐標(biāo)直流充電通信轉(zhuǎn)換設(shè)備還具有串口通信和模擬量輸出的功能。串口通信主要是為了實(shí)現(xiàn)在設(shè)備調(diào)試過程中以及正常通信期間數(shù)據(jù)的輸出,以便于在PC上進(jìn)行監(jiān)控。模擬量輸出主要是為了輸出電平信號(hào),以激活國(guó)標(biāo)電動(dòng)汽車BMS進(jìn)行CAN通信。
2? ? 硬件電路的整體設(shè)計(jì)
基于STM32的國(guó)歐標(biāo)直流充電通信轉(zhuǎn)換設(shè)備的硬件系統(tǒng)主要由如下幾部分組成:PLC信號(hào)輸入端模塊部分、QCA7000 PLC通信模塊部分、單片機(jī)控制器部分、CAN通信部分等。具體如圖2所示。
單片機(jī)控制器是通信設(shè)備的核心,它主要控制著整個(gè)系統(tǒng)的輸入/輸出以及PLC數(shù)據(jù)和CAN數(shù)據(jù)的傳輸,并協(xié)調(diào)和管理系統(tǒng)中各個(gè)電路功能塊等。本設(shè)計(jì)中選用STM32F105單片機(jī)作為系統(tǒng)控制核心,該處理器接口資源豐富,能夠滿足本系統(tǒng)的各項(xiàng)功能需求。
2.1? ? PLC信號(hào)輸入端模塊的設(shè)計(jì)
國(guó)歐標(biāo)直流充電通信轉(zhuǎn)換設(shè)備PLC信號(hào)是耦合在一最高電壓為DC12 V的CP線上,PLC信號(hào)經(jīng)過一個(gè)1:1:1的隔離變壓器與PLC控制芯片進(jìn)行數(shù)據(jù)交互[1-2]。此通信物理層電路圖如圖3所示。
2.2? ? QCA7000 PLC通信模塊的設(shè)計(jì)
在本設(shè)計(jì)中,QCA7000 PLC通信模塊起到服務(wù)端與客戶端互聯(lián)通信的作用,同時(shí)與本地主控芯片進(jìn)行信息交互。在硬件設(shè)計(jì)中,需要注意以下幾點(diǎn):
(1)電壓DC1.2 V是由QCA7000芯片內(nèi)核產(chǎn)生的,非外部供電;
(2)引腳GPIO_0、GPIO_1、GPIO_2必須引出且受控,因?yàn)檫@些引腳在芯片啟動(dòng)過程中起到關(guān)鍵作用;
(3)DC1.2 V電壓檢測(cè)引腳VREG_SWREG_FB需要連接在電感L2后,否則易引起QCA7000初始化失敗問題。
QCA7000采用SPI通信方式與主控STM32F105進(jìn)行連接,另外擴(kuò)2M FLASH以儲(chǔ)存QCA7000初始化所需的PIB和FW文件信息[3]。此通信物理層電路圖如圖4所示。
2.3? ? CAN總線模塊的設(shè)計(jì)
此設(shè)備的CAN總線作用是應(yīng)用ISO 1939通信協(xié)議與國(guó)標(biāo)電動(dòng)汽車進(jìn)行直流充電通信,CAN控制器應(yīng)用的是單片機(jī)內(nèi)嵌的控制器,CAN收發(fā)器選用的是TJA1050,共模濾波器選用的是TDK-ZJY-2P01[4-5]。CAN總線物理層電路圖如圖5所示。
3? ? 系統(tǒng)軟件設(shè)計(jì)
在本設(shè)備控制系統(tǒng)中,軟件包括PLC通信協(xié)議與CAN通信協(xié)議的轉(zhuǎn)換、單片機(jī)主系統(tǒng)控制程序。
3.1? ? PLC通信協(xié)議與CAN通信協(xié)議的轉(zhuǎn)換
本轉(zhuǎn)換設(shè)備在通信中主要是針對(duì)PLC協(xié)議(DIN 70121)與CAN協(xié)議(ISO 1939)的轉(zhuǎn)換。在協(xié)議轉(zhuǎn)換過程中,采用以PLC通信協(xié)議為主、CAN通信協(xié)議為輔的控制策略,具體協(xié)議轉(zhuǎn)換交互如圖6所示。在兩套協(xié)議交互過程中,CAN通信開始于PLC的SDP階段,另外一個(gè)比較關(guān)鍵的點(diǎn)就是PLC通信的充電參數(shù)與發(fā)現(xiàn)階段需求的參數(shù)必須由CAN通信的BCP提供,此階段的參數(shù)一定要獲取到。此外,在PLC通信的預(yù)充電階段前要判斷出是否收到CAN通信的BCL、BCS、BSM報(bào)文,這是為了滿足在電動(dòng)汽車直流繼電器吸合的條件下再進(jìn)入預(yù)充電階段。最后就是在PLC通信電流需量階段,一定要保證CAN通信BCL報(bào)文的實(shí)時(shí)匹配,循環(huán)收發(fā),直到接收到CAN報(bào)文BST后停止。
3.2? ? 單片機(jī)主系統(tǒng)控制程序
本控制系統(tǒng)以STM32F105為主控芯片,固件開發(fā)環(huán)境采用的是Keil編輯器,采用的底層庫(kù)為標(biāo)準(zhǔn)庫(kù)函數(shù)[6]。
在本系統(tǒng)中,固件主要有主程序設(shè)計(jì)、PLC通信程序設(shè)計(jì)、CAN總線通信程序設(shè)計(jì)、內(nèi)置AD程序設(shè)計(jì)、串口打印程序設(shè)計(jì)、模擬量輸出程序設(shè)計(jì)等。系統(tǒng)啟動(dòng),程序從main函數(shù)開始運(yùn)行,為保證該系統(tǒng)正常運(yùn)行,首先要進(jìn)行硬件和軟件的初始化,包括單片機(jī)時(shí)鐘配置、硬件端口配置、CAN控制器初始化、PLC控制器配置、使能定時(shí)器配置等。然后進(jìn)入主程序循環(huán),首先讀取PLC接收緩存區(qū),判斷是否有數(shù)據(jù),如果有數(shù)據(jù),則按照DIN 70121通信協(xié)議進(jìn)行PLC數(shù)據(jù)回復(fù)(沒有則跳過此步驟),之后再讀取CAN接收緩存區(qū)內(nèi)是否有新數(shù)據(jù),有則按照ISO 1939協(xié)議在定時(shí)器內(nèi)進(jìn)行回復(fù)(沒有則跳過此步驟),與此同時(shí)再次判斷PLC接收緩存區(qū)是否有新數(shù)據(jù),按此方式進(jìn)行循環(huán)判斷。在此過程中,接收到的PLC數(shù)據(jù)與CAN發(fā)送數(shù)據(jù)和接收到的CAN數(shù)據(jù)與PLC發(fā)送的數(shù)據(jù)是傳參的。具體的軟件流程圖如圖7所示。
在PLC數(shù)據(jù)與CAN數(shù)據(jù)接收、發(fā)送過程中,可以按照需求以串口輸出的方式在PC上查看數(shù)據(jù),便于調(diào)試及故障查找。
4? ? 系統(tǒng)測(cè)試
按照開發(fā)先后順序,系統(tǒng)測(cè)試包括模擬測(cè)試和現(xiàn)場(chǎng)測(cè)試兩個(gè)部分。
4.1? ? 模擬測(cè)試
在開發(fā)中,模擬測(cè)試臺(tái)架測(cè)試原理如圖8所示。在此模擬系統(tǒng)中,國(guó)標(biāo)電動(dòng)汽車部分采用P_CAN進(jìn)行通信模擬,在歐標(biāo)電動(dòng)汽車部分,選用歐凱諾公司的SECC歐標(biāo)充電樁模擬器。
模擬測(cè)試結(jié)果如圖9所示。圖中左邊是PLC模擬器串口輸出的實(shí)時(shí)通信數(shù)據(jù),右邊是P_CAN模擬發(fā)送和接收到的數(shù)據(jù)。
4.2? ? 現(xiàn)場(chǎng)測(cè)試
在現(xiàn)場(chǎng)測(cè)試中,國(guó)標(biāo)電動(dòng)汽車選用的是蔚來汽車ES8,歐標(biāo)充電樁選用的是EXP的一款充電樁?,F(xiàn)場(chǎng)測(cè)試結(jié)果如圖10所示。
5? ? 結(jié)語
本文主要完成了基于STM32的國(guó)歐標(biāo)直流充電通信轉(zhuǎn)換設(shè)備的研究與開發(fā),包括其硬件設(shè)計(jì)和軟件系統(tǒng)設(shè)計(jì)。此設(shè)備與歐標(biāo)充電樁是以PLC方式進(jìn)行連接,按照DIN 70121協(xié)議進(jìn)行通信;此設(shè)備與國(guó)標(biāo)電動(dòng)汽車是以CAN總線的方式進(jìn)行連接,按照ISO 1939協(xié)議進(jìn)行通信;PLC通信數(shù)據(jù)與CAN通信數(shù)據(jù)在主控STM32F105中進(jìn)行傳參交互,達(dá)到國(guó)歐標(biāo)直流充電通信轉(zhuǎn)換的目的。
[參考文獻(xiàn)]
[1] 鄧慶,程明霄.基于低壓電力載波技術(shù)的電路設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008(8):298-299.
[2] 黃吉濤,武占俠,王強(qiáng),等.電力載波通信技術(shù)分析和應(yīng)用[J].信息記錄材料,2020,21(8):133-135.
[3] 鄧國(guó)榮.基于STM32 SPI接口的M25P80 FLASH的驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)電信息,2013(6):144-145.
[4] 田希暉,張珆,張連超,等.CAN總線及其應(yīng)用技術(shù)[J].微計(jì)算機(jī)信息,2002,18(9):3-5.
[5] 張鳳軍.基于STM32F105的汽車CAN總線控制器設(shè)計(jì)[J].中國(guó)機(jī)械,2014(23):63-64.
[6] 王飛,杜向陽.基于Keil軟件的一體化螺絲刀控制器設(shè)計(jì)[J].軟件,2019,40(9):75-80.
收稿日期:2021-04-07
作者簡(jiǎn)介:丁亞洲(1981—),男,吉林九臺(tái)人,在職碩士研究生,主任工程師,研究方向:儀表技術(shù)。