基于STM32的电动汽车快速充电机监控终端的设计

基于STM32的电动汽车快速充电机监控终端的设计

随着物联网时代的到来,实现对快速充电机的智能远程管理,其监控终端的设计是其中的关键技术。结合单片机STM32和实时操作系统μC/OS-Ⅱ,介绍了快速充电机监控终端的整体设计方案,研究了大功率充电机CAN总线及GPRS数据发送的协议制定及软件设计方法,并对GPRS流量费用进行了经济性分析。结果表明该监控终端保证监控网络工作稳定,实现对充电机的运行状态的监测及其远程管理。

基于STM32的电动汽车快速充电机监控终端的设计

引言

随着国家对新能源技术的大力扶持,电动汽车逐渐成为国家在新能源汽车产业大力发展的对象,而电动汽车充电站、快速充电机是电动汽车大规模化后不可或缺的服务基础设施之一。大量分布于各住宅小区、停车场的电动汽车用非车载智能快速充电机,实现高效、安全、智能化的管理必定成为主流。针对目前快速充电机群实行无人值守的运行情况,这就要求快速充电机须具有较高的可靠性和自动化程度,功能更加完善,可远程维护等功能。

这样,使得分布式、模块化、智能化成为快速充电机的发展方向,而高性能、低成本的充电机监控终端是其中的关键技术。为管理区域多台充电机的资源优化利用与管理的智能化,监控终端与Internet网的交互成为一种必然。

1 监控网络的整体方案

如图1的充电机的监控网络结构图所示,监控终端作为充电机与监控中心之间的一个重要网关。其有效的通信链路有:监控中心-监控终端;监控终端-充电机(或电池管理系统(BMS)、电动汽车等)。

基于STM32的电动汽车快速充电机监控终端的设计

  图1 充电机监控网络结构图

通过监控终端作为媒介,实现了监控中心与充电机及电动汽车的通信链路的建立。终端通过CAN网络与充电机、BMS及电动汽车等相互通信,采集相关节点的数据信息并存储,并将相关信息反馈给充电机。充电机根据相关信息从而实现电动汽车电池的智能充电。终端与监控中心之间是通过GPRS连接通信,终端将充电机、电池、电动汽车等相关数据传回监控中心,监控中心实现对充电机的远程控制和实时监控功能,记录充电机的运行及故障情况。车主可以由监控中心查询了解当前空闲的充电机位置,实现资源充分利用。

2 监控终端功能模块

2.1监控终端的总体设计

监控终端是连接监控中心与充电机的桥梁。其总体设计结构如图2所示,监控终端主要由Cortex-M3内核的STM32ZGT6的核心模块、数据采集模块(CAN网络)、用户计费交互信息模块、数据存储模块、实时时钟模块和GPRS通信模块6个部分所组成。终端采用Co-tex-M3内核的STM32ZGT6微处理器芯片。该单片机具有丰富的片上硬件资源,内含CAN 2.0B的控制器,以及多达4个串口,满足终端CAN与GPRS网络接口的需求。

基于STM32的电动汽车快速充电机监控终端的设计

  图2 监控终端的结构框图

监控终端的工作流程如下:用户计费模块读取用户信息以及选择充电模式,通过CAN网络向充电模块发送相应充电命令;同时监控终端读取CAN网络中的关键数据帧如充电机的运行状况等,并将数据保存于NandFlash中。

定时将当前充电用户信息和充电机等运行参数通过GPRS发送到监控中心。监控终端可以根据用户的需要,打印用户的余额或收费凭据等。

2.2 CAN总线模块

为了更好地保证CAN总线可靠的传输,系统定义了一套通用的应用层的CAN总线协议。主要针对CAN 2.0B协议的报文ID进行了分配及定义。如表1所示。

基于STM32的电动汽车快速充电机监控终端的设计

  1. 优先级确定

CAN协议规定报文ID越小,其报文的优先级越高。在竞争总线时,优先级高的报文优先发送,优先级低的退出总线竞争。CAN总线竞争的算法效率很高,是一种非破坏性竞争[3].因CAN协议规定标识符由高至低,前7位不能全为显性位。所以优先级1111b保留,故系统具有15级优先级别。

  1. 类型码

协议将ID24~ID22规定消息的类型。

在本系统中,用到的消息类型主要有:控制、状态、测量、警告和广播5种类型。根据将类型码的具体分配如表2所示。

基于STM32的电动汽车快速充电机监控终端的设计

  1. 源地址

协议规定ID12~ID16为源地址,ID17~ID21为目标地址,进而标识报文的各接收节点与发送节点。5位地址位,保留11111b为广播地址,可以确定31个控制节点,可满足电动汽车充电机的监控需求。在此系统中,定义00000b为监控终端,00001b为充电机节点,00010b为电池管理系统(BMS)节点。

  1. 分段码

因不同的节点所发送的数据量不同,可能会出现一个数据帧不能把从底层采集到的数据一次性发送完毕(即超过8个字节的情况)。协议中将ID11~ID4定义为分段码,如表3所示。

基于STM32的电动汽车快速充电机监控终端的设计

在表3中,某节点的数据帧由分段码00H开始,由FFH结束,最大可支持发送256×8字节的数据。若该节点只有一帧数据,定义FFH同时也为单帧数据。

例如,BMS节点,包含了电池组总电压、电池组总电流、电池组SoC、电池组各个箱体(9个)的温度以及电池组状态的信息等。每个数据占用2 B.显然一个数据帧是无法发送该节点的全部信息,故须采用多帧方式发送。

2.3数据发送模块

终端是通过串口外接周立功GPRS模块(ZWG-23A)连接到互联网。通过GPRS网络上网,连接到服务器之后,按照通信协议定时向服务器发送数据。根据《深圳市电动汽车充电系统技术规范》标准文件,协议由报文起始标识、版本号、命令字、报文长度、数据内容、校检码等组成的,其具体格式如表4所示。

基于STM32的电动汽车快速充电机监控终端的设计

(1)起始标识。设为0xFAF5,用于唤醒接收方准备接收数据。

(2)报文长度。是由[发送序列号]到[数据内容]的总长度。

(3)校验码。是从[起始标识]到[数据内容]的无进位累加和。

(4)接收(发送)方类型与地址。监控中心为类型为“业务服务平台”,其数值为1,其地址为在此类型码下的某一个惟一地址;终端的类型为“调度终端”,其数值为255,地址为此类型下的某一个惟一地址。

(5)数据内容与命令字:不同的命令字决定该报文所携带的数据的内容的构成及所占用的字节数。

数据内容一般由一个或多个数据对象组合而成,也可以为空。发送方在应答非正常或无应答的情况下,每条数据报文最多重复发6次,每次间隔时间为30 s.数据内容根据命令字的不同其所组成的数据对象也不同,通常情况下,终端与监控中心的通信包括终端注册、中心应答、终端就绪、定时发送4个阶段。部分命令字与对应的数据内容见表5所示。

基于STM32的电动汽车快速充电机监控终端的设计

3 软件设计

3.1 μC/OS-Ⅱ的多任务管理

移植μC/OS-Ⅱ实时操作系统为监控终端的系统平台,该系统是可剥夺性多任务内核的实时操作系统,具有实时、可裁剪、可靠和稳定性等优点。μC/OS-Ⅱ的系统资源丰富,除去自身的系统任务外,用户可以建立多达56个任务,并提供信号量、消息邮箱、消息队列及内存管理等系统级服务,足以满足充电桩的监控终端的系统要求。

为实现监控终端的功能要求,在μC/OS-Ⅱ中设计了以下13个任务:显示任务、键盘查询任务、输入处理任务、打印任务、数据的存储任务、IC卡的读/写任务、GPRS的发送任务、CAN数据的接收任务、CAN数据的发送任务、GPRS的接收任务、命令控制任务、报警任务及看门狗的喂狗和异常检测任务。

μC/OS-Ⅱ的多任务的特点,规定每个任务都必须具有不同的优先级。根据任务的关联性、关键性、紧迫性、频繁性、实时要求性来确定任务的优先级,既要保证每个任务的相对独立性,又要避免任务调度频繁致使系统的效率下降。任务的优先级规划如表6所示。

基于STM32的电动汽车快速充电机监控终端的设计

表1中基本数据包括城市区号、停车场序号、充电桩位置信息、报文发送时间以及充电机、BMS和用户IC卡的相关信息共计209 B.

表中各任务优先级之间保留一定的间隔,方便系统以后的改进和升级。系统设定时钟节拍为10 ms,满足充电桩的实时性要求。μC/OS-Ⅱ系统利用信号量、消息邮箱和消息队列三种通信方式将本系统中的13个应用任务关联在一起,其关系如图3所示。

基于STM32的电动汽车快速充电机监控终端的设计

  图3 μC/OS-Ⅱ各任务之间的关联关系图

3.2 ZWG-23A模块的配置

ZWG-23A通过串口与终端链接,它通过移动通信的GPRS网络链接互联网。由于周立功公司并没有提供基于μC/OS-Ⅱ的DTU配置程序,所以系统中需要自行开发相关的配置程序,其配置DTU的程序流程图如图4所示。

基于STM32的电动汽车快速充电机监控终端的设计

  图4 DTU配置程序流程图

假设终端每天与中心连接注册一次,以每隔30 s的心跳时间定时向中心发送监控信息,根据表6数据内容字节计算,一台终端一天发送报文所产生的GPRS流量大约为(228×2×60×24 + 294×2 + 100)(128×1 024)=5 MB,以每月30天计算,一年一台终端所产生的GPRS流量为1.7 GB.采用2 GB的包年流量套餐足以满足终端一年所产生的流量费。

4 结语

本文研究了电动汽车快速充电机监控网络的结构组成,详细分析了监控终端的通信网络的CAN与GPRS的通信应用层协议。其CAN网络协议具有广泛的通用性,GPRS的流量少,可推广到自动化的其他领域中的应用。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: