单片机系统的软件抗干扰
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
X 1 = 0+ (X 1 - 0) = X
1
2 软件抗干扰的方法
需要指出的是: 这里所谓的软件抗干扰 是针对以单片机为核心的应用系统而言的。 根据单片机系统的特点, 采用下面介绍的方 法, 可以有效地防止干扰对系统造成的各种 不良影响。 211 指令复执 对于重要的指令, 如输入 输出, 要重复 执行, 以确保其正确。 开关量的读入必须两次以上读入一致才 有效; 若是按键类开关, 还应加软件除抖保 护, 即加软件延时, 延时值一般 10 m s 左右。 开关量输出时, 需将输出回读, 以保证输 出正确。 若输出控制对象是继电器、 电磁阀等 易于产生干扰的部件, 在其可能对系统造成 干扰期间 ( 如继电器吸合时间内) 不应执行其 它程序, 而应不断重复该输出命令, 确保动作 无误。 对智能型 I O 接口芯片, 单片机每次对 其访问前, 最好重新进行设置, 以使其始终按 予定的方式工作。 212 数字滤波 在单片机系统中, 输入模拟量中不可避 免地含有随机干扰, 使输入模拟量产生误差。 测量理论告诉我们: 对真值的最佳估计就是
NO R TH CH I N A EL ECTR IC POW ER 华北电力技术 N o 14 1998
单片机系统的软件抗干扰
东北电力学院 ( 吉林 132012) 崔生荣 文 摘 抗干扰能力是单片计算机系统工作好坏的主要指标。 采用软件抗干扰不需 增加硬件设备、 可靠性高、 稳定性好、 功能多样、 使用灵活, 具有许多硬件抗干扰所不 具备的优点, 与硬件手段互补, 相辅相成。 文章论述软件抗干扰的基本原理和基本方 法, 涵盖指令复执、 数字滤波、 程序卷回、 信息冗余、 系统自检等概念。 关键词 单片机系统 软件抗干扰 可靠性 随着高性能价格比单片机的不断问世, 其应用更加广泛深入, 单片机系统的可靠性 也变得越来越突出。 决定单片机系统可靠性 的因素很多, 有系统本身的原因, 也有外在的 原因。 这里只讨论外在因素 ( 如静电干扰和各 种电磁干扰) 造成单片机系统可靠性下降时, 如何用软件加以克服的问题。 外在因素是以某种电信号的形式, 通过一 定的途径侵入单片机系统而发生作用的。 这种 信号对单片机系统来说是无用信号, 它往往混 在有用信号之中, 造成系统工作不稳定。 在电 子学中, 把外来的无用信号统称为干扰。 抗干 扰的方法有硬件和软件两种。 硬件抗干扰发展 的历史较长, 理论和实践比较成熟。 而软件抗 干扰发展较晚, 还没有形成较完善的理论。 事 实已经证明: 软件抗干扰和硬件抗干扰一样, 已成为单片机系统可靠工作的重要手段。 合电路的测试报告, 并实际应用于第一代的电 子管计算机 D a tam a t ic2100 的诊断中。 软件抗干扰与数字系统的故障诊断有联 系, 但又有区别。 故障诊断着眼于系统内部故 障的检测与定位。 而软件抗干扰则侧重于对 干扰信号的克服。 当然, 也包含对系统内部故 障的检测, 但这种故障不是系统内部元件所 致, 而是由于外部干扰所致。 因为组成单片机 系统的硬件是软件的载体, 只有硬件完好, 软 件才能正常发挥作用, 如果硬件有故障, 软件 也就失去了基础, 抗干扰也就无从谈起了。 软件抗干扰的本质是, 在有干扰存在的 情况下利用编程技术来抵消其影响。 即当干 扰使单片机系统出现一定的运行性故障时, 能够依靠系统内驻的能力 ( 程序) 保持系统连 续正确地执行其程序和输入输出的功能。 因 此, 软件抗干扰过程实质是一个干扰容错过 程, 是容错技术在软件设计中的具体体现。 对 侵入单片机系统的干扰, 用软件来消除不仅 是必要的, 而且, 也是最经济、 最可行的。 高性能单片机以其丰富的指令功能和极 高的运行速度, 为软件抗干扰提供了良好的条 件。 一般来说, 单片机执行指令的速度为几微 秒, 甚至更低, 而系统的输入信号 ( 如开关触 点、 温度、 压力、 流量等) 和输出执行机构 ( 如机 — 17 —
N 次检测结果 X 1 , X 2 , …, X N 的算术平均
X 2 = X 1 + 1 2 (X 2 - X 1 ) = (X 1 + X 2 ) 2 Xi= X
-
i- 1
+ (X i (X 1 + X 2 + …+ X i ) i ( 1< i ≤N ) ( 3)
其中 X i ——第 i 次测量值;
1 李文忠. 微型机的维护与诊断技术 . 北京: 清华大
学出版社, 1988
2 杨士元. 数字系统的故障诊断与可靠性设计。 北
京: 清华大学出版社, 1989
( 收稿日期: 1998201222)
— 19 —
X i —— i 次测量的平均值。
-
对一些要求不高的简单应用系统, 可采 用类似体操比赛中的评分办法, 在算平均值 之前, 先对 N ( 一般取 4 ) 个值进行比较, 去 掉其中的最大值和最小值, 然后计算余下的 N - 2 ( = 2) 个数据的平均值。它具有计算方 便、 速度快、 占用内存容量小等优点。
S= Ρ N
( 2)
( 2 ) 式告诉我们, N 从 1 开始增大时, 平
均误差值 S 下降较快, 随着 N 值的进一步增 大, S 值下降变得缓慢。 而检测次数 N 的增 加给测量工作带来很多困难。 所以综合需要和 可能, 在单片机系统中, N 值一般取 4 ~ 20。 在实际使用中, 为了加快存取数据的速 度, 节省单片机内存资源, 可采用递推或迭代 法来计算。 这种方法不需要存放 N 个测量值, 而是每测得一个值就采用下列公式计算一次:
213 程序卷回
单片机系统在遇到外界干扰时, 往往会 导致运行程序进入死循环, 即程序 “死锁” ,或 使程序进入程序存贮器的空白区 ( 即无指令 区 ) , 这种现象叫作程序 “跑飞” 。 对程序 “死 锁” , 单片机可利用软件超周期定时器, 即看 门狗定时器 (W a tch 2dog T im er ) 来解决。有 的单片机内设有看门狗定时器 ( 如 8098) , 有 的单片机没有, 就利用其内部定时 计数器作
值, 可用下式表示:
X = (1 N ) ・ X n= 1
-
6
N n
= ( 1 N ) ・ (X 1 + X 2 + …+ X N )
( 1)
看门狗定时器, 其定时值要略大于或等于程 序运行一个周期的时间值。 程序运行一旦超
由 ( 1) 式可知, X 的精度取决于检测次数 — 18 —
时, 就产生超时中断, 重新启动程序或转入中 断恢复程序 。解决程序 “跑飞” 的方法是在程 序存储器的空白区设置软件 “陷井” , 即在空 ( ) 白区内填满空操作 如 N op 和无条件转移 指令, 一旦程序进入空白区执行命令, 也能重 新启动程序或转向中断恢复程序。 214 信息冗余 前文讲到的指令复执, 程序卷回体现了 时间冗余的软件设计思想。 在单片机系统中, 有些数据、 命令或参数等信息非常重要, 不容 出错。 因此, 对这些关键信息应采取多区复 存, 即留有备份的方式。 这就是我们所说的信 息冗余。 当程序出现运行性故障时, 中断恢复 程序就把这些数据、 命令或参数一一恢复, 从 而保证系统正常运行。 215 系统自检 系统自检的作用是: 自动检查组成系统 的 各 功 能 单 元 的 工 作 状 态, 比 如 CPU 、 E2 当发现各功 PROM 、 RAM 和 I O 接口电路。 能单元有故障时, 能自动排除或给用户提供 指示, 以便及时处理。 21511 检查程序存储器 在系统设计时, 要把程序存储器的最后 一个单元作为检测单元。 在固化程序时, 检测 单元每一位的取值是除检测单元外, 其它各 单元的对应位按位异或的结果。 在检查程序 存储器时, 对整个程序存储器, 包括检测单元 在内, 进行按位异或运算, 若结果为 “0” , 说明 程序存储器中信息正确, 反之有错。 这种方法 只能判断程序存储器是否有错, 不能指出错 误单元, 也不能纠错。 21512 检查数据存储器 与程序存储器不同, 数据存储器的内容 是变化的, 但仍可用按位异或运算来检查。 具 体做法是: 对每个单元都先读出其原码并保 存, 对原码求反存入原单元, 再读出存入的反 码, 与原码进行异或运算, 若结果为 “1” , 说明 正确, 反之有错。 最后, 再将原码送入原单元。
3 结束语
软件抗干扰比硬件抗干扰有许多优点: 它 不需要增加硬件设备, 可靠性高, 稳定性好; 它 可以根据信号和环境的不同, 选用不同的方 法, 而无须改变硬件结构, 因而灵活多变, 功能 强。 但软件抗干扰在于 “抗” , 而不在于 “拒” 。 此外, 它抗持续强干扰的效果 并不理想。因此 它并不能取代硬件抗干扰。 硬件抗干扰在于 “拒” , 即把干扰 “拒” 于系统之外, 使系统免受 干扰的影响, 达到稳定运行的目的。 但是, 硬件 抗干扰措施无论如何完善, 彻底消除干扰是不 可能的。 只有同时采用硬件和软件相结合的办 法, 才能取得最佳的抗干扰效果。 参考文献
对输入 输出接口电路的检查要根据系 统的具体情况来决定。 可单独检查每个接口 电路, 也可把输入 输出作为整体来检查。 整 体检查的方法是给输入接口电路加上已知信 号, 单片机读入这些信号, 并在输出接口电路 显示出相应的结果。 如果显示内容与预计的 相同, 表明工作正常, 反之有故障。 如果有故 障, 应单独检查, 以进一步确定故障的部位, 及时加以排除。
这种检查方法不破坏原来的数据。 而且, 还能 发现错误所在的单元。 21513 检查 CPU
CPU 是系统的核心, 内部含有算术逻辑 单元, 各种寄存器和定时器 计数器等。 对 CPU 的检查可编一简单程序, 使这些功能单 元都参与其中, 如果程序运行结果与预计的 相同, 则说明无故障, 否则, 有故障存在。 21514 检查输入 输出接口电路
1 软件抗干扰的原理
软件抗干扰最早源于数字系统的故障诊 断技术。 1953 年, D agget 和 R ich 在 W h irl2
W ind 计算机上采用了循环程序控制技术, 通
过控制启停开关来重复执行预选的程序 , 并 在一些主要的检验点观察响应, 以诊断系统内 的故障。 1959 年, E ld red 提出了第一篇关于组
电装置) 变化速度相对要慢得多。 一旦干扰使 系统的正常运行遭到破坏, 单片机便利用其速 度上的优势, 通过执行抗干扰软件 ( 程序) 来克 服干扰的影响, 使系统仍能保持正常工作。 由 此可知, 单片机是以执行抗干扰软件 ( 程序) 所 花的时间为代价, 换来了系统的可靠。
但误差理论进一步指 N , N 值越大精度越高。 出: 如果标准误差为 Ρ, 平均误差值为 S , 则 有关系:
1
2 软件抗干扰的方法
需要指出的是: 这里所谓的软件抗干扰 是针对以单片机为核心的应用系统而言的。 根据单片机系统的特点, 采用下面介绍的方 法, 可以有效地防止干扰对系统造成的各种 不良影响。 211 指令复执 对于重要的指令, 如输入 输出, 要重复 执行, 以确保其正确。 开关量的读入必须两次以上读入一致才 有效; 若是按键类开关, 还应加软件除抖保 护, 即加软件延时, 延时值一般 10 m s 左右。 开关量输出时, 需将输出回读, 以保证输 出正确。 若输出控制对象是继电器、 电磁阀等 易于产生干扰的部件, 在其可能对系统造成 干扰期间 ( 如继电器吸合时间内) 不应执行其 它程序, 而应不断重复该输出命令, 确保动作 无误。 对智能型 I O 接口芯片, 单片机每次对 其访问前, 最好重新进行设置, 以使其始终按 予定的方式工作。 212 数字滤波 在单片机系统中, 输入模拟量中不可避 免地含有随机干扰, 使输入模拟量产生误差。 测量理论告诉我们: 对真值的最佳估计就是
NO R TH CH I N A EL ECTR IC POW ER 华北电力技术 N o 14 1998
单片机系统的软件抗干扰
东北电力学院 ( 吉林 132012) 崔生荣 文 摘 抗干扰能力是单片计算机系统工作好坏的主要指标。 采用软件抗干扰不需 增加硬件设备、 可靠性高、 稳定性好、 功能多样、 使用灵活, 具有许多硬件抗干扰所不 具备的优点, 与硬件手段互补, 相辅相成。 文章论述软件抗干扰的基本原理和基本方 法, 涵盖指令复执、 数字滤波、 程序卷回、 信息冗余、 系统自检等概念。 关键词 单片机系统 软件抗干扰 可靠性 随着高性能价格比单片机的不断问世, 其应用更加广泛深入, 单片机系统的可靠性 也变得越来越突出。 决定单片机系统可靠性 的因素很多, 有系统本身的原因, 也有外在的 原因。 这里只讨论外在因素 ( 如静电干扰和各 种电磁干扰) 造成单片机系统可靠性下降时, 如何用软件加以克服的问题。 外在因素是以某种电信号的形式, 通过一 定的途径侵入单片机系统而发生作用的。 这种 信号对单片机系统来说是无用信号, 它往往混 在有用信号之中, 造成系统工作不稳定。 在电 子学中, 把外来的无用信号统称为干扰。 抗干 扰的方法有硬件和软件两种。 硬件抗干扰发展 的历史较长, 理论和实践比较成熟。 而软件抗 干扰发展较晚, 还没有形成较完善的理论。 事 实已经证明: 软件抗干扰和硬件抗干扰一样, 已成为单片机系统可靠工作的重要手段。 合电路的测试报告, 并实际应用于第一代的电 子管计算机 D a tam a t ic2100 的诊断中。 软件抗干扰与数字系统的故障诊断有联 系, 但又有区别。 故障诊断着眼于系统内部故 障的检测与定位。 而软件抗干扰则侧重于对 干扰信号的克服。 当然, 也包含对系统内部故 障的检测, 但这种故障不是系统内部元件所 致, 而是由于外部干扰所致。 因为组成单片机 系统的硬件是软件的载体, 只有硬件完好, 软 件才能正常发挥作用, 如果硬件有故障, 软件 也就失去了基础, 抗干扰也就无从谈起了。 软件抗干扰的本质是, 在有干扰存在的 情况下利用编程技术来抵消其影响。 即当干 扰使单片机系统出现一定的运行性故障时, 能够依靠系统内驻的能力 ( 程序) 保持系统连 续正确地执行其程序和输入输出的功能。 因 此, 软件抗干扰过程实质是一个干扰容错过 程, 是容错技术在软件设计中的具体体现。 对 侵入单片机系统的干扰, 用软件来消除不仅 是必要的, 而且, 也是最经济、 最可行的。 高性能单片机以其丰富的指令功能和极 高的运行速度, 为软件抗干扰提供了良好的条 件。 一般来说, 单片机执行指令的速度为几微 秒, 甚至更低, 而系统的输入信号 ( 如开关触 点、 温度、 压力、 流量等) 和输出执行机构 ( 如机 — 17 —
N 次检测结果 X 1 , X 2 , …, X N 的算术平均
X 2 = X 1 + 1 2 (X 2 - X 1 ) = (X 1 + X 2 ) 2 Xi= X
-
i- 1
+ (X i (X 1 + X 2 + …+ X i ) i ( 1< i ≤N ) ( 3)
其中 X i ——第 i 次测量值;
1 李文忠. 微型机的维护与诊断技术 . 北京: 清华大
学出版社, 1988
2 杨士元. 数字系统的故障诊断与可靠性设计。 北
京: 清华大学出版社, 1989
( 收稿日期: 1998201222)
— 19 —
X i —— i 次测量的平均值。
-
对一些要求不高的简单应用系统, 可采 用类似体操比赛中的评分办法, 在算平均值 之前, 先对 N ( 一般取 4 ) 个值进行比较, 去 掉其中的最大值和最小值, 然后计算余下的 N - 2 ( = 2) 个数据的平均值。它具有计算方 便、 速度快、 占用内存容量小等优点。
S= Ρ N
( 2)
( 2 ) 式告诉我们, N 从 1 开始增大时, 平
均误差值 S 下降较快, 随着 N 值的进一步增 大, S 值下降变得缓慢。 而检测次数 N 的增 加给测量工作带来很多困难。 所以综合需要和 可能, 在单片机系统中, N 值一般取 4 ~ 20。 在实际使用中, 为了加快存取数据的速 度, 节省单片机内存资源, 可采用递推或迭代 法来计算。 这种方法不需要存放 N 个测量值, 而是每测得一个值就采用下列公式计算一次:
213 程序卷回
单片机系统在遇到外界干扰时, 往往会 导致运行程序进入死循环, 即程序 “死锁” ,或 使程序进入程序存贮器的空白区 ( 即无指令 区 ) , 这种现象叫作程序 “跑飞” 。 对程序 “死 锁” , 单片机可利用软件超周期定时器, 即看 门狗定时器 (W a tch 2dog T im er ) 来解决。有 的单片机内设有看门狗定时器 ( 如 8098) , 有 的单片机没有, 就利用其内部定时 计数器作
值, 可用下式表示:
X = (1 N ) ・ X n= 1
-
6
N n
= ( 1 N ) ・ (X 1 + X 2 + …+ X N )
( 1)
看门狗定时器, 其定时值要略大于或等于程 序运行一个周期的时间值。 程序运行一旦超
由 ( 1) 式可知, X 的精度取决于检测次数 — 18 —
时, 就产生超时中断, 重新启动程序或转入中 断恢复程序 。解决程序 “跑飞” 的方法是在程 序存储器的空白区设置软件 “陷井” , 即在空 ( ) 白区内填满空操作 如 N op 和无条件转移 指令, 一旦程序进入空白区执行命令, 也能重 新启动程序或转向中断恢复程序。 214 信息冗余 前文讲到的指令复执, 程序卷回体现了 时间冗余的软件设计思想。 在单片机系统中, 有些数据、 命令或参数等信息非常重要, 不容 出错。 因此, 对这些关键信息应采取多区复 存, 即留有备份的方式。 这就是我们所说的信 息冗余。 当程序出现运行性故障时, 中断恢复 程序就把这些数据、 命令或参数一一恢复, 从 而保证系统正常运行。 215 系统自检 系统自检的作用是: 自动检查组成系统 的 各 功 能 单 元 的 工 作 状 态, 比 如 CPU 、 E2 当发现各功 PROM 、 RAM 和 I O 接口电路。 能单元有故障时, 能自动排除或给用户提供 指示, 以便及时处理。 21511 检查程序存储器 在系统设计时, 要把程序存储器的最后 一个单元作为检测单元。 在固化程序时, 检测 单元每一位的取值是除检测单元外, 其它各 单元的对应位按位异或的结果。 在检查程序 存储器时, 对整个程序存储器, 包括检测单元 在内, 进行按位异或运算, 若结果为 “0” , 说明 程序存储器中信息正确, 反之有错。 这种方法 只能判断程序存储器是否有错, 不能指出错 误单元, 也不能纠错。 21512 检查数据存储器 与程序存储器不同, 数据存储器的内容 是变化的, 但仍可用按位异或运算来检查。 具 体做法是: 对每个单元都先读出其原码并保 存, 对原码求反存入原单元, 再读出存入的反 码, 与原码进行异或运算, 若结果为 “1” , 说明 正确, 反之有错。 最后, 再将原码送入原单元。
3 结束语
软件抗干扰比硬件抗干扰有许多优点: 它 不需要增加硬件设备, 可靠性高, 稳定性好; 它 可以根据信号和环境的不同, 选用不同的方 法, 而无须改变硬件结构, 因而灵活多变, 功能 强。 但软件抗干扰在于 “抗” , 而不在于 “拒” 。 此外, 它抗持续强干扰的效果 并不理想。因此 它并不能取代硬件抗干扰。 硬件抗干扰在于 “拒” , 即把干扰 “拒” 于系统之外, 使系统免受 干扰的影响, 达到稳定运行的目的。 但是, 硬件 抗干扰措施无论如何完善, 彻底消除干扰是不 可能的。 只有同时采用硬件和软件相结合的办 法, 才能取得最佳的抗干扰效果。 参考文献
对输入 输出接口电路的检查要根据系 统的具体情况来决定。 可单独检查每个接口 电路, 也可把输入 输出作为整体来检查。 整 体检查的方法是给输入接口电路加上已知信 号, 单片机读入这些信号, 并在输出接口电路 显示出相应的结果。 如果显示内容与预计的 相同, 表明工作正常, 反之有故障。 如果有故 障, 应单独检查, 以进一步确定故障的部位, 及时加以排除。
这种检查方法不破坏原来的数据。 而且, 还能 发现错误所在的单元。 21513 检查 CPU
CPU 是系统的核心, 内部含有算术逻辑 单元, 各种寄存器和定时器 计数器等。 对 CPU 的检查可编一简单程序, 使这些功能单 元都参与其中, 如果程序运行结果与预计的 相同, 则说明无故障, 否则, 有故障存在。 21514 检查输入 输出接口电路
1 软件抗干扰的原理
软件抗干扰最早源于数字系统的故障诊 断技术。 1953 年, D agget 和 R ich 在 W h irl2
W ind 计算机上采用了循环程序控制技术, 通
过控制启停开关来重复执行预选的程序 , 并 在一些主要的检验点观察响应, 以诊断系统内 的故障。 1959 年, E ld red 提出了第一篇关于组
电装置) 变化速度相对要慢得多。 一旦干扰使 系统的正常运行遭到破坏, 单片机便利用其速 度上的优势, 通过执行抗干扰软件 ( 程序) 来克 服干扰的影响, 使系统仍能保持正常工作。 由 此可知, 单片机是以执行抗干扰软件 ( 程序) 所 花的时间为代价, 换来了系统的可靠。
但误差理论进一步指 N , N 值越大精度越高。 出: 如果标准误差为 Ρ, 平均误差值为 S , 则 有关系: