2.2.2 CS5460A的初始化
在该系统中,CS5460A的工作时钟MCLK选定为4.096 MHz,分频系数K设为1,循环计数寄存器的N值设为4 000,则一个基本的计算周期为(1 024×N)/(MCLK/K)=1 s。
CS5460A与单片机的接口非常简单,但它的初始化命令较多,使用上有一定的技巧,如使用不当有时可能初始化不成功,引起芯片的转换出错,使系统不能正常工作。所以在使用过程中将初始化过程反复调试,编成通用子程序,使用时调用,可确保每次运行的准确、可靠。CS5460A初始化子程序框图如图9所示。
CS5460A初始化程序如下:
CS5460A WriteReg(0x40); //写配置寄存器
CS5460A_WriteReg(0x78); //写控制寄存器
CS5460A WriteReg(0x74); //写屏蔽寄存器
read byte(); //从E2PROM中读取校准值
CS5460A_WriteReg(Ox60); //写交流电流偏移寄存器
CS5460A_WriteReg(Ox62); //写交流电压偏移寄存器
CS5460A_WriteReg(0x44); //写交流电流增益寄存器
CS5460A_WriteReg(0x48); //写交流电压增益寄存器
CS5460A_WriteCommand(0xe8); //写入开始转换命令
2.3 ZLG500C的程序设计
ZLG500C模块通过对上位机电能数据的存取,和对非接触IC卡的值操作,可以实现对电表的远程付费。
一般非接触IC的读卡流程如图10所示。
程序如下:
2.4 中断服务程序的设计
2.4.1 电能测量中断处理
中断处理子程序:本系统利用单片机外部中断,低电平有效。当CS5460A的一个计算周期结束后,引脚由高电平变为低电平,触发微单片机外部中断,程序转到中断处理子程序。中断服务子程序的功能是先读取CS5460A的寄存器值,然后判断用电量是否过载,如果过载则通过继电器断开总电源,如果用电在额定功率范围内,则更新E2PROM中I,V,P寄存器内的值并将最新的电能寄存器中的值与E2PROM中的电能数据进行累加后存入E2PROM并将数据显示在 LCD上。最后判断当月用电信息是否已经上传至上位机,若未上传则通过RS 485上传信息。
2.4.2 按键中断处理
本系统中设有一个付费按键,该键连接外部中断,中断触发后执行如图11所示流程。
3 结 语
综上所述,本文为智能化电能管理提供了一个有效的解决方案。本系统因采用的X5045,所以可将电压和电流有效值、功率、用电量等历史数据保存在 E2PROM中,不断刷新,以供出现故障时查看故障过程,同时系统作为智能终端通过RS 485串行差分总线与上位计算机连接,将当前计算所得数据上传。对用电功率、电流、电压、频率、电量等进行集中监测和控制,设计出分布式电能控制系统,实现电能的分散控制和集中管理。此外,该系统可通过模拟开关复用RS 485总线,读卡器模块ZLG500C实现远程电能付费等一体化的功能。
来源:电子工程世界