六盤水師范學(xué)院 陸 孟 楊朝磊
本文闡述了一種基于STM32的充電樁狀態(tài)監(jiān)測系統(tǒng)的硬件及軟件設(shè)計,系統(tǒng)采用STM32作為主控芯片,以Uc/os-II為操作系統(tǒng)。該監(jiān)測系統(tǒng)通過RFID模塊讀取用戶磁卡信息,采用DGUS屏設(shè)計了人機(jī)交互界面,方便用戶通過刷卡進(jìn)行充電操作。經(jīng)過測試,該系統(tǒng)性能穩(wěn)定,實(shí)現(xiàn)了對充電狀態(tài)的動態(tài)顯示及實(shí)時控制,具有一定的研究價值。
電動汽車充電樁是新能源汽車的充電基礎(chǔ)設(shè)施,隨著新能源汽車的普及,電動汽車充電樁的應(yīng)用越來越廣泛。但充電樁的用戶體驗(yàn)還存在一些問題,如:觸摸屏界面不夠美觀、系統(tǒng)處理速度緩慢等,給用戶的使用帶來了不便。為了滿足用戶簡單、方便、快捷的充電需求,本文提出了一種基于STM32的充電樁狀態(tài)監(jiān)測系統(tǒng),采用STM32芯片作為主控芯片,以嵌入式Uc/os-II作為操作系統(tǒng),通過RFID模塊讀取用戶信息,同時在DGUS屏設(shè)計了GUI人機(jī)交互界面,實(shí)時顯示充電電壓、電量、卡內(nèi)余額等信息,充電數(shù)據(jù)則通過串口上傳到上位機(jī)進(jìn)行進(jìn)一步分析和處理。
充電樁狀態(tài)監(jiān)測系統(tǒng)主要由DGUS顯示屏模塊、RFID射頻識別模塊、STM32主控模塊、充電控制模塊、上位機(jī)模塊組成。系統(tǒng)首先通過RFID射頻識別模塊讀取用戶磁卡,將用戶的充電及消費(fèi)信息讀取到控制單元中,STM32主控模塊對磁卡信息進(jìn)行處理后,通過充電控制模塊對充電的通斷進(jìn)行控制,同時通過串口將充電信息傳輸?shù)紻GUS顯示屏進(jìn)行實(shí)時顯示;用戶在DGUS顯示屏上的操作指令也將通過串口傳輸給STM32主控模塊,實(shí)現(xiàn)對充電狀態(tài)的控制。最后主控模塊將各次的充電數(shù)據(jù)通過串口上傳到上位機(jī)處理中心進(jìn)行分析存儲。系統(tǒng)總體設(shè)計方案如圖1所示。
圖1 系統(tǒng)總體設(shè)計方案
RFID射頻識別模塊是實(shí)現(xiàn)用戶信息獲取的核心,本設(shè)計采用M209CX芯片來實(shí)現(xiàn)對用戶次卡信息的讀取,該模塊采用13.56MHz非接觸射頻技術(shù),內(nèi)嵌飛利浦射頻基站,通過向指定的端口發(fā)送命令或者操作函數(shù)即可實(shí)現(xiàn)對卡片的讀寫。微處理器與M209CX讀卡器模塊之間采用串口1進(jìn)行通信,接口上電路原理圖如圖2所示。
圖2 RFID模塊接口電路圖
為減少微控制器的運(yùn)行負(fù)擔(dān),提高系統(tǒng)的運(yùn)行效率,本設(shè)計采用北京迪文DMT80600080_16WT型號的DWIN液晶顯示屏作為人機(jī)交互界面的載體。該DGUS屏把GUI分解成控件并且按照頁面來配置,控件顯示直接由變量控制。DGUS屏集成了DWIN_OS平臺,該OS平臺擁有數(shù)學(xué)運(yùn)算、數(shù)據(jù)存儲、串口通信等功能,用戶對觸摸屏進(jìn)行充電模式選擇、充電界面切換操作,不依賴于微處理器,微處理器與觸摸屏之間只需要通過變量傳遞,更新顯示數(shù)據(jù)。觸摸屏采用485總線與處理器通信,其接口電路原理如圖3所示。
圖3 DGUS屏接口電路原理圖
為實(shí)現(xiàn)對充電樁充電狀態(tài)的控制,本系統(tǒng)采用直流接觸器作為充電電路的通斷控制器。在充電控制電路中,由于微控制單元的IO口輸出電流不足以驅(qū)動繼電器,因此接上三極管放大電來驅(qū)動繼電器。當(dāng)STM32的PC9為高電平時,PNP三極管斷開,接線端子引腳1、2閉合,充電電路處于斷開狀態(tài);當(dāng)PC9處于低電平時,三極管導(dǎo)通,線圈吸合引腳1、3,充電樁輸出充電電能,實(shí)現(xiàn)充電。充電控制電路圖如圖4所示。
圖4 充電控制電路圖
Uc/os-II在STM32上移植成功后,需要創(chuàng)建液晶屏顯示任務(wù)、串口任務(wù)、讀卡器任務(wù)、通信任務(wù)以及計量任務(wù)等用戶任務(wù)。首先,設(shè)置系統(tǒng)時鐘節(jié)拍為1s/OS_TICKS_PER_SEC(1000),同時定義充電樁系統(tǒng)最大任務(wù)數(shù):#define OS_MAX_TASKS 20u,接下來,分別創(chuàng)建其他關(guān)鍵任務(wù):
(1)液晶屏顯示任務(wù)。首先將已編寫的底層液晶驅(qū)動程序,添加到Uc/os-II操作系統(tǒng)。由于顯示任務(wù)設(shè)計的變量較多,因此需要占用的堆棧較大,設(shè)置顯示任務(wù)堆棧為256KB,同時顯示任務(wù)比較重要,設(shè)置優(yōu)先級為3。
(2)串口1任務(wù)。編寫串口驅(qū)動程序,并將該程序的頭文件及源文件添加到操作系統(tǒng)中,設(shè)置串口任務(wù)設(shè)置優(yōu)先級為10,分配任務(wù)棧為64KB,定義任務(wù)棧的接口函數(shù)為void usart_task(void *pdata)。接著通過調(diào)用OSTaskCreate(x,x,x,x)函數(shù)創(chuàng)建串口任務(wù)。
(3)通信任務(wù)主要通過調(diào)用OSMboxPend( )和OSQPend( )接收充電的電量、IC卡號以及金額等信息,并上傳到上位機(jī)。
各任務(wù)創(chuàng)建完畢后,初始化任務(wù),并在操作系統(tǒng)中啟動任務(wù)。Uc/os-II任務(wù)的創(chuàng)建及啟動流程如圖5所示。
圖5 Uc/os-II任務(wù)的創(chuàng)建及啟動流程圖
STM32通過串口1與RFID模塊通信。串口驅(qū)動調(diào)用庫RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA,ENABLE)來使能USART1、GPIOA時鐘,進(jìn)而配置IO口的輸入輸出模式,同時對讀卡器模塊的底層驅(qū)動創(chuàng)建card.c和card.h兩個文件,在這兩個文件中編寫了更改讀卡器模塊的波特率、控制LED燈的亮滅、讀取卡片的ID、卡片密鑰驗(yàn)證、讀取錢包數(shù)據(jù)、卡扣錢等驅(qū)動函數(shù)。在串口1中斷服務(wù)程序中對讀卡器返回一幀數(shù)據(jù)進(jìn)行存儲和處理。程序流程圖如圖6所示。
圖6 RFID模塊程序流程圖
首先,需要在DGUS屏已加載好的圖片上繪制相應(yīng)的控制控件,在觸控配置中進(jìn)行增量調(diào)節(jié)、拖動調(diào)節(jié)、RTC設(shè)置、基礎(chǔ)觸控等操作,在所需要指定的區(qū)域拖拽圖片并覆蓋,通過觸控配置實(shí)現(xiàn)圖片之間的相互切換。為實(shí)現(xiàn)觸摸屏數(shù)據(jù)動態(tài)顯示,需要在變量配置中設(shè)計為數(shù)字變量顯示,分別給變量分配地址、設(shè)置變量顯示顏色、設(shè)置字體大小和變量類型。由于充電樁設(shè)計的變量較多,因此將變量生成Excel表格進(jìn)行統(tǒng)一管理,以便于為后續(xù)的微處理控制。變量配置參數(shù)如圖7所示。
圖7 DGUS屏參數(shù)配置
界面設(shè)計好以后,通過SD卡下載到DGUS屏,完成觸摸屏部分開發(fā)。由于DGUS屏采用變量驅(qū)動模式工作,屏的工作模式和GUI狀態(tài)完全由數(shù)據(jù)變量控制。因此串口指令只需要對變量進(jìn)行讀、寫操作。迪文屏與外部充電樁處理器交互只需以下五種指令集,如表1所示。
表1 DGUS屏指令集
首先進(jìn)行IC卡認(rèn)證,該界面主要涉及三個按鈕,分別是play、stop、返回主界面。當(dāng)用戶按下play按鈕,圖片中的IC卡將運(yùn)動起來,示意用戶將IC卡放入讀卡器區(qū)域,并進(jìn)行密鑰驗(yàn)證。
圖8 充電樁刷卡認(rèn)證界面
當(dāng)用戶信息讀取完畢且秘鑰驗(yàn)證成功后,用戶可進(jìn)行四種充電模式的選擇,分別為:固定電量、固定時間、固定金額、自動充滿模式。當(dāng)選擇相應(yīng)的充電模式后,系統(tǒng)進(jìn)入對應(yīng)的充電界面,同時STM32主控模塊控制充電模塊導(dǎo)通,進(jìn)入充電狀態(tài)。為減少控制模塊的存儲負(fù)擔(dān),最終將所有的系統(tǒng)信息上傳到上位機(jī)進(jìn)行進(jìn)一步的分析及存儲。充電信息界面及上位機(jī)界面如圖9、10所示。測試結(jié)果表明,該系統(tǒng)能夠正確讀取磁卡信息,并對充電過程進(jìn)行穩(wěn)定合理地控制,人機(jī)界面美觀、操作方便,系統(tǒng)反映靈敏,數(shù)據(jù)準(zhǔn)確。
圖9 充電信息界面
圖10 上位機(jī)界面
本文提出了一種基于STM32的充電樁狀態(tài)監(jiān)測系統(tǒng),該系統(tǒng)通過RFID模塊獲取用戶測卡信息,并在DGUS屏上進(jìn)行存儲及顯示,用戶亦可通過DGUS屏的人機(jī)界面進(jìn)行信息的輸入及充電模式的選擇控制,進(jìn)而通過STM32主控模塊控制充電模塊的開始與結(jié)束。經(jīng)過測試,該系統(tǒng)性能穩(wěn)定,人機(jī)界面友好,反應(yīng)靈敏,功能較完善,具有一定的實(shí)際應(yīng)用價值及研究價值。