文章内容
环保黑匣子数据存储格式
表2 AT45DB321B中每个数据存储页格式
字节序号 存储内容 占用 (0~527) 字节数 |
0~5 首条采样记录采样时间 6 |
6~7 本页存储时间间隔 2 |
8~22 首条采样记录 15 |
23~37 第2条采样记录 15 |
… … … |
503~517 第34条采样记录 15 |
518~527 保留 10 |
③历史数据的存储分两步完成,采样数据先写入AT45DB321B的SRAM缓冲区,存满一页后先擦除主存页后将缓冲区内容写入(一条指令即可实现)。
④如图4所示,数据存储过程中设置页指针、采样记录序号指针及数据存储器满标志,精确定位当前的存储位置。页指针、采样记录序号指针及数据存储器存储满标志在时钟芯片RAM中存有备份,掉电时仍能长期保存,系统重启时监测仪从时钟芯片中载入,保证数据存储的连续性。
⑤如图3所示,AT45DB321B电源入口处接有大容量电解电容,当系统掉电(外部电源与备用电池均失电)时,MOS管关断,AT45DB321B进入低功耗等待状态(只需2 电流),可长时间保持缓冲区中内容,等系统重启时写入其主存储区中,防止掉电后数据丢失。
5 数据查询、提取和清空
上位机可采用两种方式提取监测仪中数据:提取全部数据或提取指定时间段内的数据。监测仪接收到正确命令后,即对AT45DB321B中数据进行查询并发送符合要求的数据。与存储过程相对应,数据的查询也分两级进行:页扫描及页内记录扫描。下面重点介绍指定时间段内数据的查询过程。
5.1 根据内指针及存储器满标志计算出存储器的有效存储区
①如存储器未满,则有效存储区起始页为0,有效存储区终止页为当前页指针。
②如果存储器满,则有效存储区起始页为当前页指针,有效存储区终止页为当前指针加上8192(因为采用循环存储方式)。
5.2 在有效存储区范围内对数据存储器进行顺序逐页扫描
①读取存储页首条采样记录的采样时间,与上位机指定的起始时间比较,直至某页时间大于上位机指定的的起始时间,将该页指针减1作为起始页。
②从新的起始页开始顺序读取采样记录,计算每条采样记录的采样时间,与上位机指定的起始时间和终止时间比较,如符合条件,则发送,直至某条记录采样时间大于上位机指定的终止时间则终止查询过程(因采样记录是严格按时间顺序存储的)。
③需要指出的是,采样记录中设置本页存储结束标志,页内最后一条记录该标志置位。查询时对读出记录的该标志进行判断,如已到最后一条记录则自动转到下个存储页查询。这样就解决了各个存储页中存储记录条数不尽相同的问题。
如为提取全部历史数据方式,则无需对时间进行判断,只需对有效存储区所有页进行顺序扫描,发送所有有效记录即可。
5.3 上位机亦可对监测仪内历史数据进行清空操作
这里为了减少对 的擦除操作,接收到命令后并不真正进行数据擦除,只是将页指针、采样记录序号指针及数据存储器满标志清除,重新从首页开始存储数据。
6 结束语
本文中描述的数据管理机制,在下位机未安装任何文件操作系统的条件下,利用有限的硬件资源和存储空间,有效地实现了强大的数据管理功能,并在环保监测仪的实际应用中得到了验证。