第一次给智能车板子选层数的时候,我根本没把这事当回事。当时想法很简单:两层板画起来快,打样便宜,学校的报销也方便。直到车队里电磁组的数据在赛场上被旁边赛道干扰到判不了元素,回来换四层板重画一遍,整车的稳定性直接上了两个档次,才明白这块板子才是智能车的地基。如果你也在准备智能车竞赛,或者手上正有一块调不明白的板子,那这篇用Altium Designer 20做四层板智能车PCB设计的完整记录,应该能帮你少走不少弯路。
这篇文章不只是讲“点哪里拉线”的操作步骤,更多是讲清楚为什么智能车要做四层板、四层板的每一层到底在干什么、布局布线的时候脑子里要想哪些事。从叠层设置到内电层处理,从电源完整性到不同组别(电磁、摄像头、平衡、视觉)的设计侧重,再到打样和生产文件输出的完整闭环,我都会按实际做项目的顺序捋一遍。无论你是第一次画四层板的新手,还是想优化现有板子性能的老队员,都能找到可以直接复用的东西。
1. 为什么智能车PCB要选择四层板
1.1 两层板和四层板到底差在哪里
很多人一上来就问“四层板是不是只是多两层走线空间”,如果你也这么想,后面设计大概率会吃亏。两层板和四层板之间,不只是“能走更多线”的差别,而是整个电磁环境、电源质量和信号回流的本质差别。
两层板的典型结构是:顶层走信号和电源,底层走信号和地,最后用大面积铺铜来凑合。问题是,你永远无法提供一个完整的参考平面。信号走顶层,底下那层地铜皮可能是被各种走线切成碎块的“瑞士奶酪”,信号的回流电流只能绕着走,形成一个很大的环路。这个环路面积一大,对外辐射和对内干扰都会急剧增加。智能车上的电机、舵机、大电流开关器件全都是干扰源,这种环境下两层板的先天短板很容易暴露出来。
四层板的典型结构就完全不一样了。中间两层专门做内电层,一层地、一层电源,信号走顶层和底层。这带来一个很多人没注意到的优势:每一根走线的下方,都有一块完整的地平面接着。信号的回流电流可以就近从地平面直接返回驱动端,环路面积被压缩到最小。这就像同样是送快递,一个是从巷子里绕七八个弯,一个是直接上高架,效率、安全性和稳定性都完全不同。
成本和周期上,四层板确实比两层板贵。同一个尺寸的板子,两层板打样可能几十块,四层板通常要到一百多甚至更高,生产周期也多一到两天。但对竞赛车来说,这块投入换来的是调试阶段节省的几个通宵,以及赛场上更稳定的发挥,这笔账算下来非常划算。
1.2 智能车场景对PCB的硬性需求
智能车不是普通嵌入式开发板,它的工作环境很极端:电机堵转时瞬间电流能到好几安培,换向时产生的反电动势尖峰能让电源纹波剧烈抖动,电刷和H桥的开关噪声更是高频干扰的主要来源。如果板子本身不够“硬”,传感器采集的数据稍微抖一抖,算法再强也救不回来。
以电磁组为例,采样前端处理的信号非常微弱,通常是毫伏级到几十毫伏级的感应电压,而电机驱动就在旁边几厘米的地方。如果没有完整的地平面去屏蔽和吸收干扰,采样数据随电机转速波动而漂移,你调了一周的PID可能根本没法收敛。摄像头组也有自己的痛点:DVP并口并行信号线多、频率高,时钟和数据的等长关系必须处理好,两层板在布线空间上非常吃紧,而且信号线之间容易串扰。
另外智能车是一个反复拆装调试的系统。板子要跟着车模跑,也要经常插拔排线、更换传感器模块,对机械强度和接口可靠性的要求也不低。四层板的整体结构更稳,板子不容易变形,接口位置的抗撕裂能力也强一些。这些都是从实际使用里总结出来的硬性需求,不是单纯“越高层数越好”的玄学。
1.3 什么时候两层板也够用
说实话,我并不是说所有智能车都无脑上四层板。如果你刚开始接触PCB设计、想先把最小系统跑起来,或者学校报销额度有限、做的又是对信号质量要求不高的演示级车模,两层板依然是一个合适的起点。两层板方案在21届之前的很多老车模上都有大量案例,而且开源资料多,照着画不容易踩坑。
但这里有一个判断标准:你的传感器信号是模拟小信号还是高速数字信号,板子上有没有大电流功率回路和敏感采样回路共存的场景。只要满足其中两条,我都建议尽量上四层板。尤其是电磁组的模拟采样和电机驱动的隔离,四层板的完整地平面带来的改善,是你在两层板上用再多铺地技巧都很难追回来的。
2. AD20环境配置与四层板前置工作
2.1 新建工程与层叠管理器设置
在Altium Designer 20里做四层板,第一步不是急着画框,而是先把工程结构建清楚。我的习惯是一个车模项目一个PCB工程,原理图按电源、最小系统、驱动、传感器分页,工程名和文件名里带上日期或者版本号,比如“CarBoard_V2_20240601”。这个习惯在后期迭代时特别有用,回滚版本时一眼就能找到对应文件。
新建PCB文件之后,打开Layer Stack Manager(快捷键D+K),默认是两层板结构。我们需要把它改成四层。在AD20里可以直接选择系统预设的Four Layer类型,它会自动生成Top Layer、GND(内电层1)、Power(内电层2)、Bottom Layer这样的标准叠层。名称可以自己改,但为了后续设计清晰,建议直接叫GND和PWR,不要用Internal Plane 1这种默认名。
然后设置叠层参数。板材厚度方面,智能车一般用1.2mm或1.6mm,1.6mm更结实,1.2mm更轻也更适合空间受限的车模。我通常选1.6mm,因为这个厚度下板厂的加工良率更高,过孔也更可靠。铜厚方面,外层用1oz(35um),内层用0.5oz就够用,电源和地平面主要是靠面积而不是靠铜厚来减小阻抗的。注意,介质厚度和阻抗参数要和板厂确认,AD里的数值先按默认算,但真正下单前要跟打样厂家核对。
2.2 规则系统一次设到位,后面不返工
AD20的规则系统是很多人嫌麻烦不设、后面又猛吃后悔药的地方。做四层板之前,我强烈建议把下面这几类规则先定好。
线宽规则怎么设?我的做法是新建几个网络类:把GND和所有电源网络分到Power类,摄像头时钟和数据线分到HighSpeed类,其余的一般信号归Default类。然后给每个类指定不同的线宽优先级。默认信号线宽度设为8到10mil,电源线最低做到20mil,大电流的电机驱动线做到40mil以上。这样在布线的时候,关系到安全的地方自动加粗,不用手动一条条改。
间距规则我习惯用6mil。加工能力强一点的板厂能做到4mil,但竞赛板没必要追求极限,6mil的良率高、成本也稳定。还有一个关键是过孔设置。智能车板的过孔我一般用外径0.6mm、内径0.3mm,电源路径上可以用0.8mm外径的过孔增加通流能力。过孔盖油还是开窗,我建议信号过孔盖油,避免焊接时锡膏钻进去短路;需要测信号的测试点单独开窗。
在AD20里,所有规则都在Design → Rules面板中配置。配置完成后跑一次Design Rule Check(快捷键T+D),能看到当前板子的规则违规情况。这个动作要养成习惯,每完成一个阶段的布局布线就检查一次,别等到最后一次性面对几百个错误。
2.3 面板显示和快捷键,先把效率提上来
我不赞成直接用默认设置画板,效率低而且容易瞎。AD20里我常用的几个设置:单位随时用Q键切换mm和mil;网格用G键循环切换,布线时推荐用5mil网格,精密调整时用1mil;层颜色在View Configuration面板里调,把GND层设成深绿色、PWR层设成红色,一眼就能认出当前在哪一层。
还有一个特别提升效率的操作:在原理图里选中一个元件或网络,在PCB界面用交叉选择(Cross Select Mode)会让对应对象同步高亮。做智能车这种几十个元件的板子,这套联动操作能帮你快速定位每个模块的元件,在Room模式下分区摆放的效率尤其高。另外Shift+S单层显示、Ctrl+中键旋转视图、Ctrl+D显示设置这些快捷键,在布线阶段能节省非常多的时间。
3. 四层板布局布线的核心实战
3.1 模块化布局:没有规划就是返工的开始
智能车主板的元件数量不算很多,但麻雀虽小五脏俱全。我习惯先把原理图按功能模块拆好,在PCB布局阶段直接按“模块块”摆。
典型的分区方式是这样的:单片机最小系统(晶振、复位、启动配置、SWD调试口)放在板子中央偏上;电源模块和总开关放在一侧板边;电机驱动和电机接口放在功率回路集中的另一侧板边;传感器接口根据车模安装位置靠近对应板边;按键、拨码开关、LED状态灯放在便于操作和观察的位置。这样做的好处是,信号从传感器进入后可以沿着清晰的方向流到MCU,再输出到驱动,不会在板子上穿来穿去。
在AD20里,从原理图Tools菜单选择Cross Select Mode和Create Room,可以按原理图页自动生成Room区域,然后把元件导入PCB后按Room打散排列。这里有一个细节:Room区域不要只是把元件丢进去,还要根据结构尺寸调整Room的位置和形状,让各个模块之间的接口方向一致。比如电池接口朝车尾、电机接口朝车尾侧面、传感器接口朝车前,这样装车走线的时候不会交叉打架。
3.2 布线顺序:先画命脉,再画静脉
很多人拿到板子就是从头到尾一片地毯式布线,出来的板子性能好不好全看运气。我更推荐按照下面的顺序来:
第一优先级是“命脉线”:晶振到单片机引脚的连线、复位线、摄像头的时钟和数据线、电磁采样前端到运放的连线。这些线必须短、直、少打过孔,走线时尽量让它们靠近地平面且周围用地包住。
第二优先级是电源主干:电池输入到总开关、开关到稳压器、稳压器到各个电源引脚。电源线要宽,过孔要多打几个,尤其注意大电流通路上不要只有单个过孔连接,因为过孔是电流的瓶颈。
第三优先级才是一般信号线和控制线:编码器信号、舵机PWM、按键、LED、调试接口等,这些线对噪声要求没那么苛刻,可以走底层作为补充。
这里要特别强调:绝对不要在地平面上乱切缝。很多人为了走一根信号线,就直接在GND内电层上挖一条槽,这等于把完整的参考平面撕开了一个口子,信号的回流路径被迫绕远,整块四层板的优势瞬间就被毁掉了。如果信号必须穿过某个区域,优先走顶层或底层,用普通的信号过孔换层,而不要动内电层的完整性。
3.3 内电层要这样用才不白花四层板的钱
四层板的价值完全体现在内电层怎么用。GND层的原则是:保持完整,尽量不分割。除非有特殊隔离需求,否则整层就是一张完整的铜皮,不做任何修改。PWR层可以根据需要做适当分割,比如3.3V区域、5V区域、VBAT区域,但分割线要尽量短,避免形成细长的“孤岛”。
还有一种更推荐的做法:如果板子上电压种类不多,PWR层也可以做一整片3.3V电源平面,5V和VBAT用顶层和底层的宽走线来带。这样做的好处是电源层不用开槽,完整性更好。我的实际体验是,对参赛车来说,一块完整的3.3V平面够用而且效果更好,因为MCU和传感器基本都在3.3V域。
过孔连接到内电层的处理也很有讲究。芯片的电源引脚旁边一定要打一个电源过孔和一个地过孔,这个“成对过孔”能让去耦路径最短。很多人只在芯片旁边放了一排滤波电容,但电容到芯片引脚的走线却绕了很远,这样高频去耦效果会大打折扣。正确的做法是:0.1uF电容的其中一个焊盘直接打过孔下到电源平面,另一个焊盘打过孔下到地平面,电容本身放在芯片电源引脚旁边,走线控制在最短。
4. 电源系统与信号完整性设计(四层板的核心收益)
4.1 先算电流再画线,电源树是基本盘
拿到一张智能车原理图,第一件该干的事是理清电源树。以常见的7.2V动力电源输入为例:电池进来经过总开关,然后分三路走,第一路直接给电机驱动芯片的VM端,第二路经过降压稳压器转成5V给舵机和编码器,第三路再进一步转成3.3V给MCU和传感器。
每一路有多大的电流,决定了你需要多宽的走线和多少个过孔。我一般用经验值估算:1oz铜厚下,温度升高约10℃时,1mm宽走线大约能通过1A电流,但实际设计中我会留一倍以上余量。比如电机连续工作电流如果是2A,那功率线上我会直接用2mm以上的走线,再配合大面积铺铜。大电流路径上的过孔数量也不是随意放的,一个0.6/0.3mm的过孔通流能力大约是0.5到1A,2A的电流我至少打4个以上的并联过孔,而且分布均匀。
这里还要注意一个非常容易踩的坑:稳压器的散热。很多人用的低压差线性稳压器,输入7.2V,输出3.3V,压差接近4V,如果电流到200mA以上,发热就非常可观。在布局时,稳压器下面要打一排过孔到底层铺铜辅助散热,周围的铜皮尽量做宽。否则调试时芯片发烫严重,可能不是负载有问题,纯粹是散热没做好。
4.2 去耦电容的位置比数量更重要
去耦电容是每个电源引脚旁边那个0.1uF小电容,很多人知道要放,但位置放不对等于白放。电容只有在尽量靠近芯片电源引脚的时候,才能有效旁路高频噪声。我的标准是:电容焊盘到芯片电源引脚的走线不超过100mil,而且电容的电源端和接地端分别用短的走线接到对应过孔,不要让电源走线先从电容下面绕一大圈再到芯片。
电源入口的大电解电容则是另一件事。在电池接入端、电机驱动电源端、稳压器输入输出端,都要放一个大容量电解电容。电机驱动电源端的100uF以上电解电容尤其关键,它能吸收电机堵转和换向时产生的电流尖峰。我见过不少一开始电解电容放得离电机驱动芯片很远、用细线走过去的板子,电机一启动电压就开始跌落,MCU直接复位,后来把电容焊到驱动芯片旁边才好。
4.3 功率地和信号地的处理方式
智能车板上最高频的一个争议话题就是“要不要把功率地和信号地分开”。我的结论是:在四层板上,GND层尽量保持完整,不要为了隔离而把地平面切开。功率回路的噪声确实要管,但更好的方式不是割地,而是控制功率回路的面积和位置。
具体做法是:电机驱动芯片、电机接口、大电解电容的GND走线和铜皮,集中在板子的一个区域,让大电流从电池接口进入驱动芯片后能直接通过这个区域回到电池负极。信号地则通过较细的走线和过孔连接到完整的GND平面。如果实在担心模拟采样前端受干扰,可以在模拟传感器电源入口处加一颗磁珠或0欧电阻,把模拟电源单独隔离出来,但地平面仍然保持完整。
这种“电源分割、地不分割”做法,我在电磁组的板子上验证过很多次,采样稳定性明显好于以前两层板时代“模拟地、数字地、功率地各割一块”的方案。你可以把GND平面想象成一个巨大的湖,所有噪声都倒进去会被快速稀释,但如果你把湖底隔离成几个小潭子,噪声就只能在局部来回震荡了。
5. 不同组别的四层板设计侧重
5.1 电磁组:采样前端和运放电路是命脉
电磁组的传感器信号是整个控制回路的眼睛,前端板子做得好不好,直接决定你上赛道后能不能稳定过十字和环岛。设计重点放在传感器接口到运放这段链路上。
首先是传感器线圈或罗氏线圈的接口位置。如果传感器采用排针和独立小板方式,主板的接口就要安排在最靠近车模前轮的位置,接口到主板的排线尽量短,最好是主板边缘“朝着车前进方向”的那一侧。因为微弱感应信号的幅度很小,排线越长越容易被车身电机辐射干扰。
运放布局更要精打细算。每个通道的运放尽量放在对应接口附近,输入走线宽一些、短一些,并且两侧用地线包住。运放的反馈电阻要选温漂小的类型,并且紧贴运放引脚,减少寄生电容对增益的影响。还有一个容易被忽略的细节:运放的供电去耦非常重要,因为运放对电源纹波极其敏感,电源脚旁边那个0.1uF电容不要省,而且必须放在运放旁边。
5.2 摄像头组:高速信号和机械结构要同时考虑
摄像头组相比电磁组多了图像数据信号的处理任务,对布线的时序要求更高。如果是DVP并口摄像头,数据线D0到D7、PCLK、VSYNC、HSYNC这些线要尽量保证等长,尤其PCLK时钟线的走线长度不要比数据线长太多,否则采样时钟沿和数据稳定区错位,会出现花屏或者丢帧。
在四层板上,这些并口信号最好都走在同一层,并且底层有完整的地平面垫着。摄像头排线接口和MCU的DVP引脚之间不要穿插其他大电流走线。如果用了时钟频率较高的摄像头模块,可以在时钟线靠近源端的位置串联一个22到33欧姆的匹配电阻,减小反射,这个电阻在调不通的时候加上去经常有奇效。
机械结构方面也要提前想。摄像头的安装高度和角度是由车模前部支架决定的,主板上的接口方位要配合支架走线路径。我见过有人板子画得很漂亮,最后装车时发现摄像头排线得从电机正上方绕过去,干扰大增,只能重新做板。这种问题在布局阶段就应该和机械组的队员反复沟通确认。
5.3 平衡/单车组:IMU朝向和重心位置优先
平衡小车和单车组对IMU的安装位置极其敏感。陀螺仪和加速度计的读数反映的是车模姿态的变化,如果IMU不在车模的物理重心附近,加减速时产生的惯性力会换算成假的倾斜角,导致控制量抖动甚至失控。所以主板上IMU的位置要尽量对应到车模物理结构的中心区域,如果结构上做不到,就应该考虑用排针把IMU小模块独立引出,安装在结构重心处。
IMU区域下方的PCB走线也要特别注意。不要在IMU正下方走电机驱动的PWM线或大电流电源线,这些线的高频开关噪声会通过极间耦合干扰IMU的采样,尤其在车模剧烈加减速的时候,干扰往往会被误判成姿态变化。AD20里可以用禁止布线区域(Keepout)把IMU下方清空,强制自己不在这个区域走线。
5.4 视觉组:模块化接口就是你的扩展空间
视觉组一般会在主板上跑OpenMV或其他视觉模块,核心主力是MCU本身,同时还要处理识别、串口通信、舵机控制等多个任务。我建议主板提前把常用的扩展接口都预留出来:至少两组UART、一组SPI、两组PWM接口、两路ADC输入,再加上SWD调试接口和串口打印接口。
这些接口统一做成2.54mm排针或GH1.25接口,并且标注清晰丝印。你可能当时觉得用不上,但调试到后期突然想加个编码器、加个无线模块或者外接一个传感器时,提前预留的接口能省去飞线的痛苦。视觉组的板子还建议预留一个独立的5V/1A输出口,给视觉模块供电,防止它和舵机共用一个电源时互相干扰。
6. 输出生产文件与焊接调试的完整闭环
6.1 AD20导出Gerber和钻孔文件,别漏关键层
画完板子并不代表设计结束,输出生产文件这一步做不好,到了板厂那边轻则返工,重则直接做废。在AD20里,我一般用File → Fabrication Outputs → Gerber Files导出Gerber,层设置里勾选Top Layer、Bottom Layer、GND、PWR顶层丝印和阻焊层,单位选英寸、精度2:5。
钻孔文件用NC Drill Files导出,注意选择毫米单位和与Gerber一致的坐标原点。这里有一个很多新手容易漏掉的细节:坐标原点在发板前一定要重新设定。我的习惯是把原点放到板子左下角的机械安装孔中心,这样板厂拼板和生产时定位更准确。如果原点留在原理图里的某个元件引脚上,打样出来可能板子边缘出现奇怪的偏移。
发板之后还要做一步检查:用AD自带的CAM预览功能打开导出的Gerber文件,逐层确认没有缺层、没有多余的轮廓线、丝印没有被压到焊盘上。或者用第三方CAM查看器再检查一遍,防止AD导出时某个层的显示和实际文件不一致。这一步最多花十分钟,却能在打样前发现大部分低级错误。
6.2 新板焊接和上电检查流程
拿到打样的板子,不要急着把全部元件焊上去。我自己的流程是先目测检查板和文件是否一致:板厚对不对、过孔是否塞孔、丝印是否清晰、尺寸对不对得上车模安装孔。然后先用放大镜或者微距镜头检查焊盘和过孔有没有明显问题,比如过孔堵死、铜皮翘起。
焊接顺序也很有讲究:先焊电源部分的所有元件,插上电池测量各路输出电压是否正常。如果电源输出没对上,先不要动别的模块,集中排查电源,因为电源错了后级电路都会跟着出问题。电源正常后再焊MCU最小系统,刷一个LED闪烁的裸机程序验证最小系统跑通,接着再焊传感器、通信、驱动模块。最后才把完整程序烧进去。
上电检查时有一个很实用的技巧:在电源输入串联一个可调限流电源或者一个万用表电流档,先把电流限制到几百毫安。如果通电时电流突然飙到一两安培,说明板子有短路,这时赶紧断电检查,比你直接插电池炸板强得多。这个习惯帮我挡住了至少三次因为焊桥连锡导致的问题。
6.3 常见问题速查表
调试过程中我整理了一个速查表,遇到问题先对着表排查一轮,比没有头绪地乱测要快很多。
| 症状 | 可能原因 | 排查和解决思路 |
|---|---|---|
| 上电后电流很大,板子发热 | 电源网络有短路,焊膏桥连,元器件焊反 | 断开所有负载,逐段测量电源对地阻值,热成像仪或手指摸发热点 |
| 电机一转,MCU就复位 | 电机电源跌落严重,地弹干扰复位电路 | 在电机驱动电源端加大电解电容,检查驱动大电流回流路径,复位引脚加去耦电容 |
| 电磁采样值随电机转速波动 | 采样回路受功率回路干扰,参考地被切 | 检查线圈到运放走线是否远离电机驱动,确认GND层没有走线切缝,在采样电源处加磁珠 |
| 摄像头花屏或丢帧 | 时钟和数据线不等长,排线受到干扰 | 检查PCLK和数据线的长度差,尽量让信号线同层并排走,信号线中间加地线屏蔽 |
| 稳压器发烫严重 | 压差过大,散热不足,或负载过流 | 增大稳压器下方过孔散热阵列,考虑换用DCDC降压,检查后级是否有短路 |
| 板子轻微变形翘曲 | 铜皮分布不均,板厚太薄 | 下单时选择1.6mm板厚,铺地尽量均匀,避免某一层某一大面积无铜区 |
这只是一个起点,你在实际调试中还会遇到更多组合问题,但绝大多数定位到最后都逃不出“电源的地弹”和“信号回流路径被破坏”这两类根源。
7. 最后分享几个值得保留的板级习惯
做智能车PCB这么多年,最大的体会就是“板子越到后面越不是画出来的,而是查出来和改出来的”。有几件事我会在每次画板时都强制执行,分享给大家参考。
第一个习惯是规则先行。新建PCB文件之后,先花10分钟把线宽、间距、过孔、电源类这些规则设好再动一根线。等画到一半再去设规则,很容易产生大量风格混乱的走线,改起来比重画还难受。第二个习惯是频繁D+R跑检查。每布局好一个模块、每完成一个阶段布线就跑一次DRC,不要等整板完成才查。错误越早发现越容易改,积到最后就变成了“这片子只能重画”。
第三个习惯是版本管理。每次重大修改前另存一个新文件名,不要只在原文件上覆盖。比赛季冲进度的时候,经常会出现“上午改的布局下午发现还是昨天那版好用”的情况,有备份就不慌。我还会用AD20的Project Packager功能打包整个工程,连同参考文档一起存到网盘,这样就算电脑出问题也不至于几个月心血全丢。
最后一个建议是:多去看开源方案,但一定要亲手重新画一遍。别人的工程文件可以直接拿来学习叠层设置、规则参数和布局思路,但不要直接拿去做比赛车。只有自己把每一个过孔、每一条走线都操作过一遍,你才真正理解了“为什么这里要这样处理”。这块四层板,做完之后你会发现,它不只是智能车的一块电路载体,更是你从“会画板”走向“会设计板子”的一道坎。