Altium_Designer PCB文件的绘制(上:PCB基础和布局)
PCB设计基础知识
PCB面板
在PCB设计中,最重要的一个面板就是“PCB面板”。该面板的功能主要是对电路板中的各个对象进行精确定位,并以特定的效果显示出来。该面板还可以对各种对象(如网络、规则及元件封装等)的属性进行设置。总体来说,通过该面板可以对整个电路板进行全局的观察及修改,其功能非常强大。下图是一个例子:
PCB面板的按钮
PCB面板中有3个按钮,主要用于视图显示的操作,功能分别如下:
- 应用:单击此按钮,可恢复前一步工作窗口中的显示效果,类似于“撤销”操作;
- 清除:单击此按钮,可恢复印刷电路板的最初显示效果,即完全显示PCB中的所有对象;
- 缩放:单击此按钮,可精确设置显示对象的放大程度。
PCB下拉列表框
PCB下拉列表框有3个选项,功能分别如下:
- Normal:正常选项,表示在显示对象时,正常显示其他未选中的对象;
- Mask:遮挡选项,表示在显示对象时,遮挡其他未被选中的对象;
- Dim:变暗选项,表示在显示对象时,按比例降低亮度显示未被选中的对象。
PCB面板的其他几个功能,会在下文分别讲述。
电路板物理结构及编辑环境参数设置
对于手动生成的PCB,在进行PCB的设计前,必须对电路板的各种属性进行详细的设置,主要包括板型的设置、PCB图纸的设置、电路板层的设置、层的显示设置、颜色的设置、布线框的设置、PCB系统参数的设置及PCB设计工具栏的设置等。
电路板的物理边框
电路板的物理边界即为PCB的实际大小和形状,板型的设置是在“Mechanical 1(机械层1)”上进行的。关于电路板的分层在下文中有详细介绍:
边线框的设置:放置->走线。一般板型定义为矩形,但在特殊的情况下,为了满足电路的某种特殊要求,也可以定义为圆形、椭圆形等形状,通用,也是在放置菜单里来完成。
当放置的线组成了一个封闭的边框时,就可以结束边框的绘制了。
板形的修改
对边框线的设置主要是为了给制板商提供加工电路板形状的依据。也可以在设计时直接修改板形,即在工作窗口中可直接看到自己设计的电路板的外观形状,然后对板形进行修改。
板形的设置:设计->板子形状->根据板子外形生成线条。需要注意的是:首先需要先选中一个封闭的边界;其次这并不是必须要做的步骤(本步骤可忽略)。
电路板图纸的设置
与原理图一样,用户也可以对电路板图纸进行设置,默认状态下的图纸是不可见的。
电路板图纸的设置:设计->板参数选项,右键->选项->板参数选项。
图纸位置选项组是用于设置PCB图纸的,从上到下依次可对图纸在X轴的位置、在Y轴的位置、图纸的宽度、图纸的高度、图纸的显示状态、图纸的锁定状态进行设置。
电路板层的设置
PCB一般包括很多层,不同的层包含不同的设计信息。制板商通常会将各层分开制作,然后经过压制、处理,最后生成各种功能的电路板。
Altium Designer一般有以下六种类型的工作层:
- Signal Layers(信号层):即铜箔层,用于完成电气连接。如Top Layer、Mid Layer、Buttom Layer;
- Internal Planes Layers(中间层):也称为内部电源与地线层,也属于铜箔层,用于建立电源和地线网络。如Internal Layer;
- Mechanical Layers(机械层):用于描述电路板机械结构、标注及加工等生产和组装信息所使用的层面,不能完成电气连接特性。如Mechanical Layer;
- Mask Layers(阻焊层):用于保护铜线,也可以防止焊接错误。如Top Paste(顶层锡膏防护层)、Bottom Paste(底层锡膏防护层)、Top Solder(顶层阻焊层)、Bottom Solder(底层阻焊层);
- SilkScreen Layers(丝印层):也称为图例,通常用于放置元件标号、文字和符号,以标示出各零件在电路板中的位置。如Top Overlay(顶层丝印层)、Bottom Overlay(底层丝印层);
- 其它层:Drill Guides(钻孔)、Drill Drawing(钻孔图)、Keep-Out Layer(禁止布线层)。
电路板层的颜色与显示设置:设计->板层颜色;右键->选项->板层颜色。
常见层数不同的电路板:
- 单面板:PCB中元件集中在其中的一面(元件面),导线集中在另一面(焊接面);
- 双面板:电路板的两面都可以布线,不过要同时使用两面的布线就必须在两面之间有适当的电路连接操行,这种电路间的桥梁叫做过孔。过孔是在PCB上充满或涂上金属的小洞,它可以与两面的导线相连接。在双层板中通常不区分元件面和焊接面;
- 多层板:常用的多层板有4层板、6层板等。简单的4层板是在Top Layer(顶层)和Bottom Layer(底层)的基础上增加了电源层和地线层,这样的好处极大程度地解决了电磁干扰的问题;6层板通常是在4层板的基础上增加了两层Mid Layer。
电路板层的层数设置:设计->层叠管理,右键->选项->层叠管理。
默认为双层板,可在Presets中选择预设的最佳设置。
PCB布线区的设置
对布线区进行设置的主要目标是为自动布局和自动布线做准备。
PCB禁止布线区设置:放置->禁止布线->路径。需要注意的是:只能在Keep-Out Layer层中进行操作;其次所绘制的路径必须是一个封闭的边界。
PCB文件中导入原理图网络表
网络表是原理图和PCB图之间的联系纽带,原理图与PCB图之间的信息可以通过在相应的PCB文件中导入网络表的方式完成同步。再执行导入网络表的操作之前,需要在PCB设计环境中装载元件的封装库及对同步比较器的比较规则进行设置。
装载元件的封装库
如果之前安装的是.INTLIB,就表示原理图的电子元件和PCB图的电子元件全部都已经装载过了。如果只是.SCHLIB的话,这里就需要将对应的.PCBLIB进行安装。
设置同步比较规则
所谓同步比较,就是使原理图文件和PCB文件在任何情况下保持同步,实现这个目标的最终方法是用同步器来实现的。
同步器的工作原理就是检查当前的原理图文件和PCB文件,得出它们各自的网络报表并进行比较,比较得出的不同的网络信息将作为更新信息,然后根据更新信息便可以完成原理图设计与PCB设计的同步。同步比较规则就能决定生成的更新信息,因此要按成原理图与PCB图的同步更新,同步比较规则的设置至关重要。
同步比较规则的设置:工程->工程参数->Comparator。
一般情况下,还是选择默认的同步比较规则。
导入网络报表
导入网络报表的一般步骤:
- 打开对应的.SchDoc(原理图文件)和.PcbDoc(PCB文件)文件,使两个文件都处于打开的状态;
- 在原理图文件中,设计->Update PCB Document ....PcbDoc->生效更改,执行合法性校验;
- 验证完能在PCB上执行所有的更新操作(每一项的检测一栏都是√标记),->执行更改,确认无误。
但是,你可能在合法性校验中出现检测出错的情况,如上图。在消息中显示:Footprint Not Found SOP-16。
这个错误的意思就是,没有找到SOP-16对应的封装。原因很可能是,之前导入的元件库为.SCHLIB,没有对应的.PCBLIB文件;或者之前导入的.INTLIB中,缺失了这个SOP-16的封装。
解决方法:在原理图中,找到HX2这个对象(ctrl+F键寻找),双击这个对象进入它的属性设置对话框。
这个对话框在上文【AD】Altium Designer 原理图的绘制设置元件属性中也讲过,这次主要设置的是右下角的这一块。编辑Type类型为Footprint类型的描述(如果没有的话,直接Add):
在上面的名称中输入元件相对应的封装名SOP-16,如果元件库中已经有这个名称的封装,就会自动选择出来;如果没有,就只能自己手动从库路径中去加载了。关于元件封装库的绘制,会在后面的文章中涉及到。
需要注意的是:导入网络表时,原理图中的元件并不直接导入到用户绘制的布线区内,而是位于布线区外。
需要通过随后的布局操作,才将元件布置到布线区内。
原理图与PCB图的自动更新
第一次执行导入网络报表操作时,完成上述操作即可完成原理图与PCB图之间的同步更新。如果导入网络表后又对原理图或者PCB图进行了修改,那么要快速地完成原理图与PCB图之间的双向同步更新操作。
原理图与PCB图的同步更新操作说明:
- 设计->Update Schematic in ....PrjPCB(PCB图的修改更新到原理图);
- 设计->Import Changes From ....PrjPCB(原理图的修改更新到PCB图)。
需要注意的是:两个操作都是在PCB文件中,而不是原理图文件。
飞线的显示
网络表信息导入到PCB中,可以选择显示飞线和隐藏飞线。
飞线的显示与隐藏:查看->连接。
PCB的布局设计
元件的布局是指将网络表中的所有元件放置到PCB板上,是PCB设计的关键一步。好的布局通常使具有电气连接的元件引脚比较靠近,这样可以使走线距离短,占用的空间比较小,从而使整个电路板获得更好的布线效果。
电路布局的整体要求是整齐、美观、堆成、元件密度均匀,这样才能使电路板的利用率最高,并且降低电路板的制作成本;同时设计者在布局时还要考虑电路的机械结构、散热、电磁干扰以及将来的布线方便性等等。
通常元件的布局有自动布局和手动布局两种,建议手动布局,除非是那种就很少很少的元件(低于20个),否则就安安心心地手动布局吧。
元件的自动布局
自定布局方式
元件的自动布局:工具->器件布局。
Altium Designer提供了强大的PCB自动布局的功能,包括:
- 按照Room排列:用于在指定的空间内部排列元件。单击该命令后,在要排列元件的空间区域内单击,元件即自动排列在该空间内部;
- 在矩形区域排列:用于将选中的元件排列到矩形区域内。使用该命令前,需要先将要排列的元件选中,再在要放置元件的区域内单击,确定矩形区域的一角,拖动光标,至矩形区域的另一角在此单击;
- 排列板子外的器件:用于将选中的元件排列在PCB板的外部。此命令前,需要先将要排列的元件选中;
- 推挤:用于推挤布局。推挤布局的作用是将重叠在一起元件推开,即选择一个基准元件,当周围元件与基准元件存在重叠的情况时,则以基准元件为中心向四周推挤其它的元件。
自动布局约束参数
在自动布局前,首先要设置自动布局的约束参数。合理的设置自动布局参数,可以使自动布局的结果更加完善,也就相对的减少了手动布局的工作量。
自动布局参数设置:设计->规则->Placement。
在Placement标签下,分为6种规则:
- Room Definition:空间定义规则。可以在PCB板上定义一个元件布局区域(Room),在这块Room中可以设置成不允许出现元件,或者设置成某些元件必须在这款区域;
- Component Clearance:元件间距限制规则。用于设置元件间距最小的水平和垂直间距;
- Component Orientations:元件布局方向规则。用于设置PCB板上元件允许旋转的角度;
- Permitted Layers:电路板工作层设置规则。用于设置PCB上允许放置元件的工作层;
- Nets To Ignore:网络忽略规则。用于设置在采用成群的放置项方式执行元件自动布局时需要忽略布局的网络;
- Hight:高度规则。用于定义元件的高度。
元件的手动布局
手动布局方式
手动布局的方式就很简单了,自己动手,丰衣足食。就是将各个元件一个一个选中移动就行了。但这也并不代表着毫无头绪地移动,下面基本都是经验之谈了。首先建议按照模块来进行移动。比如:
这里有一个HX711称重检测电路,那么我们就将这一个模块的内容在PCB上移动到一个地方去:
在图中就是白色框内的内容,先将每个模块的那个部分聚在一起摆放。
而图中的红色框内的内容,下面的红框是PCB的缩略图显示窗口,可以通过鼠标对工作区域的PCB图进行快速移动,以及对视图放大缩小的操作。
上面的红框是对每个对象的信息描述,注意此时PCB面板最上面选择的是Components。双击该对象可以弹出该对象的属性对话框。例如:
选择C107的属性,设置层为Bottom Layer,这个时候发现没有确认键了!并且恶心的是,该对话框无法选中、无法移动、无法缩小!这是因为Altium Designer的适用的机型对屏幕分辨率有比较高的要求,绝大多数笔记本的分辨率都是不太支持的,会出现这个问题。
解决办法:确认键用键盘Enter键(回车键)代替,取消键用键盘Esc键代替。
导入网络表时,原理图中的元件并不直接导入到用户绘制的布线区内,而是水平摆放于布线区外。这里免不了图纸的水平、垂直方向的移动,这里介绍一下滚轮操作:
- 向上、下滚动滚轮:向上、下平移图纸;
- 按住shift,同时向上、下滚动滚轮:向左、右平移图纸;
- 按住ctrl,同时向上、下滚动滚轮:放大、缩小图纸。
但是单纯的手动布局不够精细,不能很整齐地摆放好元件。为此PCB编辑器提供了专门的操作来帮助我们。
元件说明文字的调整
对元件说明文字进行调整,除了单纯手动拖动外,还可以通过菜单命令完成。
元件说明文字的调整:编辑->对齐->对齐器件文本。
元件间距的调整
元件间距的调整主要包括水平和垂直两个方向上的间距调整。
元件间距的调整:编辑->对齐->水平分布,编辑->对齐->垂直分布。
在使用此命令前,需要选中要水平(或垂直)分布的元件,然后会以最左侧和最右侧(或最上侧和最下侧)的元件为基准,中间的所有元件均匀分布。如果元件的间距小于安全间距,会自动做出调整。
其他操作
移动元件到格点处:编辑->对齐->移动所有器件原点到栅格上。
左/右对齐:编辑->对齐->左对齐,编辑->对齐->右对齐。
3D效果图
手动布局完,可以通过3D效果图,直观地查看效果。
3D效果图:工具->遗留工具->3D显示。
网络密度分析
网络密度分析是利用Altium Designer提供的密度分析工具,对当前PCB文件的元件放置以及连接情况进行分析。密度分析会生成一个密度指示图,在图中绿色的部分表示网络密度较低的区域,元件越密集、连线越多的区域颜色就会呈现一定的变化趋势,红色代表网络密度较高的区域。
网络密度分析:工具->密度图。
Altium_Designer PCB文件的绘制(上:PCB基础和布局)的更多相关文章
- Altium Designer PCB文件的绘制(下:PCB布线和检查)
在完成电路板的布局工作后,就可以开始布线操作了.在PCB的设计中,布线是完成产品设计的最重要的步骤,其要求最高.技术最细.工作量最大.PCB布线可分为单面布线.双面布线.多层布线.布线的方式有自动布线 ...
- Protel99se教程三:新建PCB文件以及PCB基本设定
在上一课,我们绘制好SCH原理图后,在这一节课开始,我们介绍,如何将SCH转化成PCB文件,在这一节课,我们主要给大家讲解,如果新建PCB文件以及载入封装图. 第一步:在Documents目录下,新建 ...
- OrCAD Capture CIS绘制原理图、Allegro PCB Design XL 绘制PCB
1.OrCAD Capture CIS绘制原理图 1.1.快捷键 (1)放置连线 w (2)放置net名称 n 放下一个时再按n可以编辑名字 (3)编辑属性 ...
- Protel99se教程四:将SCH转为PCB文件
本节课,我们介绍,如何快速的将绘制好的SCH文件转为PCB文件,首先,我们打开刚开始时我们绘制的SCH原理图,我们可以使用protel99se菜单栏的view-Fit All Objects命令,以查 ...
- cadence allegro16.6 pcb文件转pads pcb文件方法教程
在pcb设计工作中,有时会被要求将pcb文件转成其他软件的格式,pcb Allegro装Pads的方法如下. 在转换的过程中我们需要用到三种软件,ad.pads.allegro.转换的流程是:alle ...
- 将 PCB 文件转换为可读的文本
将 PCB 文件转换为可读的文本 将元件转成列表. 坐标也放到列表中. 以元件号为排序. 使用 json 格式,并格式,方便对比. 元件网络转成单独文件. 特殊说明生成单独文件.
- AD如何改变PCB文件的黑色背景
第一步:打开AD软件,新建一个PCB文件. 2 第二步:在黑色区域随便画一个封闭的多边形——注意一定要是封闭的! 3 第三步:点击“Ctrl + A”快捷键将PCB整个文件选中. 4 第四 ...
- 如何在小型pcb的移动设备上获得更好的无线性能
如何在小型pcb的移动设备上获得更好的无线性能 How to get better wireless performance for mobile devices with small PCBs 小型 ...
- 框架基础:ajax设计方案(三)--- 集成ajax上传技术 大文件/超大文件前端切割上传,后端进行重组
马上要过年了,哎,回家的心情也特别的激烈.有钱没钱,回家过年,家永远是舔舐伤口最好的地方.新的一年继续加油努力. 上次做了前端的ajax的上传文件技术,支持单文件,多文件上传,并对文件的格式和大小进行 ...
随机推荐
- vim编辑以及脚本编程练习
转至:http://www.178linux.com/88128 vim编辑器的使用总结: vim在工作过程当中有三种模式:编辑模式.输入模式.末行模式. 1.编辑模式:即命令模式,键盘操作常被理解为 ...
- Linux命令(ping-telnet-netstat-curl-ps)
转至:https://www.jianshu.com/p/577bbd15a6f8 1.ping命令 ping命令用来测试主机之间网络的连通性.执行ping指令会使用ICMP传输协议,发出要求回应的信 ...
- 02-asio学习
https://blog.csdn.net/weixin_42881084/article/details/101996032 https://blog.csdn.net/Marble_ccp/art ...
- MyBatis动态 order by 排序不生效解决方法
使用Mybatis在做一个项目时,发现需要动态的去做一个排序功能,于是乎有了下面XXXMapper.xml代码 <if test="order!=null and !order.isE ...
- gdb调试快速入门
编译指令 gcc test.c -o test -g -g是加入调试信息,加入源码信息 启动gdb调试 gdb test 进入gdb中 设置参数 set args 10 20 显示参数show age ...
- tp6微信公众号开发者模式获取access_token
1:config 文件下新建一个文件wechat.php,将个人id和秘钥写入配置文件 网址: https://developers.weixin.qq.com/doc/offiaccount/Bas ...
- Vue运用swoole 实现多人聊天
1:项目目录新建php文件和html文件,这里我建了一个swoole文件夹,chat.php 和chat.html 2:将项目同步上线 0.0.0.0 代表的是所有人都可以连接. chat.php代码 ...
- php jsonp接口
//jsonp回调 $callback = isset($_GET['callback']) ? trim($_GET['callback']) : ''; //jsonp回调参数,必需 $cgc_k ...
- 利用mysqldump 与 nginx定时器 定时备份mysql库
1.安装mysqldump(如果备份远程mysql库,本地不用安装mysql 也可以单独使用) yum -y install holland-mysqldump.noarch 2.编写备份脚本 首先这 ...
- [] == ![] 返回 true
对于==来说,如果数据类型不同,就会进行隐式类型转换. 首先判断是否在对比 null 和 undefined,是的话就会返回 true: 判断其中一方是否为 string ,在与 number进行比较 ...