KiCad 项目版本管理(包含变体版本管理)v2.0.1
KiCad 项目版本管理(包含变体版本管理)v2.0.1
结合硬件物理特性与软件工程中的语义化版本(Semantic Versioning)思想,本方案采用“硬隔离/强基线控制策略”:将 PCB Layout(物理基板)与变体 BOM(逻辑装配)彻底解耦。
只要物理 Layout(走线、过孔、器件位置、板框)有任何改动,即升级主版本号(MAJOR);元件参数调整、DNP(不贴片)及变体切换仅通过专属的修订号来管理。
1. 语义化版本控制规范
版本号格式统一为:v<MAJOR>-<VARIANT_SLUG>.<VARIANT_PATCH>
- MAJOR(主版本号 / 物理基板):代表 PCB Gerber 物理版本(如
v1、v2)。- 触发条件:任何 Layout 走线微调、过孔移动、板框变更、层叠结构修改。
- 工程含义:裸板必须重新打样;钢网(Stencil)、测试治具(ICT/FCT)可能需要重新制作;硬件库房废弃/隔离旧主版本裸板。
- VARIANT_SLUG(变体代号):代表不同的产品应用方向(如
IND代表工业级,CONS代表消费级)。 - VARIANT_PATCH(变体修订号):代表在同一块物理基板生命周期内,特定变体 BOM 的修改演进序号(从
.1开始递增)。- 触发条件:PCB 零改动的前提下,调整阻容参数、更换 Pin-to-Pin 替代料、切换 DNP 变体。
- 工程含义:裸板完全复用;钢网与治具 100% 复用;仅更新 SMT 贴片程序与领料 BOM。
2. 变体 BOM 命名与双重追踪
变体 BOM 采用 “主版本号 + 变体代号 + 变体修订号” 进行唯一标识,并在数据结构中反向绑定源项目版本。
- 版本命名示例:
v1-IND.1:基于v1版 PCB 的工业级变体 BOM 初版。v1-IND.2:PCB 完全不变,仅替换工业级 BOM 中的 Pin-to-Pin 滤波电容品牌。v1-CONS.1:基于同一块v1版 PCB 的消费级变体 BOM 初版。v2-IND.1:PCB 重新走线打样后,工业级变体 BOM 的新基线初版。
- 双重追踪机制:
- 在导出的变体产物中,除了在文件名和 CSV 表头中标明版本外,强烈建议同步生成同名的
.json跟踪文件(例如Project_v1-IND.1_BOM.json),记录其派生的源项目基板版本,确保血缘关系可追溯。
- 在导出的变体产物中,除了在文件名和 CSV 表头中标明版本外,强烈建议同步生成同名的
3. KiCad 工程实施 SOP
A. 原理图与 PCB 标识规范
- PCB 丝印层(Silkscreen):
- 裸板上仅打印主版本号,如
REV: v1。 - 原理:同一批打样的
v1裸板可同时供给v1-IND.1与v1-CONS.1贴片,避免裸板丝印与具体变体绑定导致的库存浪费。
- 裸板上仅打印主版本号,如
- 原理图属性与 DNP 控制:
- 在元件属性中勾选 Do Not Populate (DNP) 控制变体留空。
- 添加自定义属性
Variant(值示例:ALL、IND_ONLY、CONS_ONLY)。 - 原理图 Title Block 的 Revision 填入
v1,Comment 标注变体信息。
B. 自动化导出与产出物规范
通过 KiCad CLI(kicad-cli)与 Python 脚本实现自动化打包,产出物按用途严格隔离:
release/
└── v1-IND.1/ # 对应的变体发布版本
├── Project_v1-IND.1_BOM.csv # 变体 BOM 表
├── Project_v1-IND.1_CPL.csv # 贴片坐标文件
├── Project_v1-IND.1_BOM.json # 变体跟踪与血缘关系记录
└── Project_v1-IND.1_Fab.pdf # 装配图
4. 版本变更决策矩阵
| 变更场景 | PCB Layout 改动 | 原理图 / 属性改动 | 主硬件版本号 (HW) | 变体 BOM 版本号 | 钢网/治具状态 |
|---|---|---|---|---|---|
| 微调阻容参数 / 变更 DNP 变体 | 否 | 仅变体参数 | v1 |
v1-IND.1 升级到 v1-IND.2 |
100% 复用 |
| 主控更换 Pin-to-Pin 替代料 | 否 | 修改 MPN (料号) | v1 |
v1-ALL.1 升级到 v1-ALL.2 |
100% 复用 |
| 优化一处走线 / 调整过孔 | 是 | 无/微调 | v1 升级到 v2 |
v2-IND.1 |
重新制作 |
| 新增/删减电路模组(含重新走线) | 是 | 新增/删除电路 | v2 升级到 v3 |
v3-IND.1 |
重新制作 |
5. Git 仓库管理结构
采用 Git 对 KiCad 工程进行版本追踪与防冲突管理:
Project_Root/
├── .gitignore
├── Project.kicad_pro
├── Project.kicad_sch
├── Project.kicad_pcb
├── scripts/
│ └── export_variants.py # KiCad CLI 变体 BOM/CPL 自动导出脚本
└── release/ # 打包发布归档目录
- Git Tag 规范:
- 仅 BOM 变体修订打 Tag:
git tag -a v1-IND.2 -m "BOM: Replace C102 vendor PN" - PCB 重打样打 Tag:
git tag -a v2 -m "HW: Layout rerouted for EMC optimization"
- 仅 BOM 变体修订打 Tag:
所有文章为原创,如非授权,请勿转载。
我们要多多支持有创造能力的人,因为那是我们所有人的希望。
同时我们也希望成为有创造能力的人,我们支持开源,同时也支持正版。
🎈数码荔技正版软件商店🎈
【正版】微软 Office 365
【正版】老牌文件对比工具 Beyond Compare
【正版】JetBrains Idea Java IDE
不断学习,慢慢进步,做时间的朋友。
注意力 > 时间 > 金钱。 -- 建伟 F4nniu
我们要多多支持有创造能力的人,因为那是我们所有人的希望。
同时我们也希望成为有创造能力的人,我们支持开源,同时也支持正版。
🎈数码荔技正版软件商店🎈
【正版】微软 Office 365
【正版】老牌文件对比工具 Beyond Compare
【正版】JetBrains Idea Java IDE
不断学习,慢慢进步,做时间的朋友。
注意力 > 时间 > 金钱。 -- 建伟 F4nniu
浙公网安备 33010602011771号