Marin说PCB之via的使用对于传输线的影响

2024-02-03 07:30

本文主要是介绍Marin说PCB之via的使用对于传输线的影响,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一,过孔的概念:

     过孔也称金属化孔,在双面板多层板中,为连通各层之间的印制导线,在各层需要连通的导线的交汇处钻上一个公共孔,即过孔。在工艺上,过孔的孔壁圆柱面上用化学沉积的方法镀上一层金属,用以连通中间各层需要连通的铜箔,而过孔的上下两面做成圆形焊盘形状,过孔的参数主要有孔的外径和钻孔尺寸。

通常来说过孔是多层PCB的重要组成部分,起着连接不同层信号的作用。过孔不仅可以是通孔,还可以是掩埋式。所谓通孔式过孔是指穿通所有敷铜层的过孔;掩埋式过孔则仅穿通中间几个敷铜层面,仿佛被其它敷铜层掩埋起来,从其工艺制程上来说,PCB过孔一般分为3类,即盲孔(blind via)、埋孔(buried via)和通孔(through via),如图1所示

 当然了如果按照PCB过孔的作用的话,又可以分为以下三类:
A PCB板上的信号VIA(正常我们板子上信号通常是使用孔径10MIL左右的,特殊区域里面可以使用8MIL或者是更小的孔,高速信号上换层孔尽量是使用小的孔,减少其寄生电容对于信号传输带来的影响,正常可以使用8MIL孔径的VIA,这个孔径的大小时和板厚由关系的,一般正常板子的过孔的厚经比要求不低于101(通孔设计),现在很多板厂都可以做到121,甚至大于这个数值的)


B PCB板上的电源和GND的VIA。(电源和GND孔正常使用10MIL或者是12MIL孔径的VIA,尤其是需要特别注意一下电源层面需要打孔换层的地方不能使用小孔经的,而且换层的via的数目尽量留一些余量,不要做到刚刚满足载流)


C PCB板上一些电源或者是PHY芯片的散热GND过孔。(散热GND孔正常使用10MIL或者是

12MIL)

凡事都是由两面性的,当然过孔也是不列外的,有优点也有缺点的。其优点就是方便了信号连通,替代了之前跳线连接工艺,使得制作工艺更加简单了,这样就会大大的提高了我们得生产效率,但是同样也有缺点,过孔存在寄生电容的同时也存在着寄生电感,在高速数字电路的设计中,过孔在传输线上表现为阻抗不连续的断点,其会造成信号的反射过孔的寄生电感带来的危害往往大于寄生电容的影响。在电源系统中它的寄生串联电感会削弱旁路电容的贡献,减弱整个电源系统的滤波效用。

我们可以把过孔的等效电路模型为一个电感两端各串联一个接地电容,如图所示:

从等效电路模型可知,过孔本身存在对地的寄生电容,假设过孔反焊盘直径为D2,过孔焊盘的直径为D1,PCB板的厚度为T, 板基材介电常数为ε,则过孔的寄生电容大小近似于:

过孔的寄生电容会给电路造成的主要影响是延长了信号的上升时间,降低了电路的速度,从而影响信号的传输质量。举例来说,对于一块厚度为50MilPCB板,如果使用内径为10Mil,焊盘直径为20Mil的过孔,焊盘与地铺铜区的距离为32Mil,则我们可以通过上面的公式近似算出过孔的寄生电容大致是:C=K*ε0*3.14*0.050x0.020/(0.032-0.020),这部分电容会引起的上升时间的变化。尽管单个过孔的寄生电容引起的上升延变缓的效用不是很明显,但是如果走线中多次使用过孔进行层间的切换,设计时就要慎重考虑。我们在实际设计中可以通过增大过孔和铺铜区的距离(Anti-pad)或者减小焊盘的直径来减小寄生电容。

刚刚我在上面也提到了过孔在产生寄生电容的同时也会寄生电感,其公式如下

其中L指过孔的电感,h是过孔的长度,d是中心钻孔的直径。从式中可以看出,过孔的直径对电感的影响较小,而对电感影响最大的是过孔的长度。仍然采用上面的例子,可以计算出过孔的电感为:L=5.08x0.050[ln(4x0.050/0.010)+1]=1.015nH 。如果信号的上升时间1ns,那么其等效阻抗大小为:XL=πL/T10-90=3.19Ω。这样的阻抗在有高频电流的通过已经不能够被忽略,特别要注意,旁路电容在连接电源层和地层的时候需要通过两个过孔,这样过孔的寄生电感就会成倍增加。

二,如何使用过孔:

       以上说了那么多,那我们在设计板子的时候该如何使用过孔呢?

  1. 首先确认下过孔的种类,我们可以根据板子上的芯片类型大致得出一个结论:板子是使用通孔来做和盲埋孔来设计。正常0.65PICTCH以上(包含)的BGA芯片都是可以使用通孔来设计的,0.65PICTCH以下的BGA芯片的设计是需要做HDI了。
  2. 确认下过孔的尺寸。这个可以根据板子的板厚层叠确认下来可以得出我们板子上可以使用的VIA的尺寸,正常板厂要求过孔的厚经比是101(通孔设计),现在很多板厂的加工能力都是大于这个设计经验值了,具体的还是按照你们对接的制板厂的能力而定吧。

3,确认过孔的数目,这个对于高速线尤其重要。一些芯片的设计手册中的对于高速信号部分都会提到其换层孔的数目的要求的,我们在做设计的时候要严格按照手册上推荐的过孔的数目来设计,不可超过其推荐值。

三,过孔的优化设计:

我们把过孔的类型和尺寸都已经确认下来了,剩下的就需要我们在设计PCB板子的时候对于一些高速信号线做出一些优化上的设计了。由于过孔是导致信号阻抗不连续的一个主要因素,我们是可以通过降低过孔的寄生电容、电感来最小化过孔的影响,从而改善信号线的阻抗,具体操作如下:

1,去除非功能焊盘,在allegro出gerber的时候是可以设置这个参数的。(随着过孔厚径比增大,去除非功能焊盘有助于增强过孔的可靠性,但是小厚径比过孔去除非功能焊盘后可靠性会降低,这点是需要我们注意的。

2,增加antipad尺寸。(减少过孔的寄生电容)

具体的反焊盘的尺寸大小要按照板子的层叠和板材,利用仿真软件得出一个具体的反焊盘的尺寸的大小,这个是之前是有一个设计的经验值:一般是按照VIA的反焊盘的尺寸可以根据ANTI PAD的尺寸来做就好了,如下图所示

但是这个数值最好是以实际仿真给出的数值为准的。我们是可以使用仿真软件计算找到最优的值设置反焊盘的尺寸的,这样就会降低阻抗的波动对信号传输的影响了。

3,减少过孔的stub。(过孔的寄生电感主要来源,一般信号速率大于5G左右了就需要考虑残桩带来的影响了,至于怎么做可以减少过孔的stub,一般是使用背钻工艺或者是HDI设计来

还有一些PCB设计上需要注意事项就是:

1,高速线走线尽量不要换层,需要换层的地方加上回流GND孔而且尽量保持对称放置。这个VIA的距离信号过孔也是有要求的,一般是要按照实际的仿真的结果来设置的。之前仿真同事推荐的高速线换层的GND过孔距离信号VIA的间距的数值是小于200MIL,不过这个是按照实际的板子的层叠仿真来的,这个是没有固定数值的。

2,过孔间距不要太密集,防止相邻的高速线走线没有参考平面,同样也会使得一部分电源层面电流密度过大,不能均匀分布了,对于电源完整性有一定的影响的。

3,重要的单端信号打孔换层的地方记得在周围1MM左右加上GND回流via

4,电源和GND信号的过孔尽量就近打孔,过孔和管脚之间的引线最好是越短越好。也可以考虑一下并联打多几个过孔(实际上还是要看板子的布线空间了),这样可以减少等效电感。

5,打孔尽量在保证信号质量的前提下做到美观整齐。

以上就是小编对于via使用的一些设计经验总结,当然若有不足之处,希望路过的大神们指点一二。

这篇关于Marin说PCB之via的使用对于传输线的影响的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/673390

相关文章

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

C#中lock关键字的使用小结

《C#中lock关键字的使用小结》在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时,其他线程无法访问同一实例的该代码块,下面就来介绍一下lock关键字的使用... 目录使用方式工作原理注意事项示例代码为什么不能lock值类型在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时