智能电表数据传输通讯多重保护机制设计

    张海峰

    

    

    

    摘要:对远程控制的单相智能电表的通讯系统进行了可靠性设计。首先对其要完成的功能进行了描述,然后对其通讯的硬件外围电路了设计,最后用485总线与上位机进行通讯,完成了远程控制所需要的三个关键寄存器的参数设置,对通讯系统进行了可靠性设计,包括上下位机单片机时钟频率的选择和参数的设置使得波特率一致,通过数据通讯的偶校验、数据加密、数据和校验、数据的多次发送来使得通讯可靠性大大提高。

    Abstract: The reliability design of the remotely controlled single-phase smart meter communication system is carried out. This article first describes the functions to be completed, and then designs the hardware peripheral circuits for communication. Finally, it uses the 485 bus to communicate with the upper computer, and completes the parameter settings of the three key registers required for remote control. The system has been designed for reliability, including the selection of the clock frequency of the upper and lower computer and the setting of parameters to make the baud rate consistent. Through the even communication of data communication, data encryption, data and verification, and multiple transmission of data, the reliability of communication is greatly improved.

    关键词:单相智能电表;通讯;校验;可靠性

    Key words: single-phase smart meter;communication;calibration;reliability

    中图分类号:TM933.4? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文献标识码:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章编号:1006-4311(2020)04-0284-04

    0? 引言

    随着大学对学生的生活环境更加重视,高校宿舍装空调已经越来越普遍,很多高校都要對原有的宿舍线路和电表加以改进来适应新的用电要求。一般来说,高校宿舍的用电负载主要包括插座、照明、空调三种回路,这三种回路由于所用时间一般不同,如插座一般要求24小时有电,照明需要早晚有电,而空调一般夏季才使用,所以,这三路一般是分开走线。而在供电侧进行三路继电器分别控制。但由于学生宿舍经常违禁使用热水壶、电热毯、电吹风、电磁炉等大功率电器,传统的电表不能识别这些用电设备造成宿舍安全隐患。新型基于实时功率检测的智能电表除了具有传统电表能进行数据的采集、计量和传输外,在保证空调正常使用前提下,要能检测恶性负载,既保证用电的安全,又保证宿舍环境舒适[1-2]。具体采取的方式是当识别出恶性负载后,切断宿舍的所有电路进行警告,然后10s后恢复供电,如果恶性负载还没有去除,又被检出,再一次断电警告,然后10s后再恢复供电,如果再一次检出还有恶性负载,断电后将不再供电,也就是说,在长时间断电之前有三次去掉违禁用电器的机会,这种人性化的设计使得学生多了些理解,少了些抱怨,这个过程中需要有效识别恶性负载,为了不出现不能识别或者错误识别的情况,不但需要功率计量准确,更重要的是在数据通讯过程中不能出现错误,保证数据的实时性和准确性,这样为后续的功率计算以及负载识别打下良好的基础。为了保证通讯的实时性,本文设计的智能电表采用485总线与上位机进行通讯,进行远程数据的传输和控制。在一些高校的应用表明,采用此设计方案抗干扰性强,可靠性高。

    1? 单相智能电表所能完成的功能

    本文所研究的单相智能电表具有的功能如下:

    电表同时监测输出电压、电流、功率等各种用电参数,显示剩余电量、总用电量、已购电量,预购电量、无费关断、欠费断电提示、透支额度可以通过软件设置。最大功率限制(负载限制功率可任意设置,超过限额自动断电。恶意负载限制(恶意负载功率可任意设置(阻性负载功率),有效设备阻性负载,防止火灾发生。具有恶意负载的识别功能,能对30W以上甚至更小的阻性负载进行有效识别,而不影响其他电器的正常使用,为杜绝安全隐患提供了可靠保证;空调等电器正常使用。实时采集电压和电流波形,通过2个周期的波形数据特征,判断发热电器和防限电插排。反限电插座识别(通过技术手段有效识别反限电插座的违规使用,杜绝安全隐患)目前防欠电插座市场上采用可控硅变压、全波半波技术破解限电器。每个房间可实现照明、插座、卫生间等多回路管理,控制输出分别对应控制房间内的照明回路,插座回路,空调回路,卫生间回路,实现分路用电管理。在不需要空调的季节关闭空调回路的电路,正常时每天晚上熄灭照明和插座回路。在用空调的季节晚上熄灯后留着空调回路,夜间熄灯后留着卫生间灯光。同时违章用电未处理时,停止插座回路的供电。时段小功率管理(夜间熄灯后只允许使用充电器台灯等电器)。总功率限制保护设置:对每个房间设置最大用电功率保护;同时该保护具备白天模式、空调模式、夜间模式;在夜间熄灯后,只有卫生间照明时,自动把房间总功率保护调整到设定值(如50W),以防止夜间从卫生间取电的违规用电行为。

    2? MAX483通讯外围电路设计

    485总线采用半双工方式工作,网路传输采用双绞线方式,发送电路时需要用使能信号加以控制。半双工数据在传输的过程中只能在一个方向上进行传输,等待一方的数据传输结束以后,由另外一方再做回应。本设计方案中RS485通信所用的是低功耗收发器芯片MAX483,其芯片电路如图1所示,在MAX483芯片中每个元器件中都只含有一个接收器和一个驱动器,它含有的是有限功率驱动器,它不仅能够减少电磁干扰,并且也使得使用不恰当的终端匹配电缆而产生的反射有所下降,能够完成最大250kbps无差错数据传输。接收器具有失效保护功能,当输出端开路,能够保证输出逻辑是高电平。电路左边有3个型号NEC2501光耦,起到隔离作用,以防MAX483芯片和单片机的信号相互干扰。右边的瞬态抑制二极管P6KE10CA是吸收浪涌功率用的,能在极短时间内承受反向电压冲击,使两极间的电压被钳制于一特定电压上,避免后面的电路受到冲击,连接时必须反向工作在电路电源地两端[3]。

    采用单一电源+5V工作,额定电流为300μA,采用半双工通讯方式。它完成将TTL电平转换为RS-485电平的功能。MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机连接时接线非常简单。只需要一个信号控制MAX483的接收和发送即可。同时将A和B端之间加匹配电阻,一般可选100Ω的电阻。

    3? RS485串口通讯寄存器参数设置和初始化

    在RS485通讯过程中,采用的是串行通讯口,可以对UART6进行初始化后,将数据处理程序放在接收标志之后,使可对接收到的数据或命令进行响应,UART6的初始化主要包括异步串行接口操作模式寄存器ASIM6、时钟选择寄存器CKSR6和波特率发生器控制寄存器BRGC6这三个寄存器[4]。

    3.1 异步串行接口操作模式寄存器ASIM6设置

    该8位寄存器用于控制串行接口UART6的串行通信,可由1位或8位存储器操作指令设置该寄存器。其8位符号如表1所示。

    3.2 时钟选择寄存器CKSR6设置

    该寄存器用于选择串行接口UART6的基本时钟fXCLK6,可由8为存储器操作指令设置CKSR6。其8位符号如表2所示。

    3.3 波特率发生器控制寄存器BRGC6

    波特率发生器控制寄存器BRGC6,该寄存器用于设置串行接口UART6的8位计数器的分频值,可由8位存储器操作指令设置BRGC6。其8位符号如表4所示。

    波特率发生器控制寄存器不同参数设置对应的不同输出时钟,输出时钟范围广泛,所以相应有252种不同的波特率,其对应的时钟输出如表5所示。

    3.4 电表的初始化程序

    本电表的初始化程序设计:

    4? 通讯的可靠性设计

    4.1 上下位机的波特率一致性

    上下位机的波特率一致性是保证数据可靠传输的源头,在选择设计时候必须引起足够的重视[5]。下位机电表采用的单片机和上位机收发器采用的单片机生产厂家不一样,时钟频率也不一样,这样在进行通讯时,可能波特率不一致造成误差,通过我们的选择,保证了二者的速率一样,不会造成通讯的延迟。

    电表通讯的波特率计算公式:

    4.2 软件設计保证数据传输的可靠性

    首先数据通讯时采用9为异步通信,每帧数据均为11位,1位起始位为0,8位数据位(先低位),1位可程控为1或0的第9位数据位和1位停止位,数据通讯采用偶校验,如果接收的数据不能通过校验,通讯会自动报错。

    软件设计的流程图如图2所示[6],如果接收的数据个数为0,报告没有接收数据,返回接收值为0XFF。如果只接收到一个数据,要判断接收的数据是不是电表号,因为在通断电时,只需要接收和发送电表号一个数据,设计要求要保证各宿舍断电时间前后不超过3分钟,因为时间太长会造成学生的抱怨,为什么有的宿舍关灯早,有的宿舍关灯晚。解决的办法主要一个增加上位机收发器的数量,二是要求通讯的数据尽量少,减少发送数据的时间。在进行判断时,要将电表号加上0x33看是否与接收的数据一致,因为在上位机发送数据时,为了增加数据的可靠性,对数据进行了加密,加了0x33。如果数据超过一个,首先检验第一个数据是不是空格,因为在发送数据前发送一空格,相当于提示通讯接口要进行正式数据通讯了,保证数据传输的可靠性。然后接收后面的4个数据,这些数据包括控制字如写电量、功率设置等,电表号,用户号,电量等,如果没有,就用0填充,这些数据和前面的电表号一样也进行了加密,为了保证这些数据的准确性和可靠性,第5个数据是校验数据,如果前面4个数据的和与第5个数据相等,就表明传输数据没有错误,然后把这4个数据减去加密数据后存入接收SBUF,准备发送,为了保证这些数据有效接收,每组数据(包括1个空格和5个数据)发送两次,如果数据接收错误,发送字母“N”,这样通过偶校验、加密、数据和校验、多次发送,保证了数据传输的准确率和可靠性,实验表明,错误率小于万分之一,对于大学宿舍用电已经非常可靠,学生基本没有不满意的情况发生。

    5? 结论

    本文对远程控制的单相智能电表的通讯系统进行了可靠性设计。包括软硬件的设计工作,硬件设计工作主要是进行了外围电路设计和元器件的型号参数选择,软件设计主要是完成了远程控制所需要的三个关键寄存器的参数设置,上下位机单片机时钟频率的选择和参数的设置使得波特率一致,通过数据通讯的偶校验、数据加密、数据和校验、数据的多次发送,使得系统的通讯可靠性大大提高,通过这些改进措施,实验结果表明大大超过了最初的设计指标,现已在某些高校得到了较好的应用。

    参考文献:

    [1]刘朝辉.智能电表发展前景及市场容量分析[J].市场营销,2015(2):36-37.

    [2]荆永震,朱楚楚,蔡高琰,等.LoRa通信智能用电系统中的应用[J].自动化与仪器仪表,2019(1):187-190.

    [3]陈斌斌,孙卫华,杜志平.基于NEC单片机的智能电表控制系统设计[J].电子测试,2015(3):16-18.

    [4]陈术,王海坤,梁小娜,等.物联网电表抄表及远程电力服务系统应用研究[J].信息与电脑,2017(13):129-130.

    [5]许晓毅.基于嵌入式的智能抄表管理系统设计[J].智能处理与应用,2015(6):70-71.

    [6]熊文,王莉,肖健,等.一种RS485串口通信电路的高可靠性设计[J].自动化与仪器仪表,2017(3):43-45.

    [7]李伟.基于远程费控的智能电表的设计分析[J].价值工程,2018,37(36):279-280.