ARTICLE DETAIL

资讯详情

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

Allegro 17.4 IPC-2581导出实战:从Gerber歧义到高效板厂对接

Allegro 17.4 IPC-2581导出实战:从Gerber歧义到高效板厂对接 1. 从一块被板厂退回的板子说起前阵子帮一个朋友处理一批板子板厂工程那边发来一封邮件大意是你们这个Gerber我们看着有点歧义钻孔层和阻焊层对不上能不能重新出一版。朋友当时就懵了——文件明明在Allegro里DRC全绿光绘预览也没看出问题怎么到了板厂就对不上了这个场景我相信做硬件的朋友都不陌生。Gerber这套格式诞生于上世纪八十年代本质上是把PCB的每一层拍平成一张二维矢量图钻孔信息单独用Excellon文件描述层与层之间的逻辑关系、网络连接关系、器件属性、叠层结构这些信息在Gerber里全部丢失了。板厂拿到一堆Gerber只能靠人工去猜你的设计意图这个孔是过孔还是安装孔这层铜是电源还是信号阻抗要求是多少猜错了就得来回沟通一来一回就是两三天。IPC-2581就是为解决这个问题而生的。它的全称是Generic Requirements for Printed Board Assembly Products Manufacturing Description Data and Transfer Methodology说白了就是一份数字孪生式的制造数据包——把叠层、网络、器件、钻孔、阻抗、表面处理、甚至BOM信息全部打包进一个文件里板厂用支持IPC-2581的CAM软件打开所有信息一目了然不需要猜。Allegro 17.4 对IPC-2581的支持已经相当成熟但我在实际项目里发现真正在用这个功能的人并不多。大部分人还是习惯性地File → Export → Gerber出一堆RS-274X文件打包发过去。这篇文章就把我在Allegro 17.4里生成IPC-2581的完整流程、踩过的坑、以及和板厂对接时的实际经验一次性讲清楚。提示IPC-2581不是要完全取代Gerber目前国内仍有部分中小板厂只吃Gerber。但如果你对接的是中大型板厂或者做的是多层高密度板IPC-2581能省下的沟通成本非常可观。2. IPC-2581到底比Gerber多了什么2.1 Gerber的信息断层在哪里要理解IPC-2581的价值得先搞清楚Gerber到底丢了什么。我拿一个典型的四层板举例你用Allegro导出Gerber得到的文件列表大概是这样TOP.art— 顶层线路BOTTOM.art— 底层线路GND.art— 内层地平面PWR.art— 内层电源平面SOLDERMASK_TOP.art— 顶层阻焊SOLDERMASK_BOTTOM.art— 底层阻焊SILKSCREEN_TOP.art— 顶层丝印PASTEMASK_TOP.art— 顶层钢网DRILL.drl— 钻孔文件Excellon格式ROUT.drl— 铣边文件这些文件之间是互相独立的。板厂CAM工程师需要手动把这些层对齐、确认钻孔和焊盘的关系、判断哪些孔是金属化孔哪些是非金属化孔、确认叠层顺序和介质厚度。每一步都可能出错。更关键的是Gerber里没有网络信息。板厂做完CAM工程后想做飞针测试得自己根据线路去反推网络连接关系这个过程的准确性完全依赖CAM工程师的经验。板子越复杂出错的概率越高。2.2 IPC-2581的数据结构优势IPC-2581用一个XML结构的文件把所有信息组织在一起。它的核心逻辑是对象化的——每一个焊盘、每一根走线、每一个过孔都是一个带有完整属性的对象而不是一张扁平的图。具体来说IPC-2581包含以下几类信息信息类别GerberIPC-2581层图形数据有有钻孔信息单独文件内嵌含孔属性网络连接关系无完整叠层结构无完整含介质厚度、材料器件属性无完整位号、封装、料号阻抗要求无可嵌入表面处理无可指定BOM信息无可选嵌入这个差异带来的直接好处是板厂拿到IPC-2581文件后CAM软件可以自动识别叠层、自动匹配钻孔与焊盘、自动生成网络表用于飞针测试。原本需要半天到一天的CAM工程处理时间可以压缩到一两个小时。2.3 为什么Allegro 17.4是个合适的起点Cadence从Allegro 16.6开始就支持IPC-2581导出但早期版本的导出选项比较粗糙很多属性映射不完整。到了17.4版本IPC-2581的导出功能已经相当完善支持IPC-2581B和IPC-2581C两个版本可以控制输出内容的粒度。另外Allegro 17.4在国内的使用基数大大部分做通信、服务器、工控类产品的公司都在用这个版本。你导出的IPC-2581文件板厂那边用CAM350、Genesis 2000、或者Ucamco的软件都能正常解析。注意IPC-2581有两个常见版本——IPC-2581B和IPC-2581C。B版本兼容性更好C版本支持更多新特性如嵌入3D模型。如果你不确定板厂支持哪个版本优先选B版本。3. Allegro 17.4导出IPC-2581的完整操作链路3.1 导出前的准备工作在动手导出之前有几件事必须先确认好否则导出的文件要么信息缺失要么板厂打不开。第一确认叠层结构已经正确设置。IPC-2581会把你的Cross Section信息完整导出包括每一层的厚度、材料类型、铜厚。如果你在Allegro里的叠层是随便填的导出的IPC-2581就会把错误信息传给板厂。检查路径是Setup → Cross Section确认每一层的Thickness、Material、Conductor类型都填对了。第二确认钻孔符号和钻孔表已经生成。虽然IPC-2581会内嵌钻孔信息但Allegro需要你先在PCB里生成钻孔图例。路径是Manufacture → NC → Drill Legend生成后在PCB上能看到钻孔表。第三确认器件属性完整。如果你希望IPC-2581里包含BOM信息需要确保每个器件的Part Number、Value、Description等属性已经填入。这些属性通常在原理图阶段就赋好了但如果你中途改过封装或者手动加过器件最好用Tools → Reports检查一遍。第四确认DRC已经全部清理。这个不用多说带着DRC错误导出的文件板厂打开后可能会看到异常标记。3.2 一步步导出IPC-2581文件准备工作做完导出本身其实很简单。路径是File → Export → IPC2581。打开导出对话框后你会看到几个关键选项Output File— 指定输出路径和文件名默认扩展名是.cvg。我一般命名为项目名_版本号_日期.cvg方便追溯。IPC-2581 Version— 选择版本。前面说了优先选B版本。如果你的板厂明确说支持C版本并且你需要嵌入3D模型或者更详细的阻抗信息再选C。Units— 单位选择。国内板厂大部分用毫米mm但也有一些用英寸inch。这个要提前和板厂确认选错了会导致尺寸偏差。Precision— 精度设置。一般选4位小数0.0001mm就够了高密度板可以选5位。Export Options— 这里有几个勾选项需要特别注意Include Stackup— 必须勾选这是IPC-2581的核心价值之一。Include Drill Data— 必须勾选否则板厂还得单独要钻孔文件。Include Component Data— 如果需要板厂帮你做SMT勾选这个。Include Netlist— 建议勾选方便板厂做飞针测试。Include Impedance— 如果你的板子有阻抗控制要求勾选这个并在Allegro里提前设置好阻抗规则。设置完成后点OKAllegro会在几秒到几十秒内生成文件取决于板子复杂度。生成过程中底部状态栏会显示进度如果中途报错通常是某个器件的属性缺失或者叠层设置有误。3.3 导出后的自检清单文件生成后不要直接发给板厂。我一般会做以下几项自检文件大小检查— 一个正常的四层板IPC-2581文件大概在几MB到几十MB之间。如果只有几百KB很可能是某些数据没导出来。用文本编辑器打开— IPC-2581是XML格式用Notepad或者VS Code打开搜索Stackup标签确认叠层信息在里面搜索Drill标签确认钻孔数据在里面。用免费查看器验证— Ucamco提供了一个免费的IPC-2581查看器叫Reference Viewer可以下载下来打开你的文件直观地检查各层图形是否正确。和Gerber对比— 如果你同时出了Gerber可以把IPC-2581里的各层图形和Gerber做对比确认没有遗漏。提示Allegro 17.4导出的IPC-2581文件默认不包含钢网层Pastemask的独立图形但钢网信息会通过焊盘属性体现。如果板厂需要独立的钢网文件还是要额外提供Gerber。4. 和板厂对接IPC-2581时的真实经验4.1 板厂工程那边的反馈流程我第一次给板厂发IPC-2581文件的时候对方的回复是我们这边主要收GerberIPC-2581需要确认一下。这说明一个问题不是所有板厂都准备好了接收IPC-2581。我的经验是在发文件之前先问板厂三个问题你们支持IPC-2581格式吗支持哪个版本你们的CAM软件是什么常见的CAM350、Genesis 2000、Ucamco Integrator对IPC-2581的支持程度不同如果支持你们希望我提供哪些附加信息中大型板厂比如做多层板、HDI板的一般都有Genesis 2000或者Ucamco的软件对IPC-2581支持没问题。小型板厂可能还在用老版本的CAM350对IPC-2581的解析可能不完整。4.2 常见问题与处理方式在实际对接中我遇到过以下几种情况情况一板厂说叠层信息和我们常用的不一致。这是因为不同板厂的叠层库不同你设计时用的叠层可能和他们的标准叠层有偏差。处理方式是把你的叠层要求每层厚度、材料、铜厚在IPC-2581里写清楚板厂会根据他们的实际能力做调整然后反馈给你确认。情况二板厂说钻孔文件解析出来孔径不对。这通常是单位或者精度设置的问题。检查你导出时选的单位和板厂CAM软件的单位是否一致。如果板厂用英寸你导出时选了毫米就会出现孔径偏差。情况三板厂说网络表对不上。这可能是Allegro里的网络命名和板厂CAM软件的网络命名规则不同导致的。IPC-2581里的网络名是你在Allegro里定义的板厂CAM软件会原样读取。如果对不上检查一下是否有特殊字符或者中文网络名。情况四板厂说文件太大打开很慢。高密度板的IPC-2581文件可能达到几百MB板厂的CAM软件处理起来确实吃力。这种情况下可以在导出时选择不嵌入某些非必要信息比如不嵌入BOM或者把板子拆成多个区域分别导出。4.3 一个真实的效率对比我拿一个六层工控板做过对比测试。这块板子有1200多个器件、8000多个网络、四种孔径的过孔。用Gerber流程导出Gerber和钻孔文件大概花了15分钟打包发给板厂后板厂CAM工程花了大约4个小时做工程处理期间发了3封邮件来确认钻孔属性、叠层顺序和阻抗要求。从发文件到板厂确认可以投产总共花了大约1.5个工作日。用IPC-2581流程导出IPC-2581文件花了大约5分钟因为要嵌入更多数据单次导出时间比Gerber长发给板厂后板厂CAM工程花了大约1.5个小时做工程处理期间只发了1封邮件确认了一个小问题一个器件的料号他们库里没有。从发文件到确认投产总共花了大约0.5个工作日。效率提升是实实在在的。尤其是对于需要多次改版的板子每次改版后重新导出IPC-2581板厂那边不需要重新做一遍工程确认直接对比新旧文件的差异就行。5. 让IPC-2581发挥最大价值的几个进阶技巧5.1 在Allegro里提前配置好阻抗规则IPC-2581可以携带阻抗信息但前提是你在Allegro里已经设置好了阻抗规则。路径是Setup → Constraints → Electrical在Impedance选项卡里定义每层的目标阻抗和容差。设置好之后导出IPC-2581时勾选Include Impedance板厂就能在CAM软件里直接看到哪些走线需要做阻抗控制、目标值是多少。这比在邮件里写顶层差分线做100欧姆要精确得多。5.2 利用Variant功能导出不同装配版本如果你的板子有多个装配版本比如同一块PCB上不同版本的BOMAllegro的Variant功能可以帮你管理。导出IPC-2581时可以选择导出特定Variant的器件信息。这样板厂做SMT时就不会搞混版本。5.3 和Gerber并行输出作为备份虽然IPC-2581很强大但我建议在过渡期还是同时输出Gerber作为备份。原因有两个一是万一板厂的IPC-2581解析出了问题Gerber可以作为兜底二是有些板厂的某些工序比如铣边可能还是习惯用Gerber。在Allegro里可以先用File → Export → Gerber出Gerber再用File → Export → IPC2581出IPC-2581两个流程互不影响。5.4 建立公司内部的IPC-2581导出规范如果你在团队里推广IPC-2581建议建立一套导出规范包括统一的文件命名规则项目名_版本_日期.cvg统一的导出参数设置版本、单位、精度、勾选项统一的叠层模板避免每个人填的叠层信息不一致统一的板厂对接话术怎么问板厂是否支持、怎么确认版本这套规范建立起来后团队里任何人导出IPC-2581文件质量都是一致的不会因为个人操作差异导致板厂那边出问题。注意Allegro 17.4的IPC-2581导出功能在不同补丁版本Hotfix下可能有细微差异。如果你发现某个选项找不到先确认一下你的Allegro版本号路径是Help → About。建议至少升级到17.4的最新补丁版本。6. 几个容易被忽略的细节6.1 关于文件版本兼容性Allegro 17.4导出的IPC-2581文件在Allegro 16.6里是打不开的反过来也一样。如果你需要和用不同版本Allegro的同事协作要么统一版本要么用中间格式比如ODB做转换。另外IPC-2581B和IPC-2581C之间的兼容性也不是完全的。C版本的文件在只支持B版本的CAM软件里可能无法解析。所以前面强调过不确定板厂支持哪个版本时优先选B。6.2 关于钻孔属性的映射Allegro里的钻孔有几种类型过孔Via、安装孔Mounting Hole、定位孔Tooling Hole、散热孔Thermal Via。这些类型在IPC-2581里会映射成不同的属性。如果映射错了板厂可能会把安装孔当成过孔来做金属化处理。检查方法是导出IPC-2581后用文本编辑器搜索Drill标签看看每个钻孔的plated属性是否正确。platedtrue表示金属化孔platedfalse表示非金属化孔。6.3 关于丝印层的处理IPC-2581里的丝印层信息和Gerber里的丝印层有一个重要区别IPC-2581会把丝印文字作为文本对象导出而不是矢量图形。这意味着板厂CAM软件可以识别文字内容甚至可以做文字编辑。但这也带来一个问题如果你的丝印用了特殊字体板厂那边可能没有这个字体显示出来会不一样。我的做法是在Allegro里把丝印文字统一转成矢量图形用Manufacture → Silkscreen里的Convert Text to Line功能这样导出的IPC-2581里丝印就是图形而不是文本板厂那边显示不会出问题。6.4 关于文件大小的优化IPC-2581文件大小主要取决于板子的复杂度和嵌入信息的多少。如果你觉得文件太大可以尝试以下优化不嵌入BOM信息如果板厂不需要做SMT不嵌入3D模型如果选了C版本降低图形精度从5位小数降到4位不嵌入网络表如果板厂不需要做飞针测试但要注意每去掉一项信息IPC-2581相对于Gerber的优势就少一分。我的建议是除非板厂明确说文件太大处理不了否则不要主动裁剪信息。7. 我个人的一些实操体会用了两年多的IPC-2581流程最大的感受是这个格式的价值不在于更先进而在于更少歧义。Gerber时代你和板厂之间的沟通全靠邮件和电话一个这个孔是金属化的吗的问题就能来回折腾半天。IPC-2581把这些信息固化在文件里板厂打开就知道你要什么沟通成本直线下降。但也要客观地说IPC-2581在国内的普及度还不算高。我接触过的板厂里大概只有一半能顺畅地处理IPC-2581文件。所以现阶段我的建议是新项目优先尝试IPC-2581同时保留Gerber作为备份。等板厂那边反馈说以后直接发IPC-2581就行再彻底切换。另外一个小技巧如果你不确定板厂能不能处理IPC-2581可以先发一个简单的测试板文件过去让板厂那边确认一下他们的CAM软件能不能正常打开、叠层和钻孔信息能不能正确解析。测试通过了再发正式的生产文件。这个测试成本很低但能避免正式生产时出问题。最后说一个我踩过的坑有一次导出IPC-2581时忘了勾选Include Drill Data结果板厂收到文件后发现没有钻孔信息又来找我要。从那以后我养成了一个习惯——每次导出后用文本编辑器打开文件搜索一下Drill标签确认钻孔数据在里面。这个检查只需要几秒钟但能避免很多麻烦。
返回列表