简介面向PCB设计、封装建库与硬件研发人员的命名规范文档针对器件与焊盘命名不统一、库文件混乱、团队协作易出错等问题提供可参照的标准化命名思路。压缩包内共1个docx文件约1.63MB篇幅完整、目录层级清晰便于按章节检索。内容围绕焊盘命名与PCB封装命名展开涵盖表贴、通孔、花焊盘及Shape命名并细分电阻、电位器、电容、电感、磁珠、二极管、晶体谐振器与振荡器、熔断器、发光二极管等类别同时涉及BGA、CGA、LGA、PGA、CFP、DIP、DFN、QFN等封装形式的命名约定可帮助读者快速建立统一命名体系减少建库错漏与沟通成本。已有805人学习适合作为企业封装库规范、个人建库查漏补缺及团队培训的参考材料。1.上周帮一个做工业控制板的团队收拾封装库打开目录就看到R0603、0603_R、RES_0603_1.6X0.8三种写法并存同一个 0603 电阻躺着四个焊盘尺寸版本谁也不敢删。这种局面靠开会统一不了,得有一份能落到字符级的规范。这份被传成「最全」的 PCB 封装命名规范 docx 干的就是这件事把焊盘、Shape、封装三层名字的每个字段固定下来,字符集、单位、尺寸编码、密度等级、消歧后缀全部写死,建库的人照着填,写脚本的人照着解析。它面向的是要维护公共库的硬件工程师、封装库管理员,以及需要从库里批量提取尺寸参数的 SI 和工艺同事。规范本身不含封装文件,给的是「怎么起名」这套约束,能不能用好,取决于你愿不愿意把它的字段顺序原样搬进自己的库。2. 命名底座字符集、单位与尺寸编码的三道硬约束2.1 为什么先锁死字符集和单位封装库出问题十次里有六次不是尺寸算错是名字里混了不该有的字符。规范 3.1 条把字符集卡得很死只允许数字 0-9、字母 a-z不区分大小写、下划线_、中横线-其余一律算非法字符。这条看着小题大做实际是唯一能让「人写的名字」和「脚本读的名字」对上的办法。中文括号、顿号、、/、空格这些字符一旦进了封装名轻则导出网表时字段被截断重则在某些 EDA 的数据交换格式里直接解析失败报错还只报「文件格式错误」排查起来纯靠猜。单位同理规范只认毫米mm和毫英寸mil两种而且必须作为后缀出现。这不是洁癖库文件里最怕的是「隐式单位」名字叫SOP8_3.9没人知道 3.9 是毫米还是别的什么三年后接手的人只能去翻原始 datasheet。把单位顶在名字末尾等于给每个封装贴了张不干胶标签。提示大小写「不限制」不等于「随便写」。绝大多数 EDA 工具在比较封装名时是大小写敏感的SOP8和sop8会被当成两个不同的封装最后库里出现一对孪生兄弟。落地时统一小写是成本最低的约定。字符集和单位这两条约束真正的价值是让后续所有规则可以被机器校验。你在第 6 章会看到一个十几行的正则就能把八成不合规的名字筛出来前提就是这两条先立住。2.2 尺寸编码公制留两位、英制不留小数规范里最容易翻车的是尺寸怎么写成纯数字。3.3 条和 3.4 条给了两套完全不同的编码公制数字的后两位表示小数位160读作 1.60mm50读作 0.50mm5读作 0.05mm整数位长度不限制超过两位小数的四舍五入到两位。英制所有数字都是整数210就是 210mil没有小数位数字长度不限制。这套编码的本质是「把小数点从名字里赶出去」。因为小数点在某些工具的文件名、网表字段、脚本参数里都是高危字符而尺寸又必须有小数精度唯一解法就是定点数编码。写代码时我一般直接按这个规则做双向转换下面这段跑一次就能验证自己的理解对不对def mm_to_code(value_mm: float) - str: 公制尺寸转命名编码乘 100 取整160 表示 1.60mm if value_mm 0: raise ValueError(尺寸必须为正) # 先 round 再 int避免 1.6*100 得到 159.99999999 被截断成 159 return str(int(round(value_mm * 100))) def mil_to_code(value_mil: float) - str: 英制尺寸转命名编码只保留整数四舍五入 if value_mil 0: raise ValueError(尺寸必须为正) return str(int(round(value_mil))) def code_to_value(code: str, unit: str) - float: 编码还原成实际尺寸用于校验库里名字和实际焊盘是否一致 if unit mm: return int(code) / 100.0 if unit mil: return float(int(code)) raise ValueError(f不支持的单位: {unit}) # 自检规范里的例子能不能对上 assert mm_to_code(1.2) 120 assert mm_to_code(0.5) 50 assert mm_to_code(0.05) 5 assert code_to_value(160, mm) 1.6 assert mil_to_code(210) 210mm_to_code里那个int(round(...))不是啰嗦浮点数乘法在这个场景下真的会咬人1.6 * 100在多数运行时里是160.00000000000003或159.99999999999997直接int()截断就会得到159名字里凭空少了 0.01mm。code_to_value反向解析的用途在后面很关键——建库脚本可以把自己的名字读回来和实际焊盘几何做比对名字写160、焊盘却是 1.5mm 这种事故能自动抓出来。一个容易忽略的细节公制编码不要补零到固定位数。0.5mm 写成50是对的写成050虽然数值上也能读成 0.50但和「后两位是小数位」的规则混在一起会让解析器产生歧义050到底是 0.50 还是 050 这个整体团队里只要有一个人补零后面所有人的解析脚本都得多写一个分支。2.3 参数占位符的取值口径规范 3.5、3.6 两条定义了整套大括号占位符的含义这部分是全文的字典值得单独拎出来。真正需要背下来的不是占位符名字是每个字段「取典型值还是取最大值」——取错了名字没错封装是错的。占位符取值口径取错的后果{Length}{Width}{Body Length}{Body Width}典型值无典型值取平均值只有唯一值就取该值取最小值会让焊盘偏小贴片偏移{Height}{Body Height}取最大值取典型值会撞外壳、撞散热器{Lead Diameter}取最大值孔径给小了插件插不进去{Lead Spacing}{Pitch}{Lead Span}典型值排距取极值会导致引脚对不上孔{Lead Span L1}/{Lead Span L2}L1 取较小排距L2 取较大排距四边引脚器件装反方向{Pin Qty}功能引脚 散热盘数量漏掉散热盘钢网开孔数量对不上{Body Thickness}文档只给了参数名没给口径落地按典型值与高度混淆叠层干涉算错{Columns}{Rows}引脚列数、行数阵列器件行列写反焊盘阵列方向错从一份 datasheet 走到一个合规名字我固定走五步先把手册里的尺寸表抄成一张两列表左列是符号D、E、A、e、b右列是 min/typ/max 三个值不要边看边写名字。按上表的口径给每个符号定一个「命名值」典型值优先高度类一律取 max。判断单位手册给公制就用 mm给英制就用 mil不要在同一个名字里混两种单位。手册同时给两套时选和你库里其它封装一致的那套。把命名值过一遍mm_to_code或mil_to_code得到纯数字串。按第 3、4 章的字段顺序拼装最后检查字符集。第 3 步的「不混单位」值得多说一句。规范允许一个库里同时存在 mm 后缀和 mil 后缀的封装但不允许一个名字里既有公制编码又有英制编码。原因很实际160在公制下是 1.6mm在英制下是 160mil差了 2.5 倍混着写等于给后面的人埋雷。3. 焊盘层命名表贴、通孔、花焊盘与 Shape 的拼装顺序3.1 表贴焊盘形状字母决定字段个数规范第 4 章开头有句话要先记住焊盘是组成封装的单元本节讲的焊盘包括表贴焊盘、通孔焊盘以及组成特殊表贴焊盘的 shape 和组成通孔焊盘的 flash。这句话划定了层级——焊盘是最小可复用单元封装是焊盘的组合。命名规则也是按这个层级分开的不要混着用。表贴焊盘分三类字段个数完全不同类型形状字母需要的字段示例1.2×0.6mm阻焊增量 0.1mm长方形 / 椭圆形r矩形、b椭圆长边 W、短边 Hr120_60s10mm正方形 / 圆形s方形、c圆形单一边长或直径c100s10mmD 形d长边 W、短边 Hd120_60s10mm字段顺序按 4.1.1 的说明条目走形状字母 → 长边 → 短边 → 固定字符ssolder mask阻焊→ 阻焊增量 → 单位。矩形和椭圆必须两个尺寸都写方和圆只写一个这就是「形状字母决定字段个数」的含义。如果给圆形焊盘写了两个尺寸解析器要么报错要么默默取第一个两种结果都难受。阻焊增量是唯一一个「差值」而不是「绝对值」的字段含义是阻焊开窗比焊盘大出来的尺寸。1.2×0.6 的焊盘配 0.1mm 的单边增量公制编码写10。这里有个惯例要提前定死增量写的是单边还是双边。规范没明说我一般按单边记并在团队库的 README 里写一行避免有人按双边算导致开窗大了一倍。非标准表贴焊盘键盘按键那种异形盘、SON 封装的散热盘走的是另一套命名smd_{Pack.Name}_{Number}。Pack.Name是这个焊盘适用的封装名Number是序号。如果封装里只有一个非标准焊盘序号可以省略有两个就写 1 和 2。在 EDA 里落地的顺序我一般是先按 datasheet 算出 W/H/增量 → 在 padstack 编辑器里建盘 → 立刻按规则命名保存 → 再拖进封装。反过来做先拖进封装再回头命名几乎必然出现同名不同尺寸的脏数据因为改尺寸的时候没人会回头改名字。3.2 通孔焊盘钻孔形状与金属化必须写进名字通孔焊盘比表贴多两个维度钻孔形状和金属化。规范 4.2 条把通孔焊盘拆成圆形/方形一组、椭圆形/矩形一组每组再按「带自定义 flash 的金属孔 / 不带自定义 flash 的金属孔 / 非金属孔」三种情况给格式。字段顺序是固定字符tthrough→ 焊盘形状字母 → 焊盘尺寸 → 钻孔形状字母 → 钻孔尺寸 → 钻孔类型p/n→ 花焊盘外径 → 花焊盘内径 → 花焊盘辐宽 →s→ 阻焊增量 → 单位。拆开看每一项焊盘形状c圆、s方、b椭圆、r矩形。方和圆只需要一个边长椭圆和矩形需要长、宽两个。钻孔形状同样用c/s/b/r跟焊盘形状独立。一个方形焊盘配圆形钻孔是非常常见的组合别想当然认为两者必须一致。钻孔类型p表示孔壁金属化platedn表示非金属化non-plated。这个字母漏了工厂按什么做完全靠猜安装孔被镀上铜、或者该导通的地方没导通都是从这里来的。flash 三段外径、内径、辐宽。不带自定义 flash 的金属孔这三段直接省略。举例焊盘 1.6mm 圆形、钻孔 1.0mm 圆形、金属化、阻焊增量 0.1mm落地成tc160c100p10mm同样几何改成非金属化就是tc160c100n10mm如果要带自定义 flash就在p后面接外径、内径、辐宽三段编码。椭圆形焊盘 2.2×1.2mm 配 1.6×0.6mm 椭圆钻孔写成tb220_120b160_60p...。注意p和n的区别不是文档细节是生产指令。安装孔、散热器固定孔、屏蔽罩定位孔全都要用n一旦写成p工厂会在孔壁镀铜装配时螺钉直接把铜层和信号层短在一起。3.3 花焊盘外径、内径、辐宽、开口角一个都不能省花焊盘thermal relief是负片设计里连接铜皮和焊盘的「四条腿」它的命名要描述四个几何量外圈长、外圈宽、内圈长、内圈宽、辐宽、开口方向与水平线的夹角。规范 4.3 条给的字段顺序是固定字母f→ 外圈长 → 外圈宽 → 分隔符x→ 内圈长 → 内圈宽 → 形状字母c/b/s/r→ 辐宽 → 开口角度 → 单位。举一组具体数字D1.3mm、d1.0mm、w0.2mm、b90°、外圈 1.9×1.6mm、内圈 1.3×1.0mm。拼出来是f190x160x130x100b20_90mm读法是外圈 1.90×1.60内圈 1.30×1.00圆形辐宽 0.20mm开口 90°。辐宽和角度之间我习惯加一个下划线因为角度可能是两位数也可能是三位数不加分隔符时20和90粘在一起变成2090谁也拆不开。规范里的x是明确写进说明的分隔符辐宽和角度之间的分隔属于落地细节团队里统一就行但一定要统一。花焊盘最容易出的问题是内外径反了。外径小于内径的 flash 在负片上表现为焊盘和铜皮完全隔离板子做回来是「断路」而设计文件里看着一切正常。我的习惯是建完 flash 立刻用测量工具量一遍内径和名字里的数字对一次二十秒的事。3.4 Shape 与非标焊盘编号跟着封装名走要做出标准盘拼不出来的形状得先在软件里画 shape。规范 4.4 条给的命名是sh_{Pack.Name}_{Number}和 4.1.3 的非标焊盘smd_{Pack.Name}_{Number}是同一套逻辑名字里必须带它服务的封装名。为什么绑封装名而不是叫shape_1、shape_2血泪经验是复用会咬人。一个叫shape_thermal的散热盘 shape 被五个封装引用某天有人为了改 QFN 的散热盘把它拉长了 0.2mm另外四个封装的焊盘跟着变而且没有任何提示。库里不会报错只有板子回来才发现某个 SOP 的散热盘偏出了本体。具体例子封装sot230p700x180-4nmm里有两个非标准焊盘对应的 shape 就是sh_sot230p700x180-4nmm_1和sh_sot230p700x180-4nmm_2焊盘本身是smd_sot230p700x180-4nmm_1和_2。序号省略规则也一样只有一个就不写序号。这套命名还有个副作用是好的Pack.Name里已经包含了密度等级和单位所以从 shape 名字就能反推出它只该出现在哪个封装里。库大了以后做引用关系检查直接按名字前缀匹配就能列出一张「哪个 shape 被哪些封装引用」的清单比在EDA 的引用报告里翻快得多。4. 封装层命名类型词根、密度等级与后缀消歧4.1 类型词根表一个前缀对应一类器件第 5 章是整份规范的主体从 5.2 到 5.30基本上是一器件一节。所有封装名的结构可以归纳成一句话类型词根 尺寸串 引脚信息 密度等级 单位个别情况在末尾追加消歧后缀。先把词根表建立起来这是整套命名能够自解释的关键词根含义词根含义resc片状电阻 chipcapc片状电容 chipresm模制电阻 moldedcapm模制电容 moldedresmelf柱状电阻capmp模制有极性电容resadh/resadv轴向电阻水平/垂直安装capcp有极性片状电容pot电位器、可变电阻capae表贴铝电解电容indc/indm/indpw片状/模制/绕线电感capcav/capcaf/capcax凹陷/平滑/凸出电容阵列capadh/capadv无极性轴向圆柱电容cappadh/capparh有极性轴向电容caprd/caprr/caprb径向圆柱/矩形/圆形电容capv可变电容BGACGALGAPGA球栅/柱栅/焊盘栅/针栅阵列QFNDFNSON无引脚/双侧无引脚/小外形无引脚QFPSOPSOICSOJ四边/小外形封装族SOTTODIP小外形晶体管/晶体管外形/双列直插CFPLCC扁平封装/无引脚芯片载体PLCC带 J 形引脚塑料芯片载体词根的设计逻辑是「英文缩写的首字母组合」读一遍就知道是哪个器件族。5.6 到 5.11 这几节磁珠、二极管、晶体谐振器、晶体振荡器、熔断器、发光二极管在文档里给了章节但正文被截断落地上按同一套构词法自定两到四个字母的前缀即可关键是团队内固定不要同一个人今天写bead明天写fb。有一个细节要注意有极性的器件词根里通常会多一个p。capc无极性、capcp有极性capadh无极性轴向、cappadh有极性轴向。这个字母丢了贴片机就不知道极性标记在哪有极性电容反贴是能炸的。4.2 密度等级表贴 M/N/L插件 A/B/C规范 5.1 条是整个文档里最容易被读错的一节。PCB 分高密度板、中等密度板、低密度板同一颗器件要建三个不同尺寸的封装靠后缀区分密度表贴后缀插件后缀焊盘特征低密度mostMA焊盘最宽松封装占地最大中等密度nominalNB尺寸适中默认选这个高密度leastLC焊盘最紧适合高密度板反直觉的地方在于M对应 most指的是「焊盘最宽松」不是「最密」。很多人的第一反应是 M 代表 mini结果建出来的是最大号的盘装在高密度板上完全放不下。记住一句话M 是「给得最多」L 是「给得最少」。密度等级在名字里的位置是紧贴单位的看两个官方示例SOIC127P1041X419_8NMMSOIC 族pitch 1.27mm体宽 10.41mm高度 4.19mm8 脚N 密度单位 mm。DIP762W46P254L1918H533Q7_14BMMDIP 族引脚间距 7.62mm引脚直径 0.46mmpitch 2.54mm体长 19.18mm高度 5.33mm7 脚B 密度插件单位 mm。_8NMM这一段是整份规范最坑的写法它其实是_8Nmm密度字母和单位紧挨着。人读没问题写解析脚本时如果按「单位两个字符」去切会把NM当成单位剩下一个孤零零的N没法解释。我自己落地时习惯插一个下划线写成_8N_mm含义不变机器解析稳得多。这条在下一章的排查里还会出现。4.3 后缀消歧_1、R 和两组引脚数尺寸完全一样的器件名字必须能区分的场景有四种规范 5.1 条给了对应的后缀规则公差不同8 脚 SOIC引脚跨距有的厂家是 6±0.1有的是 6±0.2。这种情况在末尾加数字序号区分1、2、3……例如SOIC127P1041X419_8N_1mm。序号加在密度等级之后、单位之前顺序别搞反。引脚顺序相反有些器件的引脚是顺时针排的和常规逆时针相反。这种在末尾加R例如PLCC127P990X990X457_20Rmm。R放在密度等级后面因为它描述的是「整个器件的引脚排布」属于器件级属性而非尺寸属性。引脚最大编号大于引脚总数手册上的引脚编号到 14实际只有 4 个引脚常见于把多个引脚焊在一起接散热或做机械固定的器件。命名要先写实际引脚数再写最大编号例如DIP762W46P254L1918H533Q_4_14Bmm。实际引脚数大于编号数反过来有编号的 48 个引脚加上散热盘和机械脚实际 56 个。命名写「实际数_编号数」例如BGA48C75P6X8_800X1200X120_56_48Nmm。另外一类是晶体管和场效应管的引脚极性排列不同厂家三个极的位置不一样。规范的做法是在名字里直接写引脚 1、2、3 对应的极例如SOT95P237X117_BCE_3Nmm表示 1B、2C、3E。这个名字的信息量非常大封装工程师不用查手册就知道焊盘该怎么对应贴片厂的程序也能直接核对。四种消歧后缀的共同逻辑是名字里必须能唯一确定几何和引脚语义。只要两条信息在名字里体现不出来就一定会有人在建库时用错。4.4 把规则套到无源器件上电阻、电容、电感的完整拆解无源器件占了库里的绝大多数规范 5.2 到 5.5 给了非常细的分支。电阻类子类命名格式示例片状电阻resc_e{Type}_{L}x{W}x{H}x{PinLen}{Level}mmresc_e2010_500x250x65x60nmm模制电阻resm{L}x{W}x{H}{Level}mm—柱状电阻resmelf{L}x{D}{Level}mmresmelf260x76nmm引脚凹陷排阻rescav{Pitch}p{L}x{W}x{H}_{PinQty}{Level}mmrescav50p160x100x55_8nmm引脚凸出等宽排阻rescaxe{Pitch}p{L}x{W}x{H}_{PinQty}{Level}mm—引脚凸出不等宽排阻rescaxs{Pitch}p{L}x{W}x{H}_{PinQty}{Level}mm—引脚平滑排阻rescaf{Pitch}p{L}x{W}x{H}_{PinQty}{Level}mm—轴向电阻resadh/resadv{LeadSpacing}w{LeadDia}l{BodyL}d{BodyD}{Level}mmresadh800w52l600d150bmmresc_e2010_500x250x65x60nmm逐段拆开resc片状电阻、e2010片式元件通用尺寸代号、500体长 5.00mm、250体宽 2.50mm、65高度 0.65mm、60引脚长度 0.60mm、n中等密度、mm公制。这里有一个高频误解e2010里的 2010 是行业通用代号英制 0.2×0.1 英寸和后面的实测公制尺寸是两个东西两个都要写不能互相替代。代号解决「能不能和别的库对上」实测尺寸解决「焊盘到底画多大」。电容类的分支更碎但规律一致表贴capc无极性、capcp有极性、capcwr线绕矩形、capm模制无极性、capmp模制有极性、capae表贴铝电解。阵列capcav凹陷、capcaf平滑、本文还有配套的精品资源点击获取