多芯模组化智能物联电能表的设计
2021-07-31刘彬德蔡高琰梁炳基何家峰
刘彬德,蔡高琰,梁炳基,何家峰
(1.广东工业大学 信息工程学院,广东 广州 510000;2.广东浩迪科技创新有限公司,广东 佛山 528000)
0 引 言
智能电表的概念已提出了很多年,长期以来,许多学者和工程师致力于智能电表功能的研究和改进。当代智能电表拥有实时计量、数据采集、信息存储、用户用电数据传输、费控等功能,暂时能满足当前国家电网的需求,但是当代智能电表采用一体化设计,即产品在出厂后,硬件和软件已经固化,这种设计方式存在如下问题:
(1)当智能电表出现故障,需要对整表进行更换。
(2)功能一体化设计方式开发的软件只能用在特定的电表上,当开发一款新的电表或者增加电表功能时,需要修改旧款电表软件中大量代码,限制了软件的重复使用,并且可靠性和稳定性需要花很长的时间来验证,因此增加了新产品的开发时间和开发成本。
(3)不同的场景对电表有不同的功能和性能要求,场景之间可能随时发生切换,基于成本的考虑,智能电表不可能做成通用的型号,将所有场景的功能全部集成。如果做成多个系列电表,在发生场景切换时,又必须进行拆装表,带来大量工作和高额成本。
随着泛在电力物联网的发展,上述弊端日益显现。在此背景下,国家电网展开了新一代智能电表标准的制定工作,提出在新一代智能电表采用“多芯”“模组化”的设计理念[1],即将电表在硬件和软件上划分为不同的模块,称之为模组,模组和模组之间通过标准的接口连接,模组可替换。由于电表在实际使用过程中必须长时间在线,不允许断电,且对精度有要求,如何实现模组出厂可更换功能和可热插拔功能成为了新一代电表设计的难点。本文主要从硬件和软件两方面讨论如何实现模组可更换可热拔插功能。
1 多芯模组化电表硬件设计
1.1 硬件总体框架
新一代智能电表根据功能划分为不同的模组,如计量模组、管理模组、扩展模组等,结构如图1所示。管理模组和计量模组是电能表的必备模块,扩展模块可根据实际应用场景添加或删减,模块和模块之间通过标准的硬件接口连接。计量模组由计量MCU、存储单元、实时时钟、红外、电流电压采集电路组成,承担着法制计量工作,为保证计量数据的准确性和安全性,将计量模组作为基表,在使用中不可拆卸。
图1 智能电表硬件框架
管理模组由LCD、按键控制单元、继电器、存储器、MCU组成。管理模组上运行嵌入式实时多任务操作系统,主要负责电能表的数据管理、模组管理以及人机交互等。在使用中可更换升级。
扩展模组用于电表功能扩展的模组,包含但不限于WiFi通信、LoRa通信、负荷识别、有序充电控制等功能模块的扩展。扩展功能作为电表功能的扩展单元,在使用中可根据实际使用场景进行选配。
1.2 模组硬件接口设计
要实现不同模组互换安装,需要采用统一的硬件接口。根据实际应用情况,在此设计了两种硬件接口标准,分别为A型扩展接口和B型扩展接口,A型B型接口均采用2×6双排插针作为连接件,接口示意图如图2所示。
图2 接口引脚示意图
A型接口主要用于电能表数据通信模组接入;B 型接口一般用于非介入式负荷识别、有序充电控制等模块的接入。A型B型扩展接口均包含电源、数据信号线和热拔插信号线,接口引脚说明见表1所列。
表1 接口引脚说明
1.3 热拔插硬件保护设计
通常,带电情况下不能插入或拔出无热插拔设计的模块。这是因为电路中存在电容和电感,在带电情况下拔插电源线会产生巨大的浪涌电流、瞬时电压,这很可能损坏模组,从而造成系统崩溃。同时,带电情况下拔插信号线会产生瞬变电压,瞬变电压会导致通信异常、系统复位或中断。这两种情况对于系统来说都是致命的,因此本节从电源线热插拔设计和信号线热插拔设计两个方面进行研究。
1.3.1 电源热拔插电路设计
电源热拔插电路的作用是将浪涌电流或电压控制在合理的范围,常用的方法有两种:
(1)一种是采用热敏电阻限流法,当电流增大时热敏电阻的阻值也随之增大,从而降低浪涌电流,这种方法虽然成本低,但是反应速度缓慢、精度低而且使用寿命低。
(2)另一种方法是采用MOS管和电源管理芯片来实现,电源管理芯片控制热拔插时的供电电压来避免浪涌电流的冲击。这种方法反应快、精度高、实用性强。
本文采用第二种方法,笔者选用LM25061电源管理芯片,这款芯片有过流限制、功率限制、低压关断保护功能,其应用电路如图3所示。当模组接入电表基表,输入电压Vsys电压增加,芯片内部通过下拉电流使Q1保持截止,此时TIME引脚电压为0;当电压Vsys达到特定阈值时,TIME引脚以5.5 μA的电流给CT充电;当TIME引脚电压达到1.7 V后,CT以1.5 mA下拉电流放电,此时通过GATE启动Q1,芯片内部的电荷泵灌出16 mA电流对Q1的栅极电容进行充电,直至Q1处于饱和区和导通状态,进入正常工作模式。
图3 信号热插拔电路
(1)检测电阻计算
如图3所示,Vin引脚和SENSE引脚两端的电压超过50 mV,电源管理芯片开启电流限制。采样电阻计算公式如下:
根据接口设计,A模组的最大负载电流为0.25 A,B模组的最大负载电流为0.2 A,计算得到A接口采用电阻Rs=20 mΩ,B接口采用电阻Rs=25 mΩ
(2)功率电阻计算
LM25061通过MOS管的漏极电流和电压Vds来计算外部的功耗,Vds为引脚SENSE和引脚OUT间的电压,然后将外部的功耗与功率电阻设定的阈值比较,以实现限制功率功能。功率电阻计算公式如下:
式中:A模组的限制功率PL为3 W,B模组的限制功率PL为1 W,那么,计算得:A型接口功率电阻RPWR=13.92 kΩ,B型接口功率电阻RPWR=5.8 kΩ。
(3)延时电容计算
在电路上施电压VSYS,TIME引脚以5.5 µ A电流将CT从0 V充电至1.72 V,电容充电所耗时间称之为延迟时间。电源刚上电,电源管理芯片在延时时间内关闭MOS管,从而避免浪涌电流的冲击。本系统设置的延迟时间为t1=250 ms。计算A,B接口的延迟电容:
(4)欠压过压电阻计算
当电压过低时,将开启低压关断保护功能,R1和R2的值用来设定输入电压低压上下阈值,计算公式如下:
式中:VUVL为欠压下限;VUVH为欠压上限。考虑到在A类接口电源电压为12 V±1 V,在A型接口中取VUVH=11 V,VUVL=10 V,计算得:R1=50 kΩ,R2=6.6 kΩ。考虑到在B型接口电源电压为5 V,取VUVH=4.5 V,VUVL=4.4 V,计算得R1=5 kΩ,R2=1.8 kΩ。
1.3.2 信号热插拔设计
信号热插拔设计采用分级插针法,如图4所示,其中电源,地引脚为长插针,数据信号线使用中长插针,短插针为“模块到位引脚”。当模块插入时,电源和地首先接入,模块上电工作,然后是数据信号接入,最后短插针接入,产生“模组到位”信号,此时模块热插拔子系统才开始加载模块信息,确保连接器完全连接后开始通信。模块拔出过程与插入相反,短插针先断开,产生“拔出”信号通知模块热拔插子系统,此时系统通信终止并卸载模块信息,然后是数据信号拔出,最后断开电源。通过实验,长中短针脚的长短差为1.5 mm就可以满足要求。
图4 信号热插拔设计
2 模组化电表的软件设计
2.1 软件总体架构
多芯模组化智能的软件框架如图5所示,从上往下包括应用层的应用程序、系统层的实时操作系统内核、协议库、块热拔插子系统、硬件层的硬件、标准外设库。
图5 软件整体框图
(1)应用程序,实现整体系统基础功能和业务扩展功能。
(2)实时操作系统,电表的功能增加,采用小型嵌入式系统是电表设计的趋势,本课题要求使用的操作系统占用资源少,可靠性高。综合考虑选择了μC/OS Ⅲ。
(3)协议库。包含了DLT 645协议、上行通信协议、STS协议等与硬件和操作系统无关的库。
(4)模块热拔插子系统。作为一个子系统,向上层应用提供服务,主要实现模组热拔插功能并将模组驱动抽象成统一接口。本文着重研究模块热拔插子系统的实现。
(5)标准外设库。芯片厂商提供外设函数库,它的存在可以使大家在操作某些硬件时,不用直接操作寄存器,大大地简化了开发工作量。
(6)硬件层。该图中硬件平台是系统的基础,为软件系统的运行提供了条件。
2.2 模块热拔插子系统
热插拔技术的实现包括硬件设计和软件设计这两个方面的,硬件部分为软件提供基本的接口和必要的部件,软件部分是热插拔技术灵魂[6]。模块热拔插子系统主要实现模组的热插拔功能并将模组驱动抽象成统一接口。模块热拔插子系统的内部组成及与硬件的关系如图6所示。模块热拔插子系统由模组就绪列表、模组驱动管理列表、模组等待列表组成。其中就绪列表用来组织就绪模组信息,驱动列表管理模组驱动。模组等待列表:当应用程序要使用某一模组,而此模组此时没有就绪,系统使此应用程序休眠并在模组等待列表中存入“应用等待此模组信息”,用于模组上线后唤醒等待此模组的应用程序。
图6 热拔插子系统
2.2.1 模组驱动的抽象接口
抽象接口分为API接口和驱动接口。API接口主要用来给应用程序提供统一的操作硬件的接口。将所有模组硬件操作抽象成devOpen()、devRead()、devWrite()、devIoctrl()、devClose()五个统一的操作接口。DevOpen()用于打开设备操作,devRead()用于设备的读操作,devWrite()用于设备的写操作,devIoctrl()设备的其他控制操作。驱动接口用于驱动程序的编写,主要的接口函数为driRegister()、driUninstall()。driRegister()用于设备驱动的注册,driUninstall()用于设备驱动的卸载。
2.2.2 模组热插入
在本文的设计中,模块插入时系统会产生插入中断,系统通过中断完成模块的插入处理。在实际的使用过程中,用户插入模组的过程中存在抖动,或者用户的误操作,会导致热插拔信号引脚COM-RQ的状态不停变化,硬件上不断产生插入拔出中断。因此在正式执行热插入任务前需要采用软件预处理来滤除这些情况下产生的中断。预处理完成后,复位插入的模组,读取模块信息,在模块驱动管理列表查询电能表是否支持该模块。如果支持,就将该模块信息插入就绪列表中,最后查询模块等待列表;如果存在等待该模块的应用程序,则唤醒该应用程序。热插入流程如图7所示。
图7 热插入流程
2.2.3 模组热拔出
由于在实际的使用过程中,拔出模块也可能会存在抖动,因此在正式执行热拔出任务前也需要采用软件预处理,预处理完成后,具体流程如图8所示。
图8 热拔出流程
3 结 语
本文根据“多芯”,“模组化”设计理念,结合我国电网发展情况,进行了多芯模组化智能电表的研究与设计工作,着重研究智能电表模组可更换可热拔插功能的硬件和软件设计。实验表明,本文设计的模组化智能电表解决了一体式智能电表在实际使用中的弊端,能满足泛在电力物联网的发展需求,未来具有极大的应用前景。