鸣涧 发表于 2023-10-17 16:08:54

【KiCad】KiCad 逆向工程(抄板)攻略(一):Gerber 转 PCB

【KiCad】KiCad 逆向工程(抄板)攻略(一):Gerber 转 PCB


“ 虽然不提倡,但逆向工程始终是工程领域不可回避的话题。今天就来聊聊如何使用 KiCad 进行逆向工程。先看看如何把 Gerber 转成 PCB。 ”
为什么需要 Gerber 转 PCB?Gerber 又称光绘文件,是 EIA 的标准格式,被所有的 PCB 制造厂商所接受。也就是说无论您使用的是 KiCad,Altium Designer 还是 Allegro,只要设计完成之后转成 Gerber 的格式,就可以发送给板厂制造,而不需要担心格式兼容的问题。另外,有时出于“保密”的考量,设计人员不愿意把原始的设计文件直接发送给板厂(担心被 copy),也通过 Gerber 文件和板厂沟通。

如果您的产品很优秀,自然会引来别人的仿效,最简单的方式就是直接复制你的 PCB 和 Firmware(如果有的话)。但大多数情况下 copy 不走样是不行,仍然需要对板子做一些改动。如果改动较小,比如只是替换一下 Logo,修改一下板子大小,CAM 软件就可以解决问题;但如果希望替换某些器件或者对线路进行变动时,CAM 软件就无能为力了,必须使用 PCB 设计工具进行重新编辑。也就是说,最好将 Gerber 转成 PCB 文件。

那 Gerber 文件是否能逆向成 PCB 呢?答案显然是肯定。但问题在于,Gerber 本身是图形文件(可以类比胶片),即使将 Gerber 转成了 PCB,有很多对象还是以图形的方式表示,而无法识别为 PCB 工具可使用的对象(比如器件、焊盘、敷铜)。因此还需要进行大量的清理工作,这就是为什么一般有经验的工程师宁可自己重新画图,也不愿意在别人的基础上修改(还需要猜测电路设计的意图)。
KiCad 中 Gerber 转 PCB
我们用一组 Altium 生成的 Gerber 为例,演示如何使用 KiCad 将 Gerber 转成 PCB。下面是 Altium 的一个 2 层 PCB 的示例文件:
使用 Altium 生成 Gerber 及 NC Drill 钻孔文件后,包含以下内容:
打开 KiCad 的 Gerber 查看器:
点击 “文件 -> 打开自动检测到的文件”,并全选 Altium 生成的内容。
以下是导入后的结果。

切换层的显示,检查一下 Gerber 和 钻孔是否都被正常导入:
点击左上角的 “导出到 PCB 编辑器” 命令:

做一下层的映射:

Gerber 文件夹中就会生成一个 KiCad 的 PCB文件。打开看一下效果:

好像看着还行,不过哪里总有些不对劲呢...

PCB 的问题及清理
Gerber 转换成 PCB 后,最大的问题是没法提取独立的“器件封装”。由于 Gerber 本身并不包含器件的信息,而只是单纯的图形组合,因此转出的 PCB 也只是各类图形对象的组合。比如,PCB 中没有焊盘,孔会被转换为过孔,焊盘会被转换为图形对象。

因此用户必须自己重新绘制自己的封装,这是清理过程中工作量最大的部分。当然,我们建议把原理图也重新实现一下,然后关联原理图中器件对应的封装,最后再同步到 PCB。这样,就可以得到完整的设计了。可以使用 KiCad 的对象捕捉功能,很容易把器件封装移动到正确的位置(记得要删除重复的无用的对象)。

第二个问题,KiCad 对敷铜区域的处理问题不小,以上图为例,左侧的顶层敷铜几乎把所有其他对象都覆盖了。删除这些敷铜区域后,效果会好很多:

当然,还需要清理这些奇怪的热焊盘:

第三,导入的 PCB 没有网络。KiCad 不会像某些 EDA 工具那样根据过孔和连接关系分析网络,所有 PCB 上的对象都处于 “无网络” 状态。这也是为什么建议大家重绘原理图,分配封装后再次同步的原因。
说了那么多转换后的错误,我们现在来总结下哪些信息是可以使用的:
[*]板的外框
[*]孔的位置(包括直插器件的焊盘孔和安装孔)
[*]所有的 PCB 走线(Track)
[*]所有器件的位置

以上都是非常有价值的信息,合理的使用,仍然可以减少布局布线的时间。
如果您可以接受重绘原理图及 PCB 封装,Gerber 转成的 PCB 仍将是一种可能可以提高效率的方法。

其他
KiCad 的 Gerber 转 PCB 工具并不是所有 EDA 工具中最优先的。如果您有大量的 Gerber 需要转换,且可以接受大量的清理工作,您也可以参考一下这篇文章:逆向工程:从Gerber到PCB。当然,除了 Gerber 转 PCB 之外,还有另一种更简单粗暴的方法,将在下章节中介绍。




页: [1]
查看完整版本: 【KiCad】KiCad 逆向工程(抄板)攻略(一):Gerber 转 PCB