作者waynecone (wayne)
看板ASM
标题[讨论] 断电复电後的EEPROM的资料确认方法
时间Fri Apr 22 15:57:51 2011
各为先进你们好~
小弟目前再做一台机器
需要有断电後能保存重要参数的功能
功能大概是每当系统有更新资料时就自动备份资料
以备断电复电时将资料读回,确保系统可以有连续性
的运作,不用每当断电复电就要重新设定一次系统
的各个参数,而小弟虽然有做备份电源,但因为为了
延长备份电源的供电持久性,所以电源只供应RTC,其
他重要的参数由於资料量过多,所以我采用了一个EEPROM
来纪录,现在问题来了!
我要断电复电後要怎麽去判定这笔资料是新的还是旧的?
需要判定的原因是因为我有些资料是有相关性的!
若是一笔资料是新的一笔资料是旧的!那读出来给系统去
运作後会的到错误的结果!所以我需要去判定这几笔资料
中是否有旧的资料?有的话则必须将此区块资料都放弃!
重新读取别的区块的资料!
我想到的做法:一块记忆体区块存份新资料
另一块是存放上次的旧资料
断电复电後则先判断新资料是存在哪一块记忆体
再将此块记忆体的资料读出并提供给系统运算
但仔细想想总觉得这样的做法似乎很浪费时间和记忆体的空间,
不知道各为先进是否有更好的做法?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.69.128.66
1F:→ ksmrt0123:就算资料只有1 byte 还是有可能在写入时断电造成错误 04/22 18:06
2F:→ ksmrt0123:这个要先想清楚再考虑其它的 04/22 18:07
3F:推 easypro:把RTC写在前面来做判断,在侦测到低电压时马上写入 04/22 20:14
4F:→ waynecone:什麽叫做把RTC写在前面?有点不懂大大的意思! 04/22 21:11
5F:→ waynecone:k大!很多传输也有资料传输错误的情况~我想要做的就是能 04/22 21:19
6F:→ waynecone:避开取到错误的值!我总部可能连续两块记忆体的资料都是 04/22 21:20
7F:→ waynecone:的吧! 04/22 21:20
8F:→ waynecone:错 04/22 21:20
9F:→ ksmrt0123:你预计怎样避开取到错误的值? 04/23 01:12
10F:→ ksmrt0123:为何你认为连续两块记忆体不会都是错的? 04/23 01:13
11F:→ ruemann:为何不设计check sum or crc之类的方法来确认资料正确性? 04/23 01:51
12F:推 WolfLord:我是给MCU一个0.1F的电容器,确保断电的ISR可以备份REGIS 04/23 02:41
13F:→ waynecone:其实一开始我有考虑过使用CRC的方法!只不过看了维基和一 04/24 02:21
14F:→ waynecone:些资料後还是搞不懂CRC到底在做什麽?至於check sum可否 04/24 02:22
15F:→ waynecone:可否稍微跟我解释一下时什麽意思?抱歉!我还是个大菜鸟 04/24 02:23
16F:→ waynecone:麻烦了= =" 04/24 02:24
17F:→ waynecone:W大!你说再MCU端接一个0.1F的电容可以大概描述是怎麽接 04/24 02:25
18F:→ waynecone:的吗?是接在资料线上吗?这样做不会影响波型吗?? 04/24 02:26
19F:推 ruemann:他是说在MCU的VCC上接一个.1F的大电容,在断电时确保电源 04/24 02:38
20F:→ ruemann:足够写完这些事情 04/24 02:39
21F:→ ruemann:check sum就是把你一连串的资料加总後得到一个值,用这个 04/24 02:39
22F:→ ruemann:值来确认这一串资料是正确的,CRC也是相同的概念 04/24 02:40
23F:→ ruemann:只是当check sum计算出来是相符时,仍然有机会前面的资料 04/24 02:40
24F:→ ruemann:有错但没有被侦测出来,CRC则比较能保证错误出现时能侦测 04/24 02:41
25F:→ ruemann:到,所以CRC的计算也比较复杂 04/24 02:41
26F:推 WolfLord:RUEMANN正姐 :P 04/24 10:49
27F:→ kikiqqp:一般低阶MCU用CRC太复杂也太耗运算,不过既然是check sum 04/26 21:59
28F:→ kikiqqp:当然可以自己用简单的数学写出个类似的玩意 04/26 21:59
29F:推 stool100:CRC用查表法 不会太耗 04/26 22:50
30F:推 WolfLord:查表? ROM比较值钱吧...就移位加而已哪来耗运算? 04/26 22:59
31F:推 lion21:可参考关键词搜寻"CRC运算的查表法原理" 只是方法之一 04/28 10:14