电能计量装置的无线抄表系统
3.串行通信接收和发送中断服务程序
串行通信的接收中断和发送中断服务程序主要完成单片机和上位机之间的数据交换。其中接收中断服务程序主要是接收从上位机传来的各种命令,发送中断服务程序是单片机对上位机的各种命令的响应,如上位机叫单片机发送地址等。接收和发送中断服务程序流程图如图3和图4所示。
4.数据处理子程序
数据处理子程序是软件设计中的重要部分。它通过对串行通信接收到的数据进行分析、比较、判断并转入相应的子程序。由于要实现上位机对单片机的控制,自行规定了一些控制命令。为了不与模块和计算机(单片机)之间的控制命令传输格式相冲突,自行规定的一些控制命令都采用数据传送的方式传送,有别于命令传送方式,因此开始字符小于30H。
5.片内EEPROM操作子程序
片内EEPROM操作子程序包括对EEPROM的读操作和写操作。其中读操作是在主程序初始化后进行的,写操作是在掉电时由模拟比较器产生的标志被主程序查询到而进入的。这一部分内容虽然不多,但对于数据的保存和恢复非常重要,因为系统一旦开始工作后,它所记录的数据是绝对不能丢失的。
EEWrite_seq: ;对EEPROM的写操作
.def EEwtmp =r24
.def EEdwr_s=r18
.def counter=r22
sbic EECR,EEWE
rimp EEWrite_seq
out EEAR,Eewtmp
out EEDR,Eedwr_s
sbi EECR,EEMWE
sbi EECR,EEWE
in Eewtmp,EEAR
inc Eewtmp
ret
EERead_seq; ;对EEPROM的读操作
.def EErtmp=r24
.def EEdrd_s=r0
sbic EECR,EEWE
rjmp EERead_seq
out EEAR,Eertmp
sbi EECR,EERE
in EEdrd_s,EEDR
in EErtmp,EEAR
inc EErtmp
ret
值得注意的是,AT90S2313单片机的片内EEPROM被分隔为一些连续的单元。对EEPROM的读写都必须从每个单元的初始地址开始,否则不能正确完成对EEPROM的读写。因此,在主程序中要进行EEPROM的读写操作时,都是从EEPROM的00地址单元开始。
javascript:window.open(this.src);" style="cursor:pointer;"/>
三、系统可靠性设计
无线抄表系统必须在电力系统中准确、可靠地长期运行。可靠性是系统成功的关键,因此本系统设计时着重考虑了以下方面的可靠性设计:
(1)数据传输采用CRC校验,可验出传输中的绝大部分错误;
(2)数传模块采用金属封装,抗干扰能力强;
(3)AT90S2313单片机片内带EEPROM,掉电时可以保护数据;
(4)AT90S2313单片机片内带看门狗电路,防止系统锁死。
(5)单片机所有功能模块均在芯片内,其总线不出芯片,不需外扩任何器件,提高了系统可靠性。
结论
本系统最大特点是充分应用了单片机的硬件资源,成本低、体积小、携带方便,能方便、快捷、准确、可靠地进行自动抄表。目前,本系统的设计和样机调试已经完成,可以预计它的运算将为合理用电提供高效、科学的管理手段,为电力部分的电能表管理网络化、抄表自动化提供一种可选择的有效方法。