4 FM3116在复费率电能表中的应用
4.1 FM3116的硬件设计
图2所示为AVR单片机与FM3116的接口电路,AVR单片机提供了实现标准I2C通信的硬件接口TMI,因此可直接将TMI接口的数据传输引脚PD1/SDA和时钟输出引脚PD0/SCL分别与FM3116的SDA和SCL相连,通过对TWI接口寄存器的设置实现与FM3116的I2C通信。R1和R2为I2C总线的上拉电阻。
4.2 FM3116的软件设计
4.2.1 FM3116初始化操作
单片机对FM3116的读写程序包括存储器读写程序和实时时钟/处理器伴侣读写程序两部分。在对FM3116读写前,单片机首先需对其初始化。在复费率电能表系统设计中,就是对相应寄存器初始化,采用C语言编写的程序代码如下:
4.2.2 实时时钟程序
复费率电能表实现复费率功能,需要准确的实时时钟作为时段划分根据。FM3116内部集成有高精度的实时时钟模块,可通过对相应寄存器的读写,实现对实时时钟的设置与读取操作。设置实时时钟的C语言程序代码(只举例了设置时钟的日期数据)如下:
读取实时时钟的C语言程序代码如下:
此外,FM31XX存储器还具有时钟校准功能,可提高时钟准确度。
4.2.3 存储器读写程序
读写FM3116存储器一般用于实现电能表电能数据及各种事件记录数据的读取和存储。由于各种事件数据的格式不同,包括单字节的字符型数据、双字节的整型数据以及4字节浮点型数据。因此,为了方便读取各种数据,需要编写对各种数据读写函数。FM3116存储器读写程序与普通的I2C器件的读写操作基本相同,其从机地址为1010 xxxxb和1101xxxxb。
5 结束语
由于铁电存储器具有读写速度快,功耗低和无限次写入等特性,同时拥有RAM存储器和非易失性存储器的特性,它是EEPROM的理想替代品。将FM3116应用到复费率电能表中既节省成本,又简化软件设计。