ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PCB逆向工程实操:Auto CAD校准底图,嘉立创EDA重建原理图

PCB逆向工程实操:Auto CAD校准底图,嘉立创EDA重建原理图 做硬件这几年来我最怕听到的一句话是“这块板子没有原理图。”它可能是一块烧毁的电源板可能是一台停产设备上的控制板也可能是客户从老库里翻出来的一块样品板。正面反面全是器件背面过孔密密麻麻别说原理图连个像样的位号图都没有。这时候能指望的就是把实物PCB的物理信息一点点抠出来用工具把它还原成一块可以看懂、可以修改、甚至可以重画的原理图——这个过程就是PCB逆向工程。这篇文章记录的是我实际操作过的一套方法用Auto CAD处理实物图片、校准坐标用嘉立创EDA重建原理图。这套流程不一定是最快的但足够稳适合硬件工程师、维修工程师也适合刚入门、想搞懂一块成品板子工作原理的学生。先把流程和工具讲到明处后面每步都会搭配我踩过的坑。1. 项目概述拿到陌生PCB先想清楚要还原到什么程度1.1 逆向工程不等于“抄板”很多人一听“逆向”就觉得是抄板把PCB的外形、走线、过孔位置量下来复制一份一样的板子。但PCB逆向和几何抄板差别很大。抄板输出的是“和实物相似的几何图形”重点关注尺寸、间距、铜箔走向而还原原理图是要提取“元件之间的电气连接关系”转化成一张逻辑清晰、能表达设计意图的图。举个例子你抄板能抄出一块板子但抄不出为什么这颗电阻要接在电源芯片的使能脚和地之间也抄不出为什么这个网络的走线要绕半圈避开另一个网络。这些设计逻辑只有在原理图里才能体现。所以维修、改版、学习、兼容替换这些需求真正需要的不是抄板而是逆向出原理图。动手之前先把目标定清楚要复刻实物就去做几何抄板要理解逻辑就来做原理图逆向。目标不同工作量和工具选型完全不同。1.2 判断板子的复杂度和逆向难度拿到板子先不要急着拆先做一个可逆性的评估。单层板和双层板最容易处理顶层底层走线肉眼可见配合万用表测量基本能还原七八成。四层板开始麻烦中间有电源层或地层内层走线看不到只能通过过孔网络和外围器件反推。六层板以上如果还有BGA封装、DDR总线这些高密度电路纯粹靠物理测量已经很难完整还原更多要依赖逻辑推断和参考设计比对。板子的类型也要区分。开关电源板重点看功率回路、地线处理和星型接地MCU控制板重点看电源、复位、晶振、下载电路接口转接板重点看电平转换和ESD保护。不同类型的逆向策略差别很大投入的时间也完全不一样。一块20个元件的双层板认真做一天能出图一块带DDR的多层核心板可能要做一两周。先评估再安排时间别一上来就往最大难度冲。1.3 能拿到原厂方案就优先拿资料热词里有人搜“sw6206 原厂方案(包含pcb,原理图,寄存器列表,bom 等全套资料).rar”这个思路非常对。原厂方案包通常包含原理图、PCB Layout、寄存器配置、BOM清单如果合法获得逆向工作完全可以跳过或者只做核对。我见过不少工程师把大量时间花在逆向一块其实能找到参考设计的板子上最后拿到原厂资料一比对发现大部分电路结构早就有人画好了。所以收到一块陌生板子之后第一件事不是拆机器而是先查主控IC型号和方案商。去官网、代理商页面、技术论坛搜参考设计很多快充、移动电源、传感器模组这类方案都有公开的完整资料。确定没有资料可参考时再启动逆向流程。记住逆向不是炫技能合法拿到资料是最高效的路径。2. 整体流程与工具分工Auto CAD和嘉立创EDA各自负责什么2.1 五步工作流总览我把自己的逆向流程拆成了五个阶段每个阶段都有明确的输入、输出和工具。整理成表格放在下面方便对照。阶段主要任务输入输出工具信息采集拍照、扫描、记录丝印实物PCB高清图片、扫描图、位号记录手机、扫描仪、相机拆解与测试拆件、清洗、测连通性带元件PCB元件位号表、网络连通表热风枪、烙铁、万用表底图校准图片导入、比例矫正、标注器件坐标扫描图/照片1:1比例CAD底图、器件引脚坐标Auto CAD器件建库创建原理图符号、核对引脚连通表、芯片手册可用的原理图符号库嘉立创EDA原理图绘制按电源域→主控→外围绘制并校验连通表、CAD底图可读原理图、BOM清单嘉立创EDA、万用表这个流程不是死的简单板子可以合并步骤复杂板子可能需要反复循环。但大方向建议保持不变先采集信息再拆解测试然后做底图最后画原理图。顺序乱了后面返工的概率会大很多。2.2 为什么用Auto CAD当“中间桥梁”直接打开嘉立创EDA导入图片也能画原理图为什么还要绕一圈Auto CAD原因在于逆向工程需要处理的原始素材是高清扫描图和实物照片这类图片文件很大直接在EDA软件里放大缩小很容易卡顿。而Auto CAD对图像附着、图层管理、比例缩放这些操作非常顺手跑大图也稳定。更重要的是CAD的测量和校准能力。扫描图放进CAD之后可以先用已知距离校准比例再对器件引脚一个一个标注坐标整个过程可以用命令快速完成。CAD的图层功能也很适合逆向顶层丝印一个层底层丝印一个层焊盘位置一个层网络标注一个层想关哪个关哪个思路非常清晰。说白了CAD这步是把“实物照片”变成“工程图纸”的过程后面在嘉立创EDA里画原理图时就可以照着这张“工程图纸”施工了。2.3 工具替代方案与选择建议如果电脑里没有Auto CAD也不用特意去装。支持导入图片、可以校准比例、能分图层的矢量绘图工具都可以替代比如LibreCAD、FreeCAD、Inkscape甚至直接用嘉立创EDA专业版的“背景图片”功能。核心需求只有一个能导入位图、能校准比例、能按图层标记。但有一点提醒无论用哪个工具最后一定要导出一个1:1的矢量参考文件比如DXF格式。因为后续导入嘉立创EDA时如果是图片位图只能做视觉参考尺寸没法精确复用如果是矢量DXF可以直接作为坐标参考甚至能辅助摆封装。我习惯用Auto CAD是因为它命令成熟、资料多并不是说它不可替代。3. 实物拆解与信息采集逆向工程最容易被忽视的前置工作3.1 拆解前的“原始状态”记录拿到板子就动手拆是新手最容易犯的错。拆之前先用手机或相机把正面、反面、接口区域、异形结构全部拍一遍。拍照建议用三脚架固定手动对焦到器件丝印上保证字体清晰。板子旁边放一把钢尺作为比例参考。如果板子面积大可以分段拍摄后期用软件拼接。这张原始照片的价值在拆完元件之后才开始体现。比如拆到一半发现某个小电阻不知道原来装在哪翻出照片一看就清楚了。又比如焊盘意外脱落需要确定原来的连接路径原始照片常常是唯一线索。我还会顺手把板子上的主要IC丝印、接口类型、版本号手写记录在笔记本上形成一个纸质的“现场档案”。3.2 扫描仪比手机拍照更适合做底图等拆掉大元件之后建议把PCB放到普通平板扫描仪上扫描而不是继续用手机拍。平板扫描仪的光学系统让画面几乎没有透视变形成像平直颜色还原也稳定。用600dpi以上分辨率扫描一次得到正反两面的图像作为CAD底图质量非常高。扫描有几个操作细节板子要先清洁用洗板水或酒精擦掉助焊剂和灰尘否则扫描出来全是脏点铜箔反光严重的时候在盖板上垫一张白纸让光线形成漫反射能减少高光反射。导出格式建议TIF或者高画质PNG不要用低质量JPG。扫描图不光是给CAD用也是一份永久存档以后复盘随时可以调出来看。3.3 拆件顺序与工具技巧拆件是一个容易让人崩溃的环节尤其是遇到散热焊盘巨大的电源模块。我自己的拆件顺序是这样先拆高个子元件电解电容、接插件、散热片、大电感这些元件会挡住下面的走线和器件。再拆中体积元件MOS管、电源IC、大封装逻辑芯片。最后拆小阻容和排阻。小元件拆下来容易混所以拆之前要先拍照编号拆完之后立刻按位号装进标记好的自封袋。“大的电源模块如何从PCB上拆下来用热风枪感觉没什么效果”这个问题我专门踩过。大功率电源模块的散热焊盘通常连接大面积铺铜热风枪吹半天锡也不化就是因为热量被铜皮导走了。正确做法是先加预热台把板子整体加热到120℃左右再用大号风嘴设置320到380℃热风中等风速配合助焊剂局部吹焊盘。锡熔化后轻轻一推就下来了。直接把热风枪开到最大猛吹结果往往是锡没化塑料接插件先变形了或者板子已经起泡。3.4 万用表网络连通性测试要趁早拆完件PCB就剩下裸露的铜箔和焊盘这是测量网络连通性最好的时机。用万用表蜂鸣档从电源输入端开始先把GND网络的所有可能引脚量一遍再量VCC网络之后逐个芯片引脚展开。每确认一个网络就把这一组引脚编号记录下来。我习惯用Excel表格记录列名包括网络名称、起始位置、引脚编号、关联器件、备注。这张连通表是整个逆向过程的“硬数据”后面画原理图时它就是标准答案。需要注意的是测量时表面有氧化层或残留助焊剂会导致接触不良先用酒精清洗板面或者用橡皮擦擦拭焊盘保证探针接触可靠。4. 用Auto CAD完成底图校准与器件坐标提取4.1 导入图片并把比例校准到1:1在CAD里把扫描图作为图像附着进来之后第一件事是校准比例让图片中的尺寸和实物1:1对应。找两个实物上距离已知的点比如标准DIP封装引脚间距2.54mm或者板子两个螺丝孔中心距30mm。在CAD里选择底图用SCALE命令指定基点和比例因子把这两点之间的距离缩放到实测值。还有一个更省事的办法是用ALIGN命令将图片上两个点和图纸上的两个理论位置对齐软件会自动计算旋转角度和缩放比例。校准完成后一定要用第三个已知距离交叉验证比如量一下板子长边确认和实测一致误差控制在0.1mm以内。只有这一步做好了后面所有提取出来的坐标才是可信的。4.2 图层划分与器件引脚描绘CAD里的图层管理是逆向底图的核心。我常用的图层规划如下TOP-SILK红色画顶层丝印和位号BOT-SILK黄色画底层丝印TOP-PAD绿色画顶层焊盘位置BOT-PAD青色画底层焊盘位置NOTE白色写测量值和网络标注。每个器件画一个矩形外形按实际尺寸放置焊盘圆或方框把位号写在旁边。这个阶段的关键不是画得精美而是把每个引脚的位置、方向、间距固定下来。画完后再对照实物检查几个关键芯片的引脚坐标比如主控IC的第一脚方向和间距确认无误后再进入下一个环节。4.3 从CAD导出给嘉立创EDA用的文件CAD底图做好之后要把它传递给嘉立创EDA使用。最常用的方式是导出DXF矢量文件。在CAD里把器件外形和焊盘位置图层单独保留其他层关掉导出DXF。嘉立创EDA专业版支持导入DXF导入后可以放在用户层或辅助层作为画原理图时的位置参考。如果只是想快速对照着画图也可以直接截图或导出PNG在嘉立创EDA原理图编辑页面的“画布背景”里插入参考图。这种方式最简单画图时开着参考图按引脚关系铺开即可。不过要注意位图和矢量图最大的区别是位图不能量尺寸矢量图可以。所以导出DXF这个步骤我还是建议保留方便后续如果要重布PCB时直接把坐标用起来。4.4 底图校准的几个坑扫描图通常变形不大但手机照片几乎都带透视变形简单的缩放纠正不了。这种情况下我通常找板子的矩形特征比如板边或者连接器外壳画一个理论矩形再用CAD的拉伸命令把照片角点拖到理论矩形上做近似矫正。这个方法只能救急精度有限关键引脚间距最好还是用游标卡尺在实际板子上量。另外CAD里单位设置也很容易踩坑。有些CAD模板默认英制单位尺寸标注显示的是英寸导入嘉立创EDA后所有尺寸都变成25.4倍。解决办法是CAD里先把单位改成公制毫米再导出DXF嘉立创EDA里也确认工程单位是毫米。导入后立刻量一个已知距离验证别等画到最后才发现比例错了。5. 在嘉立创EDA里重建原理图从“看得见”到“画得出”5.1 建库还是直接调库嘉立创EDA自带海量元器件库常见MCU、阻容、接插件基本都能直接搜到。但逆向工程经常遇到小众IC或者丝印打磨过的芯片库里没有对应符号就需要自己建。我的习惯是正式画图前先把所有需要进原理图的器件在库里查一遍标出哪些直接用哪些需要新建。需要新建的统一整理成清单按封装类型、引脚数量、功能描述排序一次性建完。别看这个准备工作占时间它能避免画到一半停下来找元件让绘图过程一气呵成。建符号的时候引脚编号必须和实际芯片手册保持一致尤其注意电源和地引脚这是网络正确连接的基础。5.2 按“电源域→主控→外围”的顺序画图一块板子再复杂也是从电源开始的。先把输入接口、保险丝、ESD保护、极性保护、DC-DC或LDO画出来标注好各级电压。然后画主控或核心芯片把它的VDD、VSS、BOOT、RESET、时钟引脚先连好。最后再根据每个功能模块的实测连通性从主控引脚往外铺开。这个顺序的好处是先明确电源域后面画到任何模块都能快速判断它是挂在5V还是3.3V上主控先定位其他器件就有了坐标中心不会画着画着不知道往哪儿放。而且电源部分是整块板子的骨架如果电源画错了后面所有模块的电压假设都会跟着错返工成本极高。5.3 网络标签和星型接地的处理原理图不是PCB走线不一定要画出来大多用网络标签沟通。逆向时我特别注意电源和地网络的命名规范数字地叫GND模拟地叫AGND功率地叫PGND分别用不同网络标签。如果实测发现PCB上模拟地和数字地不是直接连通而是通过一个0欧电阻或磁珠单点汇合那这就是典型的星型接地布局。画原理图时这种接地关系必须如实体现两个独立地网络再通过那颗0欧电阻或磁珠相连。千万不要把所有地都画成一个GND符号。热词里有人搜“嘉立创eda如何布线星型接地”“eda原理图绘制星型接地”说明这里确实容易困惑。原理图阶段把地网络区分清楚后期Layout或者改版时才能保留原设计的抗干扰特性。5.4 边画边验证的工作习惯画完一块区域随手拿万用表验证几个可疑引脚比全部画完再统一验证要省事得多。比如刚把USB接口的D/D-连到主控的PA11/PA12立刻用表量一下实物上USB座的D焊盘和主控对应引脚是否为导通导通则说明连接关系正确不导通就说明中间还有串联电阻或保护器件需要回到实物上确认。每天画完图把新增的网络列表和Excel连通表做一次比对。我会做一个简单的对照表左边是实测记录的网络连接右边是原理图里的网络标签逐条打勾。不一致的地方立刻列出来当天解决不拖到第二天。这个习惯帮我挡下了非常多低级错误。6. 功能模块识别与外围器件推断6.1 丝印识别的实用方法大IC丝印一般直接印完整型号比如STM32F103C8T6、STC89C52RC用放大镜或者带微距的手机就能确认。小贴片器件就麻烦一些通常只印几个字符比如一颗三极管可能印“J3Y”一颗稳压管可能印“Z1”。这时候有两个办法一是查丝印码对照表很多网站和软件提供按丝印字符、封装类型、引脚数量反查器件的功能。二是看周边电路结构这是更可靠的方法。一颗SOT-23封装的器件旁边如果接了电感和大电容大概率是DC-DC的开关管或续流二极管如果它接在USB数据线上那很可能是ESD保护器件。外围电路的特征往往比丝印字符更能说明器件角色。6.2 用外围特征快速判断芯片角色分享一些我在逆向时常用的“识别套路”电源类芯片周围必有电感、大电解电容、反馈电阻、使能脚上拉电阻丝印经常是“3400”“662K”这类简码。MCU或数字核心周围有晶振、复位电路、调试接口以及密密麻麻的退耦电容。比如STM32F103C8T6BOOT0引脚通常会接一个10k电阻到GND。传感器接口有自己的特征比如DHT11这类单总线器件数据线上会有一个4.7k到10k的上拉电阻TB6612这类电机驱动会有逻辑电源和电机电源分开的滤波电容。显示屏或触摸芯片比如ILI2511周围会有I2C总线的上拉电阻和复位电容。这些套路不是芯片手册上的内容而是现场经验积累出来的“气质判断”。即使丝印被打磨掉只要外围结构特征对得上也能猜个八九不离十。猜完之后用万用表联通性验证几组关键引脚答案就锁定了。6.3 依靠原厂方案和参考设计节省时间前面提过能拿到原厂方案包是最高效的路径。以SW6206这类移动电源快充协议IC为例原厂方案包通常会包含完整原理图、PCB Layout、寄存器列表和BOM清单。拿到这些资料后不需要照抄而是拿官方原理图当“标准答案”和你的逆向结果做比对。哪些网络关系错了、哪些电容电阻值标反了几分钟就能发现。所以逆向过程中每识别出一个关键IC就先搜一下这个IC的官方参考设计。官网、代理商页面、技术论坛都要试一遍。很多芯片厂商公开的参考设计里还包含设计说明和应用笔记这些文档能帮你理解电路设计意图而不是空对空猜走线。6.4 不确定的地方要标注不要硬猜逆向出来的原理图不可能100%和原厂一致因为有些参数是实物看不出来的。比如一颗芯片的限流电阻能测出阻值但芯片内部的限流阈值设置需要查手册才能换算某个引脚究竟是悬空还是内部上拉从外部可能无法区分。我习惯在原理图里用注释或TODO标注这些不确定项等后续调试或者拿到更多资料时再补充。原理图里我会给每个模块加一个备注框写明“模块功能未知”“C12实际装贴为NC”这类信息。逆向工程的目标是能理解、能维修、能改版不是追求一张和原稿完全一致的文件这个心态要摆正。7. 常见问题与排查技巧实录7.1 器件拆不下来和焊盘损坏大电源模块拆解前面详细说过一次这里再补充一点如果板子背面有散热焊盘或大面积铺铜热风枪的风量再大也不容易化锡因为热能一直在被铜皮导走。没有预热台的话可以用高温棉垫着先吹热板子整体再集中吹焊盘。拆下器件后如果发现焊盘脱落不要慌走线层的焊盘脱落后可以用细漆包线飞线再用绿油固定如果是GND焊盘连到散热铜皮脱落后直接就近找一个过孔作为连接点。7.2 多层板“看不见”的内层走线四层及以上PCB的内层走线无法直接观察这是物理逆向最大的难点。处理方式是把所有过孔当作网络节点先用万用表量出哪些过孔属于同一网络再在CAD底图里把同网络的过孔标成同一颜色。这样即使看不到内层铜皮也能通过过孔网络图重建逻辑连接。如果内层是完整的电源层或地平面通常表现为大量过孔接到同一电压。多测几次就能确认这个假设。极端情况下可以物理研磨板子逐层拍照重建但成本高、不可逆除非板子价值非常高否则我都不推荐。多数四层板通过过孔网络推断加外围验证就能解决。7.3 丝印残缺和暗色板子深色阻焊板或者丝印颜色浅的板子普通照片根本看不清丝印。这里分享一个小技巧给板子表面薄薄涂一层白色滑石粉或粉笔灰再用布擦掉多余粉末丝印凹槽里留下的粉会让字符更清晰。这个技巧对深色板特别有效。另一个思路是改变打光角度。拍照时把光源从侧面打让字符的凹凸产生阴影也能显著提升可读性。如果依然看不清位号就用“U?”、“R?”占位等原理图逻辑确定后再回填。逆向的关键是先把连接关系搞清楚位号是最后补全的收尾工作。7.4 CAD与嘉立创EDA的单位比例对不上最典型的错误是CAD图纸用英制单位导入嘉立创EDA后所有尺寸都变成25.4倍。统一处理办法前面说过CAD里先把单位改成公制毫米再导出DXF嘉立创EDA里也确认工程单位是毫米。导入后立刻量一个已知距离比如板边长度或某个插座引脚间距看是否和实物一致。我在CAD里校准完比例后会画一个50mm×30mm的参考矩形放在图框外。导入到嘉立创EDA后先量这个矩形确认无误再开始使用参考图。这个不起眼的习惯帮我避免了很多次低级错误。7.5 万用表蜂鸣档误报蜂鸣档响不代表两点一定直连。板上有ESD保护二极管、MOS管体二极管、IC内部保护二极管时反向测量也会响电阻值往往在几百欧到几千欧。所以测网络时不仅要听蜂鸣还要看万用表显示的电阻值。真正直连的铜箔网络电阻值应该在0.1Ω以下。测到几百欧就说明两点之间隔了一个二极管结或保护器件不能直接当同网络处理。这个问题在USB口、电源入口这些保护器件密集的地方特别容易踩。我会在Excel连通表里加一列“导通电阻值”记录每次测量的具体读数方便后期判断哪些是真的直接连接哪些是经过半导体结的假导通。7.6 测试探针接触不良导致误判焊盘表面如果有氧化层或残留助焊剂万用表探针压上去可能接触不良导致该响的没响。解决办法是先酒精清洗板面或者用橡皮擦轻轻擦一遍焊盘测量时稍微旋转探针增加接触面积。如果是很难清掉的旧板也可以用尖头镊子轻轻刮一下焊盘表面让金属露出新鲜面再测。这一点看起来很小但对逆向效率的影响很大。一次接触不良可能让你误判一个网络接着往下画好几条错误连接最后校验时才发现返工量成倍增加。7.7 原理图画完后的整体校验清单最后原理图画完后我会做三件事把原理图里的所有网络标签列表导出来和Excel连通记录逐条比对确认没有遗漏和错误。生成BOM把实物板子上的每个器件按位号逐一核对数量、阻容值、封装都要对应。这一步能发现手误写错参数的问题。如果条件允许把逆向原理图导入PCB软件按原板实测尺寸摆放用DXF底图做一次拓扑对照看主要信号链路是否一致。这三件事做完一块板的逆向工作才算真正闭环。我见过不少人画完原理图就以为完工了结果BOM里漏了一个电容或者电源网络标错名字后面调试时才发现。校验环节不能省。个人体会是PCB逆向这个活一半是技术一半是耐心。技术上有工具、有方法照着流程走总能出结果但耐心才是贯穿全程的东西从拆解时的细致记录到CAD里一格一格的描点再到万用表上百次量测每一步偷懒后面都会用更大的返工来偿还。最后再分享一个习惯我每次逆向完一块板子都会把“实物照片 CAD底图 原理图 Excel连通表”打包成一个工程文件夹按日期和板卡名称命名存档。几个月后如果有人问起这块板子直接打开文件夹就能把整个推理过程找回来比自己脑子里记的东西可靠得多。希望这套方法能让你下次面对一块陌生PCB时少一点无从下手多一点解题思路。
返回列表