打印
[应用相关]

STM32垂直应用挑战第四周+EMC设计

[复制链接]
567|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
这一周我们学习的是功能安全,其实我对这方面的知识了解甚少。但我认真看了官网上有关功能安全的讲解文档,对芯片设计过程中的功能安全有了大概的认识。之前在实际的项目开发过程中,我也只会用看门狗来监测一下程序的运行情况。当然看门狗是最简单防止程序跑飞的手段。ST还有很多使芯片稳定运行的方法。在官网上都能找到相关的讲解文档,当然我也会把我认为对我们项目开发有用的文档附在文末,需要的小伙伴可以自行下载。我在平时的比赛过程中是主要负责硬件设计的。所以对硬件系统的稳定性,还是有自己的理解的,这篇**我也就从硬件角度来阐述功能安全的含义。这就不得不提EMC。之前在论坛回答有关“工业控制为什么用PLC而不用嵌入式”时,我就想到嵌入式在抗干扰方面还是有一些先天性不足。虽然PLC或者FPGA损失了嵌入式的运行效率和速度。但增加了稳定性。所以在工业控制中,稳定性永远高于效率。而且PLC的成本在近几年也日趋合理。行业发展也日趋成熟。好了 那我们今天就谈谈芯片设计过程中让工程师头疼的EMC。下面针对EMC介绍几个概念,我也是在AN1709 《STM32,STM8电磁干扰设计指南》中摘抄得来。这篇文档对STM32,STM8系列单片机的EMC设计都有详细的设计方案介绍。
EMC:(电磁兼容)指系统在基本电磁环境中正常工作的能力,同时不会产生电磁干扰影响其他设备的运行。

EMS:(器件的电磁敏感性)指器件抵抗电气干扰和传导电噪声的能力。
ESD:静电放电测试。
FTB:快速瞬变脉冲群测试。
EMI:(电磁干扰)指设备产生的传导电噪声或辐射电噪声的级别。
在项目设计阶段的早期就需要考虑EMC干扰导致的问题。下面列举一些可能导致的问题:
(1)微控制器无响应
(2)程序计数器失控
(3)执行意外指令
(4)地址指向错误
(5)子程序执行错误
(6)寄生复位和/或寄生中断
(7)IP配置损坏
(8)I/O失灵
当然还有一些隐性故障,没有一一列举。我们要知道EMC对芯片的运行会产生很大的干扰。
我就对电磁干扰感同身受。之前有一天早晨起来调试单片机,在上电的一瞬间,一阵疼痛感袭来。只见芯片冒出一缕青烟。没错,是静电。我们早晨起来穿衣服也能感受到静电的存在。在使用开发板的过程中,这种高达上百伏的静电一下就击穿了单片机。所以在使用开发板的过程中要注意穿戴防静电手环,或者跟其他带绝缘地的设备接触一下,消除身体上的静电。在AN1015《提高微控制器EMC性能的软件技术》**中,ST给出了两种提高芯片EMC性能的软件技术。一:预防技术。二:自动恢复技术。我先来介绍下预防技术。顾名思义,就是在编程中人为的增加预防电磁干扰或者其他干扰的程序。保证程序正常运行,芯片正常工作。预防技术也有很多方法。**都有详细介绍。我再强调一下。(1)使用看门狗和时间控制技术。这也是最常用的预防技术。它本质是一个定时器,在计数结束时产生MCU复位的定时器。而且一旦看门狗启动,防止看门狗复位控制器的唯一方式就是在程序中周期性更新计数器。使用看门狗避免需要执行以下规则:复位之后尽快启用看门狗,或者开启硬狗选项;切勿在中断服务函数中或在代码中没有超时保护的任何本地环路中刷新看门狗。下图是典型的看门狗使用不当和正确使用看门狗的实例。

(2)保护闲置程序存储区域。在大多数应用中,程序存储空间并没有完全被用户代码占满。为了更强的安全性,建议你使用代码填满闲置存储位置,这样会强制看门狗复位,而且即使程序计数器损坏,并且跳向闲置存储位置,能确保MCU恢复和返回到正常操作。(3)输入过滤和比较。意思是在验证状态和继续编程执行之前,由程序对输入引脚稳定性进行几次检查,以避免由输入电路的外部噪声造成的不想要的尖峰响应。(3)闲置中断向量管理。为了避免意外中断事件导致的问题,建议在相应的向量中加入一个有效的中断程序地址,以管理所有可能的中断来源。(4)模数转换器平均。在执行A/D转换操作时,可以重复多次转换,将结果存储在RAM中,然后取平均值,以在任何可能的噪声错误的情况下获取准确的结果(5)去除非法或关键操作代码(6)关键寄存器刷新。下图是上述方法的归纳总结。

自动恢复技术,即在EMC故障之后,快速恢复应用程序的技术。(1)关键软件序列是存储在RAM字节中,如果软件发生失控事件或者MCU复位,恢复程序(CRR)将会存储最后的门命令,重新载入时序参数和恢复程序执行,不需要任何外部干预。(2)第二种方法是在本地控制中使用看门狗。一般的工程师,包括我自己喜欢将看门狗定时器刷新为最大值,以获得尽可能宽的裕量,并与期望的程序执行时间没有任何直接关系。其实这并不好,更好的是使用看门狗定时器寄存器检查单独软件程序的执行时间,如果在看门狗结束计数前出现异常,则迅速做出反应,执行立即复位或转到软件恢复程序。防止程序跑飞。(3)第三种是使用复位标签辨识复位源。ST芯片内部的复位源包括LVD(低电压检测器)POR(上电复位)热复位。复位源标记在一个“复位寄存器”中,只要MCU处于上电状态,该信息就会一直保存。下图是三种方法的总结归纳。

上面介绍都是软件方法。一开始说我将介绍硬件方法,没想到还是讲了软件的,总结起来是正确使用看门狗这个利器。以及根据芯片的配置,选择其支持的技术类型。上面的介绍我自己感觉还是很详细的。下面我将是介绍一些硬件方法。
硬件就比较复杂,要考虑其底层结构不可更改,所以在设计的时候就要考虑EMC干扰。首先需要做一些测试,比如:(1)电磁敏感性(EMS)下面又细分为功能性静电放电测试(F_ESD测试);快速瞬变脉冲群(FTB);静态锁定(LU)测试;动态闭锁(DLU)测试;对于这些测试,《微控制器电磁兼容性设计指南》中有详细讲解。(2)电磁干扰(EMI)同样也需要进行一些测试 EMI辐射测试。文档还介绍了这些测试的规则和标准。这些标准和理论性的东西,我都不强调了。我下面想说一下自己在硬件设计过程中的一些抗干扰技巧。
首先我们要知道,噪声的接收方和发送方都是来自PCB,尤其是MCU附近的走线与连线。一般情况下,我喜欢尽量缩减MCU周围的元器件数量,如果元器件很多,无法避免,尽量把PCB板子做的大一些,MCU区域大一些,与周围的元器件沟通过孔隔离一下。特别是电源线和信号线之间的隔离。布线上尽量减少可能的天线数量,特别是要注意与MCU连接的环路和接线,像电源,振荡器和I/O。振荡器也就是晶振的环路要特别小。而且要非常靠近MCU。每个环路和走线都有寄生电感和电容,只要电流、电压或者电磁通量发生变化,它们就会辐射和吸收能量。电感的减少可通过缩短走线长度以及减少走线表面来实现。所以可以将同一PCB层上的走线环路彼此靠近,或者将其中一个放在另一个上方。电源滤波也很重要,去耦电容应该尽可能靠近MCU,可以使用典型的电解电容,10微法到100微法,对于高频振荡器,还需要特定容量的陶瓷电容对高频电源进行去耦。悬空的引脚对电路而言存在潜在的危险。最好将I/O引脚配置为输出低电平状态。在PCB设计中也可以在屏蔽材料,比如磁珠。还有一个方法就是在工作平台上放置导电垫,手腕环,导电地板垫,防静电工作服。人体接地导电鞋。
好了,今天的介绍就到这里,写的不好,还请大家批评指正。
STM8电磁兼容指南.pdf (304.62 KB)
提高微控制器EMC性能的软件技术.pdf (422.51 KB)
STM8 STM32 电磁兼容设计指南.pdf (1.02 MB)

使用特权

评论回复
沙发
643757107| | 2020-12-9 17:26 | 只看该作者
大家了解都不多

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:总是缺乏自信,进进退退,走走停停,不停的自我耗损,又不断的为自我耗损而再耗损。

33

主题

262

帖子

6

粉丝