文献标识码: A
DOI:10.16157/j.issn.0258-7998.179013
中文引用格式: 周芝梅,赵东艳,张海峰,等. 基于IR46标准的双芯电能表主控关键技术研究[J].电子技术应用,2017,43(10):7-11,19.
英文引用格式: Zhou Zhimei,Zhao Dongyan,Zhang Haifeng,et al. Research on the key technology of the dual MCUs on the energy meter for the IR46 standard[J].Application of Electronic Technique,2017,43(10):7-11,19.
0 引言
我国第一代智能电表,目前已挂装并运行5年多,为我国智能电网的建设提供了重要支撑。然而我国标准体系对电能表的软件和硬件要求比较固化,电能表均为一体化设计,一旦出现硬件或软件故障,只能采取更换整表的方式来保障电力计量工作顺利进行。并且出于防止篡改电能表程序的安全角度考虑,目前的电能表不允许软件的在线升级,因此对越来越多的智能应用需求形成了限制。为此我国将在下一代智能电表标准上采用基于IR46(International Recommendation46)标准的双芯智能电表方案,核心解决的是计量功能与其他管理类功能的分离,支持非计量部分软件在线升级,且非计量部分的故障和升级不影响计量部分的准确性和稳定性。
1 双芯电能表方案
目前挂装的智能电表方案应用框图如图1所示,可完成电能计量、数据的安全保护、本地RTC计时以及支持电表通信功能,包括485通信、SPI、I2C和红外等功能[1-2]。智能电表用到的功能芯片包括一颗主控芯片、一颗RTC芯片、一颗安全芯片、一颗EEPROM和一颗计量芯片,全部整体设计在一块电表主板上。
基于IR46的双芯智能电表标准方案,将电表功能分成计量芯和功能芯两个互不干扰的独立部分。计量芯部分完成的功能包括计量、电量数据存储、RTC计时等,计量芯独立运行,法制认证,不允许软件升级。管理芯部分包括智能电卡接口、ESAM、显示、存储器、负控管理和对外通信等功能。由于计量芯部分和管理芯部分各自独立自成系统,在新的电表方案中,计量部分和管理部分都会各自需要一颗MCU主控芯片,两颗主控完成的功能和核心关键指标也会不同,这是实现基于IR46标准的双芯电表方案的关键。
2 计量芯主控功能和关键技术
2.1 计量芯主控功能和架构
计量芯部分要完成的功能包括计时、电能计量、电能和时间的存储以及与管理芯的通信。本文设计的计量芯主控功能上包含RTC功能模块,接口上包括串口、I2C、GPIO等,通过SPI通信口与管理芯进行数据和指令交互,功能框图如图2所示。CPU采用ARM Cortex-M0 CPU,内置128 KB Flash存储器、8KB RAM,集成4通道DMA;串口负责与485通信、SPI与管理芯进行通信;通过I2C操作EEPROM进行数据存储;另有多路TIMER、看门狗等功能。
IR46标准要求在运行模式下,计量芯的电源不能被控制或干涉,计量芯RTC持续工作10年以上,且计时精度要满足国网电能表计时精度要求。总结以上需求可知,计量芯主控的高精度计时和低功耗工作是该主控的核心关键指标。
2.2 计量芯主控的高精度计时技术
计量主控RTC采用32 768 Hz石英晶体,晶体的振荡频率会随温度变化,称之为晶体的温度特性。32 768 Hz晶体的振荡频率与温度呈类二次函数关系[3],低温和高温区晶体的频率偏差很大,无法满足国网对智能电表的计时精度要求,必须加入温度补偿电路以提高计时精度。
本文设计RTC电路,除了包括了RTC的计时功能,还包括关键的晶体温度补偿功能,模块包含RTC计时模块、温度传感器、专用的晶体温度补偿电路和一块缓存Flash,Flash用于存储晶体的温度调校系数,如图3所示。RTC计时电路定时触发调校电路开始工作,从温度传感器读取当前温度值,然后根据温度值从Flash中读取对应的调校系数,由调校电路对RTC的计时电路进行调校补偿。
用32 768 Hz晶体振荡器设计实时时钟,计数满32 768个周期为1 s,所以计数器的一个计数周期相对于秒周期的改变量为:
即如果简单的对秒脉冲进行数字补偿,能获得的补偿精度是30.5 ppm,对于小于30.5 ppm的频率偏差,无法得到补偿而带来偏差,且随着计时时间的加长,计时偏差会越来越大。本文设计的主控芯片提出并采用了基于累积误差控制的补偿算法[4]。补偿算法如式(2)所示:
式中,Xn为当前时刻根据晶体温度从Flash读取得到的需要补偿的频率误差值(单位ppm);Yn-1为上次温度补偿后遗留剩余误差值;N为根据当前Xn和Yn-1计算出来的需要补偿的整时钟周期数;Yn为本次数字补偿后剩余的频率偏差值,用于下次补偿时积累误差用。由于对补偿值N进行了四舍五入,所以剩余误差值Y的值会小于15.3 ppm,且由于本次补偿的剩余误差会累积到下次需要补偿的误差值中,所以计时误差不会随着计时时间的变长累积变大。该补偿电路的功能框图如图4所示,理论的精度效果图如图5所示。
该补偿电路采用全数字方式实现,受集成电路工艺波动的影响小,且实现简单。该主控芯片的RTC经赛西实验室测试,在-45 ℃~85 ℃温度范围内,计时误差在4 ppm以内。
2.3 计量芯主控的低功耗设计技术
计量芯主控另一关键核心技术是低功耗设计,以支撑计量芯10年不间断工作。CMOS逻辑电路的功耗可以分为动态功耗和静态功耗两部分。动态功耗是指当芯片处于激活(active)状态时,也即信号发生跳变时的功耗,静态功耗是指芯片处于未激活状态或者没有信号跳变时的功耗[5-6]。动态功耗70%源自开关电容电流功耗[6],开关电容的功耗定义如式(3)所示:
2.3.1 动态功耗优化
根据式(3)的理论,设计上降低动态功耗的方法主要是降低数字电路的翻转率,主要包括以下技术。
(1)门控时钟技术
对每个功能模块设计单独的时钟门控,在不需要模块工作时,关闭模块时钟,减少时钟电路的翻转功耗。同时,在对芯片的RTL代码进行综合时,插入时钟门控单元,这样寄存器输入端的时钟在信号不翻转时就不会翻转,极大地降低了时钟的动态功耗[7]。
(2)低功耗总线技术
总线技术引入到SoC设计使得芯片设计进入模块化结构设计阶段,方便了系统的集成,也有利于系统的扩展。但另一方面, AHB总线和APB总线信号伸展到了芯片的每一个功能模块,而从总线访问的互斥性可以看到,总线的主设备同一时刻只会访问一个从设备,但是不被访问的从设备的输入总线信号还是会跟随翻转,所以总线的无效翻转功耗很高。
本设计首先对总线上的地址和写数据总线进行选择门控,只有送往被操作外设的地址和数据总线是有效翻转的,其余外设的地址和写数据总线保持静止。此外,采用总线反相技术,总线矩阵处理模块将总线上当前数据总线值与上一个数据值进行比较,选择是发送原码还是反码,以及依据哪一种码导致总线的翻转更少。设计时需要总线增加一位极性信号,以让接收模块正确地恢复总线上的数据。通过这两种方式,极大地减小了总线的动态功耗,将总线功耗占整芯片动态功耗的比例从32%降到了26%。
(3)异步电路设计
在同步电路中,系统由全局时钟控制,在每个时钟脉冲到来时,只要在翻转时钟控制下的所有寄存器都会消耗动态功耗,无论该寄存器的数据是否变化。
而异步电路设计技术,整个设计不需要有统一的时钟,电路仅在需要翻转的时候才会启动工作,没有这种无效的功耗浪费,完成工作之后就恢复静止状态,处于静止状态的电路单元仅仅消耗漏电流,不会有动态功耗[7]。本文设计的主控在RTC模块、看门狗模块中,均采用了异步电路设计,确保芯片在电池供电下正常计时,并保持最低功耗。
该芯片在TSMC 180 nm eFlash工艺上流片,芯片实测动态功耗数据为:芯片供电电压为3.0 V,配置LDO为1.7 V,主时钟选择2 MHz时,在温度-40℃~85℃范围内,芯片总功耗为表1所示。
2.3.2 静态功耗优化
根据电表的不同应用场景合理设计芯片工作模式。电表在正常调试完成后的工作状态分3种。第一种为电表在库房尚未挂装现场,此时只需要RTC精确计时,不需要计量、通信等其他功能,也不需要RAM数据的存储保留,这种工作模式下,可以通过局部掉电做到最低功耗;第二种工作场景应用于电表正常挂装工作时,电表保持全功能工作模式,此种模式下,主控芯片的要求是尽量降低芯片的动态功耗;第三种场景对应于电表挂装后市电掉电,而以电池供电的工作模式,此时需要保留电表掉电时的现场状态,RTC正常计时。对应于主控的工作模式,需要保持RTC正常工作和正常的晶体温度补偿,同时RAM和CPU等都需要保持带电以保留工作现场,来电唤醒和触发唤醒电路保持工作,其他电路都将时钟关闭以降低功耗。
根据上述3种工作场景,该芯片设计了stop、sleep和active模式。active时主控正常工作;sleep模式下,RTC和唤醒源保持工作,其他模块保持有电但静止模式;stop下,除RTC和唤醒源外,其余模块直接掉电,以达到最低功耗。3种模式可以互相转换,如图6所示。
芯片sleep模式下,供电电压3.0 V,LDO配置为1.8 V,RTC使能,所有其他的外设均不使能,在温度-40 ℃~105 ℃范围内,芯片的总功耗测试数据如表2。
3 管理芯主控功能和关键技术
3.1 管理芯主控功能
双芯智能电表的管理芯主要负责费控管理、显示、事件记录、负荷控制等任务,同时提供一系列对外通信接口。本文设计的管理芯部分主控芯片的功能框图如图7所示。
IR46与传统智能电表的最大特点是管理芯要支持程序的远程或本地的在应用升级。管理芯主控需要提供合理完善的解决方案,满足电表稳定、可靠、高效地进行电表程序的本地和远程升级,这是管理芯区别于以前电表主控需要完成的一个关键功能。
3.2 管理芯主控在应用升级关键技术
主控的远程或本地升级主要指的是对MCU芯片内部的Flash存储器的数据进行擦除及重新下载。MCU对Flash存储器的编程一般可以分成3种方式[8]:JTAG、ISP(In System Program)和IAP(In Application Program)。JTAG编程一般用于产品应用开发阶段的调试;ISP强调芯片在应用系统现场的升级,但不要求程序升级时芯片继续保持工作状态,可以终止应用软件的运行,适用于便携式设备的升级;IAP和ISP最重要的区别是IAP支持应用程序正常运行的情况下,对Flash存储器中的部分程序进行擦除和重写操作,为终端固件的远程自动升级带来了很大的方便。双芯电表方案的管理芯,采用的是IAP方式,支持程序的远程或本地的在应用升级。
为了保障电表程序在应用升级的正确性,管理芯主控设计在程序升级的不同阶段,都进行指令和程序的正确性检查。首先确认升级软件包的接收是否完整正确,接收正确后,将新程序写到Flash,并对编写结果进行校验确认;校验正确后,将对新更新程序进行自检,如果自检没通过,则需要有方式能将此部分程序恢复到升级前的一个版本。硬件上需要有足够的空间对被替换的老版本程序进行备份并记录;能支持PC指针的灵活跳转;流程上要保证每一步都需要校验确认正确后再转到下一步。同时,软件上要求管理芯的主控程序采用模组化设计方案,即显示模块、通信模块、费控模块、事件模块等模块的独立设计,互不影响,以保证电能表软件支持对各模块的独立升级,这样避免了软件整体升级带来的升级效率低、硬件存储和通信开销大的缺点。
应用升级控制流程图如图8所示。该芯片在UMC55工艺上流片成功,用该芯片研发的样表进行在应用升级的测试,模拟升级过程中程序传输出错、程序写出错,在升级的各个环节发生电表掉电,芯片均能正确处理,报告出错环节,并给出信号开始下次升级,并最终升级成功。
4 总结
本文研究了基于IR46标准的双芯智能电能表方案,根据计量芯和管理芯各自完成的功能,设计了计量芯部分主控芯片和管理芯主控芯片。针对计量芯的高精度计时需求,提出了基于累积误差控制的温度补偿电路;针对低功耗需求,采用了降低动态和静态功耗的一系列关键技术。管理芯主控部分,重点研究了高可靠安全的在应用升级相关技术,实现管理芯主控应用程序的远程升级。本文研究内容对未来IR46标准的双芯电表和电表主控芯片的开发具有很好的参考意义。
参考文献
[1] 国家电网公司企业标准Q/GDW1364-2013,单相智能电能表技术规范[S].
[2] 申斌.智能电表系统的设计与研究[D].南京:南京林业大学,2013.
[3] 邹云.温度补偿晶体振荡器的研究[D].天津:南开大学,2010.
[4] 赵东艳,周芝梅.一种基于累积误差控制的RTC补偿算法及电路[J].电子技术应用,2014,40(12).
[5] 马芝.低功耗方法在SoC芯片设计中的应用[J].中国集成电路,2010(7).
[6] 崔义智.低功耗技术在后端设计中的应用[D].上海:复旦大学,2008.
[7] 郭宏泓.超低功耗异步电路设计研究[D].镇江:江苏大学,2009.
[8] 彭井花,蔡声镇.基于GPRS的嵌入式系统软件的远程在线升级[J].现代电子技术,2009(4).
作者信息:
周芝梅1,2,赵东艳1,2,张海峰1,2,杜 君1,2,王维彬1,2
(1.北京智芯微电子科技有限公司,国家电网公司重点实验室电力芯片设计分析实验室,北京100192;
2.北京智芯微电子科技有限公司,北京市电力高可靠性集成电路设计工程技术研究中心,北京100192)