草庐IT

【《硬件架构的艺术》读书笔记】09 电磁兼容性能设计指南(2)

magnolia666 2023-03-28 原文

这一节就大致浏览一下,不细看了。

9.6 减少EMC/EMI的技术

三个方法:1、在源头抑制发射。2、耦合路径尽可能低效。3、受体几乎不受发射影响。

9.6.1 系统级技术

9.6.1.1 展频时钟技术(SSC)

在数字系统内。周期性的时钟信号是EMI辐射的主要原因。此外,控制与计时信号、地址和数据总线、互连电缆和连接器都会产生EMI发射。

屏蔽是通过覆盖发射位置来减少EMI发射的一种简单方式,但额外增加了重量、空间和费用。

低通滤波器减少EMI也有自身层面的问题,如对高速系统无效,另一个问题是技术不是系统性的,在任意一个指定节点降低EMI并不能减少在其他节点的发射。

更有效的方法:展频时钟技术。将辐射传播到更宽频带来减少辐射发射。频带增宽,辐射也会减少。

调制频率通常选择大于30kHz(大于声频带),常用60~90kHz(感觉好小呀),这样就可以从源头上控制和减少EMI发射。

优势:所有时钟和来自SSC时钟的的时序信号都是以相同百分比来调制的,导致整个系统内的EMI极大地减少了。

除减少EMI,SSC还有利于电路板线路与时钟驱动器负载之间的阻抗匹配。

9.6.1.2 差分时钟

 差分时钟要求时钟发生器同时提供时钟和反向时钟,反向时钟有与主时钟大小相等方向相反的电流。两个时钟线需要按已选择路线并排在一起。

差分时钟引起EMI减小是因为磁场抵消,如下图,两股电流产生的磁场相互抵消,减少磁场导致辐射降低。

 

 与单端时钟不同,单端时钟噪声出现在基准面,可能耦合到输入输出线中。与此不同,差分时钟回路是反向时钟信号,比基准面提供了更好的隔离,减少输入输出线耦合,从而减少EMI。

通常两条线应尽量靠近。把地线放在差分时钟外侧可以进一步减少辐射。

9.6.2 板级技术

 9.6.2.1 电源输入滤波

消除动态干扰问题的首要机会在电路的电源或信号输入点。

 

 图中输入点没有加装滤波器,传播到电路板1的传导干扰信号能够辐射或耦合到电路板2。

 

 在输入点加装滤波器有利于抑制传导的干扰信号。

9.6.2.2 更多的滤波器

信号噪声源不能消除时,推荐把滤波器作为最后的手段。

EMI滤波器

EMI滤波器通常由电容和电感组成,高阻抗节点需要电容器,低电阻节点需要电感器。

连接到滤波器的阻抗是高阻可以使用穿心电容。穿心电容器并不提供节点间高频电流隔离。

L型电路:电容器旁边有一个电感器。适用于输入和输出阻抗差别很大的情况,感性元件连接至最低阻抗段。

 

 PI型电路:两个电容围着一个电感。输入输出阻抗差别很大时适用。高阶衰减时也可用PI型网络。

 

 T型电路,一个电容器两侧均有一个电感器。输入输出都是低阻时最适用。

其他可选方案:电源输入点适用铁氧化磁环(衰减1MHz以上频率又不导致低频功率损耗)。

9.6.2.3 元件布局

 有噪声器件应与敏感电子器件物理隔离,物理隔离可采用距离分离或屏蔽的形式。建议遵守以下指导原则:

1、供电电路与模拟和数字逻辑电路分开。最简单方法:采用独立PCB放置供电电路。

2、同一时钟线相关的所有部件尽量靠近放置。可减少走线长度,进而减少辐射。

3、将大电流器件尽可能靠近电源。

4、高频部分尽量不使用插座。插座会引起高电感和阻抗失配。

5、晶振、震荡源和时钟放声器远离输入/输出端和电路板边缘。

6、晶振平放在PCB上,从而减少到地距离,并产生更好的电磁场耦合。

7、晶振的固定带接地。不接地,固定带会像天线一样产生辐射。

9.6.2.4 接地路径

发送的噪声在离开系统前确保噪声找到接地路径。接收的噪声在到达系统敏感部分前确保找到接地路径。

1、不要将接地层和电源层分开。

2、数字地和模拟地分开。

3、不要改变有信号走线的层。

4、连接所有接地通孔到每个接地层。

5、使接地层至少比电源层长5倍。

9.6.2.5 线路布局

电容耦合中,源的上升沿会引起受体的上升沿。电感耦合中,受体电压的变化与源变化方向相反。

大部分串扰都是容性串扰。

线路长度超过波长的1/10时通常就变得重要了。军用标准是波长的1/20至1/30。对于骑车和消费电子的两层板,达到波长1/50就变得严重了。超过这些范围,线路就像天线会增加辐射。

9.6.2.6 制作分区

处理EMC的好方法:将PCB分隔成更小的区域,在每个区域中处理问题。图中分区1包括关键部分,分区2和分区3包括非关键部分。

 

 下图是将一个分区放在另一个分区内部的方法。

 

 最内层可能包含噪声最大的信号,离开这个分区所有传输线必须经过过滤。每一个分区输出都需要经过过滤。

1、微控制器等高速逻辑电路应当靠近电源放置,低速部件可以放远一些,模拟器件可以放更远。

2、振荡器原理模拟电路、低俗信号和连接器。

3、微控制器应紧靠稳压器,而稳压器紧靠进入电路板的“电池电压”。

9.6.2.7 电源耦合

逻辑门翻转供电线路产生瞬态电流。这些瞬变电流必须衰减和过滤掉。

压降:

减小电感或减少电流变化可以减少压降。

 去耦电容:

1、充电源,减少电压骤降和接地漂移。

2、为电源层高频返回电流提供了一种接地路径。

自谐振:

 

 

 最好为每个元件都配置旁路电容。如果做不到,可以精力集中在高频器件而忽略频率较低的器件。

9.6.2.8 印刷电路板配电和去耦电容器

MCU在时钟脉冲边缘的极短尖峰会从电源吸取电流,当IO线紧栓在一起,尖峰可能会有较大的幅值。必须用去耦电容将这种电流尖脉冲释放掉。

 

 

 图9.14电容离MCU过远导致产生较大的电流回路,噪声很容易扩散到电路板上其他器件。除了作为大电流的回路外,接地层接充当了这种噪声的天线。

 

 

 图9.15是一个电容放在离MCU较近位置的好例子。大电流回路线路并不是电源层或者接地层的部分,避免了任何噪声的广泛传播。

 

 9.16是另一个改进的例子,通过增加一个串联电感减小电源层的开关噪声。电感值应使压降可以忽略不计。

为了更好和更有效地去耦,建议将电源线和接地线紧挨放置。尽可能多的设计电源/接地线对将电流分为多条路径。电源到地的电流分流到许多更小的回路中,从而明显改善EMC性能。

有关【《硬件架构的艺术》读书笔记】09 电磁兼容性能设计指南(2)的更多相关文章

  1. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  2. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  3. Ruby 的数字方法性能 - 2

    我正在使用Ruby解决一些ProjectEuler问题,特别是这里我要讨论的问题25(Fibonacci数列中包含1000位数字的第一项的索引是多少?)。起初,我使用的是Ruby2.2.3,我将问题编码为:number=3a=1b=2whileb.to_s.length但后来我发现2.4.2版本有一个名为digits的方法,这正是我需要的。我转换为代码:whileb.digits.length当我比较这两种方法时,digits慢得多。时间./025/problem025.rb0.13s用户0.02s系统80%cpu0.190总计./025/problem025.rb2.19s用户0.0

  4. ruby - Ruby 性能中的计时器 - 2

    我正在寻找一个用ruby​​演示计时器的在线示例,并发现了下面的代码。它按预期工作,但这个简单的程序使用30Mo内存(如Windows任务管理器中所示)和太多CPU有意义吗?非常感谢deftime_blockstart_time=Time.nowThread.new{yield}Time.now-start_timeenddefrepeat_every(seconds)whiletruedotime_spent=time_block{yield}#Tohandle-vesleepinteravalsleep(seconds-time_spent)iftime_spent

  5. ruby - Ruby 和 Ruby on Rails 中的三层架构 - 2

    我是一名决定学习Ruby和RubyonRails的ASP.NETMVC开发人员。我已经有所了解并在RoR上创建了一个网站。在ASP.NETMVC上开发,我一直使用三层架构:数据层、业务层和UI(或表示)层。尝试在RubyonRails应用程序中使用这种方法,我发现没有关于它的信息(或者也许我只是找不到它?)。也许有人可以建议我如何在RubyonRails上创建或使用三层架构?附言我使用ruby​​1.9.3和RubyonRails3.2.3。 最佳答案 我建议在制作RoR应用程序时遵循RubyonRails(RoR)风格。Rails

  6. ruby-on-rails - 如果条件与 &&,是否有任何性能提升 - 2

    如果用户是所有者,我有一个条件来检查说删除和文章。delete_articleifuser.owner?另一种方式是user.owner?&&delete_article选择它有什么好处还是它只是一种写作风格 最佳答案 性能不太可能成为该声明的问题。第一个要好得多-它更容易阅读。您future的自己和其他将开始编写代码的人会为此感谢您。 关于ruby-on-rails-如果条件与&&,是否有任何性能提升,我们在StackOverflow上找到一个类似的问题:

  7. ruby-on-rails - 不兼容的库版本 : nokogiri. bundle 需要 8.0.0 或更高版本,但 libiconv.2.dylib 提供 7.0.0 版本 - 2

    为了在我的mac上为一个rails项目安装mysql,我遵循了安装Homebrew软件和删除mac端口的在线建议。这是问题开始的地方。rails项目不会构建,我得到这个:[rake--prereqs]rakeaborted!dlopen(/Users/Parker/.rvm/gems/ruby-1.9.3-p448/gems/nokogiri-1.6.0/lib/nokogiri/nokogiri.bundle,9):Librarynotloaded:/opt/local/lib/libiconv.2.dylibReferencedfrom:/Users/Parker/.rvm/gem

  8. Ruby 和指南针路径与 yeoman 项目 - 2

    我安装了ruby​​、yeoman,当我运行我的项目时,出现了这个错误:Warning:Running"compass:dist"(compass)taskWarning:YouneedtohaveRubyandCompassinstalledthistasktowork.Moreinfo:https://github.com/gruUse--forcetocontinue.Use--forcetocontinue.我有进入可变session目标的路径,但它不起作用。谁能帮帮我? 最佳答案 我必须运行这个:geminstallcom

  9. ruby - 如何找到我的 Ruby 应用程序中的性能瓶颈? - 2

    我编写了一个Ruby应用程序,它可以解析来自不同格式html、xml和csv文件的源中的大量数据。我如何找出代码的哪些区域花费的时间最长?有没有关于如何提高Ruby应用程序性能的好资源?或者您是否有任何始终遵循的性能编码标准?例如,你总是用加入你的字符串吗?output=String.newoutput或者你会使用output="#{part_one}#{part_two}\n" 最佳答案 好吧,有一些众所周知的做法,例如字符串连接比“#{value}”慢得多,但是为了找出您的脚本在哪里消耗了大部分时间或比所需时间更多,您需要进行分

  10. Unity Shader 学习笔记(5)Shader变体、Shader属性定义技巧、自定义材质面板 - 2

    写在之前Shader变体、Shader属性定义技巧、自定义材质面板,这三个知识点任何一个单拿出来都是一套知识体系,不能一概而论,本文章目的在于将学习和实际工作中遇见的问题进行总结,类似于网络笔记之用,方便后续回顾查看,如有以偏概全、不祥不尽之处,还望海涵。1、Shader变体先看一段代码......Properties{ [KeywordEnum(on,off)]USL_USE_COL("IsUseColorMixTex?",int)=0 [Toggle(IS_RED_ON)]_IsRed("IsRed?",int)=0}......//中间省略,后续会有完整代码 #pragmamulti_c

随机推荐