A. 单片机系统软件抗干扰方法
在提高硬件系统抗干扰能力的同时 软件抗干扰以其设计灵活 节省硬件资源 可靠性好越来越受到重视 下面以MCS 单片机系统为例 对微机系统软件抗干扰方法进行研究
软件抗干扰方法的研究
在工程实践中 软件抗干扰研究的内容主要是 一 消除模拟输入信号的嗓声(如数字滤波技术) 二 程序运行混乱时使程序重入正轨的方法 本文针对后者提出了几种有效的软件抗干扰方法
指令冗余
CPU取指令过程是先取操作码 再取操作数 当PC受干扰出现错误 程序便脱离正常轨道 乱飞 当乱飞到某双字节指令 若取指令时刻落在操作数上 误将操作数当作操作码 程序将出错 若 飞 到了三字节指令 出错机率更大
在关键地方人为插入一些单字节指令 或将有效单字节指令重写称为指令冗余 通常是在双字节指令和三字节指令后插入两个字节以上的NOP 这样即使乱飞程序飞到操作数上 由于空操作指令NOP的存在 避免了后面的指令被当作操作数执行 程序自动纳入正轨
此外 对系统流向起重要作用的指令如RET RETI LCALL LJMP JC等指令之前插入两条NOP 也可将乱飞程序纳入正轨 确保这些重要指令的执行
拦截技术
所谓拦截 是指将乱飞的程序引向指定位置 再进行出错处理 通常用软件陷阱来拦截乱飞的程序 因此先要合理设计陷阱 其次要将陷阱安排在适当的位置
软件陷阱的设计
当乱飞程序进入非程序区 冗余指令便无法起作用 通过软件陷阱 拦截乱飞程序 将其引向指定位置 再进行出错处理 软件陷阱是指用来将捕获的乱飞程序引向复位入口地址 H的指令 通常在EPROM中非程序区填入以下指令作为软件陷阱
NOP
NOP
LJMP H
其机器码为
陷阱的安排
通常在程序中未使用的EPROM空间填 最后一条应填入 当乱飞程序落到此区 即可自动入轨 在用户程序区各模块之间的空余单元也可填入陷阱指令 当使用的中断因干扰而开放时 在对应的中断服务程序中设置软件陷阱 能及时捕获错误的中断 如某应用系统虽未用到外部中断 外部中断 的中断服务程序可为如下形式
NOP
NOP
RETI
返回指令可用 RETI 也可用 LJMP H 如果故障诊断程序与系统自恢复程序的设计可靠 完善 用 LJMP H 作返回指令可直接进入故障诊断程序 尽早地处理故障并恢复程序的运行
考虑到程序存贮器的容量 软件陷阱一般 K空间有 个就可以进行有效拦截
软件 看门狗 技术
若失控的程序进入 死循环 通常采用 看门狗 技术使程序脱离 死循环 通过不断检测程序循环运行时间 若发现程序循环时间超过最大循环运行时间 则认为系统陷入 死循环 需进行出错处理
看门狗 技术可由硬件实现 也可由软件实现 在工业应用中 严重的干扰有时会破坏中断方式控制字 关闭中断 则系统无法定时 喂狗 硬件看门狗电路失效 而软件看门狗可有效地解决这类问题
笔者在实际应用中 采用环形中断监视系统 用定时器T 监视定时器T 用定时器T 监视主程序 主程序监视定时器T 采用这种环形结构的软件 看门狗 具有良好的抗干扰性能 大大提高了系统可靠性 对于需经常使用T 定时器进行串口通讯的测控系统 则定时器T 不能进行中断 可改由串口中断进行监控(如果用的是MCS 系列单片机 也可用T 代替T 进行监视) 这种软件 看门狗 监视原理是 在主程序 T 中断服务程序 T 中断服务程序中各设一运行观测变量 假设为MWatch T Watch T Watch 主程序每循环一次 MWatch加1 同样T T 中断服务程序执行一次 T Watch T Watch加1 在T 中断服务程序中通过检测T Watch的变化情况判定T 运行是否正常 在T 中断服务程序中检测MWatch的变化情况判定主程序是否正常运行 在主程序中通过检测T Watch的变化情况判别T 是否正常工作 若检测到某观测变量变化不正常 比如应当加 而未加 则转到出错处理程序作排除故障处理 当然 对主程序最大循环周期 定时器T 和T 定时周期应予以全盘合理考虑 限于篇幅不赘述
系统故障处理 自恢复程序的设计
单片机系统因干扰复位或掉电后复位均属非正常复位 应进行故障诊断并能自动恢复非正常复位前的状态
非正常复位的识别
程序的执行总是从 H开始 导致程序从 H开始执行有四种可能 一 系统开机上电复位 二 软件故障复位 三 看门狗超时未喂狗硬件复位 四 任务正在执行中掉电后来电复位 四种情况中除第一种情况外均属非正常复位 需加以识别
硬件复位与软件复位的识别
此处硬件复位指开机复位与看门狗复位 硬件复位对寄存器有影响 如复位后PC= H SP= H PSW= H等 而软件复位则对SP SPW无影响 故对于微机测控系统 当程序正常运行时 将SP设置地址大于 H 或者将PSW的第 位用户标志位在系统正常运行时设为 那么系统复位时只需检测PSW 标志位或SP值便可判此是否硬件复位 图 是采用PSW 作上电标志位判别硬 软件复位的程序流程图
图 硬 软件复位识别流程图
此外 由于硬件复位时片内RAM状态是随机的 而软件复位片内RAM则可保持复位前状态 因此可选取片内某一个或两个单元作为上电标志 设 H用来做上电标志 上电标志字为 H 若系统复位后 H单元内容不等于 H 则认为是硬件复位 否则认为是软件复位 转向出错处理 若用两个单元作上电标志 则这种判别方法的可靠性更高
开机复位与看门狗故障复位的识别
开机复位与看门狗故障复位因同属硬件复位 所以要想予以正确识别 一般要借助非易失性RAM或者EEROM 当系统正常运行时 设置一可掉电保护的观测单元 当系统正常运行时 在定时喂狗的中断服务程序中使该观测单元保持正常值(设为 AAH) 而在主程中将该单元清零 因观测单元掉电可保护 则开机时通过检测该单元是否为正常值可判断是否看门狗复位
正常开机复位与非正常开机复位的识别
识别测控系统中因意外情况如系统掉电等情况引起的开机复位与正常开机复位 对于过程控制系统尤为重要 如某以时间为控制标准的测控系统 完成一次测控任务需 小时 在已执行测控 分钟的情况下 系统电压异常引起复位 此时若系统复位后又从头开始进行测控则会造成不必要的时间消耗 因此可通过一监测单元对当前系统的运行状态 系统时间予以监控 将控制过程分解为若干步或若干时间段 每执行完一步或每运行一个时间段则对监测单元置为关机允许值 不同的任务或任务的不同阶段有不同的值 若系统正在进行测控任务或正在执某时间段 则将监测单元置为非正常关机值 那么系统复位后可据此单元判系统原来的运行状态 并跳到出错处理程序中恢复系统原运行状态
非正常复位后系统自恢复运行的程序设计
对顺序要求严格的一些过程控制系统 系统非正常复位否 一般都要求从失控的那一个模块或任务恢复运行 所以测控系统要作好重要数据单元 参数的备份 如系统运行状态 系统的进程值 当前输入 输出的值 当前时钟值 观测单元值等 这些数据既要定时备份 同时若有修改也应立即予以备份
当在已判别出系统非正常复位的情况下 先要恢复一些必要的系统数据 如显示模块的初始化 片外扩展芯片的初始化等 其次再对测控系统的系统状态 运行参数等予以恢复 包括显示界面等的恢复 之后再把复位前的任务 参数 运行时间等恢复 再进入系统运行状态
应当说明的是 真实地恢复系统的运行状态需 要极为细致地对系统的重要数据予以备份 并加以数据可靠性检查 以保证恢复的数据的可靠性
其次 对多任务 多进程测控系统 数据的恢复需考虑恢复的次序问题 笔者实际应用的数据恢复过程流程图如图 所示
图 系统自恢复程序流程图
图中恢复系统基本数据是指取出备份的数据覆盖当前的系统数据 系统基本初始化是指对芯片 显示 输入输出方式等进行初始化 要注意输入输出的初始化不应造成误动作 而复位前任务的初始化是指任务的执行状态 运行时间等
结束语
lishixin/Article/program/qrs/201311/11074
B. 51单片机抗干扰问题
这是当然 的了,首先你的单片机要采取抗干扰措施,在单片机的电源上多加滤波电容和旁路电容,复位电路要把晶振和电容组紧放在单片机旁,
电机和单片机要有隔离,可以采用光电隔离再驱动继电器而后再驱动变频器或电机.
单片机的电路可采用金属罩,等等.
C. 单片机系统软件抗干扰方法 用c语言编写的
MCU抗干扰当然需要同时从软硬件两方面着手。
LZ既然说到用C语言去抗干扰的话,我这里就自己积累的一些简单经验分享有一下(其实汇编和C在抗干扰方面差不多,我这里就C方面讲吧):
1、可以在对系统起重要的指令如函数调用前和函数返回前加上两条 “_nop_()”这个函数, ,以便有比较高的概略入正轨。
2、虽然在整个系统中未用中断,但建议把所有未用到的中断响应写成空函数。
3、软件“看门狗”技术,因为硬件看门狗有时候在工业应用中,严重的干扰会破坏中断控制字,关闭中断,系统无法定时看门狗,而软件看门够能有效解决这个问题,在实际应用中,可采用“环行中断监视系统”,我这里就举个例子,用定时器T0通过一个变量来监视定时器T1,在用T1来监视主程序的,主程序监视T0,,,这里可通过3个变量的自增1来简单实现,,,,,,,,当然还有其他更好的方法。
就大致说这样3点吧,我感觉现有的MCU抗干扰本身就做的不错,当然MCU外部的电路抗干扰也绝不能忽视,,,上面个人提到的3点,在一般的情况下,都是不需要那样做的,,而在我实际使用中,好象还没有遇见过MCU由于干扰而出现的问题(其实这样的事情让我遇到,也是比较开心的,能增加一些感性认识)。
D. 单片机原理的抗干扰
在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。下面以MCS-51单片机系统为例,对微机系统软件抗干扰方法进行研究。 在工程实践中,软件抗干扰研究的内容主要是:一、消除模拟输入信号的噪声(如数字滤波技术);二、程序运行混乱时使程序重入正轨的方法。本文针对后者提出了几种有效的软件抗干扰方法。
指令冗余
CPU取指令过程是先取操作码,再取操作数。当PC受干扰出现错误,程序便脱离正常轨道“乱飞”,当乱飞到某双字节指令,若取指令时刻落在操作数上,误将操作数当做操作码,程序将出错。若“飞” 到了三字节指令,出错机率更大。
在关键地方人为插入一些单字节指令,或将有效单字节指令重写称为指令冗余。通常是在双字节指令和三字节指令后插入两个字节以上的NOP。这样即使乱飞程序飞到操作数上,由于空操作指令NOP的存在,避免了后面的指令被当作操作数执行,程序自动纳入正轨。
此外,对系统流向起重要作用的指令如RET、 RETI、LCALL、LJMP、JC等指令之前插入两条NOP,也可将乱飞程序纳入正轨,确保这些重要指令的执行。
拦截技术
所谓拦截,是指将乱飞的程序引向指定位置,再进行出错处理。通常用软件陷阱来拦截乱飞的程序。因此先要合理设计陷阱,其次要将陷阱安排在适当的位置。
(1 )软件陷阱的设计
当乱飞程序进入非程序区,冗余指令便无法起作用。通过软件陷阱,拦截乱飞程序,将其引向指定位置,再进行出错处理。软件陷阱是指用来将捕获的乱飞程序引向复位入口地址0000H的指令。通常在EPROM中非程序区填入以下指令作为软件陷阱:
(2 ) 陷阱的安排
最后一条应填入020000,当乱飞程序落到此区,即可自动入轨。在用户程序区各模块之间的空余单元也可填入陷阱指令。当使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,能及时捕获错误的中断。如某应用系统虽未用到外部中断1,外部中断1的中断服务程序可为如下形式:
NOPNOPRETI返回指令可用“RETI”,也可用“LJMP 0000H”。如果故障诊断程序与系统自恢复程序的设计可靠、 完善,用“LJMP 0000H”作返回指令可直接进入故障诊断程序,尽早地处理故障并恢复程序的运行。
考虑到程序存贮器的容量,软件陷阱一般1K空间有2-3个就可以进行有效拦截。
软件“看门狗”技术
若失控的程序进入“死循环”,通常采用“看门狗”技术使程序脱离“死循环”。通过不断检测程序循环运行时间,若发现程序循环时间超过最大循环运行时间,则认为系统陷入“死循环”,需进行出错处理。
“看门狗”技术可由硬件实现,也可由软件实现。在工业应用中,严重的干扰有时会破坏中断方式控制字,关闭中断。则系统无法定时“喂狗”,硬件看门狗电路失效。而软件看门狗可有效地解决这类问题。
笔者在实际应用中,采用环形中断监视系统。用定时器T0监视定时器T1,用定时器T1监视主程序,主程序监视定时器T0。采用这种环形结构的软件“看门狗”具有良好的抗干扰性能,大大提高了系统可靠性。对于需经常使用T1定时器进行串口通讯的测控系统,则定时器T1不能进行中断,可改由串口中断进行监控(如果用的是MCS-52系列单片机,也可用T2代替T1进行监视)。这种软件“看门狗”监视原理是:在主程序、T0中断服务程序、T1中断服务程序中各设一运行观测变量,假设为MWatch、T0Watch 、T1Watch,主程序每循环一次,MWatch加1,同样T0、T1中断服务程序执行一次,T0Watch、 T1Watch加1。在T0中断服务程序中通过检测T1Watch的变化情况判定T1运行是否正常,在T1中断服务程序中检测MWatch的变化情况判定主程序是否正常运行,在主程序中通过检测T0Watch的变化情况判别T0是否正常工作。若检测到某观测变量变化不正常,比如应当加1而未加1,则转到出错处理程序作排除故障处理。当然,对主程序最大循环周期、定时器T0和T1定时周期应予以全盘合理考虑。限于篇幅不赘述。 单片机系统因干扰复位或掉电后复位均属非正常复位,应进行故障诊断并能自动恢复非正常复位前的状态。
非正常复位的识别
程序的执行总是从0000H开始,导致程序从 0000H开始执行有四种可能:一、系统开机上电复位;二、软件故障复位;三、看门狗超时未喂狗硬件复位; 四、任务正在执行中掉电后来电复位。四种情况中除第一种情况外均属非正常复位,需加以识别。
(1 )硬件复位与软件复位的识别
此处硬件复位指开机复位与看门狗复位,硬件复位对寄存器有影响,如复位后PC=0000H, SP=07H,PSW=00H等。而软件复位则对SP、SPW无影响。故对于微机测控系统,当程序正常运行时,将SP设置地址大于07H,或者将PSW的第5位用户标志位在系统正常运行时设为1。那么系统复位时只需检测PSW.5标志位或SP值便可判此是否硬件复位。
由于硬件复位时片内RAM状态是随机的,而软件复位片内RAM则可保持复位前状态,因此可选取片内某一个或两个单元作为上电标志。设40H用来做上电标志,上电标志字为78H,若系统复位后40H单元内容不等于78H,则认为是硬件复位,否则认为是软件复位,转向出错处理。若用两个单元作上电标志,则这种判别方法的可靠性更高。
(2 )开机复位与看门狗故障复位的识别
开机复位与看门狗故障复位因同属硬件复位, 所以要想予以正确识别,一般要借助非易失性RAM或者EEROM。当系统正常运行时,设置一可掉电保护的观测单元。当系统正常运行时,在定时喂狗的中断服务程序中使该观测单元保持正常值(设为 AAH),而在主程中将该单元清零,因观测单元掉电可保护,则开机时通过检测该单元是否为正常值可判断是否看门狗复位。
(3 )正常开机复位与非正常开机复位的识别
识别测控系统中因意外情况如系统掉电等情况引起的开机复位与正常开机复位,对于过程控制系统尤为重要。如某以时间为控制标准的测控系统,完成一次测控任务需1小时。在已执行测控50分钟的情况下,系统电压异常引起复位,此时若系统复位后又从头开始进行测控则会造成不必要的时间消耗。因此可通过一监测单元对当前系统的运行状态、系统时间予以监控,将控制过程分解为若干步或若干时间段,每执行完一步或每运行一个时间段则对监测单元置为关机允许值,不同的任务或任务的不同阶段有不同的值,若系统正在进行测控任务或正在执某时间段,则将监测单元置为非正常关机值。那么系统复位后可据此单元判系统原来的运行状态,并跳到出错处理程序中恢复系统原运行状态。
非正常复位后系统自恢复运行的程序设计
对顺序要求严格的一些过程控制系统,系统非正常复位否,一般都要求从失控的那一个模块或任务恢复运行。所以测控系统要作好重要数据单元、参数的备份,如系统运行状态、系统的进程值、当前输入、输出的值,当前时钟值、观测单元值等,这些数据既要定时备份,同时若有修改也应立即予以备份。
当在已判别出系统非正常复位的情况下,先要恢复一些必要的系统数据,如显示模块的初始化、片外扩展芯片的初始化等。其次再对测控系统的系统状态、运行参数等予以恢复,包括显示界面等的恢复。之后再把复位前的任务、参数、运行时间等恢复, 再进入系统运行状态。
应当说明的是,真实地恢复系统的运行状态需 要极为细致地对系统的重要数据予以备份,并加以数据可靠性检查,以保证恢复的数据的可靠性。
其次,对多任务、多进程测控系统,数据的恢复需考虑恢复的次序问题。
系统基本初始化是指对芯片、显示、输入输出方式等进行初始化,要注意输入输出的初始化不应造成误动作。而复位前任务的初始化是指任务的执行状态、运行时间等。
对于软件抗干扰的一些其它常用方法如数字滤波、RAM数据保护与纠错等,限于篇幅,本文未作讨论。在工程实践中通常都是几种抗干扰方法并用,互相补充 完善,才能取得较好的抗干扰效果。从根本上来说,硬件抗干扰是主动的,而软件是抗干扰是被动的。细致周到地分析干扰源,硬件与软件抗干扰相结合,完善系统监控程序,设计一稳定可靠的单片机系统是完全可行的。
E. 单片机抗干扰
数字电路、单片机的抗干扰设计
在电子系统设计中,为了少走弯路和节省时间,应充分考虑并满足抗干扰性 的要求,避免在
设计完成后再去进行抗干扰的补救措施。形成干扰的基本要素有三个:
(1)干扰源,指产生干扰的元件、设备或信号,用数学语言描述如下:/dt, di/dt大的地
方就是干扰源。如:雷电、继电器、可控硅、电机、高频时钟等都可 能成为干扰源。
(2)传播路径,指干扰从干扰源传播到敏感器件的通路或媒介。典型的干扰传 播路径是通过
导线的传导和空间的辐射。
(3)敏感器件,指容易被干扰的对象。如:A/D、D/A变换器,单片机,数字IC, 弱信号放大
器等。
抗干扰设计的基本原则是:抑制干扰源,切断干扰传播路径,提高敏感器件的 抗干扰性能。
(类似于传染病的预防)
1 抑制干扰源
抑制干扰源就是尽可能的减小干扰源的/dt,di/dt。这是抗干扰设计中最优 先考虑和最重要的原则,常常会起到事半功倍的效果。 减小干扰源的/dt主要是通过在干扰源两端并联电容来实现。减小干扰源的di/dt则是在干扰源回路串联电感或电阻以及增加续流二极管来实现。
抑制干扰源的常用措施如下:
(1)继电器线圈增加续流二极管,消除断开线圈时产生的反电动势干扰。仅加 续流二极管会使继电器的断开时间滞后,增加稳压二极管后继电器在单位时间内可动作更多的次数。
(2)在继电器接点两端并接火花抑制电路(一般是RC串联电路,电阻一般选几K 到几十K,电容选0.01uF),减小电火花影响。
(3)给电机加滤波电路,注意电容、电感引线要尽量短。
(4)电路板上每个IC要并接一个0.01μF~0.1μF高频电容,以减小IC对电源的 影响。注意高频电容的布线,连线应靠近电源端并尽量粗短,否则,等于增大了电容的等效串联电阻,会影响滤波效果。
(5)布线时避免90度折线,减少高频噪声发射。
(6)可控硅两端并接RC抑制电路,减小可控硅产生的噪声(这个噪声严重时可能会把可控硅击穿的)。
按干扰的传播路径可分为传导干扰和辐射干扰两类。
所谓传导干扰是指通过导线传播到敏感器件的干扰。高频干扰噪声和 有用信号的频带不同,可以通过在导线上增加滤波器的方法切断高频干扰噪声的传播,有时也可加隔离光耦来解决。电源噪声的危害最大, 要特别注意处理。所谓辐射干扰是指通过空间辐射传播到敏感器件的干扰。 一般的解决方法是增加干扰源与敏感器件的距离,用地线把它们隔离和在敏感器件上加蔽罩。
2 切断干扰传播路径的常用措施如下:
(1)充分考虑电源对单片机的影响。电源做得好,整个电路的抗干扰就解决了一大半。许多单片机对电源噪声很敏感, 要给单片机电源加滤波电路或稳压器,以减小电源噪声对单片机的干扰。比如,可以利用磁珠和电容组成π形滤波电路,当然条件要求不高时也可用100Ω电阻代替磁珠。
(2)如果单片机的I/O口用来控制电机等噪声器件,在I/O口与噪声源之间应加隔离(增加π形滤波电路)。 控制电机等噪声器件,在I/O口与噪声源之间应加隔离(增加π形滤波电路)。
(3)注意晶振布线。晶振与单片机引脚尽量靠近,用地线把时钟区隔离起来,晶振外壳接地并固定。此措施可解决许多疑难问题。
(4)电路板合理分区,如强、弱信号,数字、模拟信号。尽可能把干扰源 (如电机,继电器)与敏感元件(如单片机)远离。
(5)用地线把数字区与模拟区隔离,数字地与模拟地要分离,最后在一点接于电源地。A/D、D/A芯片布线也以此为原则,厂家分配A/D、D/A芯片 引脚排列时已考虑此要求。
(6)单片机和大功率器件的地线要单独接地,以减小相互干扰。 大功率器件尽可能放在电路板边缘。
(7)在单片机I/O口,电源线,电路板连接线等关键地方使用抗干扰元件 如磁珠、磁环、电源滤波器,屏蔽罩,可显着提高电路的抗干扰性能。
3 提高敏感器件的抗干扰性能
提高敏感器件的抗干扰性能是指从敏感器件这边考虑尽量减少对干扰噪声 的拾取,以及从不正常状态尽快恢复的方法。
提高敏感器件抗干扰性能的常用措施如下:
(1)布线时尽量减少回路环的面积,以降低感应噪声。
(2)布线时,电源线和地线要尽量粗。除减小压降外,更重要的是降低耦合噪声。
(3)对于单片机闲置的I/O口,不要悬空,要接地或接电源。其它IC的闲置 端在不改变系统逻辑的情况下接地或接电源。
(4)对单片机使用电源监控及看门狗电路,如:IMP809,IMP706,IMP813,X25043,X25045等,可大幅度提高整个电路的抗干扰性能。
(5)在速度能满足要求的前提下,尽量降低单片机的晶振和选用低速数字 电路。
(6)IC器件尽量直接焊在电路板上,少用IC座。
我先说说我在这方面的经验:
软件方面:
1、我习惯于将不用的代码空间全清成“0”,因为这等效于NOP,可在程序跑飞时归位;
2、在跳转指令前加几个NOP,目的同1;
3、在无硬件WatchDog时可采用软件模拟WatchDog,以监测程序的运行;
4、涉及处理外部器件参数调整或设置时,为防止外部器件因受干扰而出错可定时将参数重新发送一遍,这样可使外部器件尽快恢复正确;
5、通讯中的抗干扰,可加数据校验位,可采取3取2或5取3策略;
6、在有通讯线时,如I^2C、三线制等,实际中我们发现将Data线、CLK线、INH线常态置为高,其抗干扰效果要好过置为低。
硬件方面:
1、地线、电源线的部线肯定重要了!
2、线路的去偶;
3、数、模地的分开;
4、每个数字符件在地与电源之间都要104电容;
5、在有继电器的应用场合,尤其是大电流时,防继电器触点火花对电路的干扰,可在继电器线圈间并一104和二极管,在触点和常开端间接472电容,效果不错!
6、为防I/O口的串扰,可将I/O口隔离,方法有二极管隔离、门电路隔离、光偶隔离、电磁隔离等;
7、当然多层板的抗干扰肯定好过单面板,但成本却高了几倍。
8、选择一个抗干扰能力强的器件比之任何方法都有效,我想这点应该最重要。因为器件天生的不足是很难用外部方法去弥补的,但往往抗干扰能力强的就贵些,抗干扰能力差的就便宜,正如台湾的东东便宜但性能却大打折扣一样!主要看各位的应用场合.
印制电路板(PC8)是电子产品中电路元件和器件的支撑件.它提供电路元件和器件之间的电气连接。随着电于技术的飞速发展,PGB的密度越来越高。PCB设计的好坏对抗干扰能力影响很大.因此,在进行PCB设计时.必须遵守PCB设计的一般原则,并应符合抗干扰设计的要求。
F. 单片机系统硬件抗干扰的常用方法介绍
单片机系统硬件抗干扰的常用方法介绍
影响单片机系统可靠安全运行的主要因素主要来自系统内部和外部的各种电气干扰,并受系统结构设计、元器件选择、安装、制造工艺影响。这些都构成单片机系统的干扰因素,常会导致单片机系统运行失常,轻则影响产品质量和产量,重则会导致事故,造成重大经济损失。今天我就给大家介绍下单片机系统硬件抗干扰的常用方法,大家一起来看看吧。
形成干扰的基本要素有三个:
(1)干扰源。指产生干扰的元件、设备或信号, 用数学语言描述如下:/dt,
di/dt大的地方就是干扰源。如:雷电、继电器、可控硅、电机、高频时钟等都可能成为干扰源。
(2)传播路径。指干扰从干扰源传播到敏感器件的通路或媒介。典型的干扰传播路径是通过导线的传导和空间的辐射。
(3)敏感器件。指容易被干扰的对象。如:A/D、 D/A变换器,单片机,数字IC,弱信号放大器等
干扰的分类
1.1 干扰的分类
干扰的分类有好多种,通常可以按照噪声产生的原因、传导方式、波形特性等等进行不同的分类。按产生的原因分:
可分为放电噪声音、高频振荡噪声、浪涌噪声。
按传导方式分:可分为共模噪声和串模噪声。
按波形分:可分为持续正弦波、脉冲电压、脉冲序列等等。
1.2 干扰的耦合方式
干扰源产生的干扰信号是通过一定的耦合通道才对测控系统产生作用的。因此,我们有必要看看干扰源和被干扰对象之间的传递方式。干扰的耦合方式,无非是通过导线、空间、公共线等等,细分下来,主要有以下几种:
(1)直接耦合:这是最直接的方式,也是系统中存在最普遍的一种方式。比如干扰信号通过电源线侵入系统。对于这种形式,最有效的方法就是加入去耦电路。
(2)公共阻抗耦合:这也是常见的耦合方式,这种形式常常发生在两个电路电流有共同通路的情况。为了防止这种耦合,通常在电路设计上就要考虑。使干扰源和被干扰对象间没有公共阻抗。
(3)电容耦合:又称电场耦合或静电耦合。是由于分布电容的存在而产生的耦合。
(4)电磁感应耦合:又称磁场耦合。是由于分布电磁感应而产生的耦合。
(5)漏电耦合:这种耦合是纯电阻性的,在绝缘不好时就会发生。
2 常用硬件抗干扰技术
针对形成干扰的三要素,采取的抗干扰主要有以下手段。
2.1 抑制干扰源
抑制干扰源就是尽可能的减小干扰源的/dt, di/dt。这是抗干扰设计中最优先考虑和最重要的原则,常常会起到事半功倍的效果。 减小干扰源的/dt主要是通过在干扰源两端并联电容来实现。减小干扰源的di/dt则是在干扰源回路串联电感或电阻以及增加续流二极管来实现。
抑制干扰源的常用措施如下:
(1)继电器线圈增加续流二极管,消除断开线圈时产生的反电动势干扰。仅加续流二极管会使继电器的断开时间滞后,增加稳压二极管后继电器在单位时间内可动作更多的次数。
(2)在继电器接点两端并接火花抑制电路(一般是RC串联电路,电阻一般选几K到几十K,电容选0.01uF),减小电火花影响。
(3)给电机加滤波电路,注意电容、电感引线要尽量短。
(4)电路板上每个IC要并接一个0.01μF~0.1
μF高频电容,以减小IC对电源的影响。注意高频电容的布线,连线应靠近电源端并尽量粗短,否则,等于增大了电容的等效串联电阻,会影响滤波效果。
(5)布线时避免90度折线,减少高频噪声发射。
(6)可控硅两端并接RC抑制电路,减小可控硅产生的噪声(这个噪声严重时可能会把可控硅击穿的)。
单片机自身的抗干扰措施:
为提高单片机本身的可靠性。近年来单片机的制造商在单片机设计上采取了一系列措施以期提高可靠性。这些技术主要体现在以下几方面。
1.降低外时钟频率
外时钟是高频的噪声源,除能引起对本应用系统的干扰之外,还可能产生对外界的干扰,使电磁兼容检测不能达标。在对系统可靠性要求很高的应用系统中,选用频率低的单片机是降低系统噪声的原则之一。以8051单片机为例,最短指令周期1μs时,外时钟是12mhz。而同样速度的motorola 单片机系统时钟只需4mhz,更适合用于工控系统。近年来,一些生产8051兼容单片机的厂商也采用了一些新技术,在不牺牲运算速度的前提下将对外时钟的需求降至原来的1/3。而motorola 单片机在新推出的68hc08系列以及其16/32位单片机中普遍采用了内部琐相环技术,将外部时钟频率降至32khz,而内部总线速度却提高到8mhz乃至更高。
2.低噪声系列单片机
传统的集成电路设计中,在电源、地的引出上通常将其安排在对称的两边。如左下角是地,右下角是电源。这使得电源噪声穿过整个硅片。改进的技术将电源、地安排在两个相邻的引脚上,这样一方面降低了穿过整个硅片的电流,一方面使外部去耦电容在pcb设计上更容易安排,以降低系统噪声。另一个在集成电路设计上降低噪声的例子是驱动电路的设计。一些单片机提供若干个大电流的输出引脚,从几十毫安到数百毫安。这些大功率的驱动电路集成到单片机内部无疑增加了噪声源。而跳变沿的软化技术可消除这方面的影响,办法是将一个大功率管做成若干个小管子的并联,再为每个管子输出端串上不同等效阻值的电阻。以降低di/dt。
3.时钟监测电路、看门狗技术与低电压复位
监测系统时钟,当发现系统时钟停振时产生系统复位信号以恢复系统时钟,是单片机提高系统可靠性的措施之一。而时钟监控有效与省电指令stop是一对矛盾。只能使用其中之一。
看门狗技术是监测应用程序中的一段定时中断服务程序的运行状况,当这段程序不工作时判断为系统故障,从而产生系统复位。
低电压复位技术是监测单片机电源电压,当电压低于某一值时产生复位信号。由于单片机技术的发展,单片机本身对电源电压范围的要求越来越宽。电源电压从当初的5v降至3.3v并继续下降到2.7v、2.2v、1.8v。在是否使用低电压复位功能时应根据具体应用情况权衡一下。
4. eft技术
新近推出的motorola m68hc08 系列单片机采用eft(electrical fast transient)技术进一步提高了单片机的抗干扰能力。当振荡电路的正弦波信号受到外界干扰时,其波形上会叠加一些毛刺。以施密特电路对其整形时,这种毛刺会成为触发信号干扰正常的时钟信号。交替使用施密特电路和rc滤波可以使这类毛刺不起作用,这就是eft技术。随着vlsi技术的不断发展,电路内部的抗干扰技术也在不断发展之中。
5.软件方面的措施
单片机本身在指令设计上也有一些抗干扰的考虑。非法指令复位或非法指令中断是当运行程序时遇到非法指令或非法寻址空间能产生复位或中断。单片机应用系统程序是事先写好的,不可能有非法指令或寻址。一定是系统受到干扰,cpu读指令时出错了。
以上提到的是当前广泛使用的单片机应该具有的内部抗干扰措施。在选用单片机时,要检查一下这些性能是否都有,以求设计出可靠性高的系统。
在应用软件设计方面,设计者都有各自的经验。这里要提醒的是最后对不用的rom要做处理。原则是万一程序落到这里可以自恢复。
用于单片机系统的干扰抑制元件
1.去耦电容
每个集成电路的电源、地之间应配置一个去耦电容,它可以滤掉来自电源的高频噪声。作为储能元件,它吸收或提供该集成电路内部三极管导通、截止引起的电流变化(di/dt),从而降低系统噪声。要选高频特性好的独石电容或瓷片电容作去耦电容。每块印制电路板电源引入的地方要安放一只大容量的储能电容。由于电解电容的缠绕式结构,其分布电感较大,对滤除高频干扰信号几乎不起作用。使用时要与去耦电容成对使用。钽电容则比电解电容效果更好。
2.抑制高频的电感
用粗漆包线穿入轴向有几个孔的铁氧体芯,就构成了高频扼制器件。将其串入电源线或地线中可阻止高频信号从电源/地线引入。这种元件特别适用于隔开一块印制电路板上的模拟电路区、数字电路区、以及大功率驱动区的供电。应该注意的是它必须放在该区储能电容与电源之间而不能放在储能电容与用电器件之间。
3.自恢复保险丝
这是用一种新型高分子聚合材料制成的器件,当电流低于其额定值时,它的直流电阻只有零点几欧。而电流大到一定程度,它的阻值迅速升高,引起发热,而越热电阻越大,从而阻断电源电流。当温度降下来以后能自动恢复正常。这种器件可防止cmos器件在遇到强冲击型干扰时引起所谓“可控硅触发”现象。这种现象指集成电路硅片的基体变得导通,从而引起电流增大,导致cmos集成电路发热乃至烧毁。
4.防雷击器件
室外使用的单片机系统或电源线、信号线从室外架空引入室内的,要考虑系统的防雷击问题。常用的防雷击器件有:气体放电管,tvs(transient voltage supervention)等,气体放电管是当电源电压大于某一值时,通常为数十伏或数百伏,气体击穿放电,将电源线上强冲击脉冲导入大地,tvs可以看成两个并联且方向相反的齐纳二极管,当电两端电压高于某一额定值时导通。其特点是可以瞬态通过数百乃至上千安培的电流。这类元器件要和抗共模和抗差模干扰的电感配合使用以提高抗干扰效果。
提高单片机系统抗干扰能力的主要手段
1.接地
这里的接地指接大地,也称作保护地。为单片机系统提供良好的地线,对提高系统的抗干扰能力极为有益。特别是对有防雷击要求的系统,良好的接地至关重要。上面提到的一系列抗干扰元件,意在将雷击、浪涌式干扰以及快脉冲群干扰去除,而去除的方法都是将干扰引入大地,如果系统不接地,或虽有地线但接地电阻过大,则这些元件都不能发挥作用。为单片机供电的电源的地俗称逻辑地,它们和大地的地的'关系可以相通、浮空、或接一电阻,要视应用场合而定。不能把地线随便接在暖气管子上。绝对不能把接地线与动力线的火线、零线中的零线混淆。
2.隔离与屏蔽
典型的信号隔离是光电隔离。使用光电隔离器件将单片机的输入输出隔离开,一方面使干扰信号不得进入单片机系统,另一方面单片机系统本身的噪声也不会以传导的方式传播出去。屏蔽则是用来隔离空间辐射的,对噪声特别大的部件,如开关电源,用金属盒罩起来,可减少噪声源对单片机系统的干扰。对特别怕干扰的模拟电路,如高灵敏度的弱信号放大电路可屏蔽起来。而重要的是金属屏蔽本身必须接真正的地。
3.滤波
滤波指各类信号按频率特性分类并控制它们的方向。常用的有各种低通滤波器、高通滤波器、带通滤波器。低通滤波器用在接入的交流电源线上,旨在让50周的交流电顺利通过,将其它高频噪声导入大地。低通滤波器的配置指标是插入损耗,选择的低通滤波器插入损耗过低起不到抑制噪声的作用,而过高的插入损耗会导致“漏电”,影响系统的人身安全性。高通、带通滤波器则应根据系统中对信号的处理要求选择使用。
印制电路板的布线与工艺
印制电路板的设计对单片机系统能否抗干扰非常重要。要本着尽量控制噪声源、尽量减小噪声的传播与耦合,尽量减小噪声的吸收这三大原则设计印制电路板和布线。当你设计单片机用印制电路板时,不仿对照下面的条条检查一下。
印制电路板要合理区分,单片机系统通常可分三区,即模拟电路区(怕干扰),数字电路区(即怕干扰、又产生干扰),功率驱动区(干扰源)。
印刷板按单点接电源、单点接地原则送电。三个区域的电源线、地线由该点分三路引出。噪声元件与非噪声元件要离得远一些。
时钟振荡电路、特殊高速逻辑电路部分用地线圈起来。让周围电场趋近于零。i/o驱动器件、功率放大器件尽量靠近印刷板的边,靠近引出接插件。
能用低速的就不用高速的,高速器件只用在关键的地方。
使用满足系统要求的最低频率的时钟,时钟产生器要尽量靠近用到该时钟的器件。
石英晶体振荡器外壳要接地,时钟线要尽量短,且不要引得到处都是。
使用45度的折线布线,不要使用90度折线,以减小高频信号的发射。
单面板、双面板,电源线、地线要尽量的粗。信号线的过孔要尽量少。
层板比双面板噪声低20db。6层板比4层板噪声低10db。经济条件允许时尽量用多层板。关键的线尽量短并要尽量粗,并在两边加上保护地。将敏感信号和噪声场带信号通过一条扁带电缆引出的话,要用地线-信号-地线的方式引出。石英振荡器下面、噪声敏感器件下面要加大地的面积而不应该走其它信号线。任何信号线都不要形成环路,如不可避免,环路应尽量小。时钟线垂直于i/o线比平行于i/o线干扰小,时钟线要远离i/o线。对a/d类器件,数字部分与模拟部分宁可绕一下也不要交叉。噪声敏感线不要与高速线、大电流线平行。单片机及其它ic电路,如有多个电源、地端的话,每端都要加一个去耦电容。单片机不用的i/o端口要定义成输出。每个集成电路要加一个去耦电容,要选高频信号好的独石电容式瓷片电容作去耦电容。去耦电容焊在印制电路板上时,引脚要尽量短。从高噪声区来的信号要加滤波。继电器线圈处要加放电二极管。可以用串一个电阻的办法来软化i/o线的跳变沿或提供一定的阻尼。用大容量的钽电容或聚脂电容而不用电解电容作电路充电的储能电容。因为电解电容分布电感较大,对高频无效。使用电解电容时要与高特性好的去耦电容成对使用。需要时,电源线、地线上可加用铜线绕制铁氧体而成的高频扼流器件阻断高频噪声的传导。弱信号引出线、高频、大功率引出电缆要加屏蔽。引出线与地线要绞起来。印刷板过大、或信号线频率过高,使得线上的延迟时间大于等于信号上升时间时,该线要按传输线处理,要加终端匹配电阻。尽量不要使用ic 插座,把ic直接焊在印刷板上,ic座有较大的分布电容。
2.2 切断干扰传播路径
按干扰的传播路径可分为传导干扰和辐射干扰两类。
所谓传导干扰是指通过导线传播到敏感器件的干扰。高频干扰噪声和有用信号的频带不同,可以通过在导线上增加滤波器的方法切断高频干扰噪声的传播,有时也可加隔离光耦来解决。电源噪声的危害最大,要特别注意处理。
所谓辐射干扰是指通过空间辐射传播到敏感器件的干扰。一般的解决方法是增加干扰源与敏感器件的距离,用地线把它们隔离和在敏感器件上加屏蔽罩。
切断干扰传播路径的常用措施如下:
(1)充分考虑电源对单片机的影响。电源做得好,整个电路的抗干扰就解决了一大半。许多单片机对电源噪声很敏感,要给单片机电源加滤波电路或稳压器,以减小电源噪声对单片机的干扰。比如,可以利用磁珠和电容组成π形滤波电路,当然条件要求不高时也可用100Ω电阻代替磁珠。
(2)如果单片机的I/O口用来控制电机等噪声器件,在I/O口与噪声源之间应加隔离(增加π形滤波电路)。
(3)注意晶振布线。晶振与单片机引脚尽量靠近,用地线把时钟区隔离起来,晶振外壳接地并固定。
(4)电路板合理分区,如强、弱信号,数字、模拟信号。尽可能把干扰源(如电机、继电器)与敏感元件(如单片机)远离。
(5)用地线把数字区与模拟区隔离。数字地与模拟地要分离,最后在一点接于电源地。A/D、D/A芯片布线也以此为原则。
(6)单片机和大功率器件的地线要单独接地,以减小相互干扰。大功率器件尽可能放在电路板边缘。
(7)在单片机I/O口、电源线、电路板连接线等关键地方使用抗干扰元件如磁珠、磁环、电源滤波器、屏蔽罩,可显着提高电路的抗干扰性能。
2.3 提高敏感器件的抗干扰性能
提高敏感器件的抗干扰性能是指从敏感器件这边考虑尽量减少对干扰噪声的拾取,以及从不正常状态尽快恢复的方法。
提高敏感器件抗干扰性能的常用措施如下:
(1)布线时尽量减少回路环的面积,以降低感应噪声。
(2)布线时,电源线和地线要尽量粗。除减小压降外,更重要的是降低耦合噪声。
(3)对于单片机闲置的I/O口,不要悬空,要接地或接电源。其它IC的闲置端在不改变系统逻辑的情况下接地或接电源。
(4)对单片机使用电源监控及看门狗电路,如: IMP809,IMP706,IMP813,
X5043,X5045等,可大幅度提高整个电路的抗干扰性能。
(5)在速度能满足要求的前提下,尽量降低单片机的晶振和选用低速数字电路。
(6)IC器件尽量直接焊在电路板上,少用IC座。
2.4 其它常用抗干扰措施
(1)交流端用电感电容滤波:去掉高频低频干扰脉冲。
(2)变压器双隔离措施:变压器初级输入端串接电容,初、次级线圈间屏蔽层与初级间电容中心接点接大地,次级外屏蔽层接印制板地,这是硬件抗干扰的关键手段。次级加低通滤波器:吸收变压器产生的浪涌电压。
(3)采用集成式直流稳压电源: 有过流、过压、过热等保护作用。
(4)I/O口采用光电、磁电、继电器隔离,同时去掉公共地。
(5)通讯线用双绞线:排除平行互感。
(6)防雷电用光纤隔离最为有效。
(7)A/D转换用隔离放大器或采用现场转换:减少误差。
(8)外壳接大地:解决人身安全及防外界电磁场干扰。
(9)加复位电压检测电路。防止复位不充分, CPU就工作,尤其有EEPROM的器件,复位不充份会改变EEPROM的内容。
(10)印制板工艺抗干扰:
① 电源线加粗,合理走线、接地,三总线分开以减少互感振荡。
② CPU、RAM、ROM等主芯片,VCC和GND之间接电解电容及瓷片电容,去掉高、低频干扰信号。
③ 独立系统结构,减少接插件与连线,提高可靠性,减少故障率。
④ 集成块与插座接触可靠,用双簧插座,最好集成块直接焊在印制板上,防止器件接触不良故障。
⑤ 有条件的采用四层以上印制板,中间两层为电源及地。
;