引言
在实际应用中, 越来越多像学校、工厂宿舍等用户密集场合,采用了一块表计量多个用户的多用户电能表,这种新型电能表对于降低人力与管理成本是显而易见的。然而,尽管采用通信方式种类繁多,多用户电能表系统的通信不稳定一直是难以解决的问题。在本设计中,采用CAN总线通信的方式设计新表,能满足通信稳定、实时准确的要求;而且该表增加可透支用电的设计,解决了众多多用户电能表欠费即断电,给不能及时缴费的用户带来不便的问题。
1 CAN 总线与电能表的特点
1.1 CAN 的优点
CAN(controller area network)是一种应用在生产现场、在微机化测控设备之间实现双向串行多节点数字通信的现场总线。CAN与其他总线有明显优势:1. CAN总线具有非破坏性仲裁,支持竞争,通信采用“多主对等”方式;2.CAN总线组网非常灵活,通信速度最大可到1Mb/s;3.CAN总线采用CRC检验并有错误处理功能,当节点错误时,能自动关闭输出,使总线上的其它节点及通信不受影响。这些特点为电能表稳定通信提供了条件。
1.2 多用户电能表的特点
1、电力部门上位机通过RS232 接口转CAN 总线接入网络采集各电能表。通过上位机软件实时监控电能表,具有分时计费、对表设置缴费管理模式和修改参数等功能。
2、该电能表有过载保护功能,当用户负载超过允用最大负载时,表自动对该用户断电。
3、该表还具有透支模式,用户可现场操作,能提供定量的临时供电,为不方便及时缴费的欠费断电用户提供了便利。
2 多用户电能表硬件设计
电能表硬件系统结构如图1所示, 整个系统由7大部分组成: 选择及放大电路、A/D转换电路、断电控制模块、CAN通讯模块、LED显示、存储器FM1608,X5045和单片机AT89C52。当用户用电时,对应的CT(电流互感线器)和PT(电压互感线器)产生感应电压小信号,小信号由选择及放大电路选择通道和放大后,至A/D转换电路变为数字信号,由单片机(AT89C52)进行处理,将数据保存至FM1608/X5045中,同时由LED显示电量,当有通信时,单片机将数据经由CAN通信模块,上传至上位机。
图1 系统总体框图
2.1 选择及放大电路设计
选择及放大电路由多路选择电路和两级放大电路组成。单片机引脚P2.0片选一74HC377芯片控制5片CD4051芯片使能端,P0口放送一字节编码字,字节前5位片选5个CD4051的INH,后3位控制A/B/C引脚,选择其中一条电流或电压感应通路,而使其他通路处于断开状态。
放大电路由两片LM358芯片级联,将所选的通路的小信号线性放大,放大到适应A/D芯片处理的采样信号,信号进入A/D芯片后,由模拟信号转化为数字信号,这样单片机才能进行数据处理。多路选择及放大电路如图2。
图 2 多路选择及放大电路
2.2 A/D转换电路和存储电路的设计
A/D转换电路选用AD574A芯片,它是一种快速12位逐次比较式A/D转换芯片,这里直接与8位AT89C52相连。不需要外接时钟和参考电压等电路就可以正常工作。
在用户用电时,AD574A将感应的模拟信号转换为12位的数字信号,P2.2端口片选,控制AD574A的工作状态的读取数据,P0端口通过两次读取A/D芯片输出的12位数据。当32路中某一电流和电压感应数据读入MCU内部寄存器后,和参数进行乘法运算,得出能量数据,并累加在FM1608芯片相应地址中。
FM1608芯片可万亿次以上的读写次数,掉电数据大于10年。MCU由RD、WR对其片选,P0通过锁存芯片,对FM1608寻址和读写数据操作,当数据累加达到0.1度时重新归零。
X5045芯片有看门狗定时器和保存数据功能,当程序陷入死循环时,X5045 Rst引脚发出复位信号,使单片机复位重启,保障了电能表正常工作;X5045内部相应地址中保存了该表的通信地址,32户电量度数、用电模式、功率限制,还有感应线圈的调整参数等。
开关K1-K3外接P1.2-P1.4,K1-K2设置表参数;K3为用户键,当LED显示某户电量时,长按K3超过5秒,MCU发给该户继电器闭合指令,实现电源供电。这部分的电路图如下图3。
图3 A/D转换和存储电路框图
2.3 显示电路设计
显示电路由两片MC1413P驱动数码管、一片CD4051芯片、2片74HC377芯片、及4个两位数码管组成。单片机由X5045中依次读取32户的用电数据,译码为数码管显示数字的字节,复用P1端口输出,经由两片74HC377锁存器锁存,再由CD4051芯片动态选择其中一路,通过MC1413P驱动数码管,送到a—g及DP上.对8位LED的动态扫描。前两位数码管显示用户编码,后面六位为用户用电总度数。
2.4 断电控制模块设计
该模块控制继电器的通断电,断电控制模块主要由AT89C2051、1片74LS138、8片74HC377,32片BH3023芯片和32个继电器组成。当存储电路X5045中管理通断电控制地址的数据发生变化时,AT89C52通过TXD向断电控制模块发送字节,断电控制模块根据字节,通过AT89C2051引脚P3.2-P3.4编码输出,由74LS138片选相关74HC377芯片,同时P1口对该锁存器输出一个字节,到达所在BH3023芯片,BH3023芯片对其管理的继电器发送命令,继电器做出通断反应。
2.5 CAN通信模块设计
CAN通信模块负责上位机与电能表的通信,当上位机下达指令时,通信模块译码并传给AT89C52;AT89C52根据指令内容,做出上传数据、修改参数或给断电控制模块发指令等。
图4 CAN模块电路框图
通信模块主要由AT89C51、X5045、SJA1000、PCA82C250芯片组成。SJA1000是一个独立的控制器,有BasicCAN和PeliCAN两种不同的模式,SJA1000的内部功能模块主要有:接口
管理逻辑、接收FIFO 队列、接收滤波器、发送缓冲器和CAN核心模块。CAN核心模块基于
CAN2. 0B的协议执行对CAN帧的发送和接收。
CAN通信模块中X5045芯片主要用途为看门狗定时器,当AT89C51陷入死循环时,X5045发出重启电平,使AT89C51复位重启,保障了CAN通信正常工作。模块框图如图4所示。
3 多用户电能表软件设计
该表软件采用模块化设计,*立分为计量存储显示、CAN 通信模块、断电控制模块三大主程序。为了实现每个主程序的功能, 又把各主程序划分为若干个相应功能子程序或小模块。主程序的作用是系统的初始化、中断管理以及各功能模块的调用等。
3.1 计量存储显示程序设计
计量存储显示模块硬件设计比较复杂,时序要求严格, CPU内程序存储器容量有限,所以软件采用汇编语言编制,以更好地控制时序和代码空间。整个程序采用模块化编程,主要包含初始化模块、电量采集模块、数据存储模块、信息显示模块、串行通信模块、供电控制模块等。
软件设计过程中,考虑到采集数据不能出现错采、漏采等现象以及高可靠性要求,必须采用必要的软件抗干扰措施,如软件陷阱、指令冗余、程序运行监视、数据校验、数据备份、数据写入存储器判断等措施。其主程序流程设计思想如图5所示。
图5 计量存储显示主程序框图
3.2 CAN通信模块程序设计
CAN通信模块主程序包括看门狗的初始化子程序(X5045_Rstdog()); 串行通信初始化子程序(Serial_init()); SJA1000 初始化程序子设计(CAN_Init()); 发送程序子设计(CAN_Send_Trans()); 以及接收程序设计子程序(CAN_Rece_Trans())。
CAN通信模块上电或复位后,先串行通信初始化程序负责设置波特率,读取电能表表号等;接着CAN初始化程序主要是对SJA1000寄存器的初始化,包括:定义BasicCAN、验收屏蔽码、总线的位速率、位周期内的采样点和采样数量、管脚RX0、TX0的输入输出模式和配置。这些完成后,要清除SJA1000的复位请求标志进入工作模式, SJA1000准备进行报文的发送和接收;最后程序进入循环等待中。当上位机有指令下达,引起中断,调用中断函数和相关的发送接收子程序。
该主程序设计采用基于Keil C的C语言进行编程,调用基本库函数来实现各种功能。
3.3 断电模块程序设计
断电模块上电或复位后,程序先进行串行端口波特率初始化等,接着进入循环等待状态,串行中断发生时,调用串行通信中断函数,由P3.0端口接收数据并解码,对P3.2-P3.4端口赋值,接着等待74LS138反应时间后,对P0端口赋值,再等待外部芯片反应时间后,退出中断函数。
结束语
随着科学技术的发展,智能产品设计更注重于人性化的特点。本电能表设计形成产品后市场前景广阔, 对于我国电力市场的规划管理,小区生活品质提升将起到积极的作用。
-
芯片
+关注
关注
455文章
50715浏览量
423159 -
单片机
+关注
关注
6035文章
44554浏览量
634669 -
CAN总线
+关注
关注
145文章
1950浏览量
130728
发布评论请先 登录
相关推荐
评论