热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

转:高速电路设计中耦合电容的重要性

高速电路设计中耦合电容的重要性 相对于低频电路需要做复杂的电路匹配,高频电路结构相对简单,可简单的结构往往意味着需要考虑更多的问题。拿最常见的AC耦合电容来讲,要么在芯片之间加两颗

高速电路设计中耦合电容的重要性
 

相对于低频电路需要做复杂的电路匹配,高频电路结构相对简单,可简单的结构往往意味着需要考虑更多的问题。拿最常见的AC耦合电容来讲,要么在芯片之间加两颗直连,要么在芯片与连接器之间加两颗。看似简单,但一切都因为高速而不同。高速使这颗电容变得不“理想”,这颗电容没有设计好,可能会导致整个项目的失败。因此,对高速电路而言,这颗AC耦合电容没有优化好将是“致命”的。

下面笔者依据之前的项目经验,盘点分析一下我在这颗电容的使用上遇到的一些问题。

最开始要先明白AC耦合电容的作用。一般来讲,我们用AC耦合电容来提供直流偏压,就是滤出信号的直流分量,使信号关于0轴对称。既然是这个作用,那么这颗电容是不是可以放在通道的任何位置呢?这就是笔者最初做高频电路时,在这颗电容使用上遇到的第一个问题——AC耦合电容到底该放在哪。

这里拿一个项目中常遇到典型的通路来分析。

图1:AC耦合电容典型通路

在低速电路设计中,这颗电容可以等效成理想电容。而在高频电路中,由于寄生电感的存在以及板材造成的阻抗不连续性,实际上这颗电容不能看作是理想电容。这里信号频率2.5G,通道长度4000mil,AC耦合电容的位置分别在距离发送端和接收端200mil的位置。我们看一下仿真出的眼图的变化。

图2:AC耦合电容靠近发送端的眼图

图3:AC耦合电容靠近接收端的眼图

显然,这颗AC耦合电容靠近接收端的时候信号的完整性要好于放在发送端。我的理解是这样的,非理想电容器阻抗不连续,信号经过通道衰减后反射的能量会小于直接反射的能量,所以绝大多数串行链路要求这颗AC耦合电容放在接收端。但也有例外,笔者之前做板对板连接时遇到过这个问题,查PCIE规范发现如果是两个板通常放置在发送端上,此时还利用到了AC耦合电容的另外一个作用——过压保护。比如说SATA,所以通常要求靠近连接器放置。

解决了放置的问题,另一个困扰大家的就是容值的选取了。这样说,我们的整个串行链路等效出的电阻R是固定的,那么AC耦合电容C的选取将会关系到时间常数(RC),RC越大,过的直流分量越大,直流压降越低。既然这样,AC耦合电容可以无限增大吗?显然是不行的。

图4:AC耦合电容增大后测量到的眼图

同样的位置,与图3相比可以看出增大耦合电容后,眼高变低。原因是“高速”使电容变的不理想。感应电感会产生串联谐振,容值越大,谐振频率越低,AC耦合电容在低频情况下呈感性,因此高频分量衰减增大,眼高变小,上升沿变缓,相应的JITTER也会增大。通常建议AC耦合电容在0.01uf~0.2uf之间,项目中0.1uf比较常见。推荐使用0402的封装。

最后,解决了以上两个问题,再从PCB设计上分析一下这颗电容的优化设计。实际在项目中,与AC耦合电容的位置、容值大小这些可见因素相比,更加难以捉摸的是板材本身(包括焊盘的精度、铜箔的均匀度等)以及焊盘处的寄生电容对信号完整性的影响。我们知道,高频信号必须沿着有均匀特征阻抗的路径传播,如果遇到阻抗失配或者不连续的情况时,部分信号会被反射回发射端,造成信号的衰减,影响信号的完整性。项目中,这种情况通常会出现在焊盘或者是板载连接器处。笔者最初涉及的高速电路设计时,经常遇到这个问题。

解决这个问题要从两个方面入手。首先在板材的选取上,我们在应用中通常选用高性能的ROGERS板材,罗杰斯的板材在铜箔厚度的控制上非常精确,均匀的铜箔覆盖大大降低了阻抗的不连续性;然后在消除焊盘处的寄生电容上,业内常见的办法是在焊盘处做隔层处理(挖空位于焊盘正下方的参考平面区域,在内层创建铜填充),通过增大焊盘与其参考平面(或者是返回路径)之间的距离,减小电容的不连续性。在笔者的项目中多采用介质均匀、铜箔宽度控制精确的ROGERS板材也有效提高了焊盘的加工精度。

通过仿真对比一下ROGERS板材做精确隔层处理前后的信号完整性。

图5:做隔层处理前的TDR

图6:做隔层处理后的TDR

图5图6对比,发现未处理之前阻抗的跳跃很明显,隔层处理后的阻抗改善很多,几乎没有任何阶跃与不连续。

图7:做隔层处理前的回波损耗

图8:做隔层处理后的回波损耗

图7图8对比,在用ROGERS板材做隔层处理之后,相比未做隔层处理回波损耗下降到-30dB之内,大大降低了回波损耗,保证了信号传输的完整。

综上,想要搞定高频电路中这颗“致命”的AC耦合电容,不仅要做足电路设计上的功课,同时,选择性能更好的高频PCB板材料会让你事半功倍。


推荐阅读
  • 本文介绍了在Pygame中使用矩形对表面进行涂色的方法。通过查阅Pygame文档中的blit函数,可以了解到如何将一个表面的特定部分复制到另一个表面的指定位置上。具体的解决方法和参数说明在文中都有详细说明。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • IB 物理真题解析:比潜热、理想气体的应用
    本文是对2017年IB物理试卷paper 2中一道涉及比潜热、理想气体和功率的大题进行解析。题目涉及液氧蒸发成氧气的过程,讲解了液氧和氧气分子的结构以及蒸发后分子之间的作用力变化。同时,文章也给出了解题技巧,建议根据得分点的数量来合理分配答题时间。最后,文章提供了答案解析,标注了每个得分点的位置。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了[从头学数学]中第101节关于比例的相关问题的研究和修炼过程。主要内容包括[机器小伟]和[工程师阿伟]一起研究比例的相关问题,并给出了一个求比例的函数scale的实现。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文介绍了如何将CIM_DateTime解析为.Net DateTime,并分享了解析过程中可能遇到的问题和解决方法。通过使用DateTime.ParseExact方法和适当的格式字符串,可以成功解析CIM_DateTime字符串。同时还提供了关于WMI和字符串格式的相关信息。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
author-avatar
飘移zj_114
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有