FlashData数据记录系统
有一些特殊的应用,比如:
- 带有GPS模块的系统,需要记录轨迹;
- 锂电池放电测试系统,需要记录放电曲线;
- 温控系统,历史温湿度数据;
- 无纸数据记录系统
- ... ...
由于单片机内存较小,对于采集的历史数据单片机的RAM并不适合记录这些数据,而对于SHMICTRL系统来说,我们提供利用剩余的Flash空间来作为采集数据的存储,具体特点如下:
- 针对有数据采集的用户设计
- 专门针对Flash芯片的特性来设计,首先我们来熟悉一下Flash特点:
- 存储器可以按字节进行1写成0 的写入操作,但无法完成0写成1的操作
- 存储器只能按照扇区(每扇区4096字节)进行擦除完成0到1的数据擦除,但是擦除次数有限制,大多数的Flash存储器擦除寿命是10万次;
- 因此,我们在设计的时候,需要尽可能的减少Flash数据的擦除次数,解决的办法就是使用环形存储算法来均衡每个扇区的擦除次数从而整体提升存储器的寿命
- 为保证falsh 4K存储区对齐问题,需要按整数倍进行数据块对齐,因此每个数据块长度(以下用kn表示)只允许为4、8、16、32字节
- 数据存储区需要进行初始化,初始化的目的是设置相应的标志,而不是对实际的flash进行擦除,在写入数据的时候,也不进行老数据的擦除,确保环形写入的均匀性,来确保flash的寿命
- 由于数据是存在Flash中,因此数据是固化存储的,也就是掉电不丢失,除非使用fd_clear语句人为删除
- 最多可以支持4个数据分区,也就是说可以同时记录4组不同的数据
- 由于是采集数据,相当于日志型数据的记录,因此只能添加,不能删除,但可以整体清空
- 注:系统是根据数据记录的前4个字节是FF FF FF FF这个值来判断是否为空的,因此数据记录不能记录FF FF FF FF这种数据
基本使用方法
有关FlashData数据的创建、添加、遍历等操作。
- 详细参见:FlashData基本使用方法
FD数据的曲线展示
对于存储的FlashData数据,我们提供数据曲线展示方案,支持对数据的曲线展示、压缩、移动等调整,方便展示,适合制作比如:锂电池放电曲线、无纸数据记录仪、历史温度曲线等。
- 详细参见:FlashData曲线展示
函数列表
详细参见:FlashData数据记录函数目录