单片机应用中的软件抗干扰技术
单片机应用系统软件抗干扰技术

目
A I 蒸 汽 流 量 I一 A 比一 给 水 流 量 P 一 汽 包水 位 v
图 3 锅 炉 汽 包 水位 三冲 量 控 制模 块 图 连接 圈
直蔚 与 蓑 2 0 t ) 0 2 1
■
囫
维普资讯
转。 一个好的程序结构 , 不但能增加程序的可读性, 便
维普资讯
文 章 缩 号 :0 19 4 (0 20 .0 70 10 -9 4 2 0 )10 6 .3
单片机应 用 系统软件抗 干扰技术
赵 晓 莉
( 北 区职3 大学 , 河 - - 天津 30 5 ) 0 10
摘要 :阐述 了工业现场环境 中干扰 的特点 ,井详细介绍 了单 片机 应用系统软件抗干扰技
业现场中各类电器设备相配合。由于工业现场各种 动力设备不断地起停运行 , 使得现场环境恶劣, 存在 许多干扰源 : 系统本身噪声干扰 、 电磁干扰 、 过压干 扰及环境 干扰 。大量 的干 扰源虽不 能 造成硬 件系统 的损坏 , 但常使整个系统不能正常运行 , 致使控制失 灵, 甚至造成重大事故 。因此, 整个系统 的结构和每
2 干扰途 径
不论是外部或是系统本身 的耦合干扰 ,都可导致 应用系统软件 的周期性 、 相关 性、 实时 性受到破坏 , 程 序无法正常运行 , 导致系统失控 , 主要表现为 : () 1设计的应用系统在现场使用 中程序计数器 P c 值发生变化 , 干扰后数 据是 随机 的 , P 在 C值 的错误引 导下 , 程序执行一 系列毫无意义的指令 , 产生预料 以外 的误动作 , 甚至步入死循环 , 使系统失控 。 () 2改变数据 、 标志位 、 输入/ 出口。干扰侵入系 输 统 的前 向通道 ,叠加在信号上 ,导致数据采集误 差加 大,特别是当前 向通道的传感器接 口是小 电压信号输 入 时, 此现象更为严重 。 输入/ 出接 口状态受到干扰 , 输 造 成系统 资源被某 个任 务模块独 占 ,使 系统发生死 锁 当 R M数据 区受到干扰发生变化时 , 的造成数 A 有 据误差 , 的使控制 失灵 , 的改变 程序状 态 , 有 有 有的改 变某些部件工作状态。
单片机系统抗干扰技术措施

单片机系统抗干扰技术措施徐本升(七煤(集团)公司社保局,黑龙江七台河154600)廛屉科夔[}商要]单片机系统主要由信号检测部分、信号处理及控制部分、控制信号驱动部分、拳统零毒部分、显示部分组成。
干扰的种类主要来自系统内部元器件在系统中的状态和系统外部其它电气设备产生的干抚。
硬件抗干扰措施是电潺的抗干扰设计,屏蔽抗干技技术,双绞线及光纤的使用,去耦电路。
软件抗干就措-旌旋出错处理程序,建立软件陷阱,使用空操作指令。
‘‘、联蠢建i司]单片机;系统;抗干扰技术‘,单片机应用系统的硬件电路构成比较复杂、所用元件品种繁多,有的工作场所环境比较差,由于这些原因,为了保证单片机应用系统能够在各种环境下能正常运行,系统的抗干扰性就是一个非常重要的指标。
抗干扰就是针对干扰产生的性质、传播途径、侵入的位置和侵入的形式,采取相应的方法消除干扰源,抑制干扰传播途径,减弱电路或元件对噪声干扰的敏感性,使单片机系统能在线正常、稳定地运行。
1单片机系统的组成一个单片机应用系统的硬件电路是由如下几个部分构成的:1)信号检测部分:2)信号处理及控制部分:3)控制信号驱动部分;4)系统交互部分;5)显示部分。
由此可见一个单片机应用系统的成分是相当复杂的,从各种类型的传感器到名目繁多的各种继电器接触器、电磁阀,从类型繁多的集成电路到各种各样的耦合器件、执行部件、显示器件等。
2干扰的种类干扰就是叠加在有用信号上的不需要的信号。
是影响路正常工作的另一种噪声。
干扰以某种电信号的形式,通过一的渠道。
混入有用信号中侵人单片机系统,造成系统工作不稳定在各种实际环境中,干扰总是存在的,这些干扰能降低电子系统准确性甚至破坏其可靠性。
干扰有两种:一是来自系统内部元器件在工作时产生的干扰通过地址、电源线、信号线,分布电容和电感等传输,影响系统工状态。
二是来自系统外部其它电气设备产生的干扰。
通过传导辐射等途径影Ⅱ向单片机系统的正常工作。
干扰对单片机应用系统的作用有3个部位:1)输入系统。
单片机软件抗干扰技术

() 3 中值法 。根据干扰造成采样数据偏大或偏小 的情况 , 对一个采样点连续采集多次 , 并对这些采样值进行 比较 , 取中
值作为该点的采样结果 。
() 4 一阶递推数字滤波法 。这种方法是 利用 软件完成 R C 低 通滤波器的算法 , 实现用软 件方法替代硬件 R C滤波器。一 阶递推数字滤波公式为 :
Eq i me M a f crngTe h l g u p nt nu a ti c noo y No. 1, 0 1 2 08
单 片机 软 件抗 干扰 技术
汤 海燕
( 天津 机电职业技术学院 天津 3 0 3 ) 0 1 1
摘要 : 在安装 于设备上起控 制作用的单片微 型计 算机 中 , 由于设备 的频繁启动和停止 , 电网电压的波动 , 大型设备运行 时产 生磁场 等 诸 多方面的干扰 , 致使单片机的工作 受到影响。 基于这一情况, 采取相应的抗干扰措施是 完全 必要的。 文运用软件抗干扰技术 , 本 解决
序处于无序状态 。 处于这种状态下的时间越短 , 系统 的影响 对 就越小 。 解决这一 问题 的方法 , 就是有意识地在程序 中插入一 些空操作指令 N P 由于这些指令为单字节指令 , 中心处理 O 。 对 机的工作状态元任何影响 ,这样就使失控的程序在 遇到该指
】 =Q ( ) 1 , x +1 Y 一 n ~Q
式中 :
果 。由于干扰 的侵入 , 输入 / 输出接 口状态受干扰 , 造成条件 状 态偏差 、 失误 , 致使控制 失常 , 至造成 系统资源 被某 一任 甚
务模块独 占, 使系统 出现 “ 死锁” 。 () 3 数据受干扰发生变化 。由于 R M是 可以读 / 的 , A 写 因 此, 就有可能在 干扰 的侵 害下 , A R M中数据发生窜改 , 使系统
单片机应用系统软件中抗干扰技术的探讨

Ab ta t nti a e,tec re tMCU a piain s ts a ay eterao sfritr rn e h o t fta s sin sr c :I hsp p r h urn p l t t u , n lz h e sn o nef e c ,terueo rn miso , c o a e
电路内部 ,一 般包 括晶体管 、电阻以及运算放大器等 零部件 ,
由于这 些零 部件在 运行 过程 中会 产 生噪声 ,如 晶体 管闪 烁 、
电阻热 噪声 或者散粒 噪声 等 ,因此产 生干 扰源 ;其 次 ,在实
行感 性负载切换 过程 中 ,容易产生 噪声干扰 。在单 片机控制 系统 中 ,包含 了若 干感性 负载 ,例如接触器 、电机 、电磁铁 、 交 直流继 电器等 ,它们 的 自感反应 较为敏感 ,在切 换设备 过 程 中,由于受到 电磁感 应作用 ,线 圈 的两 端会产生 极高 的瞬 态电压 ,以此产生干扰问题 【 ;再 次 ,接触 噪声 也是单片机干 扰 的主要来 源之 一 ,由于单 片机 中两种材 料 的不完 全接 触 , 引发导 电率 的起 伏不定 ,进而产生 噪声 。例如 ,晶体管 焊接 位置的接触 不 良、插 头与插座接触 不 良、继 电器各 触点 之间 的接触不 良,等等 ,都可能成为干扰 的来源 。
te rpsdat jmmn c nl yt e sr t tt ettefnt n leurmet ue yteMC h ooe n -a igt h o g nue h e co a rq i ns sdb U. p i e o o a im s h u i e h Ke o d: U ; p l ao ytm sf ae;nijm n t h o g yw rs MC api t nss t r at a mig;e nl y ci e ow - c o
短波发射机中单片机应用系统的抗干扰措施

l | 每 Ne wo kT c o o y I t r e hn l g I
短波发射机中单片机应用系统的抗干扰措施
文/ 国家广电总局 8 1 陆亚华 刘海 / 3台 /
摘 要 : 文 分 析 了短 波 发 射 机 电控 保 护 系统 和 自动调 谐 系统 中现 场 各 本 种 干扰 对 单 片 机 系统 的 危 害 和 影 响 ,并 阐述 了采 用硬 件 和 软 件 抗 干 扰 措 施 确保 单 片机 系统稳 定 可靠 运行 的方 法 关键 词 : 波 发射 机 单 片 机 应 用 系统 干扰 危 害 抗 干扰措 施 短
高电平复位有效。 二极管V 1 辐射产生的干扰通过电源进入单片机 型复位 电路, 小了起不到保护作用, 太大了会导致信号 合、 使整个单片机系统运行更加稳定。 的作用是在瞬间断电或电压突降时, 保证 衰减; 同样稳压管的选择也要适宜, 稳压 系统, 管的稳压值要略大于最大传输信号电压值
() 2 通道干扰, 干扰信号通过与单片 统的通道进入单片机系统。
电线路进入单片机系统。
单片机系统的抗干扰措施可分为硬件 防止绝大部分的干扰, 但仍然会有少数干
作为l o防线是必不可少的。 al 由于软件抗
在信号输入通道上采用过压保护电
机系统相连接的输入/ 输出通道及其它系 措施和软件措施两种。 硬件抗干扰措施可
在所有输入和输出信号通道上 , 采
势必造成停播事故。 用光电耦合器进行光电隔离, 将单片机与 在短波发射机房内, 干扰通常均以 脉 中或紧急倒换频率时, 冲信号的形式进入单片机系统, 主要有如 如 果能 够采取有效措施来消除这些干扰源, 各种传感器、 开关、 继电器、 驱动电路在 下三种途径:
单片机软件抗干扰策略

信 息 技 ,
邢 铁 飞
( 牡丹江龙 江环保供水有限公 司, 黑龙 江 牡丹江 17 0 ) 5 0 0
摘 要 : 于单 片机 应 用环境 往往 比较 恶 劣 , 扰 严重 , 就要 求单 片机 应 用 系统 要 有较 强的 抗 干扰 能 力 。尽 管 我 们采 取 了硬件 由 干 这 抗 干扰 措 施 , 由 于干扰 信 号 产生 的原 因很 复 杂 , 有很 大的 随机 性 , 免保 证 系统 完全不 受 干扰 。因此 , 常在 硬 件 抗干 扰措 但 且具 难 通 施 的 基础 上 , 用软 件抗 干扰 技 术 加 以补 充 , 为 硬件 措 施 的辅 助手 段 。 采 作 关键 词 : 片机 ; 单 软件 ; 干扰 抗 1干扰 信 号对 单 片机 各部 分 的影 响 2 . 令 冗余 化 2指 单 片 机属 于 数字 系 统 , 逻 辑 部分 都 有 相 应 的 阈电平 和 噪 声 容 各 程序 指 令 在 执 行 当 中或 锁 存 后 , 有 被 噪 声 修 改 的 可 能 , 会 都 这 限 , 来 噪声 只要 不 超过 逻 辑元 件 的容 限值 , 统 就能 正 常运 行 。 外 系 然 导致 控制 失 效甚 至 引发 事 故 ,因此 对重 要 指 令 应 多次 反 复执 行 , 这 而一 旦侵 入 系统 的 噪声 超 过 了容 限 ,干 扰 就会 被 逻辑 器 件 放 大 、 整 样 就 能 纠正 干扰 造 成 的错 误 。对 于 频率 不 高 的 采集 数 据 , 在 一 定 应 型, 于是 产生 误 动作 。 假如 干 扰改 变 了触 发 器或 存储 器 的信 息 , 时 间 内多 次 采 集 后 进 行 滤 波 处 理 ; 于 向外 输 出的 控 制 指 令 , 多 即便 对 应 干扰 消除 了 , 也 无法 恢 复正 常 运行 。 系统 次重 复执 行 以确 保 输 出控 制 信 号 的可 靠性 。通 常 , 以把 重 要 指 令 可 11运 算 部件 和 控制 器 . 设 计 成定 时 执行 的模块 , 样 在 整个 程 序 的循 环 运 行 过程 中可 以 反 这 C U属高 速数 字 器件 , 中容 易 受 到干 扰 的有 运 算 部件 和 控 制 复得 到执 行 , P 其 即便 干 扰 信 号 改变 了指 令 内 容 , 能 及 时 自动 恢 复 正 也 器。 运算部件实现数据的各种运算 、 处理和传送操作 , 而控制器时单 常 , 量 减少 因故 障造 成 的损 失 。 尽 片机 的神 经 中枢 。噪声 的存 在 有 可能 导致 C U错误 地 执行 指 令 、 P 控 2 数据 冗余 化 . 3 制寄 存器 中的数 据 被改 写 ,从 而 产 生误 动 作或 得 到 错误 的结 果 , 甚 在 干 扰较 大 的环 境 中 , 数 据冗 余 备 份 , 以大 大 增 加 系 统 的 将 可 至引 起 系统 瘫痪 。 纠错 能 力 。对 于重 要数 据 应 采用 多 备 份 , 增加 专 用 于数 据 检 查 和 并 1 程序 计 数器 P . 2 C 恢复 的代 码 。从 可 靠性 角 度 出发 , 尽 量采 用 片 内 S A 保 存 重 要 应 RM 单片机系统受干扰后最典型的故障是程序计数器 P c的状态被 数据 , 当片 内 S A R M容 量 不 够 时 ,也 可 以 考 虑 扩 展 外 部 非 易 失 性 破坏 , 致程 序 无法 按 正 常 的顺 序执 行 , 地 址 空 间 内“ 飞 ”结 果 S A 作 为数 据 存储 器 , 导 在 乱 , RM 这种 芯片抗 干 扰 性能 很好 , 价 格 较高 。 但 往往 时 陷入 “ 循 环” 死 。因此 , 序计 数 器 P 程 C属 于重 点 防范 对 象 , 它 2 软件 “ 门狗 ” . 4 看 技术 出错 时 必须 尽 可能 早 地发 现并 采 取补 救措 施 。 又 称 程序 监 视 技 术 , 是 不 断监 视 程 序 循 环 运 行 时 间 , 发 现 就 若 1 特殊 功 能 寄存 器 S R . 3 F 超 过 已知 的循 环设 定 时 间 , 就强 迫 程 序 返 回到人 口处 , 系 统 运 行 使 S R对 C U非 常重 要 ,它 实质 上 是 一些 具 有 特殊 功 能 的 R M 重新 纳 入正 轨 。 基 本 思路 是 : 主程 序 中对 T F P A 其 在 0中断 服务 程序 进 行 单元 , 包括各种 I / O寄存器 、 片内部件工作方式寄存器 , 以及堆栈指 监视 ; T 在 1中断服 务 程 序 中对 主 程序 进 行 监视 ;O中断 监视 T T 1中 针 、 据指 针 等 。S R传 递 数据 的速 率 非 常 高 , 够 与 C U 的运 行 断 。 概 率 观点 , 种相 互 依存 、 互 制约 的抗干 扰 措施 将 使 系统 运 数 F 能 P 从 这 相 密切 配 合 。若某 个 S R被 干扰 信号 改 写 , 意 味着 程序 运 行结 果 异 行 的可 靠性 大 大提 高 。 F 则 常 , 则 改 变单 片 机 内各部 件 的操 作 控制 , 则导 致 整 个 系统 的输 轻 重 3 应用 实例 出紊 乱 , 发故 障 甚至 安 全事 故 。 引 因此 , 于 与程 序有 关 的 S R内容 对 F 通 信 电源 系统 的单 片机 软 件运 行 在 电磁 干 扰 很 强 的环 境 中 , 尤 必须提供及时有效 的保护 。 其是 整 流模 块 机 内监 控 软件 运 行在 高 频 大功 率 整 流 模块 内部 , 了 除 1 各 类存 储 器 ME R . 4 MO Y 要 求硬 件设 计 抗 干扰 能 力强 以外 , 件 也要 能 够 具备 足 够 的抗 干扰 软 单片机的存储器包括片 内存储器和片外扩展存储器。其 中, 程 自纠错 能 力 。 序 存 储 器 (E R M 或 E R M 或 F A H 的抗 干 扰 性 能 最 好 ,P EPO PO LS) CU 中兴 智 能 通信 电源 系 统 正是 在 充 分 的硬 件 抗 干 扰 设 计 基 础 上 内部 的数 据存 储 器 ( 内 R M) 干 扰 性能 也 较好 , 片外 扩 展数 据 又恰 当运 用 了软件 抗 干扰 设 计 措施 , 受 住 了各 种严 格 的 可靠 性 检 片 A 抗 而 抗 存储 器( 片外 R M 的 抗干 扰 性 能就 相 对较 差 。因此 , 干 扰 信号 较 验 , A ) 在 以优 异 的性 能 和质 量 获 得 了 国 际 和 国 内用 户 的 广 泛 好评 , 赢 也 强 的 环境 中运 行 的单 片机 , 较 持 久 和重 要 的数 据 应 当保 存 在 片 内 得 了荣 誉 。主 要 的软 件抗 干 扰措 施 包括 以下方 面 : 其 R M中 , A 在扩展 R M 中只宜保 存临时数据 , A 否则应当采用 软件措 3 . 理定 时 器 1物 施 在应 用 程序 中进行 数据 恢 复 。 物理 定时 器是 单 片 机 系统 正 常工 作 的 前 提 , 为避 免 干 扰 导致 其 2 软件 抗 干 扰技 术 工 作 异 常 , 主 程序 循 环 中检 查 其 工作 是 否 正 常 , 不 是 则 重 新 初 在 若 软件 抗 干 扰技 术 是 当系 统 受干 扰 后 时 系 统 恢 复 正 常运 行 或 输 始 化 , 多 次初 始 化仍 无 法恢 复 , 复位 整 个单 片 机 系统 。 倘若 则 3 消息 缓 冲区 . 2 入 信 号受 干扰 后 去伪 求 真 的一 种辅 助 方 法 , 因此 软 件抗 干扰 是 被动 单 片机 系 统 通 过产 生 、获 取 和处 理 消 息来 完成 所 需 的各 项 功 措 施 , 硬件 抗 干扰 是 主动 措施 。软件 抗 干 扰技 术 所 研 究 的主 要 内 而 容 ,其一是采取软件的方法抑制叠加在模拟输入信号上噪声的影 能 , 因此 消息 缓 冲 区是 否正 常 直 接关 系 到 整个 软 件 的 正常 运 行 。程 多 但 响 , 数 字 滤 波技 术 ; 是 在 因 干扰 而 使 运行 程 序 发 生 混乱 , 致 序 正 常 运 行 时 , 数 时候 消 息 缓 冲 区 内没 有 消 息 , 干扰 存 在 时有 如 其二 导 程序乱飞和陷入死循环时 , 采取使程序纳入正轨的措施 , 这些措施 可 能 会改 变 消息 缓 冲 区 中的数 据 ,使得 总有 处理 不 完 的消 息存 在 。 利 用 这一 特 点 , 以判 断消 息 缓 冲 区是 否 正 常并 决 定 是否 需 要 重新 可 可以由软件单独实现, 也可以采用软硬件相结合的方法来实现。 对于已进入单片机 的噪声 , 必须采取对应 措施 , 尽量维持系统 初始化。 33 虚拟 定 时器 _ 功能 , 避免导致严重后果 。如果 C U已产生误动作或和存储器 内容 P 对 于程 序 中的 周期 型 虚 拟定 时 器 , : 描键 盘 定 时 器 、 据采 如 扫 数 已被误修改 ,则应通过在应用程序中加入必要 的代码进行 自恢复 。 通常 的软件抗干扰措施有 : 数字滤波方法 、 输入 口信号重复检测方 集 定 时器 、 理 通讯 定 时器 等 , 处 为避 免 因干 扰 造成 定 时 时 长被 改 变 , 法 、 出端 口数据刷新方法 、 输 软件拦截技术( 指令冗余 、 软件 陷阱) 就应该经常对其检查 , 、 出错时重新设置。 “ 门狗 ” 看 技术 、 故 障时 的 自恢 复等 。 以下 是几 种 常用 的方 法 : 发生 3 液晶 L D . 4 C 21主动 初 始化 . 液 晶是 人机 交 互 界 面 , 是 最容 易 受 N  ̄界 干 扰 的部 分 。程 序 也 ' I - 首先 要 保 证 上 电 或 复位 后 软 件 能够 正 确 地 对 单 片 机 及 其 外 围 中经常检查 L D是否工作正常 ,若不正常则重新初始化 L D和各 C C 器件 的各 种 功 能 、 口或方 式 、 态 等实 现 初始 化 设 置 , 次在 程 序 菜 单 。 �
PIC单片机抗干扰设计

PIC单片机抗干扰设计摘要:单片机已经普遍应用到各个领域,对其可靠性也提出了更高的要求。
影响单片机可靠性的因素很多,但是抗干扰性能是最重要的一个因素之一。
本文对PIC单片机抗干扰设计主要从硬件干扰抑制技术和软件干扰抑制技术两个大方面来进行分析。
关键词:PIC单片机抗干扰硬件软件1 硬件干扰抑制技术1.1 采用合理的隔离技术采用合理的隔离技术对单片机抗干扰起着非常重要的作用。
隔离不仅能够将外来干扰信号的通道阻断,而且还可以通过控制系统与现场隔离实现抗干扰目的,使得彼此之间的串扰最大限度地降低。
常用的隔离技术主要包括变压器隔离方式、布线隔离方式、光电隔离方式和继电器隔离方式等。
1.2 合理选择系统时钟PIC单片机系统时钟频率为0~20MHz,时基震荡方式主要有四种,每一种时基震荡方式由不同的时基频率相对应:外接电阻电容元件的阻容振荡方式RC,频率为0.03MHz~5MHz;低频晶体振荡器/陶瓷谐振器振荡方式LP,频率为32.768kHz或200kHz;标准晶体振荡器/陶瓷谐振器振荡方式XT,频率为0.2MHz~4MHz;高频晶体振荡器/陶瓷谐振器振荡方式HS,频率为4MHz~20MHz。
外接方式主要有三种:外接晶体振荡器/陶瓷谐振器、外接时钟电路、外接RC。
用户在选择基振荡方式和外接方式时可根据PIC单片机应用系统的性能、应用场合、价格等因素来进行。
外接时钟属于高频噪声源,从可靠性方面来讲,不仅会干扰本应用系统,而且还能够干扰外界。
频率越高越容易成为噪声源,因此应采用低频率的系统时钟,但是必须把与系统性能要求相符作为前提条件。
1.3 合理设计电路板在电路板设计时,不要只是采用单一的PCB板进行,而应尽可能多的采用多层PCB板来进行,其中一层用作接地,而另外一层用作电源布线,这样就使得退耦电路形成,同时,这样的电路其屏蔽效果也比较好。
如果对空间没有任何的硬性规定,同时要成本因素进行考虑,此时在设计电路板时就可以采用单层或者双层的PCB板进行布线,这样需要从电源单独引电源线进行布线,并将其逐个分配到每个功能电路中,另外,还要将所有的地线汇集到靠近电源地的一个点上。
单片机应用系统的软件抗干扰技术

0 前言
随着单片机应用的普及 , 采用单片机控制的产 品与设备 日 益增多, 而某些设备所在的工作环境往 往比较恶劣, 干扰十分严重。Ill因此, 为保证设备能 在实际应用中可靠工作, 必须要周密考虑和解决干 扰的问题。软件抗干扰是一种简便易行、 节约经济 的抗干扰方法[20 1
产生。在程序结构上 , 可将输出过程安排在监控循
1 数字量输入输 出中的软件抗干
扰
1.1 数字量输入中的软件杭干扰 在单片机应用系统中, 数字量输人过程中的干 扰作用时间比较短 , 一般可采取重复采样加数字滤 波的方法来解决这一问题。[]如果数字信号属于开 3 关量信号, 如限位开关、 按钮操作等, 则必须保证每 次采样结果绝对一致才行。 这时可编写一个采样子
单片机应用系统的软件抗干扰技术
UMP,JC 等, 在其前面插人两条 NOP 指令, 这样
很少用完全部空间, 对于这些非程序空间, 每隔一 段地址设置一个软件陷阱,系统就一定能捕捉到 即使失控程序“ 跑飞” 到操作数上, 由于空操作指令 跑飞” 的程序而自动人轨。 NOP 的存在, 也可避免后面的指令被当作操作数 “ 执行, 程序会 自 动纳人正轨。 2.2.3 表格区 表格一般分为数据表格和散转表格两种, 由于 采用指令冗余使“ 跑飞” 的程序恢复正常是有 表格的内容与检索值的一一对应关系, 在表格中安 条件的, 首先“ 跑飞” 的程序必须落在程序区, 其次 必须能够执行到所设置的指令冗余。 在一个程序中 排软件陷阱会破坏其连续性和对应关系, 因此只能 指令冗余不能使用过多, 否则会降低程序的执行效 在表格的最后安排陷阱。如果表格区较长, 安排在 最后的陷阱不能保证一定能捕捉到“ 跑飞” 的程序, 率。 有可能在中途程序再次“ 跑飞” 。 2.2 软件陷阱 2.2.4 程序运行区 如果“ 跑飞” 的程序落到非程序区(如 EPROM 程序区是由一系列的指令所构成的, 不能在这 中未用的空间或某些数据表格等) ,则指令冗余技 术就不能使“ 跑飞” 的程序恢复正常了, 这时可以采 些指令中间任意安排陷阱, 否则会影响程序的正常 用软件陷阱的抗干扰技术。 软件陷阱是一条引导指 运行。但一般程序常采用模块化设计, 然后按要求 一个模块地执行 , 可以将陷阱指令组分 令,可以将捕获的程序强行引向一个指定的地址, 一个模块 、 该地址安排了一段专门的出错处理程序。 假设出错 散放置在用户程序各模块之间空余的单元里。 正常 运行时不执行这些陷阱指令 , 而程序一旦“ 跑飞” 落 处理程序的人口地址为 ERR ,则下面三条指令即 人这些陷阱区, 由于陷阱指令组的存在 , 可以马上 构成一个“ 软件陷阱” 。 N OP 将“ 跑飞” 程序 自动人轨。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机应用中的软件抗干扰技术随着单片机应用的普及,采用单片机控制的产品与设备日益增多,而某些设备所在的工作环境往往比较恶劣,干扰严重,这些干扰会严重影响设备的正常工作,使其不能正常运行。
因此,为了保证设备能在实际应用中可靠地工作,必须要周密考虑和解决抗干扰的问题。
本文对单片机应用中的软件抗干扰技术作详细介绍,文中所用单片机为MCS51。
一、数字量输入输出中的软件抗于数字量输入过程中的干扰,其作用时间较短,因此在采集数字信号时,可多次重复采集,直到若干次采样结果一致时才认为其有效。
例如通过A 价转换器测量各种模拟量时,如果有干扰作用于模拟信号上,就会使A/D 转换结果偏离真实值。
这时如果只采样一次A/D 转换结果,就无法知道其是否真实可靠,而必须进行多次采样,得到一个A/D 转换结果的数据系列,对这一系列数据再作各种数字滤波处理,最后才能得到一个可信度较高的结果值。
本书第八章将给出各种具体的数字滤波算法及程序。
如果对于同一个数据点经多次采样后得到的信号值变化不定,说明此时的干扰特别严重,已经超出允许的范围,应该立即停止采样并给出报警信号。
如果数字信号属于开关量信号,如限位开关、操作按扭等,则不能用多次采样取平均值的方法,而必须每次采样结果绝对一致才行。
这时可编写一个采样子程序,程序中设置有采样成功和采样失败标志,如果对同一开关量信号进行若干次采样,其采样结果完全一致,则成功标志置位;否则失败标志置位。
后续程序可通过判别这些标志来决定程序的流向。
单片机控制的设备对外输出的控制信号很多是以数字量的形式出现的,如各种显示器、步进电机或电磁阀的驱动信号等。
即使是以模拟量输出,也是经过D/A 转换而获得的。
单片机给出一个正确的数据后,由于外部干扰的作用有可能使输出装置得到一个被改变了的错误数据,从而使输出装置发生误动作。
对于数字量输出软件抗干扰最有效的方法是重复输出同一个数据,重复周期应尽量短。
这样输出装置在得到一个被干扰的错误信号后,还来不及反应,一个正确的信号又来到了,从而可以防止误动作的产生。
在程序结构上,可将输出过程安排在监控循环中.循环周期取得尽可能短,就能有效地防止输出设备的错误动作。
需要注意的是.经过这种安排后输出功能是作为一个完整的模块来执行的,与这种重复输出措施相对应.软件设计中还必须为各个外部输出设备建立一个输出暂存单元,每次将应输出的结果存入暂存单元中,然后再调用输出功能模块将各暂存单元的数据一一输出,不管该数据是刚送来的,还是以前就有的。
这样可以让每个外部设备不断得到控制数据,从而使干扰造成的错误状态不能得以维持。
在执行输出功能模块时,应将有关输出接口芯片的初始状态也一并重新设置。
因为由于干扰的作用可能使这些芯片的工作方式控制字发生变化,而不能实现正确的输出功能,重新设置控制字就能避免这种错误.确保输出功能的正确实现。
二、程序执行过程中的软件抗于扰前面述及的是针对输入输出通道而言的,干扰信号还未作用到CPU 本身,CPU 还能正确地执行各种抗干扰程序。
如果干扰信号已经通过某种途径作用到了CPU 上,则CPU 就不能按正常状态执行程序,从而引起混乱,这就是通常所说的程序“跑飞”。
程序“跑飞”后使其恢复正常的一个最简单的方法是使CPU 复位,让程序从头开始重新运行。
很多单片机控制的设备中都有设置人工复位电路。
人工复位一般是在整个系统已经完全瘫痪,无计可施的情况下才不得已而为之的。
因此在进行软件设计时就要考虑到万一程序“跑飞”,应让其能够自动恢复到正常状态下运行。
程序“跑飞”后往往将一些操作数当作指令码来执行,从而引起整个程序的混乱。
采用“指令冗余”是使“跑飞”的程序恢复正常的一种措施。
所谓“指令冗余”,就是在一些关键的地方人为地插入一些单字节的空操作指令NOP。
当程序“跑飞”到某条单字节指令上时,就不会发生将操作数当成指令来执行的错误。
对于MCS51 单片机来说,所有的指令都不会超过3 个字节,因此在某条指令前面插入两条NOP 指令,则该条指令就不会被前面冲下来的失控程序拆散,而会得到完整的执行,从而使程序重新纳入正常轨道。
通常是在一些对程序的流向起关键作用的指令前面插入两条NOP 指令。
应该注意的是在一个程序中“指令冗余”不能使用过多,否则会降低程序的执行效率。
采用“指令冗余”使“跑飞”的程序恢复正常是有条件的,首先“跑飞”的程序必须落到程序区,其次必须执行到所设置的冗余指令。
如果“跑飞”的程序落到非程序区(如EPROM 中未用完的空间或某些数据表格等),或在执行到冗余指令之前已经形成了一个死循环,则“指令冗余”措施就不能使“跑飞”的程序恢复正常了。
这时可以采用另一种软件抗干扰措施,即肠胃“软件陷阱”。
“软件陷阱”是一条引导指令,强行将捕获的程序引向一个指定的地址,在那里有一段专门处理错误的程序。
假设这段处理错误的程序入口地址为ERR,则下面三条指令即组成一个“软件陷阱”:NOPNOPLJMP ERR“软件陷阱”一般安排在下列四种地方。
(l)未使用的中断向量区。
MCS -51 单片机的中断向量区为0003H~002FH,如果所设计的智能化测量控制仪表未使用完全部中断向量区,则可在剩余的中断向量区安排“软件陷阱”,以便能捕捉到错误的中断。
例如某设备使用了两个外部中断INT0、INT1 和一个定时器中断T0,它们的中断服务子程序入口地址分别为FUINTO、fUINT1 和FUT0,则可按下面的方式来设置中断向量区。
ORG 0000H0000H START:LJMP MAIN ;引向主程序入口0003H LJMP FUINT0 ;INT0 中断服务程序入口0006H NOP ;冗余指令0007H NOP0008H LJMP ERR ;陷阱000BH LJMP FUT0 ;T0 中断服务程序入口000EH NOP ;冗余指令000FH NOP0010H LJMP ERR ;陷阱0013H LJMP FUINT1 ;INT1 中断服务程序入口0016H NOP ;冗余指令0017H NOP0018H LJMP ERR ;陷阱00lBH LJMP ERR ;未使用T1 中断,设陷饼00lEH NOP ;冗余指令00lFH NOP0020H LJMP ERR ;陷阱0023H LJMP ERR ;未使用串行口中断,设陷阱0026H NOP ;冗余指令0027H NOP0028H LJMP ERR ;陷阱002BH LJMP ERR ;未使用T2 中断,设陷阱002EH NOP ;冗余指令002FH NOP0030H MAIN:? ;;主程序(2)未使用的大片EPROM 空间。
智能化测量控制仪表中使用的EPROM 芯片一般都不会使用完其全部空间,对于剩余未编程的EPROM 空间,一般都维持其原状,即其内容为OFFH。
OFFH对于MCS51 单片机的指令系统来说是一条单字节的指令:MOV R7,A,如果程序“跑飞”到这一区域,则将顺序向后执行,不再跳跃(除非又受到新的干扰)。
因此在这段区域内每隔一段地址设一个陷阱,就一定能捕捉到“跑飞”的程序。
(3)表格。
有两种表格,即数据表格和散转表格。
由于表格的内容与检索值有一一对应的关系,在表格中间安排陷阱会破坏其连续性和对应关系,因此只能在表格的最后安排陷阱。
如果表格区较长,则安排在最后的陷阱不能保证一定能捕捉到飞来的程序的流向,有可能在中途再次“跑飞”。
(4)程序区。
程序区是由一系列的指令所构成的,不能在这些指令中间任意安排陷阱,否则会破坏正常的程序流程。
但是在这些指令中间常常有一些断点,正常的程序执行到断点处就不再往下执行了,如果在这些地方设置陷价就有能有效地捕获“跑飞”的程序。
例如在一个根据累加器A 中内容的正、负和零的情况进行三分支的程序,软件陷阱安排如下。
JNY XYZ? ;零处理? ?AJMP ABC ;断裂点NOPNOPLJMP ERR ;陷阱XYZ:JB ACC.7,UVW? ;零处理?AJMP ABC ;断裂点NOPNOPLJMP ERR ;陷阱UVW:??ABC:MOV A ,R2 ;取结果RET ;断裂点NOPNOPLJMP ERR由于软件陷阱都安排在正常程序执行不到的地方,故不会影响程序的执行效率。
在EPROM 容量允许的条件下,这种软件陷阱多一些为好。
如果“跑飞”的程序落到一个临时构成的死循环中时,冗余指令和软件陷阱都将无能为力。
这时可以采用人工复位的方法使系统恢复正常,实际上可以设计一种模仿人工监测的“程序运行监视器”,俗称“看门狗”(WATCHDOG )。
WATCHDOG 有如下特征:(1)本身能独立工作,基本上不依赖于CPU。
CPU 只在一个固定的时间间隔内与之打一次交道,表明整个系统“目前尚属正常”。
(2)当CPU 落入死循环之后,能及时发现并使整个系统复位。
目前有很多单片机在内部已经集成了片内的硬件WATCHDOG 电路,使用起来更为方便。
也可以用软件程序来形成WATCHDOG。
例如可以采用8031 的定时器T0 来形成WATCHDOG:将T0的溢出中断设为高级中断,其它中断均设置为低级中断,若采用6M 的时钟,则可用以下程序使T0 定时约10ms 来形成软件WATCHDOG:MOV TMOD,#01H;置TO 为16 位定时器SETB ET0;允许T0 中断SETB PT0;设置T0 为高级中断MOV TH0,#0E0H;定时约10msSETB TR0;启动T0SETB EA;开中断软件WATCHDOG启动后,系统工作程序必须每隔小于10ms的时间执行一次MOV TH0,#0E0H 指令,重新设置T0 的计数初值。
如果程序“跑飞”后执行不到这条指令,则在10ms 之内即会产生一次T0 溢出中断,在T0 的中断向量区安放一条转移到出错处理程序的指令:LJMP ERR,由出错处理程序来处理各种善后工作。
采用软件WATCHDOG 有一个弱点,就是如果“跑飞”的程序使某些操作数变形成为了修改T0 功能的指令,则执行这种指令后软件WATCHDOG 就会失效。
因此软件WATCHDOG 的可靠性不如硬件高。
三、系统的恢复前面列举的各项措施只解决了如何发现系统受到干扰和如何捕捉“跑飞”程序,但仅此还不够,还要能够让单片机根据被破坏的残留信息自动恢复到正常工作状态。
硬件复位是使单片机重新恢复正常工作状态的一个简单有效的方法。
前面介绍的上电复位、人工复位及硬件WATCHDOG 复位,都属于硬件复位。
硬件复位后CPU 被重新初始化,所有被激活的中断标志都被清除,程序从0000H 地址重新开始执行。
硬件复位又称为“冷启动”,是将系统当时的状态全部作废,重新进行彻底的初始化来使系统的状态得到恢复。