PCB工程师都应该指导的规范的PCB设计流程

article/2025/9/20 20:10:58

思路清晰远比卖力苦干重要!

对于设计者而言,一定要按照设计流程来,通过一个规范设计流程可以在处理复杂电路时能避免出现前期失误导致后期设计大改的情形,比如设计者A,在结构工程师提供结构DXF的前提下,没有按照规范的流程先导入结构,匆忙的进行布局和布线,在产品接近投产时才想起结构没有处理,结果发现整个PCB布线几乎要重新调整,严重耽误了开发进度。由于软件的差异性及电路的复杂性,有些电路可能存在单端网络、电气开路等问题,不经过相关检测工具检查就盲目设计与生产,等板子生产完毕,错误就无法挽回了,所以流程化设计是很必要!到了哪一步就做哪一步的事情,如图1-2所示,描述了一个规范化的PCB设计流程框图


f99542029db2cada32f233684f615c74.jpeg

图1-2 规范的PCB设计流程图


1、资料的准备内容

在设计之前,确保以下资料都准备好了,资料的充分准备可以保证后续设计PCB的准确性和避免重复设计的导致的设计周期延长。

1)原理图:项目设计的最终版本原理图,注意分页原理图都要包含在项目工程中;

2)封装库:PCB封装库或者用于新建封装库的元器件Datasheet文件;

3)结构图:包含主要接插件摆放位置、限高内容的DXF结构文件;

4)设计说明:包含关键信号的处理、芯片的特殊设计要求及制板工艺说明等;

5)重要器件数据手册:供设计时参考推荐布局、布线。


2、网表的导入

将原理图网络连接、器件封装导入到PCB中,确保导入没有偏差,如果原理图设计有更新,一定记得把最新原理图重新导入PCB中


3、结构的导入

将板框、器件定位信息等内容导入到PCB中,如结构有更新,一定记得把最新结构图DXF重新导入PCB中进行核对。


4、项目分析

1)原理框图:分析清楚整个项目设计上的主要功能、使用到的模块和接口信息,对此类模块信息进行检索,了解其对应的设计要求;

2)设计说明解读:包含关键信号的处理、芯片的特殊设计要求及制板工艺说明进行解读,方便融入对应的PCB设计中;

3)电源二叉树:分析整个项目的电源情况,理清楚电源流向、电流大小等情况,一般原理图设计中有包含,如图1-3所示。


02417b11e1d9bc78ec5ca5b89702279c.jpeg

图1-3 电源二叉树


5、功能模块抓取

由于目前产品集成度越来越高,大部分产品功能分开清晰,PCB设计可以按照原理图功能模块页面抓取相应模块上的器件,方便设计者后期理清功能模块之间的信号流向,并可在PCB板里面绘制模块辅助线评估模块在PCB里面的大概位置和占用范围大小,如图1-4所示。


bd96af3a95d3b95ed2ee63da7d67a7c9.jpeg

e411dc2dbbb4dc0e15359556d812e142.jpeg

图1-4 模块化信号流向分析与绘制模块辅助线


6、结构器件布局

按照DXF结构文件,导入板框,将有位置要求的器件,放置到正确位置,如果结构有更新记得第一时间进行结构的更新,以免导致后续工作的重复。


7、关键器件布局

将主要的IC按照信号流向放置到PCB上合适位置,此步骤其实就是PCB的预布局,预布局可以对整体PCB的信号流向及PCB布局密度均衡性进行有效的规划,提高布局的合理性。


8、分模块化布局

将所抓取的模块分别布局好再放到PCB上合适位置,此部分布局为详细PCB布局了,基于预布局部分按照布局要求规范布局,布局规范请参考后文中模块的规范要求,注意考虑打孔走线的位置。


9、布局优化

微调已经布局好的器件,使整个PCB布局更加合理、美观


10、层叠设置

根据PCB布局之后的飞线,需要估算出设计所需要PCB层数,根据层数、板厚,运用叠层软件(或者根据已有叠层模板)计算出线宽、线距。


11、规则设置

在PCB上设置线宽、线距规则,方便走线,规则设置需要核对设计要求及板厂的工艺要求,否则可能导致整个重新布线。


12、Class设置

根据IC信号要求,对有设计要求的信号进行分组,将其设置到不同的Class里,并设置好相应的Class规则。


13、布线

将相同网络的信号连通,布线完成后需要对整个PCB布线要求进行核对,对电源布线进行检查,是否满足载流要求,是否满足各类认证要求。


14、绕线等长

将有时序要求的信号线进行等长处理,等长时注意信号的误差要求。


15、布线优化

优化已经连通的走线,使走线更美观、合理。对关键信号重点进行检查并按照最优处理。


16、电源处理

此步骤主要是对单板中的电源信号进行优化与电源平面的分割,确认满足载流要求,在平面分割时注意重要信号线不要跨分割,如图1-5所示。


969850cecacbc4622d51970f71f0db9d.jpeg

6d8f895bc5211a397aeac6d65e0a7bdc.jpeg

图1-5 电源平面的分割


17、DRC检查

1)连通性检查:检查项目中的信号是否全部连通,无开路情况;

2)其他检查:检查项目中的信号是否有短路情况、是否有规避禁布区、规避器件限高等内容。


18、丝印处理

合理摆放PCB上器件位号丝印,添加相应版本号、生产标识(防静电、SN号、企业LOGO等)等内容,摆放时注意丝印要方便可以生产,方便可读性。


19、项目检查

最后核对一遍客户所有的设计要求,并检查生产工艺性。


20、光绘输出

在EDA软件中设置并输出Gerber光绘文件,如果是同类型的产品,可以对Gerber输出进行模板设置,方便下次更新时可以一键输出。


21、光绘检查

虽然EDA工具对设计的PCB进行了有效的DRC检查,但是输出的Gerber还应该在一些行业的生产工具上检查生产可制造性问题,可以让产品的成产问题解决在设计阶段,推荐华秋DFM等工具对所输出的光绘文件进行检查。


22、文件归档

一个好的设计文件归档可以帮助我们有效的提高部门和部分之间的沟通与资料的发送,根据经验,推荐设计者按照如下进行文件归档

1)ASM文件夹:包含装配文件,顶底层装配图,供客户装配器件→发送给贴片厂

2)CAM文件夹:包含光绘文件、IPC网表、PCB生产说明文档→发送给PCB制板厂或贴片厂

3)DXF文件夹:包含项目使用的结构图文件→发送给结构工程师

4)PCB文件夹:包含项目最终的PCB文件→工程设计师改版与设计

5)SCH文件夹:包含项目最终的原理图文件→工程设计师改版与设计

6)SMT文件夹:包含贴片坐标文件及钢网文件→发送给贴片厂

声明:本文凡亿教育原创文章,转载请注明来源!


http://chatgpt.dhexx.cn/article/WY84CqpZ.shtml

相关文章

圆排列

一、圆排列简介 圆排列简单来说,就是排列的数围成了一个圈,如下图: 二、圆排列数 假设总共有 n n n个数,圆排列数为 x x x,先给出结论: x A n n n ( n − 1 ) ! x \frac{A_n^n}{n}(n-1)! xnAnn​​…

16回溯法——圆排列问题

16基于回溯法的圆排列问题 目录 16基于回溯法的圆排列问题1. 问题2. 解析举个栗子 3. 设计4. 分析5. 源码 1. 问题 圆排列问题:给定n个圆的半径序列,将它们放到矩形框中,各圆与矩形底边相切,求具有最小排列长度的圆排列。 2. 解…

五分钟解决圆排列问题

给定n个大小不等的圆c1,c2,…,cn,现要将这n个圆排进一个矩形框中,且要求各圆与矩形框的底边相切。圆排列问题要求从n个圆的所有排列中找出有最小长度的圆排列。例如,当n3,且所给的3个圆的半径分别为1,1,2时…

用回溯法解决圆排列问题

教材是用的王晓东的《计算机算法设计与实现》第四版&#xff0c;c版 一下是问题描述&#xff1a; 算法实现: /***能确定一个正确的想法&#xff08;即每种情况都能考虑到&#xff0c;然后找一个最简单而准确的方式表达出来&#xff09; ***/ #include<iostream>//此问题…

回溯法之圆排列问题

问题描述 给定n个大小不等的圆c1,c2,…,cn&#xff0c;先要将这n个圆排进一个矩形框中&#xff0c;且要求各圆与矩形框的底边相切。圆排列问题要求从n个圆的所有排列中找出有最小长度的圆排列。例如&#xff0c;当n3时&#xff0c;且所给的3个圆的半径分别为1、1、2时&#xf…

5-10 圆排列问题(回溯)

5-10 圆排列问题(回溯) 给定n个大小不等的圆c1, c2,…, cn&#xff0c;现要将这n个圆排进一个矩形框中&#xff0c;且要求各圆与矩形框的底边相切。圆排列问题要求从n个圆的所有排列中找出有最小长度的圆排列。 例如&#xff0c;当n3&#xff0c;且所给的3个圆的半径分别为1&a…

【2019华为笔试】召唤师的技能——圆排列,翻转和项链排列

题目描述&#xff1a; dota游戏里面&#xff0c;召唤师可以控制冰雷火三种元素&#xff0c;并通过元素组合产生新的技能。现在我们修改了张新的地图&#xff0c; 地图中他能够控制n种元素&#xff0c; 并且将m个元素围成一个圈组成一 个新技能(这m个元素通过旋转或反转&#x…

圆排列问题

问题 圆排列问题&#xff1a;给定n个圆的半径序列&#xff0c;将它们放到矩形框中&#xff0c;各圆与矩形底边相切&#xff0c;求具有最小排列长度的圆排列。 解析 首先对于这个问题&#xff0c;使用分支限界计算&#xff0c;一定会遍历所有的排列情况&#xff0c;剪枝就是当前…

图文并茂详尽剖析圆排列问题

参考资料 https://blog.csdn.net/liufeng_king/article/details/8890603https://blog.csdn.net/qq_32400847/article/details/51474105https://blog.csdn.net/yzmck/article/details/4302554 原理解释的很赞http://www.doc88.com/p-079198350775.html http://www.docin.com/p-…

圆排列问题详解(原理+代码)

问题描述 给定n个大小不等的圆c1,c2,…,cn&#xff0c;现要将这n个圆排进一个矩形框中&#xff0c;且要求各圆与矩形框的底边相切。圆排列问题要求从n个圆的所有排列中找出有最小长度的圆排列。 问题分析 圆排列问题的解空间是一棵排列树&#xff0c;我们用回溯法在整个排列…

java字节序、主机字节序和网络字节序扫盲贴

java程序员是幸福&#xff0c;因为相对于C/C的不跨平台&#xff0c;JVM为我们屏蔽了大量的底层细节和复杂性&#xff0c;让我们能够将精力放在实现特定的业务逻辑上&#xff0c;所以使用java开发项目效率是比较高的。同时java程序员是悲哀的&#xff0c;就是因为JVM屏蔽了很多技…

字节序、位序

字节序 字节序&#xff0c;又称端序、尾序&#xff0c;英文单词为Endian&#xff0c;该单词来源于于乔纳森斯威夫特的小说《格列佛游记》&#xff0c;小说中的小人国因为吃鸡蛋的问题而内战&#xff0c;战争开始是由于以下的原因&#xff1a;我们大家都认为&#xff0c;吃鸡蛋前…

字节序的详细讲解

字节序 1、字节序的特点2、字节序转换函数2.1、htonl函数 发 将主机字节序的IP地址 转换成网络字节序的IP地址2.2、ntohl函数 收 将网络字节序的IP地址3.3、htons函数 发 将主机字节序的端口 转换成 网络字节序的端口3.4、ntohs函数 收 将网络字节序的端口 转换成 主机字节序的…

理解字节序 大端字节序和小端字节序

以下内容参考了 http://www.ruanyifeng.com/blog/2016/11/byte-order.html https://blog.csdn.net/yishengzhiai005/article/details/39672529 1. 计算机硬件有两种储存数据的方式&#xff1a;大端字节序&#xff08;big endian&#xff09;和小端字节序&#xff08;little …

什么是字节序?

字节序 字节序&#xff0c;顾名思义&#xff0c;就是字节组织的顺序。我们可以将其根据其存储时从低位开始还是从高位开始分为两种&#xff0c;具体如下&#xff1a; 类型简写本质大端BE(big endian)将高序字节存储在起始地址小端LE(little endian)将低序字节存储在起始地址 …

网络字节序和主机字节序详解(附代码)

一、网络字节序和主机字节序 网络字节序和主机字节序是计算机网络中常用的两种数据存储格式。 主机字节序&#xff1a; 指的是在计算机内部存储数据时采用的字节排序方式。对于一个长为4个字节的整数&#xff0c;若采用大端字节序&#xff0c;则该整数在内存中的存储顺序是&a…

字节序

1.字节序 字节序&#xff0c;又称端序或尾序&#xff0c;指的是多字节数据在内存中的存放顺序。例如一个int型变量x占用4个字节&#xff0c;假设它的起始地址&x为0x10&#xff0c;那么x将会被存储在 0x10、0x11、0x12和0x13位置上。 在用C写的客户端和Java写的服务端的通…

字节序详细解读

概念来了&#xff01;&#xff01;&#xff01; 字节序&#xff08;Byte Order&#xff09;是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序。 在计算机中是以字节为单位&#xff0c;每个地址对应一个字节&#xff0c;一个字节8bit。在C中&#xff0c;除了8bi…

JitPack的简单使用

JitPack的简单使用 由于工作需要,我要搭建多个项目,但是每个项目的基类,工具包,自定义的view,都是一样的,需要将这些代码复制到好几个项目里,所以萌生了一个想法,将这些基本不会改变的代码,做成一个依赖,一行代码引入项目 打开你的项目Git地址,创建发行版本 打开jitpack官网…

Gitee项目发布到JitPack

Gitee项目发布到JitPack 发布前的准备将Gitee项目发布到jitPack使用自己发布的库 发布前的准备 1.搜先注册一个Gitee账号 2.新建一个本地的android项目&#xff0c;并上传到Gitee。 (1) 根目录下build.gradle配置 dependencies {...classpath "com.android.tools.build:g…