用铁电动态保存参数的朋友们,你们有否考虑过,如果铁电写了一部份数据就停电了,怎么办?下
你们用什么机制来解决? 跟通讯一样,校验。 掉电检测 能考虑到这一步,不错,进步了。 【1楼】 xingcn 星尘用校验好像不太保障。如果这么巧合也对上了就麻烦了。 【2楼】 surkenjur
掉电后维持的时间太短,而且增加额外的硬件开销。 【3楼】 guantingwei :
是的,如果这些问题不解决,量产后会带来很多麻烦。 晕,如果对校验的结果都不敢相信其正确性,那么这个校验还有存在的必要吗?
就像人对自己是活着还是死了都还没搞清楚,那对这个人来讲生和死也就没有区别了。 【7楼】 ilikemcu 我爱单片机:
说得很好,可能我对“校验”理解不好吧,我的认为是对数据加异或,或者crc校验,上电后读出来校验正确就认为数据没问题。
ilikemcu 我爱单片机,能不能说你一下你的处理方式? 重要的数据,用MD5校验
需要快速读写的数据,用CRC校验
有条件的话,用ECC校验
然后,把存储空间一分两半,互为镜像
这样还会因掉电而出错的话,就一定是软件设计的问题了…… 我的方法:(如果是参数的话)
FLASH放一份默认的
EEPROM里在两个不同的地方放两份,而且互相取反,如:0xFF刚另一份保存成0x00 0xAA保存成0x55(如果有内EEPROM和外EEPROM的话也一样一份)
读取并校验,如果有损坏就用两个互为镜像的试着修复,实在不行就载入默认的
如果这也不行那只能说明天要灭你! ns 级别的和ms级别的停电 怕啥啊 再加上校验 足够了 【11楼】 hl0716:
说实在,如果加上停电检测电路,我倒不如用eeprom,节省成本。 楼主应该不会在掉电的时候保存大量的数据吧?
我通常在检测到掉电时最多保存一两个关键数据后就禁止对存储器的读写操作,数据从不做备份,校验是必须的。
如果楼主是用带ADC的AVR的芯片只需简单的一段代码利用其ADC就可实现掉电检测,不需增加任何硬件成本。 备份,不完整的数据丢弃, 没有掉电保持电路,用什么存储方式都是白搭。
关键是在外部掉电后系统有备用电源要保证保存参数的过程完整性。
而且数据要尽量的少,好镜像备份。 aozima 发表于 2008-7-23 09:51
我的方法:(如果是参数的话)
FLASH放一份默认的
EEPROM里在两个不同的地方放两份,而且互相取反,如:0xFF刚另 ...
11 年前就这么成熟了 不亏 aozima 大神 代码里 有默认参数如果eeprom读取出的校验不通过 加载默认参数, 保证机器 能运行并且不出现大问题 我flash,写数据前清除正常保存标志,然后保存数据,再设置已正常保存数据标志,如正常保存标志不正常,以保存的数据为非法 cnxh 发表于 2020-10-14 18:07
我flash,写数据前清除正常保存标志,然后保存数据,再设置已正常保存数据标志,如正常保存标志不正常,以保存的 ...
非法又怎么样 学习一下这个
校验,读写分开 chenchaoting 发表于 2020-10-14 18:48
非法又怎么样
知道数据保存不正常,那接下来,要奸要杀,怎么处理就随你了 寫四份,假設第一份改好,寫第二份錯,則第三四沒動過,下次用歷史的三四參數
页:
[1]