基于EM773的无线智能电表存储系统设计*

2014-07-25 08:59权震华西南科技大学信息工程学院四川绵阳621010
网络安全与数据管理 2014年17期
关键词:存储系统电表字节

权震华,罗 亮(西南科技大学 信息工程学院,四川 绵阳,621010)

智能电表是智能电网的智能终端,除了具备传统电能表电能计量的基本功能以外,还具有用电信息存储及处理、实时监控、自动控制、信息交互等功能。对于智能电表不断的数据采集,其电表的精度不仅与检测芯片的精度有关,还与存储方式有很大关系。存储方式的选择直接关系到电表的正常使用和测量精度,因此电表数据存储的可靠性和准确性至关重要。为保证智能电表中的主要数据和参数快速准确地存储且不丢失,需要开发能够适合嵌入式方案采用的专用存储系统。本文设计了一款基于EM773多功能电能计量芯片的无线智能电表,并针对其工作过程中实时采集电能数据存储数量大,数据类型多,不便于随时传输的特点,设计了基于表格文件系统的本地存储系统,很好地满足了智能电表大量本地电能计量数据快速准确的存储要求。

1 基于EM773的无线智能电表系统

EM773是由NXP公司推出的一款基于ARM Cortex-M0内核的低成本32位多功能电能计量IC,适用于8/16位智能仪表应用。EM773的CPU工作频率可达48MHz,片上集成32 KB的Flash存储器和8KB的数据存储器,提供I2C、UART和SPI3种总线接口,另具有3个通用定时器和1个计量引擎,可用通用I/O管脚25个。计量引擎的软件驱动程序也内置于片内,通过调用固件中API函数即可实现所需计量功能。这使得用户可以专注于应用层软件开发,无需关注计量功能相关细节,大大降低了开发难度和时间。

基于EM733的无线智能电表系统框图如图1所示。EM773是电表系统的处理核心,通过电能采样模块对检测线路的电流和电压进行采样,再通过内置的计量引擎,经过一系列的公式变换,最后得出电压、电流、有功功率、基波无功功率、视在功率、基波视在功率、功率因素、基波功率因素、非基波视在功率、非有功功率和电流总谐波失真等电能计量数据。电表的显示选用了由PCF8576作为主控的段式液晶,选用实时芯片RX8025提供实时的时间信息,选用CAT24C256作为外部扩展存储器,EM773通过I2C总线对它们进行访问。电表系统的计量数据通过SPI总线传送给nRF24L01无线数据传输模块,再通过2.4 GHz ISM频段无线发送给上位机接收。电表系统的电源直接从检测线路上取电,转换后得到系统电路工作所需的12 V、5 V和3.3 V电源。

图1 无线智能电表系统框图

2 存储系统硬件设计

无线智能电表在工作过程中实时采集电能数据,存储数量大,数据类型多,而上位机不能也无需与其保持长期的无线通讯。这就需要在智能电表本地创建一个规范化的存储系统来保存数据。在上位机需要相关数据时,由其对智能电表提出查询请求,智能电表再将本地存储的数据发送给上位机。

本设计中,针对智能电表的存储需求,需要外扩存储器。经分析和比较,选择了256 Kbit的串行电可擦的可编程只读存储器CAT24C256,其32 KB的存储容量和灵活的页读写方式能很好的胜任智能电表的存储需求。

CAT24C256的引脚如图2所示。SCL和SDA分别是I2C总线的串行时钟输入端和串行数据/地址端,A0、A1和A2是用于多个同类器件级联时设置器件地址的输入端,WP是器件写保护输入端,VCC和VSS是器件的供电引脚。

图2 CAT24C256引脚图

CAT24C256内部有512页,每一页为64 B,任一单元的地址为15 bit,地址范围为0000H~7FFFH。CAT24C256读写协议支持标准I2C协议,通过挂载在I2C总线上进行读写。在遵循标准I2C协议的读写时序基础上,CAT24C256增强了读写方式,具体写操作支持写字节和写页两种写入方式,读操作支持当前地址读、随机读和读串3种读出方式,下面分别介绍各种读写方式的操作流程。

2.1 写操作

CAT24C256支持写字节和写页两种写入方式。

(1)写字节流程

首先向CAT24C256发送设备地址字并接到应答信号后,需要发送两个8 bit地址来选择要写数据的地址,CAT24C256接收到这个地址,应答一个零信号,然后根据时钟写8 bit数据到CAT24C256。存储器接收到数据后返回一个应答信号。

(2)写页流程

CAT24C256具有64 B作为一页的写页功能,可以一次性写入一页。写页的初始化过程与写字节的方法基本相同。不同的是写入1 B后,微控制器不发停止状态命令,而是在应答信号后,接着输入63 B。每一个字节接收到后,CAT24C256输出一个为零的应答信号。因为一页只有64个单元,所以数据字的地址低6 bit接收到一个字节后会自动加1,高位地址不变,即页地址不变。当内部产生的地址到页边界时,接下来的字节要放至该页的开始。如果发送至CAT24C256的数据超过64 B,则最早写的字节将被覆盖。

2.2 读模式

CAT24C256支持3种读出方式:立即地址读、选择读和连续读。这3种方式基本操作时序和写数据一样。

(1)立即地址读

立即地址读是直接读取数据,此时所读到地址是最后的读写操作字节的地址加1后的地址。只要芯片有电源供给,最后的读写操作字节的地址就将一直保持。当读到CAT24C256的最后字节后则回到芯片最开始字节的位置。

(2)选择读

给CAT24C256任意一个地址,即可读取出1 B的数据。

(3)连续读

连续读是从CAT24C256中读取一串有效字节,既可以是立即地址读,也可以是选择读。微控制器每接收到一个字节后,回一个应答信号。CAT24C256接收到应答信号,地址加1,接着输出下一个字节。微控制器接收到数据后不回复应答信号时,即可停止读取数据。

3 存储系统软件设计

智能电表的存储系统软件设计可分为两个层次,底层是基于CAT24C256的读写协议时序要求编写的底层读写驱动函数,上层是针对电表存储数据量大、数据类型多的特点而设计的表格文件系统。

3.1 读写驱动函数设计

(1)写数据函数

由于在系统存储过程中需要一次性存储的数据不定,可能一次性写入数百个字节的数据,因此需要设计一个能一次写入任意字节的函数。最简单的实现方式是按照写字节方式,要写入数百个字节就调用数百次字节写函数,但这样每次都需发送器件地址信息响应等,系统时间和资源消耗大。因而最终最底层写函数选用写页方式来实现,设计的写数据函数流程图如图3所示。写数据函数原型为:

Uint8 Memwrite (uint16 suba, uint8 *pdatabuf, uint16 num)其中,suba为存储器写地址,pdata_buf为数据缓冲区指针,num为写入数据个数。

图3 写数据流程图

(2)读数据函数

在读取数据时,CAT24C256不存在物理扇区限制,可以使用底层读串操作一次性读取出任意字节的数据。写数据函数原型为:

voidMemread (uint16 suba, uint8 *pdatabuf, uint16 num)其中,suba为存储器读地址,pdata_buf为数据缓冲区指针,num为读取数据个数。

3.2 表格文件系统设计

智能电表的表格文件系统是借用FAT32文件系统的思想,构建了一个表格文件存储系统。该系统实现了文件读写、创建、删除等基本功能,可直接把内存映射中的值存入EEPROM中,保证了浮点型、整形和字符型等各种类型的数据都不被改变。

表格文件系统将整个存储区分为目录区和数据区。目录区总共占用320 B,一个目录大小占用32 B,支持10个目录。每个目录包括:文件名、文件创建时间、文件修改时间、文件数据区起始地址以及文件水平格数目和竖直格数目等。目录结构体定义如下:

数据区主要存储文件的数据,数据管理都由文件目录管理。整个数据区大小达到31 KB。

针对该文件系统构建了操作基本函数,其中主要使用到的函数包括:表格创建函数、表格打开函数、表格读取函数、表格写函数和表格关闭函数,如表1所示。

表1 表格文件系统操作函数

其中,表格创建函数主要实现表格创建功能,需要提供文件名,创建的表格水平和竖直方向的大小以及单元格大小,其具体实现流程如图4所示。表格写函数和表格读函数的实现机制完成相同,主要是把数据帧写入文件的指定地址或者从文件中读取出数据。表格写函数的具体实现流程如图5所示。

本文针对无线智能电表工作过程中实时采集电能数据存储数量大、数据类型多、不便于随时传输的特点,设计了基于串行EEPROM的外部本地存储系统。基于CAT24C256的读写工作特点,为该存储系统设计了底层读写驱动函数,能一次性读写数百个字节,满足了智能电表实时数据快速读写的要求;设计了表格文件系统和多个操作函数,可对浮点型、整形、字符型等各种类型的数据实现准确无误的高效存储,有效满足了智能电表大量本地电能计量数据快速准确存储的应用要求。本文介绍的本地存储系统方案对其他有较大数据量存储要求的嵌入式应用也具有较高的参考价值。

图4 表格文件创建流程图

图5 表格文件读写流程图

[1] 忻龙彪,王东,龙在云.智能监控电能表的设计与实现[J].仪器仪表装置,2010:16-18.

[2] 静恩波. 基于嵌入式系统的智能电表设计与研究[J]. 低压电器 ,2011(3):.26-30.

[3] 马莉娟.智能电网对智能电表的要求及发展的影响[J].通信电源技术,2012,29(4): 91-92.

[4] NXP Semiconductors Inc. EM773Energy metering IC objective data sheet, Rev. 1[Z]. 2010.

[5]. Catalyst Semiconductor Inc, CAT24C256 data sheet, Rev.D[Z].2007.

猜你喜欢
存储系统电表字节
巧判电表测量对象
电表“对”与“错”归类巧掌握
No.8 字节跳动将推出独立出口电商APP
分布式存储系统在企业档案管理中的应用
No.10 “字节跳动手机”要来了?
天河超算存储系统在美创佳绩
Cartoons
简谈MC7字节码
华为震撼发布新一代OceanStor 18000 V3系列高端存储系统
基于电池管理系统的数据存储系统设计