简介:PCB封装命名是硬件设计与制造标准化的基础环节。这份docx文档系统梳理了从焊盘到封装的全链路命名规则,覆盖表贴焊盘、通孔焊盘、花焊盘三类焊盘,以及电阻、电位器、电容、电感、磁珠、二极管、晶振、熔断器等常见元器件,并延伸至BGA、CGA、LGA、PGA、CFP、DIP、DFN、QFN等复杂封装类型。文档目录结构清晰,先讲焊盘命名,再讲封装命名,既适合初入硬件设计的新人建立规范意识,也可作为工程师日常设计评审和建库时的速查手册。压缩包为单个docx文件,大小仅1.63MB,便于下载和随时翻阅。目前已吸引799人学习,内容来自多年项目经验的书面沉淀,能帮助读者减少因命名混乱造成的封装库维护成本与制板沟通差错,提升设计一致性和可复用性。
1. 为什么“史上最全”的封装命名规范,往往是最难用的
拿到一份几十页的《PCB封装命名规范.docx》,很多人第一反应是佩服整理者,第二反应是不知道怎么用。条目太多,背不住,最终原理图里照样冒出“电容1”“电阻2”这种名字。真正能落地的封装命名规范,不应该是一份需要反复查阅的字典,而应该像 git 分支名一样:简短、可读、能校验。它解决的是物料选型、原理图符号到 PCB 封装的三级对应问题,让硬件工程师、库管理员和 layout 工程师拿到一个名字就能猜出器件的外形和引脚。下面我们不讨论那份文档有多“全”,而是从一线库管理的角度,讲一套能直接抄走的 PCB 封装命名编码方案,并给出自动检查手段。
2. 封装命名规范的编码结构:前缀、主体和后缀怎么定义
2.1 三段式结构解决搜索和排序的痛点
如果只是把型号贴在封装名里,比如“TPS54560DDAR”,看起来详细,但你在 PCB 库列表里完全无法按类型筛选。所以要按三段切分:类型前缀、主体描述、后缀标记。类型前缀决定器件类别,主体描述决定封装形态,后缀只用来区分极性、散热垫等必需差异。这样,同一个系列的器件封装能排序在一起,从名字上一眼判断是电阻、电容还是连接器。
| 段位 | 职责 | 允许字符 | 示例 |
|---|---|---|---|
| 前缀 | 器件类别,一个字母 | R C L U J D | R=电阻;C=电容;L=电感;U=IC;J=连接器;D=二极管 |
| 主体 | 尺寸/引脚数/间距 | 数字、字母 | 0603;SOT23-5;LQFP64 |
| 后缀 | 补充差异 | 下划线+字母数字 | _EP(底部焊盘);_POL(极性) |
为什么用 U 表示 IC?因为字母 I 容易和数字 1 混淆,在投板清单和网表里都可能看错,所以很多公司习惯用 U。将前缀控制在单个字母,还有一个额外好处:在 PCB 库文件目录里按文件名排序时,所有电阻、电容、IC 会自然分成几个簇,比混在一起好找得多。
2.2 尺寸编码:0805 不是唯一说法
最常见的坑是尺寸换算。工程师说 0805,有些 EDA 工具的库里却叫“2012”。因为 0805 是英制,尺寸是 0.08 英寸 × 0.05 英寸,转换为公制是 2.0 mm × 1.2 mm,所以部分供应商和库会用“2012”表示。命名规范里如果不写明采用哪个标准,封装名就会五花八门。我一般会在库名中统一使用英制数字作为主体,同时把公制尺寸写进封装的自定义属性,而不是塞进名字。这样既符合 PCB 行业习惯,又避免了“RESC2012”这类混用。
尺寸编码通常直接用四位或三位数字,前两位代表长度,后两位代表宽度,单位是 0.01 英寸。比如 0603 就是长度 0.06 英寸、宽度 0.03 英寸。对于长宽不等的 L 型电感,比如 0806,也可以继续沿用这个规则。如果公司长期做海外订单,可能还要在命名里增加“_M”或“_I”区分公制和英制,但我不建议写进名字,因为这样会让同一个物理封装出现两个库名,维护量翻倍。
2.3 用正则表达式圈定命名边界
规范不能只靠文档,要能校验。下面是校验封装名字的基础正则,注意它只做结构校验,不判断尺寸是否真实存在。
import re # 建议封装名规范:前缀 + 主体 + 可选后缀 # 例如:R0603、C0805N、SOT23_5_EP、J_USB_C_16P pattern = re.compile( r"^(?P<prefix>[RCLUJD])" r"(?P<body>[A-Z0-9]{2,12})" r"(?P<suffix>_[A-Z0-9]{1,8})?$", re.IGNORECASE ) def format_name(name: str) -> bool: if not pattern.match(name): print(f"非法命名: {name}") return False return True说明一下:正则没有强制要求主体必须以数字开始,因为 SOT23-5 和 TSSOP20 这类名字都是字母开头。如果 EDA 工具不允许短横线,就把短横线换成下划线,比如 SOT23_5。Altium 中对封装名的字符限制较宽松,Cadence Allegro 的 symbol 名不建议使用短横线,避免在网表和脚本解析时产生歧义。因此,在写检查脚本前,先确认你当前工具支持的字符集。
3. 按器件类型格式化封装名:从 0603 到 BGA-256
3.1 阻容感与二极管:尺寸为主,别把容值写进封装名
贴片电阻电容是最常见的,命名格式一般为R0603、C0805N。其中 N 表示无极性,电容有极性时用C0603_POL。注意不要写容值,比如“C_0805_100nF”,因为同一封装可以装多种容值,封装名一旦混入容值,改封装时会牵连一大批原理图绑定。我在库管理时经常看到新人把“22pF”加到封装名里,这会导致同一物理封装出现多个名字。
电阻的功率等级也不建议放。虽然 0603 的额定功率通常是 1/10 W,但封装决定的是焊盘尺寸,功率是选型属性,不是封装属性。如果你非要区分,可以在后缀加功率标识,但那已经属于“工艺变体”,比如R0603_1.5W_P,一般用在电源模块里,普通信号链路别这么干。
3.2 IC 封装命名:封装缩写、引脚数、散热焊盘
IC 的封装缩写是行业标准,比如 SOT、SOP、TSSOP、QFN、LQFP、BGA。命名要包含封装缩写和引脚数,比如TSSOP-20。如果存在底部散热焊盘,加_EP,比如QFN-32_EP。同一个封装如果因为焊盘尺寸不同而有多个版本,再追加数字区分:QFN-32_EP_1、QFN-32_EP_2。这些后缀要写在规则文档里,并统一由库管理员维护。
| 封装缩写 | 命名示例 | 必须包含的信息 | 常见混用错误 |
|---|---|---|---|
| SOT | SOT23_5 | 引脚数 | 有人写 SOT-23-5,有人写 SOT23-5 |
| QFN | QFN-32_EP | 引脚数和散热焊盘 | 漏写 _EP,导致焊接时散热不良 |
| LQFP | LQFP64 | 引脚数 | 把间距写进名字,如 LQFP64_0.5 |
| BGA | BGA-256 | 引脚数 | 球间距和球阵列尺寸才是关键 |
在原理图库里,symbol 封装名必须和 PCB 封装名保持一致,Altium 或 Cadence 才能在导入 PCB 时自动匹配。很多团队在这一点上栽跟头:原理图里用 “SOIC8”,PCB 库里叫 “SOP8”,导入后全部变成 unplaced,最后只能手动一个个挑回去。
这里给一段生成命名示例的代码,用来做团队评审时快速列出标准名:
# 生成封装命名示例,供团队评审使用 examples = { 'R': 'R0603', 'C': 'C0805N', 'U': 'SOT23_5', 'J': 'J_USB_C_16P', } for prefix, ex in examples.items(): print(f'{prefix}: {ex}')输出结果可以直接贴在文档评审的评论里,比文字规则更直观。
3.3 连接器与接口封装:方向、pin 顺序和外壳地
连接器命名最难统一。常见做法是J_<接口类型>_<pin数>P,例如J_USB_C_16P、J_HDMI_19P。如果连接器有插板方向和立式卧式之分,再加_H(Horizontal)或_V(Vertical),比如J_USB_C_16P_H。接口封装还要额外注意 pin 1 位置和机械外壳接地焊盘,这些会直接影响 PCB 布局布线思路,尤其是高频接口的地回流路径。
一些原厂方案包里经常直接给出一个很长的原始封装名,比如带版本号的“SW6206_V3.dra”,参考它的封装时,一定要先映射到自己的命名规范里,再检查焊盘定义。否则后面维护 BOM 和 PCB 库时,你会面对一片完全无法解析的名字。
4. 让命名规范可执行:脚本检查与 EDA 库对接
4.1 命名规范不能只靠人肉审核
几十条规则背下来不现实。更靠谱的是写一个检查脚本,遍历库文件目录,挑出不符合规范的命名,投板前跑一次。脚本做法不复杂:先建立规则字典,再做正则匹配。如果有新器件类别,更新字典即可。下面是一个覆盖常见规则的示例。
import os import re # 规则字典,按前缀映射允许的主体格式 class_pat = { 'R': r'^[0-9]{4}$', 'C': r'^[0-9]{4}(_POL|_N)?$', 'U': r'^(SOT|SOP|TSSOP|QFN|LQFP|BGA)[-_]?\d{1,4}(_EP)?$', 'J': r'^[A-Z0-9]+[-_]\d{1,3}P$', } def check_lib(path): issues = [] for root, dirs, files in os.walk(path): for f in files: if not f.endswith(('.dra', '.footprint', '.kicad_mod')): continue name = os.path.splitext(f)[0] prefix = name[0].upper() if prefix not in class_pat: issues.append((name, '未知前缀')) continue body = name[1:] if not re.match(class_pat[prefix], body, re.IGNORECASE): issues.append((name, f'{prefix}类主体不合格: {body}')) return issues for issue in check_lib('./lib'): print(issue)这里的逻辑是:脚本遍历库目录,按文件扩展名拿到封装名,根据首字母判断类型。R 和 C 的规则用四位数字匹配尺寸,U 的规则覆盖常见 IC 封装缩写,J 则要求接口名加数字加 P。注意主体部分没有包含前缀后的第一个字符,因为R0603去掉首字母后是0603,四位数字可以匹配。输出问题列表后,可以导出为报告留档。
4.2 规则字典的参数表与常见异常
不同 EDA 工具对命名有不同的硬限制,下面这张表总结了几个容易踩的坑:
| 检查点 | 建议规则 | 常见异常 |
|---|---|---|
| 字符集 | 只用字母数字和下划线 | Altium 里短横线会引发网络名解析问题 |
| 长度上限 | 不超过 20 个字符 | Allegro 的 symbol 名过长会被截断 |
| 前缀 | R/C/L/U/J 固定 | 出现 CAP、RES 等前缀,导致排序混乱 |
| 主体数字 | 尺寸或引脚数必须为数字 | 把容值、功率混入主体 |
| 后缀 | 使用下划线开头 | 直接连在主体后,无法区分 |
4.3 把脚本挂进投板流程
常见做法是把脚本放在版本库的 Git hook 或 CI 流程里,在导出 Gerber 前强制跑一遍。如果公司没有 CI,至少要在投板申请单里附一份检查结果。我实际项目中会把脚本输出重定向到一个“封装命名检查结果.docx”,和 PCB 设计规则检查报告一起归档。这也是标题里那份文档真正该承担的角色:它不是让你背规范,而是提供一份可执行的检查依据。
4.4 与 EDA 工具的联动方式
在 Altium 里可以用 DelphiScript 直接遍历库封装名,在 Cadence Allegro 里可以用 Skill 脚本批量处理。但最通用的做法是从库文件目录直接扫描,因为不管哪个 EDA,封装库终究是文件。目录扫描法不依赖工具 API,新人拿来就能用。如果你已经有批量重命名的需求,可以先从导出库清单开始,再配合映射表做批量修改。
5. 让规范活下来:用 CSV 映射表做批量迁移和命名验证
5.1 先备份,再批量重命名
如果库里已经有一堆不规范的封装名,别急着手工改。手工重命名会把原理图里的引用关系破坏掉。更好的办法是生成一份“旧名—新名”映射表,先在原理图库和 PCB 库里同时更新,再批量替换。操作顺序是:导出当前库所有封装名;团队评审后确定新名;生成 CSV 映射表;执行重命名脚本。
import csv import os import shutil with open('rename_map.csv', 'r') as f: mapping = {row['old']: row['new'] for row in csv.DictReader(f)} for root, dirs, files in os.walk('./pcb_lib'): for f in files: base, ext = os.path.splitext(f) if base in mapping: old_path = os.path.join(root, f) new_path = os.path.join(root, mapping[base] + ext) shutil.copy2(old_path, new_path) # 先复制,确认无误后再删原文件脚本采用“复制到新名”而不是直接改名,这样旧封装还保留,等投板验证后再统一删除,避免一次性改动太大。执行前记得把整个库目录备份一份,因为任何封装名的改动都会影响网表对比和 BOM 输出。
5.2 用“命名自检表”验证迁移结果
迁移完成后,把这篇文章前一个章节的检查脚本再跑一遍。重点检查三类错误:没有前缀的文件、名字超过 20 字符、同一前缀没有主体数字。一张自检表足够让评审人快速确认迁移是否完整。我们习惯把这张表命名为“封装命名规范检查表.docx”,和旧文档并存,旧文档只作为历史存档,新表作为唯一执行标准。这样团队里不管是新来的应届生还是外包 layout 工程师,都能在一个小时内自查是否踩了命名坑。
本文还有配套的精品资源,点击获取