应对干扰,程序要做哪些保护

2020-02-06 10:22发布

现在接收一个项目,项目要求低功耗,且一旦出产品运行,由于特殊环境不能再人工干预(也即不能人工复位,一单死机问题就很麻烦)。我使用的是PIC16f887的muc,现已将看门狗做休眠定时唤醒,看门狗定时器溢出唤醒复位将不产生芯片复位,而只是从sleep指令的下一个执行,理论上假如一段程序跑飞而没进行喂狗,看门狗将复位到该程序段而不是主程序地址0开始运行,理论上对程序跑飞还是能reset回来, 不知这种做法可行??另外我有个问题,就是该产品的参数数据都是用RAM保存,会不会有强电磁干扰或其他干扰影响RAM里的数据,我现在正在考虑要不要使用eeprom保存参数??望坛里的大侠们多多指点1、2.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
23条回答
zhugean
1楼-- · 2020-02-08 06:29
个人认为选用一个抗干扰好的MCU,加上良好的外围设计,优于看门狗。
pic_flash
2楼-- · 2020-02-08 10:42
请问, 你是用外部晶振, 还是内部RC 时钟 (Internal OSC)?
kaka_1314
3楼-- · 2020-02-08 14:10
 精彩回答 2  元偷偷看……
kaka_1314
4楼-- · 2020-02-08 17:18
zhugean 发表于 2014-12-1 16:23
个人认为选用一个抗干扰好的MCU,加上良好的外围设计,优于看门狗。

MUC目前就是选用功能稳定性好的PIC ,外围电路相对较简单,只是想在硬件的基础上,软件再加些保护措施。
pic_flash
5楼-- · 2020-02-08 21:11
现已将看门狗做休眠定时唤醒,看门狗定时器溢出唤醒复位将不产生芯片复位,而只是从sleep指令的下一个执行,理论上假如一段程序跑飞而没进行喂狗,看门狗将复位到该程序段而不是主程序地址0开始运行,理论上对程序跑飞还是能reset回来, 不知这种做法可行??

你使用看门狗做唤醒, 为何不用timer 中断做唤醒呢?

看门狗的主要功能, 就是让程序跑飞了, 然后做芯片复位啊。。
kaka_1314
6楼-- · 2020-02-09 01:54
pic_flash 发表于 2014-12-1 17:14
你使用看门狗做唤醒, 为何不用timer 中断做唤醒呢?

看门狗的主要功能, 就是让程序跑飞了, 然后做芯片 ...

使用的PIC16F877芯片,看了datesheet,好像无timer唤醒功能,我再细读下,再来反馈。

一周热门 更多>