基于ARM 的DLMS/COSEM通信协议智能电能表设计与实现
2020-08-28任晓锋付希林刘凤鸣刘志远中电装备山东电子有限公司
文/任晓锋 付希林 刘凤鸣 刘志远(中电装备山东电子有限公司)
智能电能表目前在国外呈现飞速发展的趋势,各国在智能电能表领域掀起一轮大规模的投资,为我国智能电能表产业的出口创造了良好的机遇。但是国内智能电能表目前采用DL/T645 协议,和国际通用的通信协议不兼容,不利于国内智能电能表生产企业的出口。
DLMS/COSEM 通信协议即IEC62056 系列国际标准,是国际电工委员会为解决自动抄表系统和计量系统中的数据采集,仪表安装、维护,系统集成等问题提出的新的电能表通信标准。它以良好的系统互连性和互操作性成为迄今为止较为完善的电表通信协议标准[1]。本文基于ARM的DLMS/COSEM通信协议智能电能表设计能够满足国际电工委员会的要求。
在现有的智能电能表方案中,低端产品一般采用单片机系统层次的主芯片实现简单的功能。由于单片机处理器的运算速度较低,往往只能实现单一的设置,不能满足现场通用性,同时DLMS/COSEM通信协议要求传输数据量大,高性能的ARMCortex-M0 系列配备嵌入式系统能够完成比较复杂强大的功能,满足不同场合的应用需求。方案采用FM33A048 芯片作为主控处理器,具有强大的控制能力和较大的存储容量,同时工业级系列主处理器Cortex-M0 在低功耗和成本控制方面具有不可比拟的优势。本文对处理模块、通讯模块、计量模块等硬件设计和应用软件设计进行了相应介绍,完整地实现了设计方案,并在实际工程中验证了其可行性。
一、整体设计
1.整体模块
图1 整体模块框图
智能电能表的工作主要由测量模块、数据处理模块等组成,主要分两部分:一是电能测量模块,由大规模专用集成电路和外围电路组成,可将电流电压量转换成与有功功率成比例的脉冲,实现电能计量,并能实时测量电网的电压、电流、功率及功率因数等数据;二是数据处理模块,采用专用的Cortex-M0 低功耗微处理器,完成电能计度、数据存储、通信、显示及负荷开关控制等功能。图1为产品的整体模块框图。
2.软件架构
软件结构引入分层设计思路,将软件系统大体划分为三个层次:调度层、应用层和驱动层。调度层即后台程序,掌管整个系统软、硬件资源的分配、管理以及任务的调度;应用层用来实现系统功能;驱动层直接面对硬件设备,为应用层提供硬件驱动。其中,调度层属于后台程序,应用层与驱动层属于前台程序。软件架构图见图2。
在分层设计思路的基础上,进一步对各个功能模块的设计规范化。将调度层划分为正常工作模式和低功耗模式两个模块,两种工作模式根据需要相互转换;将应用层按需求划分为中断、计量、费率处理、计费电价处理、按键处理、显示、DLMS/COSEM 通信协议、信号输出、安全保护、事件记录、参数与数据校验和存储等功能模块;将驱动层按应用层需求,划分为初始化、7816、I2C 总线、液晶(LCD)、计量芯片和实时时钟(RTC)等功能模块。
图2 软件架构图
图3 计量模块原理框图
二、主要硬件设计
计量模块是智能电能表交流采样测量的硬件基础,该模块选用钜泉公司的单项多功能防窃电专用计量芯片HT7017。该芯片包括三路ADC,一路用于相线电流采样,一路用于零线电流采样,一路用于电压采样。ADC 采用全差分方式输入,电流、电压通道最大信号输入幅度为峰值700mV。
HT7017 能够测量有功功率、无功功率、有功能量、无功能量,并能同时提供两路独立的有功功率和有效值、电压有效值、线频率、过零中断等,可以实现灵活的防窃电方案。HT7017支持全数字的增益、相位和offset 校正。有功、无功电能脉冲分别从PF、QF 管脚输出。HT7017 内部的电源监控电路可以保证上电和断电时芯片的可靠工作。
MCU 通过计数器计量芯片提供的脉冲实现电量计量,同时通过串口SPI 读取计量芯片的寄存器,读取相应的数据。计量芯片与MCU 电源与地均是独立的,信号及通讯也采用了光电隔离。计量模块原理见图3。
三、主要软件设计
电能表采用模块化方法实现软件功能,包括计量模块、显示模块、事件记录、通信模块等。
1.程序主循环
电能表的程序主循环包括硬件驱动软件、应用支撑软件、电能表应用软件、应用辅助软件。硬件驱动软件包括与FM33A048 有关的硬件配置的初始化及驱动应用的相关软件,如初始化程序、中断配置程序、IIC 接口驱动程序、7816 接口驱动程序、LCD 驱动程序、RTC 的驱动程序、定时器配置程序等;应用支撑软件主要是与硬件无关的一些算法子程序,包括CRC 校验程序、数据比较程序、数据拷贝程序、数据交换程序、数制转换程序、数据计算程序、存贮器的读写程序等,这部分程序量较大,也构成应用程序的重要组成部分;电能表应用软件是实现电能表功能的主要程序,主要包括电量存储程序、费率电价程序、继电器处理程序、液晶显示程序、485 通讯程序、CPU卡处理程序、事件记录程序等;应用辅助软件是保证电表应用程序安全、可靠运行的程序,主要包括参数检查校验程序、看门狗处理程序、数据备份程序等。
2 .通信协议模块
DLMS/COSEM 通信协议通信架构包含信息交换模型、应用连接数据交换、请求/响应类型数据交换、通知/确认类型数据交换等,其中DLMS/COSEM协议包含5 种客户端应用层数据请求帧,分别是COSEM-OPEN.request、COSEM-RELEASE.request、GET.request、SET.request 和ACTION.request。服务器有5 种应答帧来应答这些请求帧,分别是COSEM-OPEN.response、COSEM-RELEASE.response、GET.response、SET.response 和ACTION.response[2]。
DLMS/COSEM 通信协议模块包含数据链路层和应用层:数据链路层包含帧结构、字节结构、传输规则;应用层包含应用层服务规范、应用层协议规范、应用层数据单元规范等。
DLMS/COSEM 通信协议的数据链路层规定了帧结构,它的数据帧由起始字符、长度域、控制域、地址域、帧头校验、链路用户数据、帧校验和结束字符共8 个域组成,其中控制域包含传输方向位、扰码标识位等,保证了传输方向的准确性,帧头校验和帧校验保证数据传输的准确。
DLMS/COSEM通信协议的应用层规范,描述了客户端与服务端之间的预链接、应用连接、数据交互,以及相应的出错处理机制。应用层是基于面向对象方法为智能电能表和终端设备建立的用于通信的通用接口模型,智能电能表和终端设备每次通讯前需先建立预链接和应用连接,然后依据设定的格式进行数据交互。
四、结语
在大规模的全球性智能电网建设的大趋势下,随着嵌入式技术和通信技术的发展,未来国际电能表市场尤其是智能电能表市场将有更广阔的需求。本文提出了一种基于ARM的DLMS/COSEM通信协议智能电能表设计方案,经调试,软硬件工作均正常,电能表计量、DLMS/COSEM通信协议等功能均已实现,并经过了长期运行,验证了设备的实用性和可靠性,相对于目前同类产品在性能、成本和功耗控制方面具有优势,有着广阔的市场前景。