电动汽车充电桩状态监测系统研究

2021-11-05 07:48六盘水师范学院杨朝磊
电子世界 2021年17期
关键词:读卡器触摸屏串口

六盘水师范学院 陆 孟 杨朝磊

本文阐述了一种基于STM32的充电桩状态监测系统的硬件及软件设计,系统采用STM32作为主控芯片,以Uc/os-II为操作系统。该监测系统通过RFID模块读取用户磁卡信息,采用DGUS屏设计了人机交互界面,方便用户通过刷卡进行充电操作。经过测试,该系统性能稳定,实现了对充电状态的动态显示及实时控制,具有一定的研究价值。

电动汽车充电桩是新能源汽车的充电基础设施,随着新能源汽车的普及,电动汽车充电桩的应用越来越广泛。但充电桩的用户体验还存在一些问题,如:触摸屏界面不够美观、系统处理速度缓慢等,给用户的使用带来了不便。为了满足用户简单、方便、快捷的充电需求,本文提出了一种基于STM32的充电桩状态监测系统,采用STM32芯片作为主控芯片,以嵌入式Uc/os-II作为操作系统,通过RFID模块读取用户信息,同时在DGUS屏设计了GUI人机交互界面,实时显示充电电压、电量、卡内余额等信息,充电数据则通过串口上传到上位机进行进一步分析和处理。

1 整体方案设计

充电桩状态监测系统主要由DGUS显示屏模块、RFID射频识别模块、STM32主控模块、充电控制模块、上位机模块组成。系统首先通过RFID射频识别模块读取用户磁卡,将用户的充电及消费信息读取到控制单元中,STM32主控模块对磁卡信息进行处理后,通过充电控制模块对充电的通断进行控制,同时通过串口将充电信息传输到DGUS显示屏进行实时显示;用户在DGUS显示屏上的操作指令也将通过串口传输给STM32主控模块,实现对充电状态的控制。最后主控模块将各次的充电数据通过串口上传到上位机处理中心进行分析存储。系统总体设计方案如图1所示。

图1 系统总体设计方案

2 系统硬件设计

RFID射频识别模块是实现用户信息获取的核心,本设计采用M209CX芯片来实现对用户次卡信息的读取,该模块采用13.56MHz非接触射频技术,内嵌飞利浦射频基站,通过向指定的端口发送命令或者操作函数即可实现对卡片的读写。微处理器与M209CX读卡器模块之间采用串口1进行通信,接口上电路原理图如图2所示。

图2 RFID模块接口电路图

为减少微控制器的运行负担,提高系统的运行效率,本设计采用北京迪文DMT80600080_16WT型号的DWIN液晶显示屏作为人机交互界面的载体。该DGUS屏把GUI分解成控件并且按照页面来配置,控件显示直接由变量控制。DGUS屏集成了DWIN_OS平台,该OS平台拥有数学运算、数据存储、串口通信等功能,用户对触摸屏进行充电模式选择、充电界面切换操作,不依赖于微处理器,微处理器与触摸屏之间只需要通过变量传递,更新显示数据。触摸屏采用485总线与处理器通信,其接口电路原理如图3所示。

图3 DGUS屏接口电路原理图

为实现对充电桩充电状态的控制,本系统采用直流接触器作为充电电路的通断控制器。在充电控制电路中,由于微控制单元的IO口输出电流不足以驱动继电器,因此接上三极管放大电来驱动继电器。当STM32的PC9为高电平时,PNP三极管断开,接线端子引脚1、2闭合,充电电路处于断开状态;当PC9处于低电平时,三极管导通,线圈吸合引脚1、3,充电桩输出充电电能,实现充电。充电控制电路图如图4所示。

图4 充电控制电路图

3 系统软件设计

3.1 Uc/os-II操作系统任务设计

Uc/os-II在STM32上移植成功后,需要创建液晶屏显示任务、串口任务、读卡器任务、通信任务以及计量任务等用户任务。首先,设置系统时钟节拍为1s/OS_TICKS_PER_SEC(1000),同时定义充电桩系统最大任务数:#define OS_MAX_TASKS 20u,接下来,分别创建其他关键任务:

(1)液晶屏显示任务。首先将已编写的底层液晶驱动程序,添加到Uc/os-II操作系统。由于显示任务设计的变量较多,因此需要占用的堆栈较大,设置显示任务堆栈为256KB,同时显示任务比较重要,设置优先级为3。

(2)串口1任务。编写串口驱动程序,并将该程序的头文件及源文件添加到操作系统中,设置串口任务设置优先级为10,分配任务栈为64KB,定义任务栈的接口函数为void usart_task(void *pdata)。接着通过调用OSTaskCreate(x,x,x,x)函数创建串口任务。

(3)通信任务主要通过调用OSMboxPend( )和OSQPend( )接收充电的电量、IC卡号以及金额等信息,并上传到上位机。

各任务创建完毕后,初始化任务,并在操作系统中启动任务。Uc/os-II任务的创建及启动流程如图5所示。

图5 Uc/os-II任务的创建及启动流程图

3.2 RFID模块软件设计

STM32通过串口1与RFID模块通信。串口驱动调用库RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA,ENABLE)来使能USART1、GPIOA时钟,进而配置IO口的输入输出模式,同时对读卡器模块的底层驱动创建card.c和card.h两个文件,在这两个文件中编写了更改读卡器模块的波特率、控制LED灯的亮灭、读取卡片的ID、卡片密钥验证、读取钱包数据、卡扣钱等驱动函数。在串口1中断服务程序中对读卡器返回一帧数据进行存储和处理。程序流程图如图6所示。

图6 RFID模块程序流程图

3.3 人机交互软件设计

首先,需要在DGUS屏已加载好的图片上绘制相应的控制控件,在触控配置中进行增量调节、拖动调节、RTC设置、基础触控等操作,在所需要指定的区域拖拽图片并覆盖,通过触控配置实现图片之间的相互切换。为实现触摸屏数据动态显示,需要在变量配置中设计为数字变量显示,分别给变量分配地址、设置变量显示颜色、设置字体大小和变量类型。由于充电桩设计的变量较多,因此将变量生成Excel表格进行统一管理,以便于为后续的微处理控制。变量配置参数如图7所示。

图7 DGUS屏参数配置

界面设计好以后,通过SD卡下载到DGUS屏,完成触摸屏部分开发。由于DGUS屏采用变量驱动模式工作,屏的工作模式和GUI状态完全由数据变量控制。因此串口指令只需要对变量进行读、写操作。迪文屏与外部充电桩处理器交互只需以下五种指令集,如表1所示。

表1 DGUS屏指令集

4 系统测试

首先进行IC卡认证,该界面主要涉及三个按钮,分别是play、stop、返回主界面。当用户按下play按钮,图片中的IC卡将运动起来,示意用户将IC卡放入读卡器区域,并进行密钥验证。

图8 充电桩刷卡认证界面

当用户信息读取完毕且秘钥验证成功后,用户可进行四种充电模式的选择,分别为:固定电量、固定时间、固定金额、自动充满模式。当选择相应的充电模式后,系统进入对应的充电界面,同时STM32主控模块控制充电模块导通,进入充电状态。为减少控制模块的存储负担,最终将所有的系统信息上传到上位机进行进一步的分析及存储。充电信息界面及上位机界面如图9、10所示。测试结果表明,该系统能够正确读取磁卡信息,并对充电过程进行稳定合理地控制,人机界面美观、操作方便,系统反映灵敏,数据准确。

图9 充电信息界面

图10 上位机界面

本文提出了一种基于STM32的充电桩状态监测系统,该系统通过RFID模块获取用户测卡信息,并在DGUS屏上进行存储及显示,用户亦可通过DGUS屏的人机界面进行信息的输入及充电模式的选择控制,进而通过STM32主控模块控制充电模块的开始与结束。经过测试,该系统性能稳定,人机界面友好,反应灵敏,功能较完善,具有一定的实际应用价值及研究价值。

猜你喜欢
读卡器触摸屏串口
浅谈AB PLC串口跟RFID传感器的通讯应用
与淘汰命运抗争 看懂笔记本的读卡器
PLC和触摸屏在卫生间控制系统的应用
皮肤“长”出触摸屏
基于EMV非接通信规范的非接触读卡器设计
为二维码识别的献礼之作——评测平治二维码门禁读卡器
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
MATLAB实现组态王中TCP/IP读卡器监控方法