thunderbolt|单片机设计过程中如何处理电磁兼容性问题?( 二 )


有一些单片机的片上复位指令就做的比较好 , 一般他们把“喂狗”信号做成固定格式的多条指令依顺序来执行 , 假如有一定错误则该“喂狗”操纵无效 , 这样就大大进步了复位电路的可靠性 。
4.振荡器
大部分的单片机都有一个耦合于外部晶体或陶瓷谐振器的振荡器电路 。 在PCB上 , 要求外接是电容、晶体或陶瓷谐振器的引线越短越好 。
RC振荡器对干扰信号有潜伏的敏感性 , 它能产生很短的时钟周期 , 因而最好选晶体或陶瓷谐振器 。 另外 , 石英晶体的外壳要接地 。
5.防雷击措施
室外使用的单片机系统或从室外排挤引进室内的电源线、信号线 , 要考虑系统的防雷击题目 。 常用的防雷击器件有:气体放电管、TVS(Transient Voltage Suppression)等 。
气体放电管是当电源的电压大于某一数值时 , 通常为数十V或数百V , 气体击穿放电 , 将电源线上强冲击脉冲导进大地 。
TVS可以看成两个并联且方向相反的齐纳二极管 , 当两端电压高于某一值时导通 。 其特点是可以瞬态通过数百乃上千A的电流 。
对干扰措施的软件处理方法
电磁干扰源所产生的干扰信号在一些特定的情况下(比如在一些电磁环境比较恶劣的情况下)是无法完全消除的 , 终极将会进进CPU处理的的核心单元 , 这样在一些大规模集成电路经常会受到干扰 , 导致不能正常工作或在错误状态下工作 。

特别是像RAM这种利用双稳态进行存储的器件 , 往往会在强干扰下发生翻转 , 使原来存储的“0”变为“1” , 或者“1”变为“0”;一些串行传输的时序及数据会因干扰而发生改变;更严重的会破坏一些重要的数据参数等;造成的后果往往是很严重的 。
在这种情况下软件设计的好坏直接影响到整个系统的抗干扰能力的高低 。
1. 程序会由于电磁干扰大致会一下几种情况:
①程序跑飞 。
这种情况是最常见的干扰结果 , 一般来说有一个好的复位系统或软件帧测系统即可 , 对整个运行系统的不会产生太大的影响 。
②死循环或不正常程序代码运行 。
当然这种死循环和不正常程序代码并非设计职员有意写进的 , 我们知道程序的指令是由字节组成的 , 有的是单字节指令而有的是多字节指令 , 当干扰产生后使得PC指针发生变化 , 从而使原来的程序代码发生了重组产生了不可猜测的可执行的程序代码 。
那么 , 这种错误是致命的 , 它会有可能会往修改重要的数据参数 , 有可能产生不可猜测的控制输出等一系列错误状态 。
2.对重要参数储存的措施
一般情况下 , 我们可以采用错误检测与纠正来有效地减少或避免这种情况的出现 。
根据检错、纠错的原理 , 主要思想是在数据写进时 , 根据写进的数据天生一定位数的校验码 , 与相应的数据一起保存起来;当读出时 , 同时也将校验码读出 , 进行判决 。
假如出现一位错误则自动纠正 , 将正确的数据送出 , 并同时将改正以后的数据回写覆盖原来错误的数据;假如出现两位错误则产生中断报告 , 通知CPU进行异常处理 。
所有这一切动作都是靠软件设计自动完成的 , 具有实时性和自动完成的特点 。 通过这样的设计 , 能大大进步系统的抗干扰能力 , 从而进步系统的可靠性 。
检错与纠错原理:

  • 首先来看看检错和纠错的基本原理 。 进行差错控制的基本思想是在信息码组中以一定规则加进不同方式的冗余码 , 以便在信息读出的时候依靠多余的监视码或校码码来发现或自动纠正错误 。
  • 针对误码发生的特点 , 即错误发生的随机性和小概任性 , 它几乎总是随机地影响某个字节中的某一位(bit) , 因此 , 假如能够设计自动纠正一位错误 , 而检查两位错误的编码方式 。 就可以大大进步系统的可靠性 。
3.对RAM和FLASH(ROM)的检测
在编制程序时我们最好是写进一些检测程序来测试RAM和FLASH(ROM)的数据代码 , 看有无发生错误 , 一旦发生要立即纠正 , 纠正不了的要及时给出错误指示 , 以便用户往处理 。
另外 , 在编制程序时加进程序冗余是不可缺少的 。 在一定的地方加进三条或三条以上NOP指令对程序的重组有着很有效防止作用 。
同时 , 在程序的运行状态中要引进标志数据和检测状态 , 从而及时发现和纠正错误产生 。
【thunderbolt|单片机设计过程中如何处理电磁兼容性问题?】声明:本文转载自网络 , 如涉及作品内容、版权和其它问题 , 请于联系工作人员 , 我们将在第一时间和您对接删除处理!