搜索
bottom↓
回复: 38

长期运行的产品,有必要不停刷新寄存器吗?

[复制链接]

出0入0汤圆

发表于 2014-1-2 09:07:47 | 显示全部楼层 |阅读模式

是这样的,我们有一些小家电产品,像热水器之类的长期不断电运行,上级(软件出身)要求我们,对于一些系统和外设的控制寄存器,如中断,定时器等,要不停的刷新,作用是防止

MCU受到干扰出现死机或是其它的意外。



出0入0汤圆

发表于 2014-1-2 09:26:33 来自手机 | 显示全部楼层
高要求的时候.一个变量双寄存器备份保存.万一出现不一致就说明干扰了

出0入0汤圆

发表于 2014-1-2 09:26:49 来自手机 | 显示全部楼层
高要求的时候.一个变量双寄存器备份保存.万一出现不一致就说明干扰了

出0入0汤圆

发表于 2014-1-2 09:37:17 | 显示全部楼层
这个方法是不错的。照做吧。

出0入0汤圆

 楼主| 发表于 2014-1-2 09:41:09 | 显示全部楼层
bg6agf 发表于 2014-1-2 09:26
高要求的时候.一个变量双寄存器备份保存.万一出现不一致就说明干扰了

这个方法不错

出0入4汤圆

发表于 2014-1-2 09:41:54 | 显示全部楼层
必须的。

出0入0汤圆

发表于 2014-1-2 11:13:23 | 显示全部楼层
对于高要求的你就应该利用硬件看门狗定时复位,程序起来后判断何种复位

程序一个复位周期必须运行完毕,并把关键数据做一次校验

看门狗起来后校验正确就接着上次的继续运行一个周期等待复位
不正确就全部初始化,说明被干扰了

应该这是目前最可靠的方案

出0入0汤圆

发表于 2014-1-2 11:23:36 | 显示全部楼层
见过电源不稳导致外设寄存器数据丢失的情况。

出100入101汤圆

发表于 2014-1-2 11:32:34 | 显示全部楼层
单片机内部的寄存器、io口等是不需要的,外部器件有必要。

出0入10汤圆

发表于 2014-1-2 11:45:03 | 显示全部楼层
还有这么高深的学问在里面。谢谢大家的分享。

出0入0汤圆

发表于 2014-1-2 12:00:07 | 显示全部楼层
程序跑飞了,什么都没用。PC指针也是一个寄存器,没办法备份吧。
还是看门狗更重要

出0入0汤圆

发表于 2014-1-2 12:25:02 | 显示全部楼层
看门狗啊, 不是都是这样喂狗的吗?

出0入21汤圆

发表于 2014-1-2 12:57:57 | 显示全部楼层
非常有必要,在我手上的产品如果没有这些保护会全部判断不合格软件,至少中断和IO还有大循环是需要不停监测的。一但被系统监测函数发现它们不对劲,就会用看门狗咬它复位。

有几个关键的地方一定要放监测,一旦发生立既复位:
1。所有不使用的中断被意外发生了中断被跳到中断入口的。
2。所有外设初始化寄存器与备份值比较不一样的。
3。系统定时器被停止了的。
4。大循环不循环的。
5。系统关键数据发生逻辑对不上的。

出0入0汤圆

发表于 2014-1-2 13:10:50 | 显示全部楼层
有一点点小作用,但不如看门狗,不如读取这些寄存器判断异常后复位

出0入0汤圆

发表于 2014-1-2 14:36:32 | 显示全部楼层
117433525 发表于 2014-1-2 12:57
非常有必要,在我手上的产品如果没有这些保护会全部判断不合格软件,至少中断和IO还有大循环是需要不停监测 ...

第2点是不是过于庞大和复杂?

出0入0汤圆

发表于 2014-1-2 21:18:13 | 显示全部楼层
定时检查关键寄存器是否正确即可,不正确重新刷新。像stm8 stm32有些寄存器,写入会导致某些操作,这时候不停刷新就不合适了。

出0入0汤圆

发表于 2014-1-2 22:54:30 | 显示全部楼层
这个做法很合理, 实践会证明是挺有用处的

出0入0汤圆

发表于 2014-1-2 23:39:50 | 显示全部楼层
本帖最后由 小柯师傅 于 2014-1-3 00:26 编辑

这个问题好像一般不是刷新寄存器就可以解决吧?
1.软件陷阱:
   不用的程序区域 跳转到指定向量地址 或 增加TRAP指令
2.看门狗 :
   一定要在程序最开始的地方开启看门狗,有用户字功能(Flash Option)的直接开启.
   千万不要在定时中断里喂狗!可以在关键功能全部完成一个循环后喂狗。

楼下继续

出0入0汤圆

发表于 2014-1-2 23:44:13 | 显示全部楼层
供参考
SOFTWARE TECHNIQUES FOR IMPROVING MICROCONTROLLER EMC PERFORMANCE

出0入0汤圆

 楼主| 发表于 2014-4-3 09:24:30 | 显示全部楼层
117433525 发表于 2014-1-2 12:57
非常有必要,在我手上的产品如果没有这些保护会全部判断不合格软件,至少中断和IO还有大循环是需要不停监测 ...

有几个关键的地方一定要放监测,一旦发生立既复位:
1。所有不使用的中断被意外发生了中断被跳到中断入口的。

        这种我都是直接在中断里面while(1);然后等看门狗复位,看门狗复位的时间与具体系统有关,我是能短尽量短

2。所有外设初始化寄存器与备份值比较不一样的。
       
        学习了,没做过比较。像有一些功能都是一直在执行配置初始化

3。系统定时器被停止了的。

        系统定时器被停止了看门狗肯定复位

4。大循环不循环的。

        看门狗肯定复位

5。系统关键数据发生逻辑对不上的。

        学习了,之前的做法都是发现不对的时候不处理或关闭输出

出0入0汤圆

发表于 2014-9-12 12:41:24 | 显示全部楼层
要的,没有加这些的死的很惨

出0入0汤圆

发表于 2014-9-12 13:09:54 | 显示全部楼层
高要求的时候.一个变量双寄存器备份保存.万一出现不一致就说明干扰了

出0入0汤圆

发表于 2014-9-12 13:42:04 | 显示全部楼层
我也是关键的寄存器备份,定时查看,根据情况来处理

出0入0汤圆

发表于 2014-9-12 14:01:54 | 显示全部楼层
我只用看门狗,reset后都全部初始化如断电重开一样,如果看门狗reset后不全部初始化就会有问题,ram会保留错误后的状态after看门狗reset.

出0入0汤圆

发表于 2014-9-12 14:14:33 | 显示全部楼层
怎么刷新,难道在单片机启动时候把寄存器中的数据都保存下来,做一个定时器中断去刷新?

出0入0汤圆

发表于 2014-9-12 14:38:01 | 显示全部楼层
MARK备用。

出0入0汤圆

发表于 2014-9-21 14:01:04 | 显示全部楼层
fengyunyu 发表于 2014-1-2 11:32
单片机内部的寄存器、io口等是不需要的,外部器件有必要。

早年开发现场设备,就发生IO口寄存器受干扰,导致IO口无法输出,变成输入模式了,后来做老虎机时,因为事关金钱,存放金额的数组,放有3份,一份明文,另两份经过不同运算,最后3份都相符才显示,否则客人看到显示器上8888,就闹着要钱.

出0入0汤圆

发表于 2014-9-21 14:20:01 | 显示全部楼层
敏感数据敏感处理,干扰不干扰是一方面,这种要求是必须的,要不然不断重启机器,要不然就不断热启动,否则,长时间运行就会麻烦

出0入0汤圆

发表于 2014-9-21 14:55:56 | 显示全部楼层
我个人推荐一直刷新,至少周期性刷新。
以前有人发帖问,大意是如果事件有更新才刷新,还是定时刷新?
当然有更新才刷新,占用cpu确实小,但是对于工控行业来说,难免遇到干扰,
可靠性尤为重要。实际开发过程也确实发生过几次mcu芯片级的bug导致io口
电平改变。因此推荐周期性刷新。

出0入0汤圆

发表于 2014-9-21 15:06:39 | 显示全部楼层
a, 之前遇到过一个类似的问题,静电后外围的芯片寄存器配置改变,而MCU不知道,所以有些地方还是需要注意的

出0入0汤圆

发表于 2014-9-21 15:07:52 | 显示全部楼层
可靠度要求高的,是必须的,当然刷的频率自己看情况吧,最好在各种任务环境下测试一下

出0入8汤圆

发表于 2014-9-21 19:47:55 | 显示全部楼层
见识了。。。。

出0入0汤圆

发表于 2014-9-21 20:01:36 | 显示全部楼层
我是来学习的,工控产品可靠性确实很重要

出0入0汤圆

发表于 2014-9-21 20:08:08 | 显示全部楼层
家用电器现在国内要做3C软件认证的,其中就要求对寄存器进行周期性检查,还有要求AD转换有参考等,建议看一下相关国标。该国标其实就是CE的要求,只是近两年才强制要求

出0入0汤圆

发表于 2014-9-22 22:25:21 | 显示全部楼层
硬件上做好防护才是最关键,有很多寄存器工作中是不允许刷新的,这些寄存器如果受到干扰,系统照样玩完。好的硬件设计即使不用看门狗,在强干扰中长期工作照样不会死机或误动作

出0入8汤圆

发表于 2014-9-22 22:36:04 | 显示全部楼层
Oliver 发表于 2014-1-2 11:13
对于高要求的你就应该利用硬件看门狗定时复位,程序起来后判断何种复位

程序一个复位周期必须运行完毕,并把 ...

感觉这个不错,mark下

出0入0汤圆

发表于 2014-9-22 22:57:23 | 显示全部楼层
学习了     

出0入0汤圆

发表于 2014-9-22 22:59:39 | 显示全部楼层
有必要的。

出0入0汤圆

发表于 2014-9-22 23:07:35 | 显示全部楼层
有用,标记参考
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-7 18:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表