打印

程序跑飞后怎么拉回来?挑战软件抗干扰难度!

[复制链接]
3201|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LLLLWWWW|  楼主 | 2009-9-16 10:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
HWM| | 2009-9-16 10:37 | 只看该作者
拉不回来,除非采用冗余(多MCU)

使用特权

评论回复
板凳
LLLLWWWW|  楼主 | 2009-9-16 11:03 | 只看该作者
可行性是有的,我看到在相同的实验环境下,同种型号的芯片,有一种能抗干扰,继续执行,有一种就死掉了

使用特权

评论回复
地板
hhtseng| | 2009-9-16 11:23 | 只看该作者
不知道楼主用的是哪家的51单片机??
现在新的的51单片机受到高电压辐射,基本上不跑飞的,芯片抗干扰直接打芯片都可以达到6KV,群脉冲可以达4KV!
超过了也不会死机的,应该是直接复位!!

使用特权

评论回复
5
LLLLWWWW|  楼主 | 2009-9-16 11:27 | 只看该作者
P89LV51RD2,据说是要用开内部的软件狗,我没开,是不是有作用?硬件都一样的,别人也是用的这个芯片,
效果很好,我的死了~

使用特权

评论回复
6
LLLLWWWW|  楼主 | 2009-9-16 11:29 | 只看该作者
别人的也没有复位,而是在主程序的某一个部分继续执行代码!

使用特权

评论回复
7
mohanwei| | 2009-9-16 12:21 | 只看该作者
屏蔽

使用特权

评论回复
8
mohanwei| | 2009-9-16 12:21 | 只看该作者
才是正道

使用特权

评论回复
9
LLLLWWWW|  楼主 | 2009-9-16 14:26 | 只看该作者
哪个好的是用汇编写的,我的是用C写的,它是不是有个判断程序跑飞自动加载堆栈继续执行的东西在里面?
和硬件没关系,大侠们别提硬件啊!

使用特权

评论回复
10
84335262| | 2009-9-16 15:38 | 只看该作者
和使用哪种语言无关,应该是软件处理的问题

使用特权

评论回复
11
wh6ic| | 2009-9-18 08:51 | 只看该作者
根本的办法还是不要让它跑飞,查查它飞掉的具体原因吧,从源头解决问题一般都是最简单的处理办法。
  古人的两个成语很有对比性:止沸扬汤 vs 釜底抽薪

使用特权

评论回复
12
LLLLWWWW|  楼主 | 2009-9-18 09:41 | 只看该作者
我们的设备就是要跟高电压脉冲磁场的环境配合使用的,这个没办法,做屏蔽的话是下策,
比如说汽车的防撞气囊,不可能说开车小心点,千万别撞车了,就不用设计防撞气囊了吧?
我看见别人写的程序,在空间脉冲过来的时候,程序有点停顿,然后继续执行了,我估计它是有堆栈**能力?
能**住跑飞的时候的起始地址,或者PC指针。但是我不知道该怎么做~~

使用特权

评论回复
13
wh6ic| | 2009-9-18 10:56 | 只看该作者
我做的也有一个发动机点火的板子,12V6A150uS驱动脉冲,点火间隙拉长到30mm都没发现板子有问题。原来设计时有个外接WDT,现场安装后一直没发现WDT有动作,现在生产的板子都没焊那玩意儿,半年多了,没听说有意外死机或复位过。
  也没有多少抗干扰措施,就是阻容、磁珠、屏蔽线、搭铁之类,塑料机壳。PCB布局也花了点时间。

使用特权

评论回复
14
QuakeGod| | 2009-9-29 06:22 | 只看该作者
回楼主,程序跑飞后,不一定要返回原来的地方执行,也可以复位,
只要复位后能知道原来的状态,继续工作即可。
就比如汽车点火,即使中间丢了一次脉冲也没什么关系吧,只要后续脉冲能跟上同步即可。

使用特权

评论回复
15
LLLLWWWW|  楼主 | 2009-10-9 09:37 | 只看该作者
谢谢你的提示!是啊,但是现在要怎么才能记住原来的位置?还有怎么才能完成复位?现在复位有一种方式,就是用软件狗来复位!是不是把程序里面的软件狗打开就行了?

使用特权

评论回复
16
msliang18| | 2009-10-22 20:42 | 只看该作者
本帖最后由 msliang18 于 2009-10-22 20:43 编辑

程序要是真飞了,那不可能拉回到原先位置上的.
这种情况所能做的就是不让程序跑飞或者跑飞了重来(复位),楼上的各位都提到了.
要说跑飞跟程序有关系,那也是有可能的,毕竟软件的运行在实质上还是硬件的操作,只是操作的是单片机内部的硬件.或许单片机里某些指令的执行比较容易受到干扰吧,这我可没时间研究呀!YY一下.哈哈

使用特权

评论回复
17
1121| | 2009-10-29 15:28 | 只看该作者
程序跑飞,不可能回到原先位置上继续运行了.
内部或外部寄存器或输入输出的状态或许都已经发生过未知的变化.
只能回到预定的初试点执行.

使用特权

评论回复
18
yuq_quan| | 2009-11-4 16:50 | 只看该作者
路过

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

91

主题

450

帖子

2

粉丝