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