
第一次参加大学生智能车竞赛大部分人的状态都是“先跑起来再说”对硬件的理解往往停留在“开发板杜邦线面包板”的阶段。直到有一天规则通知单上写着“自制电路板、禁止使用洞洞板大面积飞线”才不得不面对一个绕不开的大山PCB。我第一块板子就是从那时候开始画的前后改了四版烧了三块驱动芯片才把原理图到实物的链路彻底跑通。这篇先讲硬件部分里最重的一环——原理图之后、打样之前的PCB设计全过程记录一下从无到有的思路和踩过的坑。这篇内容适合两类人一是准备参赛但还没系统画过板子的大一大二同学二是对AD20这类软件熟悉但没经历过完整投板流程、想知道竞赛场景下哪些地方最容易被忽视的新手。我会把规划思路、工具配置、布局布线规则、DRC检查、文件输出一步一步拆开讲包含可以直接照抄的参数和经验今天先更新第一块主板的内容传感器板和驱动板后续再单独写。1. 起步前的整体思路竞赛硬件不是画完板子就完事1.1 先读懂规则再决定画什么很多人的第一反应是打开AD20开始画图这是最容易走弯路的地方。第二十一届智能车竞赛的规则里对车模尺寸、电池电压、传感器类型、MCU平台都有明确限定这些直接决定了你的PCB长什么样。比如规定底盘长度不超过多少厘米、电池必须用什么接口、电机驱动能不能用集成模块还是必须自己搭H桥每一项都会影响板子的外形、接插件选型和功率走线区域。我的建议是先把规则文档里与硬件相关的原话摘抄出来列成一张核对表再开始设计。比如“车模长度不超过30厘米”这类尺寸约束看起来是机械的事但主板如果设计得太大加上电池仓和传感器支架后根本装不下最后只能返工。还有电池电压范围决定电容耐压值电机堵转电流决定MOS管余量和走线宽度这些都是规则的“连锁反应”。1.2 把整车拆成模块再决定板子数量一开始我想把所有功能塞进一块大板子里觉得板子少线就少。后来发现这个思路在竞赛场景里不一定最优。智能车主板上通常至少包含电源管理、电机驱动接口、主控MCU、传感器接口、调试接口这几部分。如果全部集中在一块板PCB面积会很大四层板成本也高布线时电源和信号还会相互干扰。我最终采用了“一块主干板若干小功能板”的方案主干板放电源转换、MCU最小系统、电机驱动接口和排针引出摄像头或电磁传感器单独做小板直接用排针插到主板。这样每块板面积小、走线短单面板或者双面板就能搞定成本低且调试时能单独拆下来排查。更重要的是规则每年可能微调模块化设计让明年改版时只需要重画其中一块不用推倒重来。1.3 为什么第一版建议“双面板手焊”很多教程一上来就推四层板理由是信号完整性好。但以竞赛初次的场景来说双面板完全够用。智能车主板上的最高频信号无非是MCU的时钟常见8M到几十M、PWM和串口双面板合理铺地之后信号反射和串扰完全可控。四层板的优势主要体现在地平面连续性和电源层完整性上但代价是打样贵、周期长而且出了问题用万用表排查反而更麻烦。我的选择是FR-4板材、1.6mm板厚、1oz铜箔双面板工艺选用最基础的绿油白丝印。这个组合在嘉立创打样五片不到几十块钱周期两三天非常适合频繁改版。焊接方式选择手焊的话封装尽量不要全用0402这种极小尺寸电阻电容首选0603MCU引脚多的芯片选LQFP封装留出足够的焊盘宽度手焊成功率会大幅提升。2. 工具选型与工程配置AD20和嘉立创EDA怎么选2.1 从零开始建工程需要先设定哪些参数工具方面竞赛圈里最常用的是Altium DesignerAD和嘉立创EDA。AD20功能全、教程多适合后期要往复杂方向走的人嘉立创EDA是国产软件云端协作、封装库集成打样流程很方便免费且上手快。我自己最早用的AD20因为学校实验室的电脑装好了学长给的工程文件也都是AD版本学习成本低很多。新建工程后第一件事不是画原理图而是设置好单位、网格、层叠参数。单位建议用mil还是mm取决于习惯但建库和连线时最好统一。AD20里按快捷键D-O-P进入Preferences把Board Insight的显示单位设成Metric毫米走线网格设成0.254mm10mil这样画封装时坐标计算不容易出错。层叠默认是双面板信号层Top/Bottom不要随便加层否则打样时要选更贵的工艺。2.2 原理图库与封装库坑最深也最值得先整理的部分PCB设计里最大的坑往往不是走线难而是封装不匹配。芯片的引脚间距、焊盘长度、丝印方向任何一个偏差轻则焊接困难重则装不上板子。我见过有人直接用了Altium自带的封装库结果引脚排序和手册完全相反板子回来后芯片只能飞线调试了三天才发现问题是封装选错。所以我会建议每个关键器件都从官方数据手册里查封装图亲手建库至少核对四点引脚数量与编号顺序、焊盘宽度和长度、引脚间距、丝印外框尺寸。对于MCU这类引脚多的芯片可以用AD自带的IPC封装向导但是生成后也要打开Libraries里手动核一遍。还有一个容易被忽略的是位号Designator的字体大小丝印字太小或方向混乱贴片时机器识别不出来手焊也容易看反。2.3 连接器与结构件画板前就要敲定的物理尺寸PCB设计里最容易被当成“最后再定”的其实是连接器和开孔位置。这往往是返工率最高的原因。比如电池XT60接口的焊盘间距、电机线的2.54mm排针还是3.81mm端子、编码器接口的Pin间距这些都要最早确定。因为竞赛车有车身结构主板安装孔的间距必须与车架上的铜柱位置一致。我的办法是先拿千分尺量好车架孔距再用CAD画一个简单的安装孔位图叠在PCB边框层里。如果直接用PCB编辑器里默认的方板尺寸等板子回来后装不进车架就只能重新打样。另外所有对外接口最好放在板子同一边方便走线和排线固定避免线束交叉。3. PCB布局与布线实操从规则到细节逐项拆解3.1 布局优先级电源接口、接插件、MCU、传感器布局是整个PCB设计中最影响成败的一步。我习惯的顺序是先放结构件和接插件电池座、电机端子、排针、安装孔再放主控MCU然后放电源转换部分最后放传感器和辅助电路。接插件的方向很重要。比如电池接口放在靠近板边、离电机驱动区远一点的位置原因是电源正负极之间有大电流路径接口太靠近信号区域会把开关噪声耦合进去。电机端子也要靠近板边且连接到MOS管或驱动芯片的走线要短而粗。MCU放在板子中央偏上位置周围留出尽可能多的布线通道这样信号线能更均匀地引出。有一个实测后觉得特别值得提醒的点如果你用的摄像头传感器需要排针连接建议把接收端排针周围额外留出2~3mm净空不要铺铜也不要走线因为排针和杜邦线比较粗空间不够很容易在插拔时刮伤相邻走线。刚开始我就为了省面积把排针旁边塞满了细走线结果每次插摄像头都要担心短路。3.2 线宽与载流能力0.3mm走线到底能过多少电流这个题目几乎是每个竞赛群里都会出现的问题。0.3mm走线能过多少电流答案不是固定值要结合铜厚和温升来算。经验公式I K * T^0.44 * A^0.725中K约0.024内层到0.048外层T为温升摄氏度数A为截面积平方密耳。实际工程中不用记这么复杂的公式直接按常用经验值来1oz铜厚、10℃温升条件下1mm线宽大约能过1A电流。反过来推0.3mm线宽大概能过300~400mA只适合信号线和弱电电源线绝对不适合电机主电源。我的车模电机堵转电流能到3~5A所以主电源线我直接铺铜宽度拉到了3mm并且额外开窗加锡即使如此长时间堵转铜皮还是有点烫手但不会烧断。下面是竞赛主板常见线宽的取值参考走线用途建议线宽说明电池正负极、电机回路2mm以上覆铜或加宽大电流路径越短越粗越好电源分支5V/3.3V0.5mm~1mm视负载电流而定摄像头和舵机走1mm信号线UART/PWM/IO0.2mm~0.3mm尽量短远离电源线晶振与时钟线0.3mm并包地走线尽量短两侧加地线隔离ADC采样线0.3mm并加滤波不要与电机线并行走线3.3 电源与电机驱动区域的处理和铜皮挖空操作电源区域是智能车PCB里最容易出问题的部分。我用的是7.2V镍氢电池或7.4V锂电池主板上有5V和3.3V两路LDO电机驱动用独立MOS管方案。这里有一个关键点逻辑地和功率地在PCB上要物理分割最后单点连接否则电机启停时的地弹电压会干扰MCU的ADC采样。具体做法是在AD20里用“线条铺铜边界”的方法先分区再分别铺铜。在布线层面把5V和3.3V的电源走线做成星形结构每路负载的电源独立从LDO输出端引出不要串接成菊花链。每个LDO输入输出端的滤波电容位置要好电容的地引脚必须直接打过孔到地平面不要绕路否则高频纹波抑制效果大打折扣。这里专门说一下热搜词里提到的“AD20中PCB板铜皮挖空”。我理解它的常见场景有两种一种是在某个区域内不要让覆铜GND铜皮覆盖比如天线下方或高压隔离区另一种是需要在铜皮上开一个绝缘窗口避免爬电。操作方法很简单选中需要挖空区域的外框在“Place”菜单选择“Polygon Pour Cutout”在覆铜区域内画一个闭合多边形然后重新铺一遍覆铜挖空区域就会自动保留。注意挖空边界要与周围走线、焊盘保持至少0.3mm的间距防止板厂蚀刻时边缘毛刺。3.4 晶振、ADC采样与信号线怎么布更稳晶振布局这块我第一次画板时直接放在MCU旁边但走线绕了一圈而且旁边有一条PWM线经过结果程序里串口收发乱码PWM频率也不稳定后来用示波器才发现晶振波形上有明显的毛刺。正确的做法是晶振尽量贴近MCU的OSC引脚两脚之间走线距离越短越好晶振下方禁止铺铜、禁止走其他信号线周围加一圈地线包裹。ADC采样布局也很有讲究。智能车里需要用ADC采集电池电压、电位器或电磁传感器信号这些信号通常只有几毫伏到几百毫伏非常容易被电源干扰。ADC参考电压和采样电路的地要单独走从MCU的地引脚单独拉一条线出来不要汇入功率地。在采样点加RC低通滤波比如1kΩ100nF可以滤掉大部分开关噪声。另外ADC采样线尽量与电机电源线保持垂直布线如果板子面积允许最好隔一层地。PWM信号驱动电机时因为频率通常十几kHz容易通过分布电容耦合到旁边信号线。我建议在MCU输出PWM到驱动芯片之间串联一个22Ω的电阻既能限制驱动尖峰又能吸收一部分反射实测对电磁兼容改善非常明显。3.5 覆铜、丝印、定位孔和其他容易忽略的小事覆铜是在双面板中获得地平面的最经济方式。我的习惯是整板双面覆铜底面覆铜连GND顶层在信号稀疏区域也覆铜接GND然后用过孔把顶层和底层的GND铜皮缝合起来过孔间距不超过5mm。但要注意覆铜和走线之间的间距至少要留0.3mm否则DRC会报一堆间距错误。还有一个高频抱怨是“覆铜之后某些信号不正常了”大概率是铜皮与信号线、焊盘连接形成了意外的环路需要单独设网络规则把保险丝位、晶振下方的铜皮挖空或用Keepout区域隔开。丝印方面我吃过两次亏。一次是板子回来后电源接口旁边没写正负极结果装机时反接烧了LDO另一次是排针方向没有丝印标注插反了导致舵机乱摆。现在我会在每个关键接插件旁边都加上丝印注释标注VCC、GND、SIG这些名称字高至少1mm。定位孔用M3孔径3.2mm并用Keepout画一个比孔径大一点的禁布区防止铺铜时把螺丝孔封住。4. DRC检查、Gerber输出与打样4.1 跑DRC前先改好规则否则全是噪音很多新手把DRC当成“画完板再跑一遍”的流程结果一跑出来几百条错误根本不知道从哪里改起。正确做法是在画板之前就把规则配置好特别是间距规则和线宽规则。AD20里按快捷键D-R进入规则设置我对双面板常规配置是最小间距0.254mm10mil最小线宽0.2mm常用线宽0.3mm最大线宽2mm电源类网络单独设最大线宽3mm。间距规则还可以对不同类型的网络差异化处理。比如GND网络和信号网络间距0.3mm高压区域如果有间距放宽到1mm。注意一定要给“敷铜”单独设置间距规则如果敷铜和所有网络的间距都设成0.2mm容易导致板厂加工困难或蚀刻后铜皮起翘一般敷铜间距放到0.4mm以上比较稳。4.2 常见DRC报错及处理画完板跑DRC时报错主要分几类不用看到红色就慌Clearance Constraint间距错误最常见一般是走线或焊盘离得太近用Message面板双击定位后把线拉开或换层。Short-Circuit短路错误在双面板里大概率是过孔穿层时碰到了无关网络一般要把过孔移开。Un-Routed未连接布线有断头或飞线没走完按快捷键CtrlW继续走线。Silk To Solder Mask丝印压焊盘会导致丝印刮伤或上锡不良把丝印移开或调整位置。Minimum Solder Mask Sliver阻焊桥太窄加工时绿油容易脱落常见于细间距引脚间可以开Solder Bridge检查并适当加大阻焊扩展。我一般跑两遍DRC第一遍用默认规则看全局第二遍把间距规则改成板厂常用的“最小0.2mm”再跑一遍确保投板后不会被工艺检查卡住。这样虽然偶尔会多出一些黄色提醒但能避免最致命的加工问题。4.3 生成Gerber和对接板厂别漏了装配层和钻孔文件当DRC清零后就到了输出文件环节。竞赛打样最常见的坑是导出的Gerber文件不全板厂打出来的板子和设计稿对不上。AD20里推荐用“File - Fabrication Outputs - Gerber Files”生成关键设置是所有层都勾上顶层信号层、底层信号层、丝印顶层底层、阻焊顶层底层、Keepout层、机械层。还要勾选“Drill Drawing”和“Drill Guide”这两个是过孔和螺丝孔的钻孔信息漏了钻孔文件的话板厂不知道哪里打孔。如果使用嘉立创下单助手更省事的方式是直接导出“Gerber钻孔”压缩包或者干脆把AD工程文件一起上传让系统自动解析。但我还是建议自己生成Gerber后先用第三方工具如Gerbv拉出来看一眼确认走线、挖空、定位孔都在再点下单。别指望板厂帮你检查设计错误他们只负责按文件加工。4.4 交板前自检清单投板前最后再对一遍能省至少一次返工MCU、驱动芯片的电源引脚是不是都有去耦电容建议每脚 0.1uF电源输入再加10uF~100uF复位按键和启动配置电阻是否正确上拉或下拉电源正负极方向是否有丝印标识防反接二极管是否加上每个排针的网络名是否和原理图一致特别是串口、SWD下载接口板框尺寸和安装孔是否与车架匹配晶振下方是否挖空或禁布晶振到MCU走线是否最短电池、电机大电流走线是否足够宽是否加开窗散热DRC是否清零或只剩可接受的非关键警告5. 打样之后到上车前的避坑实录5.1 电源纹波、晶振不起振、倒车检测失灵……经典翻车现场打样回来后就不是设计阶段了而是焊接和调试阶段但PCB的问题在这一刻才会真正暴露。我遇到第一个问题是电源芯片在上电瞬间冒烟——检查后发现是输入电容离LDO太远上电时振荡直接把芯片击穿。后来又遇到晶振不起振查了好久发现是晶振的负载电容焊盘参考地铜皮被覆铜隔断地回路太长导致无法起振。还有个典型问题是倒车检测失灵。我的车用编码器测速信号线从车尾连到主板中间经过电机驱动区结果每次电机一转速度读数就乱跳。后来改用带屏蔽的排线并且把编码器信号线的包地走线只在一端接地问题才消失。主板设计时如果提前把编码器接口放在远离电机的板角就不会这么折腾。5.2 手工焊接和技术工艺识别哪些问题要怪自己PCB板子焊接时焊盘脱落是最让人崩溃的。60W以上的尖头烙铁长时间加热小焊盘很容易把铜箔掀起。正确做法是温度控制在350℃左右每个焊点停留不超过两三秒必要时加助焊剂。还有一种问题是过孔不通板子做好后过孔内部没镀透万用表一量就断路。这种工艺问题肉眼不好发现如果怀疑是过孔问题可以焊接前用放大镜看孔口有没有金属光泽。板厂的“绿油起泡”“字符模糊”这类问题也要会判断。轻微起泡不影响性能但如果铜皮都露出来了就要联系板厂补做。竞赛周期紧的时候与其和板厂扯皮不如在BOM里多备几片关键芯片和电阻电容因为手工焊接时的报废率远比想象中高。5.3 版本管理、备份和BOM整理画PCB改动频繁版本管理真的很关键。我给每版文件命名时都会带上日期和版本号比如“mainboard_20250313_v1.2”并在原理图里加一个注释框记录改动内容。AD20的工程文件最好每改完一个阶段就压缩备份一次放到网盘或Git仓库因为软件崩溃或工程文件损坏不是小概率事件。BOM表也不要偷懒。很多元件看丝印是一样的但封装和参数完全不同。我在BOM里会标注“位号-型号-封装-数量-购买链接/替代型号”并且按功能模块分组。这样做的好处是焊接时不用每颗料都去翻数据手册补料时也能快速知道哪个位号缺少。5.4 如果重新做这一版我会怎么改回头看这块主板如果让我重新画最先改的是把电源分区更彻底一点不光是地分割而是5V和3.3V的走线一开始就严格独立避免共阻抗耦合。其次是在电机驱动输出端并联一个100nF的高频陶瓷电容和一个小阻值碳膜电阻吸收振铃这能显著降低对控制信号的干扰。还有一个细节是把所有排针旁边加上测试点调试时夹示波器探头不用再扒保护膜。这些都是小改动但对稳定性的提升是质变。比赛场上真正拼的不是谁画得好看而是谁的车在最后跑圈的时候不抽风。再分享一个个人体会画PCB这件事看十篇经验帖都不如自己完整走一遍投板流程。第一次打样回来点上电没冒烟比拿什么奖都开心。如果你现在正卡在原理图或封装阶段别怕硬着头皮往下画画完交给板厂的那一夜你自然会明白很多事。下一期我准备写传感器小板和驱动板的布局要点以及和主板之间的连接器怎么选型有需要的可以先关注起来。