☰
智能车竞赛电路设计全开源:电源、采样与调试避坑指南
2026/10/25 1:01:48 网站建设 项目流程

比赛结束一个月后,我又翻开了那个写着“最终版_再也不改了_v7”的移动硬盘文件夹。说真的,整理开源资料这种事,一开始我是拒绝的——焊板子、调参数、重画PCB的时候谁还记得记笔记?真到准备把Soberup战队的电路组资料公开时,才发现三个月前挖的坑全要自己填。

这篇开源目录分享,就是把我们从第二十一届智能车竞赛备赛到完赛期间,电路组所有能见人的东西:原理图、PCB工程、调试记录、踩坑笔记、部分固件框架,全部按可检索的方式重新组织了一遍。它不是一份“成品说明书”,而是给下一届愿意把电路往死里抠的人一份“从哪里下手、哪里会摔跤”的路线图。适合正在备赛智能车、对电源/采样/驱动有执念的电子爱好者,也适合想把“画板子”这件事从玄学变成工程的人读。


1. 开源目录的骨架:我把三个月散落一地的文件重新码了一遍

1.1 目录为什么分成六个顶层文件夹

先看最终的目录树,这个结构不是拍脑袋定的,是我们整理时按“故障排查时最先怀疑哪里”反推出来的:

Soberup_21st_Electrical/ ├── 00_docs/ # 技术笔记、调试记录、芯片选型备忘 ├── 01_power/ # 电源链路:缓启动、Buck/Boost、TVS、EMI ├── 02_sensing/ # 采样与感知:电流采样、内阻测试、温感 ├── 03_driving/ # 执行机构:舵机、电机驱动、PLL ├── 04_comm/ # 通信与配置:ESP32下载电路、无线模块 └── 05_mechanical/ # 结构开孔图、走线规划、装配说明

顶层分成电源、感知、驱动、通信而不是按“主板/副板”分,原因是实际比赛里八成的疑难杂症都是跨板子的——比如舵机一打角摄像头就花屏,你说这是电源问题还是感知问题?按功能域分,查问题的时候你能沿着“能量走向”一路找过去。目录树里每个文件夹开头都有编号,就是为了让后来者不需要读完所有文档也能按编号顺序建立全局观。

1.2 每个工程里我强制放入了哪五类文件

只有原理图源文件是不够的。我整理时给每个子项目定了个硬性清单,宁可多放也不能少:

  • 原理图源文件与PDF导出:源文件给想改板的人,PDF给不想开EDA软件的人快速审图。
  • PCB工程与Gerber文件:Gerber不依赖EDA版本,别人拿到就能找工厂打样。
  • BOM表:带具体封装、厂家料号、替代料。替代料是我后来补的,不少芯片在备赛季缺货。
  • 调试验证记录:哪怕只有三行“上电后5V正常,纹波30mV,未带载”,也是信息。我见过太多文件夹里只剩原理图,板子一上手直接一脸懵的。
  • 一块板子的“雷区”说明:比如某个电容必须靠近IC的引脚、某段走线不能用覆铜填充,这些在原理图里看不出来,但是写在说明里能救命。

因为有些队友更喜欢用不同版本的EDA工具,我额外导出了PDF和Gerber,算是给跨工具协作留了后路。说实话,文件命名规范这件事,备赛时没人觉得重要,整理时全是泪。

1.3 开源资料的时间线标记

我给每个板子都标注了版本和日期,例如“Soberup_Power_v2.1_20210715”。版本号规则是:主版本变更代表大改动(换了拓扑或换主芯片),次版本代表layout调整或参数修改。很多人不做版本管理,等到第三版板子出来就分不清“当前焊的是哪一版”了,这种混乱在赛前调试周尤其致命。

整理完骨架,最深的体会是:开源目录的质量,不取决于文件多不多,取决于别人能不能不问你一句话就把板子看懂。


2. 电源链路的每个坑:从缓启动到Buck/Boost再到防倒灌

2.1 为什么第一级一定要做缓启动

很多第一次画电源板的队伍,直接把电池正极接到所有电路上。上电瞬间那一下,输入端大电容等效短路,浪涌电流能到几十安,插接端子直接打火、保险丝烧断、甚至焊锡都给你融化。我们做的是在电池入口串一颗P-MOS管做缓启动,利用RC给栅极慢慢放电,让MOS管从线性区逐渐进入饱和区,等效给电容限流。

具体实现上,P-MOS的源极接电池正、漏极接后端负载,栅极通过电阻给到地,同时在栅源之间并联一个电容。上电瞬间电容电压为零,MOS的Vgs也为零,管子不导通;随后电容缓慢充电,Vgs逐渐变负,MOS慢慢打开。这里电容和电阻的乘积决定了启动时间,我们车上是100kΩ电阻加10µF电容,约1秒左右。太短浪涌压不住,太长会让人误以为板子没上电。

提示:缓启动的RC时间常数,要结合后端总电容一起算。总电容越大,需要的缓启动时间越长,否则MOS管在开启瞬间承受的能量会超SOA(安全工作区)。

2.2 Buck/Boost的选型逻辑

电池电压7.2V到8.4V浮动,但板上每个模块要的电压完全不一样。主控、摄像头、编码器都要5V和3.3V,舵机要6V,个别运放或传感器要正负电源或者12V。我的选择是:

  • 主控5V用Buck降压,因为电池压差大,用LDO发热严重,而且主流Buck芯片效率轻松到90%以上。
  • 舵机单独用一路Buck输出6V,目的是隔离大电流瞬变。舵机打角瞬间电流能冲到2A甚至更高,如果和主控共用一路,主控会出现brown-out复位。
  • 个别模块需要升压到12V(比如某些宽电压传感器和有线供电的上位机显示屏),这时候才用Boost。升压拓扑对电感选型敏感,电感饱和电流必须大于峰值电流,否则会看到空载输出正常、一带载就跌回输入电压。

从原理上记住一句:Buck是“降压+大电流优先”,Boost是“升压+电感储能优先”。它们的感性储能方式决定了纹波特性不同,Boost纹波一般比Buck大,后续的滤波电容和LC网络要相应加强。

2.3 TVS管和EMI滤波:给电源入口装上两道保险

电池不是干净的直流源。电机刹车、舵机堵转都会在母线上打出几十伏的尖峰,这时候就需要TVS管把尖峰钳位到安全范围。选型要看三个参数:反向截止电压要大于电池满电电压(比如8.4V),钳位电压要低于后端Buck的极限输入电压,功率要扛得住电机堵转时几毫秒的能量冲击。我们选的是钳位电压12V左右的双向TVS,放在电池入口并联。

EMI滤波放在电源输入端,用共模电感加两个电容组成π型滤波。很多人不理解为什么直流系统还需要共模电感——因为长导线上的共模干扰会通过寄生电容耦合进设备,加上去之后示波器上能看到高频毛刺明显下降。布置EMI滤波要靠近接口,走线先经过共模电感再进入Buck,避免滤波之后的干净电源线与输入线平行走线,否则白滤。

2.4 防倒灌电路

我们遇到过一种情况:调试时外部电源通过USB口给主控板供电,但电池还没断开,结果电池正极被USB的5V反灌,电池充电回路异常发热。后来在电池正极到主供电网络之间加了一颗P-MOS防倒灌。原理是:输入端接电池,输出端接系统电源;输出端电压高于输入端时,MOS的体二极管不导通,同时栅极被输出拉到高电平,Vgs不满足导通条件,MOS保持关闭,隔断了反灌路径。

这一路的MOS选型和缓启动类似,但重点在导通电阻Rds(on),因为正常工作时要过全车电流。选大了发热,选小了价格贵,最终选了在4.5V下Rds(on)约20mΩ级别的管子,满载1A时压降不到20mV,对系统没影响。

2.5 电源调试时的实测心得

我们焊完第一版电源板,上电后5V正常但一开电机就掉到4.2V。当时第一反应是换更大容量的电容,实际上示波器抓出来是Buck的反馈走线离电感太近,开关噪音耦合进反馈引脚,导致环路不稳。重新layout让反馈线避开电感、从输出电容根部取反馈后,问题消失。这类问题在原理图上看不出来,只能靠layout经验和示波器排查。


3. 采样电路才是“疯狂”的本体:AMC1301与交流法内阻测试

3.1 为什么用了AMC1301做隔离电流采样

智能车电机电流动不动几十安,采样电阻上的压差很小,而且电机是感性负载,感性负载地线上的噪声能把普通运放直接干翻。我们用AMC1301隔离放大器做电流采样,重点在于隔离—输入侧在动力地,输出侧在控制地,中间通过电容隔离层传递信号,不影响采样精度且共模抑制能力极强。

典型电路有几个关键点:输入端子RK放大器的输入共模范围很小,采样电阻的压差要控制在±250mV以内,所以取样电阻算好最大电流和功耗;输入端必须加RC低通滤掉电机PWM的高频尖刺,一般1kΩ配1nF,截止频率在160kHz附近,既能滤高频又不拖慢响应。输出是差分信号,送入MCU的差分ADC或者先用运放转成单端再采,这取决于你用的主控。

提示:AMC1301输出侧的供电需要隔离电源,不能直接拿控制侧5V灌进去。我们用了隔离DC-DC模块,注意模块的纹波别太大,否则会直接叠加到采样输出上。

3.2 交流法电阻内阻测试电路:用1kHz小信号把电池内阻“逼出来”

电池内阻不能直接用万用表电阻档测,因为电池本身等效一个电压源,直流法测会引入极化电阻,数值不稳定。我的方案是交流法:给电池注入一个已知频率的小电流交流激励,然后测电池两端同频的交流电压,用锁相放大原理把同频分量提取出来,再用欧姆定律计算内阻。

电路分三块:激励源、前端放大、锁相解调。激励源用MCU的DAC生成正弦波,或者用文氏振荡器加一级功放推一个隔离变压器来注入,频率我用了1kHz。因为1kHz不是工频的整数倍,不容易被50Hz谐波污染。前端放大用精密运放做成差分放大,放大倍数50倍左右,然后送入锁相检波。锁相检波做两种:模拟法用AD630这类同步解调芯片,数字法则是在MCU里用ADC采样后做乘法+低通滤波,我最终用了数字法,省了一片芯片但固件复杂一点。

测的时候要注意激励电流不能太大,我控制在50mA RMS以下,否则电池自身被激励信号极化,测出来的内阻就带了容抗分量。用这个电路实测一颗标称内阻30mΩ的动力电池,测出来31.2mΩ,误差可控。后来这个电路被我们做成了独立小模块,用来赛前给电池“体检”,淘汰内阻异常增大的电池,避免比赛时电压瞬间跌落。

3.3 光耦输入端滤波保护电路:每一个触点都要防誤触

控制信号隔离多数用光耦,但光耦的LED侧对电压尖峰和负压非常敏感。我们在每个光耦输入端加了反向保护二极管、限流电阻和并联小电容。反向二极管是防止负压击穿,限流电阻把电流限制在10mA左右,并联电容是滤掉耦合进来的高频干扰,防止数字信号线上的毛刺让光耦误翻转。

这里的坑是电容不能贪大。我们早期在PWM隔离光耦输入端放了0.1µF电容做滤波,结果发现PWM波形直接变圆,占空比失真,电机响应变慢。后来换成1nF,既能滤高频干扰又不会明显影响边沿。如果想要波形边沿更陡,可以改用高速光耦(比如逻辑输出型的6N137系列),或者直接把滤波电容压在光耦输出侧。

3.4 NTC温感和欠压检测

电池温度监控用NTC热敏电阻,我们选了15kΩ@25°C的规格,配同样15kΩ电阻分压。分压点接ADC之前加了RC低通,R取1kΩ、C取100nF,截止频率约1.6kHz,采样率一般也就几十赫兹,足够。要注意的是NTC流过电流不能太大,否则自热会拉偏读数,分压电阻的取值要保证25°C时流过NTC的电流不到0.3mA。低压检测直接用LM358搭比较器,分压后和基准比,低于设定值就让主控降功率保护。其实这个功能的精度不必高,但必须在电池深度放电前把车拉回检修区。

另外提醒一句:开源的采样原理图里,我专门标注了哪些电阻是1%精度、哪些是5%就行。分流采样电阻必须用低温漂,普通贴片电阻温度系数太大,电机跑热后采样值会飘。


4. 执行端和通信链路里那些容易被忽略的细节

4.1 舵机的6V供电与信号完整性

舵机看着简单——一根PWM一根电源一根地。但把它放在整车系统里,问题就来了。舵机打角时电流波动很大,所以供电要独立Buck;PWM信号线又细又长,很容易被电机线辐射干扰。我们在信号线入门处串了33Ω电阻加一个小电容,形成低通,把PWM边沿稍微修整一下,既保留了控制信号又被高次谐波干扰挡住。舵机接地要单独回流到主电源地,不能和传感器共地,否则传感器ADC读数会跟着舵机抖动。

舵机PWM频率一般是50Hz,其实有些高速数字舵机能吃更高的频率,但多数模拟舵机不行。我们用的舵机是高电压版本,6V供电下反应速度快不少,但是堵转电流也大了很多。为了防止堵转烧舵机,舵机电源回路上加了自恢复保险丝和TVS。

4.2 锁相环电路在智能车里的两个用途

锁相环不是新概念,但在车上用得好的人不多。我们做了两个场景:

第一,交流法内阻测试里需要与激励源严格同频的参考信号,锁相环用来产生这个参考并跟踪频率漂移,让解调不偏差。CD4046锁相环的环路滤波器参数很关键,我补了详细的计算笔记,核心是环路带宽要比信号频率低一个数量级,否则会锁不住或过冲。

第二,电机测速倍频。有些编码器每转输出脉冲数太少,低速时速度测量分辨率不够。用锁相环把编码器频率倍频到16倍,低速也能平稳控制。注意倍频系数不能过高,否则高频噪声会被一起放大,导致速度环抖动。

4.3 ESP32自动下载电路:EN和IO0的两三下组合拳

我们监控板用ESP32,调试时最烦的不是代码bug,而是每次烧录都要手动按住BOOT键再按RESET。后来按经典ESP32自动下载电路搭了一套:使用串口芯片的DTR和RTS信号,通过两个三极管去控制EN和IO0。

具体逻辑是:正常运行时IO0被上拉至高电平;进入下载前,先把IO0拉低,再让EN产生一个下降沿复位,ESP32检测到IO0为低且复位上升沿,就进入了下载模式。时序要有点讲究:IO0要先稳定为低,EN再复位,两者之间差几十毫秒。我用RC延时给EN加了个电容,确保IO0先到位。如果发现下载总是失败,我建议先查三极管基极电阻的取值,以及EN电容是否太大导致复位沿太缓。

另外串口芯片的供电必须是3.3V,不能直接用5V。某次我们用5V供电,TXD高电平是5V,把ESP32的RX脚直接打坏,排查了半宿才发现是这个原因。

4.4 315M无线模块与MAX17048电量计

遥控发车和现场调试用了315M超外差接收模块,天线用一根约24cm的导线。这类模块最怕同频干扰,空旷场地还好,比赛现场一堆设备就容易收到杂波。我们的对策是编解码芯片加地址码,并且每包数据带CRC校验,收到错误直接丢弃,绝不让车误动。接收模块尽量远离电机驱动板,最好隔一块金属板或放在车身的另一侧。

电量显示用的MAX17048电量计,I2C接口直接读出剩余电量百分比和电压,不需要外部分流电阻。它的核心是一个ModelGauge算法,会把开路电压和库仑积分融合起来修正,所以用起来很简单,但前提是电池第一次要从充满开始校准,否则初始SOC会偏。我们遇到过刚换上备用电池时显示电量50%,实际已经快空电的情况,就是因为没重新校准,后来养成每次换电池先读一下电压再决定显示策略的习惯。


5. 被板子虐过的三个月:三次典型故障的完整排查链路

5.1 看门狗的“误杀”和“漏杀”同时存在

备赛最恐怖的一次,车在跑道上突然全车断电。把代码翻遍,最后定位到看门狗。我们的看门狗是独立外部芯片,喂狗线在主循环里。问题出在一次中断服务程序里,某个标志位在等待外部传感器数据时陷入了死循环——主循环被卡死,但中断还在执行,导致负责喂狗的主循环一直被饿着,看门狗正常触发复位。

这给了我一个教训:喂狗位置不能只在主循环,还要看“主循环是否真的在推进”,更好的做法是把喂狗放在任务调度的空闲节点上,一旦主循环某分支卡住,喂狗自然停掉,系统才能及时复位。反过来,调试时开着IDE下断点,全车可能在看门狗超时后被复位,打断点的人根本没法看寄存器。后来给调试版固件加了条件编译,调试模式直接禁用看门狗,才消停。

5.2 摄像头花屏:地弹、EMI和信号线走线

摄像头图像在电机开启瞬间出现横条纹和雪花,是我们排查时间最长的问题之一。最开始怀疑电源跌落,用示波器抓5V波形,发现只有几百毫伏跌落,不至于花屏;然后又怀疑PWM干扰通过电源线传导,给摄像头电源加了LC滤波,情况好转但没根治。最后发现根因是摄像头信号排线靠近电机相线,电机PWM的大电流在相线上产生强电磁场,直接耦合到同步信号上,导致一场图像错位。

解决方法是三个手段叠加:排线远离电机线并改为双绞,摄像头供电用独立LDO,信号进主控前串电阻加小电容滤波。最终打死问题的是把摄像头排线从电机线远端绕过去,并给排线加了一层屏蔽铜箔接地。这类问题在原理图层面完全看不见,只能靠系统性的信号链路排查。

那次排查让我养成了习惯:所有批量生产的板子,先做一次“干扰对照实验”——开电机、开舵机、开无线,逐项开启观察信号链路的毛刺变化。按表格记录,比凭感觉找人要快得多。

5.3 短路把电源板烧穿:分支通电法

还有一次是电源板交付前一天,上电发现冒烟,板子一个过孔附近烧穿。用万用表蜂鸣档扫,发现VCC和GND之间导通,但不确定是哪个分支短路。当时我采用“分支通电法”:把所有排针拔掉,只留主供电,然后一个分支一个分支地接回去,同时监测电流。结果发现是舵机供电输出电容焊反极性,电解电容爆掉之后碳化短路。换掉电容之后故障消失。

这个过程的经验就是:排查短路别乱拆IC,先用电流表和“最小系统供电法”定位大方向。另外所有电解电容的极性一定要在BOM表上标注,板子上丝印也要够大,不然小封装电解电容极易焊反。

5.4 缓启动失效的连锁反应

最后一个坑:某块副板直接跳过缓启动从电池取电,结果每次插电、拔电都会打火花,有一次直接烧了保险丝。原因是我早期做第二块板时只测了主板的缓启动,副板觉得“电流小不用加”,结果副板上的超级电容在插拔瞬间的浪涌反而比主板更狠。后来所有从电池取电的板子,入口统一加缓启动和TVS,烧板问题再没出现过。


6. 开源目录怎么用:给后来者的一条索引路径

6.1 拿到目录后应该先看哪几个文件

我给这个开源目录写了一份“README_first.md”,里面是三条阅读路径,按你的目标有所不同:

  • 如果你想复刻整车电路,先从01_power开始,按缓启动→Buck→TVS→防倒灌的顺序看原理图,再对照02_sensing里的AMC1301电路。
  • 如果你只想解决电源干扰问题,重点看01_power里的EMI滤波配置和layout说明,再翻到05_mechanical里看整车的走线布局图。
  • 如果你是为了下一年比赛重新做一版,建议把00_docs里的选型备忘通读一遍,芯片选型时能用上。

6.2 环境与工具版本说明

我整理了所有工程使用的EDA工具和版本、固件编译工具链版本,以及打样时的PCB工艺参数(比如最小线宽、最小过孔内径、叠层结构)。这些信息看似零碎,但别人复现时差一个版本可能就打开不了工程或者打样失败。建议后续使用者在自己的环境里重新生成Gerber,而不是完全信任我存档的版本。

6.3 关于复刻与二次开发

开源目录里的板子有些是特定赛题规则下的产物,比如电源板和采样板是针对我们当时电机规格和电池规格设计的,直接照搬到别的电机或电池上不一定合适。尤其电流采样电阻的值和电流互感器参数,必须根据你的实际电流范围重算。不过技术思路是通用的,IGBT驱动逻辑、隔离采样拓扑、缓启动设计都能无损迁移。

6.4 致谢与一点个人体会

最后说说我自己的真实感受。整理开源目录这件事,表面上是帮后来者少走弯路,实际上最大的受益者是我自己——把三个月里散落的知识点重新梳理成文档之后,很多当时“调好了但不知道为什么”的问题,现在都有了清晰答案。比如那个困扰我很久的摄像头花屏,在写文档过程中才真正理解了地弹和EMI的耦合路径。

如果你还在备赛,我只有一个建议:从第一天开始,每画完一块板子就花半小时写“这块板的雷区”,哪怕只有三行字。等到赛后整理开源时,你会发现这三行字比整个PCB工程都值钱。这个习惯救了我很多次,希望也能救你。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询