1. 原理图与PCB设计的本质逻辑:从“抄”到“懂”的工程路径

在嵌入式硬件开发中,原理图(Schematic)与PCB(Printed Circuit Board)设计常被初学者视为高不可攀的“黑魔法”。但事实上,它是一套高度结构化、可分解、可复现的工程流程。稚晖君开源的HoloCubic Extend Board并非为教学而生,却恰恰构成了一套极佳的逆向学习样本——它不提供设计意图说明,却完整暴露了所有物理连接关系;它没有冗余注释,却以最精简的方式呈现了功能实现的最小必要结构。这种“去修饰化”的开源形态,反而剥离了设计哲学的干扰,将学习焦点精准锚定在 连接关系建模 物理实现约束映射 这两个核心能力上。

所谓“抄”,绝非机械复制图形轮廓,而是对信号流向、电源拓扑、接口协议、器件封装这四重维度的系统性解构与重建。一个电容符号在原理图中代表的是其电气模型(理想容值+ESR+ESL),在PCB中则必须转化为特定焊盘尺寸、过孔数量、走线宽度与参考平面距离的物理实体。这种从抽象符号到物理实体的映射过程,正是硬件工程师的核心能力。本文将以Extend Board为蓝本,严格遵循“目的—原理—操作—验证”的工程闭环,带你完成一次完整的、可落地的复刻实践。所有操作均基于Altium Designer 22环境,但逻辑框架适用于任何主流EDA工具。

1.1 四大基石:原理图库、封装库、原理图、PCB的层级关系

硬件设计工作流本质上是四个层级的逐级具象化:

  • 原理图库(Schematic Library) :定义器件的 电气接口模型 。它包含引脚(Pin)、引脚名称(Designator)、引脚类型(Input/Output/Power等)、电气属性(如是否允许悬空)。例如,STM32F407VGT6的原理图符号,其 PA0 引脚必须标注为 I/O VDD 标注为 Power NRST 标注为 Input 。这个库解决的是“这个器件对外提供哪些信号端口”的问题。
  • 封装库(PCB Library / Footprint) :定义器件的 物理安装模型 。它包含焊盘(Pad)、丝印(Silkscreen)、阻焊(Solder Mask)、钢网(Paste Mask)等机械层信息。例如,0402封装的电阻,其焊盘中心距必须为1.0mm,焊盘尺寸通常为0.6mm×0.8mm,丝印框需外扩0.2mm。这个库解决的是“这个器件在板子上如何被焊上去”的问题。
  • 原理图(Schematic) :基于原理图库,通过 网络标号(Net Label) 导线(Wire) 建立器件间的 逻辑连接关系 。它描述的是“哪个信号需要连到哪个引脚”,是功能实现的顶层设计蓝图。此处不关心物理距离、走线长度或层叠结构。
  • PCB(Printed Circuit Board) :基于封装库,将原理图中的逻辑连接转化为 物理走线(Track) 过孔(Via) 铺铜(Polygon Pour) 。它必须严格满足制造工艺约束(线宽/线距/孔径/阻焊开窗等),并兼顾电气性能(阻抗控制、回流路径、EMI抑制等)。此处解决的是“这个信号在物理空间中如何可靠、低成本地实现”。

这四者构成一个严密的依赖链: PCB依赖封装库 → 封装库与原理图库共同支撑原理图 → 原理图是PCB的唯一逻辑输入源 。任何一环缺失或错配,都将导致后续流程失败。因此,“抄”的第一步,永远是确保前两者的完备性与准确性。

1.2 库资源的务实策略:拒绝重复造轮子

新手常陷入一个认知陷阱:认为必须亲手绘制每一个电阻、电容、芯片的原理图符号和封装,才能算“真正学会”。这是一种典型的“工具理性”误用。在工业实践中,95%以上的标准无源器件(R/C/L)、连接器、常见MCU的封装,均由专业厂商(如ST、TI、NXP)或社区(如SnapEDA、Ultra Librarian)提供经过认证的、符合IPC标准的库文件。自行绘制不仅耗时巨大,更易引入尺寸错误、焊盘偏移、阻焊桥接等致命缺陷。

Extend Board复刻项目中,我们采取“三步走”库获取策略:
1. 源头复用 :直接提取稚晖君原始工程中的 .SchLib .PcbLib 。这是最高效、最可靠的方案,因为这些库已通过实际生产验证。Altium Designer中,右键原理图 → Tools → Make Schematic Library ,即可将当前原理图中所有器件自动导出为一个独立的原理图库文件;同理,右键PCB → Design → Make PCB Library ,可导出所有已放置器件的封装库。
2. 社区补全 :对于原始工程中未使用、但后续可能需要的标准器件(如0402电容、USB-C连接器),访问立创商城(szlcsc.com)。搜索器件型号(如 CL10B105KO8NNNC ),在结果页左侧选择 Schematic ,右侧选择 PCB ,点击 Export to Altium Designer ,即可一键下载经立创工程师审核的、符合国产PCB工厂加工能力的库文件。
3. 按需定制 :仅当遇到特殊定制器件(如特定LCD排线座、非标结构件)时,才启动手动创建流程。此时,必须严格依据器件Datasheet中的 Mechanical Drawing 章节进行建模,而非凭经验估算。

此策略将精力聚焦于核心设计环节——连接关系的正确性与物理实现的鲁棒性,而非低效的符号绘制。一个能快速构建起完整、可信库体系的工程师,其工程效率远超一个花费数周手工绘制标准库却对信号完整性一知半解的“绘图员”。

2. 原理图设计:构建精确的电气连接模型

原理图是整个硬件项目的“宪法”,它定义了所有信号的逻辑流向与电气约束。Extend Board的原理图虽简洁,却完整包含了显示驱动(LCD)、电源管理(LDO)、接口扩展(FFC FPC Connector)三大核心模块。复刻的关键,在于精确还原其网络拓扑,而非图形布局。

2.1 工程创建与库集成

  1. 新建工程 :启动Altium Designer → File → New → Project → PCB Project 。将工程命名为 ExtendBoard.PrjPcb ,保存至专用文件夹(如 D:\Hardware\ExtendBoard )。
  2. 导入官方库 :在工程面板(Projects)中,右键工程名 → Add Existing to Project → 分别添加稚晖君工程导出的 ExtendBoard.SchLib ExtendBoard.PcbLib 。此时,工程中将出现两个库节点。
  3. 创建原理图 :右键工程名 → Add New to Project → Schematic 。将新原理图重命名为 ExtendBoard.SchDoc 。双击打开。

关键原理 :库文件必须被“添加到工程”而非仅“添加到库列表”。前者建立工程与库的强绑定关系,确保编译时能准确解析所有器件引用;后者仅为临时浏览,编译时将报“Component not found”错误。

2.2 器件放置与网络标注

Extend Board原理图的核心器件包括:
- LCD :LCD显示屏模块(含背光驱动)
- RES :限流电阻(用于LED背光)
- J1 :FFC/FPC连接器(用于与主控板通信)
- GND/VCC/3.3V :全局电源与地网络

操作步骤如下:
1. 放置器件 :在原理图编辑区,按快捷键 P → P (Place Part)→ 在弹出的库选择窗口中,展开 ExtendBoard.SchLib → 依次选择 LCD RES J1 → 点击 OK → 在图纸上单击放置。器件初始方向可能不符,按空格键旋转90度,直至与参考图方向一致。
2. 放置电源与地符号 :按 P → P → 在库列表中选择 Miscellaneous Devices.IntLib → 选择 VCC GND 3.3V 符号 → 放置。注意: VCC 3.3V 是不同网络,不可混用。
3. 建立网络连接 :这是原理图设计的灵魂。避免使用导线(Wire)进行长距离、跨区域连接,因其极易造成视觉混乱与连接遗漏。全程采用 网络标号(Net Label)
- 按 P → N (Place Net Label)→ 在属性面板(Properties)中,将 Text 字段设置为 LCD_BL → 在 LCD 器件的背光控制引脚(如 LED+ )附近单击放置。
- 同样,为 J1 的第8引脚(对应 LCD_BL 信号)放置一个 LCD_BL 网络标号。
- 重复此过程,为所有需连接的信号建立标号: VCC GND 3.3V VDD5V (注意命名规范,下划线分隔)。
4. 全局网络检查 :按 Project → Compile PCB Project 。编译器将扫描所有网络标号,若同一标号出现在多个引脚,则视为有效连接;若某标号仅出现在一个引脚,则报错 Net XXX has only one pin 。Extend Board中 VDD5V 即属此类——它仅连接至FFC接口的供电引脚,用于为主控板供电,本身在本板无其他连接点。此非错误,而是设计意图,需在编译选项中将其设为 Warning 而非 Error (见后文)。

为什么用Net Label而非Wire? Wire要求物理导线必须从起点画到终点,一旦图纸布局调整,所有连线需重绘。Net Label则完全解耦:只要两个引脚拥有相同标号,无论相距多远、位于哪张子图,编译器均认定其电气连通。这极大提升了大型项目的可维护性与可读性。

2.3 自动化标注与设计验证

器件放置后,所有参考标识符(Designator)如 R1 U1 均为问号 ? 。手动修改不仅低效,且易出错。Altium提供了强大的自动化标注功能:
1. 执行标注 Tools → Annotation → Annotate Schematics → 在对话框中,保持默认设置( Annotate from Sheet 1 Order by X then Y )→ Update Changes List Accept Changes (Create ECO) Validate Changes Execute Changes
2. 编译验证 :再次执行 Project → Compile PCB Project 。此时,所有网络应无红色错误标记,仅有 VDD5V 等少数网络显示黄色警告( Warning ),表明其为单端网络,符合设计预期。

关键洞察 :原理图编译(Compile)不是“运行程序”,而是执行一次 静态语法与连接性检查 。它验证:所有器件是否能在库中找到、所有网络标号是否至少有两个连接点、是否存在未连接的输入引脚(Floating Input)。一次成功的编译,意味着原理图在逻辑层面已具备生成PCB的资格。

3. PCB设计:将逻辑连接转化为物理实体

原理图编译通过后,即可启动PCB设计。此阶段的核心挑战,是将抽象的网络连接,在严格的物理制造约束下,转化为可生产的铜箔图形。Extend Board作为一块小型显示扩展板,其PCB设计重点在于 布局合理性 基础布线规范性 ,而非高速信号处理。

3.1 PCB工程初始化与板框定义

  1. 创建PCB文件 :右键工程名 → Add New to Project → PCB → 重命名为 ExtendBoard.PcbDoc
  2. 同步原理图数据 :在PCB编辑器中, Design → Update PCB Document ExtendBoard.PcbDoc 。系统将弹出 Engineering Change Order (ECO) 对话框,列出所有待执行的操作(如添加器件、添加网络)。勾选全部 → Validate Changes Execute Changes 。完成后,所有器件将以未布局状态出现在PCB上。
  3. 定义板框(Board Outline) :这是PCB设计的第一步,也是最重要的一步。板框决定了PCB的物理尺寸与形状,所有后续操作(布局、布线、铺铜)都以此为边界。
    • 切换至 Mechanical 1 层( View → Panels → PCB Panel Layers & Colors → 找到 Mechanical 1 并确保其可见)。
    • P → L (Place Line)→ 在 Mechanical 1 层上,沿Extend Board屏幕的实际外形(约50mm x 30mm)绘制一个闭合矩形。务必确保首尾相连,形成封闭区域。
    • 绘制完成后,右键 → Select → All on Layer → 全选所有线段 → Design → Board Shape → Define from Selected Objects 。此时,软件将自动识别闭合区域,并将其设为板框。若提示 No board outline found ,说明线条未闭合,需用 Edit → Move → Drag 微调端点使其重合。
    • 验证 :切换至 Keep-Out Layer ,观察板框是否已自动生成一条粗线。此线即为所有布线与铺铜的物理边界。

为何必须先定义板框? Altium的许多高级功能(如自动铺铜、DRC规则应用、3D视图)均依赖于一个明确定义的板框。未定义板框时强行布线,可能导致铺铜无法填充、DRC检查失效、3D模型错位等一系列连锁问题。

3.2 器件布局:遵循信号流向与热力学原则

布局(Placement)是PCB设计中最具艺术性的环节,但绝非随意摆放。Extend Board的布局逻辑清晰:
- 核心器件居中 :LCD模块位于板子中央,是整个系统的视觉与功能中心。
- 接口外设靠边 :FFC连接器(J1)置于板子一侧边缘,便于线缆接入。
- 电源器件就近 :限流电阻(R1)紧邻LCD的背光引脚,缩短大电流路径。

操作步骤:
1. 切换视图 :按 Shift + S 循环切换层叠视图,确保 Top Layer (顶层)、 Mechanical 1 (板框)、 Top Overlay (顶层丝印)可见。
2. 移动器件 :选择 LCD → 按空格键旋转至正确方向 → 拖拽至板框中心区域。同理,将 J1 拖拽至板子左侧边缘, R1 拖拽至 LCD 背光引脚旁。
3. 锁定关键器件 :右键点击已定位的 LCD Properties → 勾选 Locked 。此举防止后续操作中意外移动核心器件,保证布局稳定性。

布局黄金法则 :所有连接关系中, 电源与地路径应最短 高频/敏感信号路径应最直 发热器件应远离精密模拟电路 。Extend Board虽无高频信号,但 R1 作为背光限流电阻,其功耗不可忽视,必须确保其焊盘有足够铜面积散热,并远离LCD的柔性排线接口(FFC),以防热应力损伤排线。

3.3 布线参数与DRC规则配置

在开始布线前,必须预先设定物理制造约束。这些约束由PCB加工厂(如嘉立创、捷配)提供,是设计可行性的底线。

  1. 查询加工能力 :访问嘉立创官网 → 免费打样 → 查看 常规参数 。典型二层板参数为:最小线宽/线距 6mil (0.152mm),最小过孔孔径 0.3mm ,最小阻焊桥 0.1mm
  2. 配置布线规则
    • Design → Rules → 展开 Electrical → 双击 Clearance → 将 Minimum Clearance 设为 6mil 。此规则强制所有铜箔(走线、焊盘、覆铜)之间距离不得小于6mil。
    • 展开 Routing → 双击 Width → 点击 Add Rule → 设置 Name Power → 在 Where the First Object Matches 中选择 Net Full Query → 输入 3.3V → 在 Constraints 中,将 Min Width Max Width Preferred Width 均设为 10mil (电源线需更宽以降低压降与温升)。
    • 同理,为 GND 网络创建 Width 规则,设为 12mil
    • 对于普通信号线,保持 Width 规则的 Preferred Width 6mil
  3. 应用规则 :所有规则配置完毕后,点击 Apply OK

规则优先级 :Altium规则按“Specificity”(特异性)排序。一个针对 Net=3.3V 的规则,其优先级高于一个针对 All 的通用规则。因此,电源线规则会自动覆盖通用线宽规则,无需手动切换。

3.4 交互式布线与铺铜

  1. 启动布线 :按 P → T (Place Track)→ 将鼠标移至 LCD LCD_BL 引脚焊盘上 → 单击起点 → 移动鼠标至 R1 的一个引脚焊盘 → 单击终点 → 完成一条连接。重复此过程,连接所有网络。
  2. 利用高亮功能 :按 Ctrl + 鼠标左键 单击任意网络标号(如 LCD_BL ),PCB上所有属于该网络的焊盘与走线将高亮显示(绿色),极大提升查线效率。
  3. 敷设电源平面 Place → Polygon Pour → 在属性面板中,将 Net 设为 GND → 勾选 Remove Dead Copper Pour Over All Same Net Objects → 在板框内绘制一个覆盖整个板子的多边形 → 右键结束。软件将自动移除死铜,并将所有 GND 网络焊盘与之连接。
  4. 重新敷铜 :布线完成后,按 Tools → Polygon Pours → Repour Selected (或全选后右键 Polygon Actions → Repour All ),使铺铜更新以适应最新布线。

铺铜本质 :铺铜(Polygon Pour)并非简单地“把地填满”,而是创建一个与指定网络(如GND)电气连通的铜皮区域。其核心作用是:① 提供低阻抗的公共参考地平面;② 作为高频信号的回流路径;③ 辅助散热。 Repour 操作是必需的,因为布线会改变焊盘位置与连接关系,旧的铺铜可能产生孤立铜岛(Dead Copper)或连接失效。

4. 设计验证与生产文件输出

设计完成不等于可以投产。严谨的硬件工程师必须执行多层次的验证,确保设计100%符合电气、物理与制造要求。

4.1 设计规则检查(DRC)

Tools → Design Rule Check → 在 Setup 标签页中,勾选所有关键规则组( Electrical , Routing , Manufacturing , High Speed )→ Run Design Rule Check 。报告将列出所有违规项(Violations)。

Extend Board常见的DRC问题及解决方案:
- Clearance Constraint 违规 :走线过于靠近焊盘或另一条走线。解决方案:调整走线路径,或确认该间距是否确为制造厂能力极限(如6mil)。若为设计疏忽,必须修正。
- Silk to Solder Mask 违规 :丝印文字覆盖了阻焊开窗区域,可能导致焊接时字迹被锡膏覆盖。解决方案:在 Rules → Manufacturing → Silk to Solder Mask 中,将 Minimum Silk to Solder Mask 设为 2mil ,并 Repour 丝印层。
- Un-Routed Net 违规 :存在未连接的网络。这是严重错误,必须返回原理图检查网络标号拼写、器件引脚是否遗漏连接。

DRC是最后防线 :它不保证设计功能正确(那是原理图的责任),但保证设计 物理上可制造 。任何DRC错误都必须100%解决,否则PCB厂将拒收或量产报废。

4.2 Gerber文件生成:连接设计与制造

Gerber是PCB行业的通用制造语言,它将PCB设计中的每一层(铜箔、阻焊、丝印、钻孔)转化为数控机床可识别的坐标指令。

  1. 配置Gerber输出 File → Fabrication Outputs → Gerber Files
  2. 设置层映射
    • General Units Inches Format 2:5
    • Layers :勾选 Plot Layers 下的 Used On → 确保 Top Layer , Bottom Layer , Top Overlay , Bottom Overlay , Top Solder Mask , Bottom Solder Mask , Drill Drawing , NC Drill 全部被选中。
    • Advanced Gerber Protocol RS-274X (扩展Gerber), Embedded Apertures 勾选。
  3. 生成文件 OK → 文件将生成在工程文件夹的 Project Outputs for ExtendBoard 子目录中。

Gerber文件命名规范 ExtendBoard.GTL (顶层铜箔)、 ExtendBoard.GBL (底层铜箔)、 ExtendBoard.GTO (顶层丝印)、 ExtendBoard.GBO (底层丝印)、 ExtendBoard.GTS (顶层阻焊)、 ExtendBoard.GBS (底层阻焊)、 ExtendBoard.TXT (钻孔文件)。嘉立创等平台要求文件名严格匹配,否则无法自动识别层。

4.3 钻孔文件(NC Drill)与IPC网表

  • NC Drill File → Fabrication Outputs → NC Drill Files OK 。此文件定义所有过孔与通孔的位置与直径。
  • IPC网表 File → Fabrication Outputs → IPC-D-356 Test Point Report 。此文件用于PCB厂进行飞针测试(Flying Probe Test),验证所有网络连接的正确性。虽非强制,但强烈建议生成。

5. 复刻之外:理解硬件设计的底层思维

完成Extend Board的复刻,你已掌握了硬件设计的骨架。但真正的工程师,还需穿透工具表象,理解其背后的工程哲学。

5.1 “抄”的终极目标:建立物理直觉

当你第一次在PCB上看到 3.3V 网络被一条10mil宽的走线连接,而 LCD_BL 信号仅用6mil走线时,你应立刻联想到:
- 10mil走线在1盎司铜厚下,载流能力约0.5A,足以驱动LCD背光;
- 6mil走线载流约0.3A,满足数字信号传输需求,且更易绕线;
- 若将 3.3V 也用6mil走线,其压降与温升将显著增加,可能导致LCD亮度不稳。

这种将设计参数与物理世界(电流、电压、热量、机械应力)建立即时映射的能力,就是“物理直觉”。它无法从教程中习得,只能在反复的“抄—改—测—错—悟”循环中淬炼而成。每一次DRC报错,都是物理定律对你设计的无声拷问;每一次焊接成功,都是你直觉的一次胜利加冕。

5.2 从复刻到创新:你的第一个设计决策点

Extend Board的 VDD5V 网络是一个绝佳的思考起点。它被设计为单端网络,仅向主控板供电。但如果你的项目需要双向供电(如主控板也为扩展板提供5V),你会如何修改?
- 方案A:在原理图中,为 VDD5V 添加一个5V LDO,使其成为本地电源。
- 方案B:在PCB上,为 VDD5V 网络增加一个肖特基二极管,实现电源路径管理(Power Path Management)。
- 方案C:彻底重构电源架构,采用USB PD协议协商电压。

选择哪个方案,取决于你的系统需求、成本预算、开发周期与个人技能树。没有绝对正确的答案,只有最适合当下情境的权衡。而这个权衡过程,就是硬件设计从“抄”迈向“创”的临界点。

我曾在一款工业传感器板上,为解决现场电磁干扰导致的ADC采样跳变,将原设计中一根10cm长的模拟地走线,改为在PCB背面铺设一个完整的、与ADC芯片焊盘直接相连的接地铜岛,并用8个过孔将其与主地平面紧密缝合。这个改动源于一次深夜的示波器探头测量——我亲眼看到那根走线上跃动的数百毫伏噪声。那一刻,我理解了教科书上“星型接地”的冰冷定义,是如何在真实的铜箔上呼吸与搏动的。

硬件设计的终极浪漫,不在于绘制出多么炫酷的电路图,而在于你手中的烙铁,能将脑海中的电流与电压,稳稳地、可靠地,注入到现实世界的每一个角落。

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐