用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

电能计量装置的无线抄表系统

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:50:00
【本文由PB创新网为您整理】
摘要:针对目前我国电能数据的采集方法不便的这一现状,提出并实现了一种电能装置无线性表系统。介绍电能表无线自动抄表系统的原理、构成、特点,并叙述AT90S2313单片机在电能表自动抄表系统中的应用。

    关键词:无线抄表系统 AT90S2313 单片机 电能计量

引言

电能表自动抄表简称ARM(Automatic Reading Meter),是供电部门将安装在用户处的电能表所记录的用电量等数据通过遥测、传输和计算机系统汇总到营业部门,代替人工抄表及一连串后续工作。

随着经济体制改革的深入,电能计量、电费核算及收缴的及时性和准确性已成为用电企业的重要课题;而目前我国电能数据的采集基本上为手工抄表,需要抄表人员走家串户,每月或每两月抄一次,再通过微机或手工制作的电费单催缴用户电缆,存在着错抄、漏抄、估抄等问题。自动抄表系统的研制与应用是解决上述问题的有效途径之一,而无线抄表系统则是自动抄表系统中 种较优的方式。该系统的实现是迈向配电自动化的第一步,并有助于提高电力系统用电管理的水平。
javascript:window.open(this.src);" style="cursor:pointer;"/>
一、系统硬件构成

这套电能计量装置无线抄表系统包括2块SA68D11无线数传模块和1片ATMEL公司生产的AVR系列AT90S2313单片机。模块有来实现无线数据传递;单片机用来进行数据采集作一些相应的处理。系统硬件框图如图1所示。

图1中,8路脉冲输入信号来自8个单相脉冲电能表。工作时,单片机只需定时测量输入的脉冲,再根据脉冲数与用电量之间的比例关系即可得到用户的用电量。

图1中虚线框内的单片机数据采集部分是整个系统的核心部分,通过软件的编辑可实现数据采集、数据保存、数据发送和控制命令的接收以及其他数据掉电保护等重要功能。本系统采用的AT90S2313单片机构成图1中虚线框内所有功能模块。它内含2KB的FLASH存储器;128字节片内EEPROM、128字节片内RAM和片内模拟比较器;8位和16位可预分频定时器各一个;中断源11个(中断优先级已定);全双工的UART以及可编程的WatchDog定时器等。在本系统中,单片机的资源分配为:T1作为时器,实现单片机对脉冲量的定时采集。模拟比较器检测系统交换电源工作是否正常。一旦发生掉电情况,模拟比较器中断标志位就被置1,在主程序中不断检测这一位;一旦检测到该位为1,则立即将数据写入EEPROM中保存。从掉电到保存时间很短,在这段时间内靠滤波大电容储能供电。在储能放完之前,将保存数据工作完成即可。EEPROM存储器用来保存单片机所测的脉冲数和单片机的地址等一些重要装饰。Watch Dog定时器防止单片机“死机”或“跑飞”。串行口UART实现单片机发射/接收模块之间的数据交换。

在本系统中,数据的无线传递是通过无线数传模块实现的。为了使模块与单片机、计算机之间的数据传送正确,必须严格按照计算机(单片机)与模块间的传输格式进行数据传送。模块的输出电平为TTL电平,它可与AT90S2313单片机直接连接。与计算机连接时间需接一个RS-232C电闰转换芯片。模块与单片机、计算机之间的通信速率为9600b/s,采用1个起始位、8个数据位、1个停止位的格式,与AT90S2313单片机的通信接口方式完全相同。计算机和模块之间的数据传输格式为:

标志字节D7H控制字节M数据或参数字节

第一个字节为标志字节,其值为十六进制数D7,作用是标志数据传送的开始。第二字节为控制字节,当第二字节小于等于48(30H)时,其值代表传送数据长度。后面字节为数据,当第二字节大于48(30H)时为控制字,后面不再跟数据和参数。模块传给计算机时带CRC校验字节防误措施。

二、系统软件设计

本系统的软件主要包括二大部分:一是数据采集部分,是以AT90S2313单片机与核心的汇编语言的设计;二是PC机通信软件的设计部分。这里要介绍AT90S2313单片机的汇编语言设计问好。其软件设计思想是采用模块化编程,即系统的总体功能由各子程序完成。主要的子程序有定时器中断、数据算是和接收发送中断服务程序等。

1.单片机初始化部分

主程序部分首先对单片机进行初始化,其包括堆栈指针设置;端口的工作方式设置;定时器的预分频系数和初值设置;串行通信的控制寄存器和波特率寄存器的设置;看门狗定时器的周期及初值设置;单片机的地址设置;开全局中断等,其流程图如图2所法。初始化子程序如下:

start:

ldi tmp,$d9 ;设置堆栈指针

out spl,tmp

clr tmp ;设置B口、D口为输入且不带上拉

out ddrb,tmp

out ddrd,tmp

out portb,tmp

ldi tmp,2 ;设置定时器分频系数及定时器赋初值

out timsk,tmp ;定时周期为6.4ms,开定时器中断

ldi tmp,timer T

out tccr0,tmp

ldi tmp,$d8 ;允许接收中断和发送中断

out ucr,tmp

ldi tmp,baud ;设置波特率为9600baud

out ubrr,tmp

ldi tmp,watchT ;设置看门狗定时器的周期及初值

out wdtcr,tmp

ldi tmp,$0a ;设置模块比较器工作方式

out acsr,tmp

ldi r26,address ;给单片机赋初始地址

ldi tmp,$2djavascript:window.open(this.src);" style="cursor:pointer;"/>

st x+,tmp

ldi tmp,$d0

st x+,tmp

ldi tmp,$77

st x+,tmp

ldi tmp,$07

st x+,tmp

ldi tmp,$02

st x,tmp

ldi r26,figa0 ;清所有标志位

clr tmp

st x+,tmp

st x,tmp

sei ;开全局中断

2.定时器中断服务程序

定时器

[1] [2]  下一页

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:203.12500 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号