技术中心
 
 

新一代单片电能表微控制器

   日期:2006-02-04     作者:管理员    

    如今用户电表正逐渐朝着多费率、多功能和高精度方向发展。本文详细描述了一种新型单片电表微控制器的功能和应用特性,它将使多功能、多费率电表设计更加简单和可靠,实现更加高效的电能传送,最终有效提高电表生产和制造效率。

    传统的机械式电表存在一定的局限性,首先,它是一个机械装置。尽管经历一个多世纪后人们已能够制造非常可靠的机械式千瓦时电表,但机械装置的精度还是容易受磨损、震动及其它导致位移事件的影响。

    另外一个限制是机械电表不能够记录时间,只记录费拉斯轮的旋转数,无法记录与之相对应的快速旋转和慢速旋转的时间。根据实际经验我们知道用户的用电需求不是一成不变的,白天的用电需求远远大于夜晚的需求。特别是在夏季,因为空调的大量用电需求而导致下午和傍晚的用电量激增。电力公司必须保证供电系统能够输送峰值电能等于或高于用户的峰值用电需求。这意味着在非峰值用电时间,发电机工作在轻负荷状态。由于电能不可以存储,因此势必造成重大的资源浪费。基于这个原因,电力公司希望采用一些奖励措施来平衡峰值电量需

求和谷值电量需求。最好的方法当然是采用不同的峰值和谷值电价。机械式电表由于不能记录时间,因而无法满足这一要求。

    第三个局限性就是传统的机械式电表只能够记录实时有功功率。理想情况下,输入电流和输入电压相位完全一致,电压和电流的乘积就等于实际输出的有功电能。然而,实际情况并非如此,感应电机和荧光灯等用电设备会导致电流相位偏离与之对应的电压相位,只有同相部分的区域才能形成有功功率,不同相部分的区域将会以无功功率形式返回电网,结果实际有用功率小于输入电压和电流的乘积。

    对于大容量的工业用电客户,需要配置相应的无功功率电表实时监测和计量输送给客户的无功功率值。同时,工业客户必须根据合同约定确保一定标准的功率因数。使用多功能电表,电力公司可以轻松扩展功率因数监测范围至小规模商业用户,某些情况下甚至也可以监测小规模居所的功率因数指标。

    最后,机械式电表的抄表计费是一件非常繁琐的工作。人工现场抄表费用昂贵,且容易出错;如果按照不同的价格区间分时计费,那么这个负担就会达到无法接受的程度。因此我们迫切需要采用自动集中抄表方案,以提高工作效率,减少人为误差。

    综合上述因素,可以得出机械式电表具有诸多局限,市场迫切需要一种具有更高灵活性、能够实时测量时间和功率因数,并且具有更高计量精度和自动抄表能力的新型电表:以微控制器为主控制器的全电子式电能表。

    实际上,电表制造厂商自1990年以来就已着手设计数字电能表。现在,新一代的混合信号微控制器使多功能、多费率电表设计更加简单和可靠。

    设计基础
    最基本的多费率、多功能全电子电表所需的基本硬件如下:采集输入电压和输入电流信号的转换器、显示屏、数据通信子系统、非易失存储器、电源以及内嵌程序的微控制器。设计者通常希望将上述大部分功能电路与微控制器集成在一起。以Maxim的单片电表微控制器MAXQ3120为例,它在单一硅片上集成了双路16位模/数转换器(ADC),分别用于电压和电流信号的采样和转换;两个全功能异步串行通信口(其中一个可以配置为红外通信模式);一个液晶显示控制器和一个独立的16×16乘法器;另外,芯片上还集成了足够的数据、程序存储器,以满足多费率、多功能电表的复杂要求。

    设计多功能电表软件是一项极具挑战的工作。第一,由于软件定义了该产品的基本功能,不同区域和不同应用环境需要采用不同的应用软件,电表的基本功能会有所差别;第二,虽然采用高级语言(例如 C语言)编程,但电表应用软件仍然需要根据不同的硬件运行环境做相应的定制化配置。电表硬件系统相对于操作软件比较简单,这实际上给电表制造商提供了一个具有较高生产效率的制造方案。因为装载软件是生产过程的最后一个流程,因此我们可以首先开发电表的基础电路板,然后根据最终用户的要求装入不同的应用软件。既可以达到降低、控制制造成本的目的,又可以实现更灵活的管理模式。Maxim提供采用C语言编写的参考设计程序,它能够基于最终用户的需求实现任意功能软件的定制服务。

    电能测量
    目前大多数ADC都是电压输入器件,测量输入电压信号比较简单,唯一需要注意的就是按比例匹配输入电压范围,使其在ADC可接受的输入量


程内。Maxim提供的参考设计中采用电阻分压网络将电压输入转换成微控制器内部ADC可接受的-1V到+1V输入。电流信号输入端,采用一个并联电流分流器将电表的电流输入信号转换为小信号电压输入。通过分流器的电压信号必须足够低,尽量降低功率损耗:一个0.5m?的分流器(假定输入最大电流等于40A)只能提供20mV的满摆幅电压输出,但其功耗接近1W。

    对于ADC指标,首先,需要了解其精度需求,绝大多数电表定义在整个量程范围达到1%的测量精度(注意不是满量程精度)。Maxim的参考设计能够在1A到40A输入电流范围内达到1%的精度。为了达到这个设计要求,电表必须能够分辨最小10mA的电流信号,但是在输入电流达到40A时,为了保证ADC不进入饱和状态,电流比须高达4,000:1。这样,ADC的位数不能低于12位,最好采用14位或更高分辨率的ADC。对于采样速率指标,根据奈奎斯特定理,采集最高60Hz的正弦波信号时,120Hz的采样率既可满足要求。但是,有一些电能表规格要求能够高精度地测量21次谐波频率的信号,对应的最高信号频率等于1,260Hz,因此采样频

率必须等于或高于2,520Hz。就目前的ADC设计水平,业界已完全有能力将这样的ADC与微控制器集成在同一硅片上。

    硬件设计分析
    1. 显示
    参考设计采用液晶显示器作为显示单元。它的好处是显而易见的:该显示器可以指示从能量到电压以及时间等任何用户需要观察的数据。其缺点是必须依靠外部电源供电,断电状态下无法观察任何数据。尽管机械式计数器本身具有非易失性,但必须执行测量以确保电表内部能保持住最后显示的读数。

    2.通信接口
    目前市场上有许多通信机制方案欲将所有类型接口集成在一个外围单元中。但是,作为一个廉价的电能仪表,大部分客户趋向于尽可能采用简单的异步串口协议。在MAXQ3120电表参考设计方案中,设置了两个外部的串行通信口。第一个是基于EIA485标准协议的通信口。在EIA485通信网络中,采用PC作为网络的主控制器。随着PC轮询这些电表,它们会进行响应,将表示所用电量的数据包上传。PC汇总所有用户数据之后再传送至计费中心。

    第二个通信口是红外发送和接收系统,它基于简单的异步通信协议。通过简单的调制电路将串口输出数据“0”调制为38kHz信号,数据“1”则不调制。接收端采用集成了红外光电管和38kHz检测器的一个廉价IC来实现。这样只需简单的光学器件就可以组成全功能的红外收发系统。

    3.电源
    电源电路最为简单。因为现有的微控制器均为低功耗器件,选用一个基于变压器的线性电源即可。在参考设计电路中,微控制器并没有与电力线隔离,实际上,其系统地位于线电压处。因此,不能将微控制器直接与通信网络连接,这会导致网络的所有设备暴露于线电压下,存在很大的安全隐患。在此设计中,采用了一组独立的电源变压器次级绕组来提供网络收发器的电源,并且收发器与微控制器采用光耦隔离,达到网络隔离的目的。

    4.非易失存储器
    在参考设计方案中可以考虑两种相互竞争的非易失存储器芯片,一种是半导体EEPROM,另一种是铁电介质随机存储器(FRAM)。前者相对来说非常便宜,但写入时间较长(大部分为毫秒级),读写次数有限,大概在10,000到1,000,000次之间。表面看起来这是一个比较高的数值,但是,如果软件系统需要在每个电源周期更新非易失存储器的数据,那么对于50Hz信号意味着即使最好的EEPROM存储芯片也只能坚持5个半小时!实际应用中,我们可以采用缓冲存储器来避免发生这种情况,但这样做非常繁琐。FRAM以同等价格解决了上述问题,其写周期时间与读周期时间几乎相等,而且对读写次数没有限制。

    5.选择微控制器
    在为电表设计选择微控制器时,需要考虑以下几点:
    a. 特性:微控制器是否具有所需的功能电路,如:集成的实时时钟、串行通信口、定时器和计数器、红外通信以及显示控制器。另外还可能需要一些信号处理单元。

    b. 代码空间:如果采用C语言编程,预计代码空间设在16k到64k之间。参考设计采用了32k的代码空间。








    c. 数据空间:确保微控制器内部有足够的数据存储空间,以保证数据结构的完整性。

    d. ADC:许多微控制器内部集成了数据采集系统,但是大部分属于低速、低性能指标的ADC。能够满足电表设计要求的ADC应该具有14位或更高的分辨率,采样速率可以达到10ksps以上。

    e. 实时时钟:确保内部实时时钟精度达到每月误差0.5s。如果大不到,可以考虑采用外部高精度时钟模块。

    软件支持
    在MAXQ3120参考设计中,我们考虑设计了一个简单的系统主控程序,主程序可以依照一定的顺序调用所有的任务子程序;每个任务子程序完成一定的工作后很快释放处理器的控制权。这个主控程序习惯上被称为“任务轮”(task wheel),它类似于一个简单的任务调度器。采用这种方法,任何任务都将在特定的时间段运行,以保证所有的任务都有合理占用处理器的时间资源。软件架构请参考图2。

  &

nbsp; 在这个电表参考软件中,每一个任务子程序都会监控本身的输入状态,以决定下一步的处理流程;如果输入状态没有改变,那么它只需要简单地返回任务轮主控程序就行了。有一些特定的任务处理子程序,其输入信号来源于外部事件;例如:ADC转换完成信号,或者串口接收到相应的信息数据流。有些任务的输入状态则完全来自内部事件:一个累积的能量值需要更新,或者需要更新相关的显示内容等。对于这样的事件,系统会更新对应的一组二进制数状态,这里的每一个二进制位都代表了相应任务子程序的输入状态。我们将这一组二进制位称为“信息板”。

    对于一个实用的电表设计,所有的数据都采用专用的通信数据格式储存在存储器中。此参考设计参考了中国电表通信协议标准DL/T645,在这个标准中,用户数据、配置信息和许多命令信息均依靠一系列的寄存器实现传输。为了进一步了解多任务轮主控程序和消息板系统的功能,这里给出一个红外终端的读信息命令处理例程:

    1. 从红外接收模块接收到相应的字节数据,串口驱动器设置信息板对应的二进制位,送出相应的事件任务给信息检查程序。

    2. 信息检测程序从串口驱动器接收到相应的字符数据,如果未检测到语法错误,它将此字符数据加入信息队列。注意信息检测程序并不能判定信息的种类和作用。当接收到完整的信息包之后,下一步会设置信息板上对应信息解码任务的二进制位。

    3. 信息解码程序检查收到的信息并判断:(1)是否为读取命令;(2)是否为一个有效的寄存器数值;(3)是否有阻止该命令执行的其它情况。如果所有条件均得到满足,下一步将通过信息板激活寄存器管理程序。注意这个时候信息解码程序并没有清除相应的二进制位,因为同一时间只能够处理一个输入信息请求。

    4. 寄存器管理程序从EEPROM存储器中找到相应的需求信息后,会设置和激活信息格式化程序。此时仍然不会清除相应的信息板二进制位。

    5. 信息格式化程序将寄存器管理程序读取的数据从数据缓冲区转移到通信缓冲区。同时信息格式化程序也会先标示相应的数据信息长度,然后告知信息传送程序缓冲区数据已经准备好可以发送。

    6. 信息传送程序按字节发送缓冲区数据给串口驱动器。同时信息传送程序会计算相应的信息校验和。当最后一个字节发送完毕之后,它会首先清除由信息格式化程序设置的二进制提示位。下一步,信息格式化程序又会清除由寄存器管理程序设置的二进制提示位,如此后推,直到信息链上的所有二进制提示位都被清除为止。

    此参考设计中任何其它任务程序都按照与此类似的方式执行,它们会在完成自己的任务之后设置信息板上相应的二进制位来提示其它任务程序执行相应的任务。这种方案的最大好处是节省数据存储空间:在参考设计中我们只需要0.5kB的数据存储器。Maxim可以提供该方案的源程序代码。

信息来源:仪器仪表商情网


 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢