新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机应用系统的抗干扰解决方案

单片机应用系统的抗干扰解决方案

作者: 时间:2012-03-26 来源:网络 收藏

3.2 软件陷阱技术

软件冗余技术适用于干扰后PC指向不正确的程序区,当跑飞程序进入非程序区(如EPROM未使用的空间)或表格区时,使用冗余指令的措施已不再适用,可采用软件陷阱的办法拦截跑飞程序,将其迅速引向一个指定的位置,执行一段对程序运行出错的处理程序。软件陷阱可采用以下形式:
NOP
NOP
LJMP ERROR ;ERROR为指定地址,安排有出错处理程序

软件陷阱可安排在下面几个区域。

①未使用的中断向量区。

当干扰使未使用的中断开放,并激活这些中断时,就会引起系统程序的混乱,如果在这些地方设置陷阱,就能及时捕捉到错误中断。

②未使用的EPROM区。

假设使用了一片2764,但程序并没有用完这个2764区域,这些非程序区可以用0000020000数据填满,020000是指令LJMP 0000H的机器码,当跑飞程序进入此区后,便会迅速自动进入正确轨道。

③数据表格区。

由于表格中内容和检索值有一一对应关系,在表格中安排陷阱将会破坏其连续性和对应关系,应在表格区的尾部设置软件陷阱。

④程序区。

前面已介绍,跑飞的程序在用户程序内部跳转时可用指令冗余技术加以解决,也可以设置软件陷阱,更有效地抑制程序跑飞。程序设计常采用模块化设计,模块化的程序是由一序列执行指令构成的,一般不能在这些指令串中间任意安排陷阱,否则正常执行的程序也可能被抓走,可以将陷阱指令分散放置在各模块之间的空余单元中。正常程序中不执行这些陷阱指令,但当程序跑飞一旦进入陷阱区,马上将程序拉回正确轨道。陷阱的多少视用户程序的大小而定,一般每1K字节有几个陷阱就够了。

⑤非EPROM芯片空间

MCS-51有64K程序系统空间,一般除了EPROM芯片占用的地址外,还剩余大片未编程的EPROM空间。当PC跑飞进入这些空间时,读入数据为0FFH,对51系列而言,相当于指令MOV R7,A,将修改R7的内容。

当CPU读程序存储器时,会产生一个PSEN的低电平信号,可利用该信号和EPROM的地址译码信号产生选通信号,引起一个空闲的中断,在中断服务程序中设置软件陷阱,将跑飞程序拉入正规。图2是一个实例。

28.gif

3.3 看门狗技术

PC受到干扰引起程序失控,有可能使程序进入死循环,指令冗余和陷阱技术都不能解决这个问题,通常采用看门狗技术(Watchdog)。该技术就是不断监视程序循环运行的时间,若发现时间超过已知的循环设定时间,即认为进入死循环,然后强迫程序返回到0000H入口地址,在0000H安排出错处理程序,使系统纳入正规。看门狗技术既可由硬件实现,也可以由软件来实现,二者还可以结合使用。



评论


相关推荐

技术专区

关闭