6431|5

2万

帖子

74

TA的资源

管理员

楼主
 

软件抗干扰设计 [复制链接]

作者:东南大学电工电子实验中心 赵良法  

尽管采取了硬件抗干扰措施,但由于干扰信号产生的原因很复杂,且具有很大的随机性,难免系统完全不受干扰。因此,在硬件抗干扰措施的基础上,采取软件抗干扰技术加以补充,作为硬件措施的辅助手段。由于软件抗干扰方法具有简单、灵活方便、节省硬件资源的特点,成为系统抗干扰设计中不可缺少的组成部分。

常用的软件抗干扰技术有:数字滤波、指令冗余、软件陷阱、“看门狗”技术等

数字滤波
–平均值法
–去最大最小值法
–算术平均滤波法

指令冗余技术
–由于CPU取指令过程是先取操作码,后取操作数。对多字节指令来说,如何区分某个字节为操作码还是操作数,完全由取指令顺序决定。CPU复位后,这些操作时序完全由程序计数器PC控制。因此,一旦PC因干扰而出现错误,程序便会出现“乱飞”现象   
重要指令冗余
对于程序流向起决定作用的指令(如RET、RETI、ACALL、LCALL、LJMP、JZ、DJNZ、JC、JB等)和某些对系统工作状态有重要作用的指令(如SETB、CLR等)的后面,可重复写上这些指令,以确保这些指令的正确执行。

NOP的使用
在双字节指令和三字节指令之后插入两个单字节NOP指令,这可保证其后的指令不被拆散。因为“乱飞”的程序即使落到操作数上,由于两个空操作指令NOP的存在,不会将其后的指令当操作数执行,从而使程序纳入正规。
对程序流向起决定作用的指令(如RET、RETI、ACALL、LCALL、LJMP、JZ、DJNZ、JC、JB等)和某些对系统工作状态起重要作用的指令(如SETB、CLR等)之前插入两条NOP指令,可保证“乱飞”程序迅速纳入正规,确保这些指令的正确执行。

软件陷阱技术
当“乱飞”程序进入非程序区(如EPROM未用的空间)或表格区时,采用冗余指令使程序入规的条件便不能满足,此时可采用软件陷阱技术,拦截“乱飞”程序,将其迅速引向一个指定位置,使程序纳入正规 。

软件陷阱的形式
–软件陷阱就是用引导指令强行将捕获到的“乱飞”程序引向复位入口地址0000H,使程序纳入正规。软件陷阱可采用如下两种形式 :
此帖出自单片机论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

最新回复

有的芯片具有很多中断向量,程序中未被使用时,对这些中断向量合理设置陷阱,可以进行抗干扰处理  详情 回复 发表于 2009-12-16 22:10
点赞 关注
个人签名

加油!在电子行业默默贡献自己的力量!:)

 

回复
举报

2万

帖子

74

TA的资源

管理员

沙发
 
软件陷阱的布置

1. 未使用的中断区 l当未使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,就能及时捕获到未使用的中断。中断返回指令用RETI,也可用LJMP。
中断服务程序的形式为:
NOP
NOP
POP direct1 ;将断点弹出堆栈区
POP    direct2
LJMP   0000H
中断服务程序也可为如下形式:
NOP
  NOP
  POP direct1 ;将原先断点弹出
  POP    direct2
  PUSH   00H ;断点地址改为0000H
  PUSH   00H
  RETI

未使用的EPROM空间
–由于使用的2764等芯片,很少能全部用完。这些非程序使用区可用软件陷阱(两种形式之一)的机器码填满。注意,最后一条填入020000。当程序进入此区后,便会迅速纳入正规。

非EPROM芯片空间
–由于单片机系统地址空间为64K,一般地,系统中除了EPROM芯片占用的地址空间外,还余下大量空间。如本系统中只使用一片2764,其地址空间为0000H~1FFFH,还有2000H~FFFFH地址空间未用。当PC“乱飞”进入这些空间时,读入数据为FFH,这是“MOV  R7,A”指令的机器码,将修改R7的内容。此时,程序不仅无法纳入正规,且破坏了R7的内容。为此,可采用如下两种方法处理:

利用A13、A14、A15及PSEN引脚,通过硬件实现:当A13、A14、A15地址电平不全为低、PSEN为低电平时,产生一低电平,触发CPU中断。在中断服务程序中设置软件陷阱,可将“乱飞”程序纳入正规

利用A13、A14、A15及PSEN引脚,通过硬件实现:当A13、A14、A15地址电平不全为低、PSEN为低电平时,读入数据020202H,这是一条转移指令,将PC转入0202H入口,在主程序0202H处设置出错处理

运行程序区
“乱飞”的程序在用户程序内部可用指令冗余技术加以解决,但同时设置一些软件陷阱,可以更有效地抑制程序“乱飞”。由于程序设计采用模块化结构,按照程序要求从一个模块到另一个模块运行。因此,可将陷阱指令组分散放置在各模块之间的空余单元里。这样,在程序正常运行时不执行这些陷阱指令,但一旦程序“乱飞”落入这些陷阱区,就可迅速将程序引入正规。这个方法很有效,陷阱的多少依程序大小而定,一般每1K字节有几个陷阱就够了
此帖出自单片机论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 

回复

2万

帖子

74

TA的资源

管理员

板凳
 
“看门狗”技术

–PC受到干扰而失控,引起程序“乱飞”,也可能使程序陷入“死循环”。指令冗余技术、软件陷阱技术不能解决“死循环”的问题。“看门狗”技术可以解决这一困扰
“看门狗”技术 在“看门狗”软件设计时,应注意“看门狗”触发脉冲的设置方式。不是按高—低—高脉冲方式设置,而是在程序的不同位置分别设置高、低电平。一般在主程序的开始处设置高电平,在每一个子程序或子循环的开始处设置低电平,然后当程序返回开始处再设置高电平。这样,当程序运行在子程序或子循环处发生超时或“死循环”时,就会引起“看门狗”电路复位

此帖出自单片机论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

4
 
好,拜读中……
此帖出自单片机论坛
 
个人签名认真,全面
 
 

回复

515

帖子

0

TA的资源

一粒金砂(中级)

5
 
支持一把,谢谢楼主共享哦!
此帖出自单片机论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

6
 

使用暂不使用的中断向量进行软件陷阱设置

有的芯片具有很多中断向量,程序中未被使用时,对这些中断向量合理设置陷阱,可以进行抗干扰处理
此帖出自单片机论坛
 
个人签名hi
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表