尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

智能车竞赛硬件开源:BUCK电源、差分放大与驱动电路全解析

发布时间:2026/9/29 2:18:24

资讯中心
01
ARTICLE

智能车竞赛硬件开源:BUCK电源、差分放大与驱动电路全解析

智能车竞赛硬件开源:BUCK电源、差分放大与驱动电路全解析
21届智能车竞赛结束之后我们soberup战队做的第一件事不是聚餐庆祝而是坐下来把所有资料整理成开源目录。疯狂电路组这个名号听起来有点中二但实际上我们确实在电路这条路上走得比较疯——整个备赛周期里从核心板到驱动板从电源到传感器调理板前前后后画了十几个版本废了不少板子也攒下一大堆只有踩过坑才写得出的笔记。这篇内容就是一份阅读导览开源目录里到底放了什么、每个模块为什么这么设计、哪些地方是我想特别提醒你注意的。不管你是准备参加下一届比赛的新队员还是单纯对智能车硬件感兴趣、想拿成熟电路练手的工程师都可以照着这个目录快速找到自己需要的东西。1. 先说说为什么要把整个电路组的东西全部开源1.1 疯狂电路组到底是做什么的我们战队内部把硬件电路设计这块单独拎出来叫“疯狂电路组”。外面人听这个名字以为我们天天烧板子其实不完全是——烧板子的次数确实不少但我们的核心工作是把整车所有跟电有关的东西做成一套稳定、可复用、经得住赛场电磁环境考验的系统。具体包括主控最小系统、电源变换、电机驱动、传感器信号调理、通信接口、蜂鸣器/按键这些人机交互的外围电路。竞赛的赛道环境其实很恶劣除了跑道上的电磁干扰源还有电机换向产生的火花干扰、大电流母线上的纹波、数字电路高频开关带来的噪声。这些东西不会写在任何一本教科书里只有整车跑起来你才能感受到。有些队伍代码写得花里胡哨结果硬件在赛场上几分钟就复位一次那是真的很崩溃。所以我们这支队伍从第一天就定了规矩电路设计必须作为独立模块认真做不能只当“焊板子的”。1.2 开源目录的整理原则别人拿到能不能直接复刻整理开源目录的时候我们内部吵了好几轮。有人建议只放最终版原理图有人建议连失败版本都放进去。最后定了一个原则要让一个有一定基础的新人拿着这份资料不找我们问一句话就能把车复刻出来并且跑起来。这个原则听着简单做起来相当费劲。光是整理文档就花了一周因为要把当时随手记的实验数据、示波器截图、引脚分配表全部规范成 Markdown。我们甚至把每个模块的“设计理由”和“改动历史”都写了进去比如某个电容从10uF改成47uF是因为高频纹波超标某个电阻从1k改成2.2k是因为运放增益带宽积不够导致信号衰减。这些信息如果只给原理图别人是永远看不出来的。仓库顶层结构大概是这样soberup-21th-car/ ├── docs/ 技术文档、调试记录、踩坑笔记 ├── pcb/ 各板卡工程文件与制板文件 ├── firmware/ 单片机固件工程与引脚配置 ├── tools/ 调试脚本、串口上位机、图像调试工具 └── mechanical/ 结构件图纸与装配说明我强烈建议你拿到仓库后先读 docs 目录下的00-README.md里面写了每个板卡的功能定位和它们之间的连接关系。别一上来就打开原理图硬啃那样很容易迷路。2. 开源目录全景拿到仓库之后先看哪里2.1 板卡目录与功能对照整个硬件系统按功能拆成了五块板下面是完整对照表板卡名称目录位置核心功能主控/核心器件主控核心板pcb/main-board单片机最小系统、调试接口、LED/按键STM32系列预留TC264兼容焊盘电源板pcb/power-board电池电压变换、多路稳压、上电时序BUCK、BUCK-BOOST、LDO驱动板pcb/driver-board电机驱动、蜂鸣器、风扇IR2110半桥、推挽驱动传感器板pcb/sensor-board摄像头接口、运放调理、差分信号接收OV7725、运放阵列通信板pcb/com-board485通信、蓝牙透传、串口扩展SP485、HC-05每块板卡目录下都有三个子目录hardware放原理图和PCB工程test放上电测试点与测试步骤notes放该板卡的设计说明。我觉得最有价值的就是notes里面有我们在调试现场写的只言片语比如“上电瞬间D2闪了一下怀疑是浪涌加了TVS后解决”这种真实得不行。2.2 固件与上位机的组织方式固件部分我们没有按“库”的抽象层次去组织而是按“功能外设”分文件。firmware/下每个目录对应一个外设或模块motor、sensor-camera、uart-485、watchdog、pid-control。每个目录里都有一个README.md说明这个模块的初始化顺序、关键寄存器配置、以及和电路板上的哪个元件对应。这里有个经验想分享固件和硬件必须一一对应。很多队伍喜欢把代码抽象得很通用结果稍微改一个引脚代码和原理图就对不上了。我们在目录里特意放了一份pin-mapping.csv把所有引脚分配做成表格硬件改版时先改这个表再改代码和原理图保证三者永远同步。这个习惯看似笨但真的能救命。tools 目录里放的都是我们自己写的小脚本比如串口波形显示工具、摄像头图像采集上位机、PID参数在线调节面板。这些工具代码写得不算精致但都是经过赛场验证的拿过去直接能用。3. 电源系统BUCK、BUCK-BOOST与上电时序这三关3.1 整车电源架构从7.2V到每一路精密电压竞赛用电池一般是7.2V镍氢或者7.4V锂电池组放电平台电压会在6.5V到8.4V之间波动。而板上需要的电压种类很多主控的3.3V、运放的5V、摄像头的2.8V/3.3V、电机驱动的7.2V直供。如果全部用线性稳压效率低不说压差大的场合发热根本扛不住。所以我们的电源方案是“DC-DC做主LDO补屁股”。具体分层是这样的电池电压先经过一级BUCK降压到5.5V左右再通过LDO得到稳定的5V给运放等模拟电路同时电池电压经过一级BUCK-BOOST稳压到5V给主控和数字电路电机驱动直接吃电池电压但母线上加了大容量电解电容和CBB薄膜电容吸收瞬态能量。之所以BUCK输出5.5V再进LDO是因为 LDO 的纹波抑制能力在压差1V左右时最好既能保证输出纯净又不会像直接从8V降到3.3V那样发热严重。这是很多新手容易忽略的细节——DC-DC后面不一定要直接接负载给LDO当预稳压器也是常见玩法。3.2 BUCK电路的电感、纹波与环路补偿开源目录里的BUCK电路用的是最常见的大功率同步整流方案控制芯片选的是国产性价比很高的型号外围极其简单。这里我重点说电感选型。BUCK电感值决定了纹波电流大小公式是ΔI (Vin - Vout) × D / (fsw × L)其中占空比 D Vout / Vinfsw 是开关频率。我们按最大负载电流2A、纹波系数取30%来反推电感值最终选了22uH。这里有个权衡电感太大动态响应慢电流变化剧烈时输出电压会塌电感太小纹波大后面LDO压力大。30%的经验值在智能车这种负载频繁变化的场景下比较折中。另一个关键点是输出电容的ESR。BUCK输出电压纹波主要靠输出电容吸收ESR太大会出现尖峰。我们用了“一个大容量电解电容并联两个小容值MLCC”的组合电解电容扛低频纹波MLCC负责高频分量。示波器实测下来这个组合比单纯堆大电容效果更好因为MLCC的ESR低、响应快。环路补偿这块如果有条件一定要用网络分析仪扫一下环路增益。没条件的话至少要用示波器看负载瞬态响应用电子负载在10%和90%之间切换观察输出电压的过冲和振铃。我们第一版BUCK在轻载时会轻微振荡后来在COMP引脚补偿网络上并联了一个47pF电容把相位裕度拉回来了。这些调整细节都写进了notes里。3.3 BUCK-BOOST电池电压波动时的稳压底线电池快没电时电压会掉到6.5V以下这时候如果还要稳定的5V输出普通BUCK就无能为力了。BUCK-BOOST可以同时做升压和降压在输入电压高于或低于目标输出时都能稳住输出。这里画电路不难难的是电感选型和PCB布局。BUCK-BOOST的电感电流比普通BUCK更大而且四个功率管轮流导通开关节点更多PCB上如果布局不好纹波会非常难看。我们的经验是电感底下走线全部掏空反馈分压电阻靠近FB引脚SW节点铜皮面积控制避免寄生产生振荡。这个电路在仓库里有完整工程你直接拿去做制板没有问题但要注意器件封装和规格别乱换。3.4 复位电路、看门狗电路与上电时序很多队伍把复位电路当成一个10k电阻加一个104电容就完事其实赛场上的复位问题大部分都是电源毛刺引起的。我们用的是带手动复位输入和电源监控功能的复位芯片阈值设在2.93V一旦电源跌落到阈值以下芯片立刻拉低复位引脚避免单片机在欠压状态下跑飞。看门狗电路我们用的是独立看门狗芯片喂狗信号由单片机的一个GPIO控制。这里踩过一个大坑调试时一进低功耗模式就整机复位排查了很久发现是看门狗超时没有在休眠前正确暂停。后来我们改了策略——看门狗只在主循环里喂狗中断里不喂这样如果主循环卡死不管中断怎么跑看门狗都能拉闸。这个设计思路我觉得很值得参考。上电时序这块也容易翻车。主控板、摄像头、电机驱动如果同时上电浪涌电流叠加电池电压瞬间跌落轻则复位重则烧MOS管。我们的方案是电源板上用MOS管做程控开关主控起来之后按延时顺序依次给外设供电先给摄像头稳定100ms后再给运放最后才使能电机驱动。这样每一级负载上电时都有一段缓冲实测整车上电时电池电压跌落从0.8V降到了0.3V以内。4. 传感器信号链运放、差分放大与摄像头抗干扰4.1 为什么传感器的信号不能直接进单片机不管是电磁组的电感信号还是其他模拟传感器输出信号幅度往往很小几毫伏到几十毫伏。单片机ADC的参考电压一般是3.3V分辨率虽然够但信噪比和输入阻抗匹配都很难处理。如果直接接信号被噪声覆盖算法再厉害也白搭。所以在传感器板和主控板之间我们专门做了一级模拟预处理。用运放把信号放大到ADC量程的中段同时做滤波和阻抗变换。这样ADC读到的数字量才有意义。这套思路不新鲜但很多人做的时候会犯一个错误滤波器带宽算错了。智能车运动信号频率其实不高主要是直流和低频分量但电机PWM和开关电源产生的高频噪声很强所以低通滤波器的截止频率要放在几百Hz量级把高频噪声滤干净而不是随便放一个RC。4.2 运放经典电路里智能车最常用的三种网上流传的“运算放大器11种经典电路”我们基本都玩过但真正在车上用的也就那几种。第一种是同相放大电路输入阻抗极高适合直接接传感器输出不会拉低源信号。我们用于摄像头输出缓冲和电磁信号放大。第二种是差分放大电路用来做差分信号的接收和共模噪声的抑制。这个下面细说。第三种是有源低通滤波器也就是运放加RC构成的二阶低通。我们用于运放输出级把高频毛刺削掉。这里有个小技巧可以用同一个运放同时做放大和滤波把滤波电容放在反馈回路上形成一个带增益的低通省一级电路也省一级噪声。4.3 差分放大电路用对称走线换共模抑制差分放大电路在智能车上最常见的用途是电磁组的水平电感信号处理。两个电感差分输出经过差分放大后共模干扰在理想情况下被完全抵消。但教科书上讲的是理想电阻匹配实际板上电阻偏差1%就能把共模抑制比拉到50dB以下。我们的做法是差分放大器的四个匹配电阻全部选0.1%精度并且从原理图到PCB都用同一阻值同一封装同一方向放置减少热应力和工艺偏差。PCB走线时两路差分输入线严格等长、紧贴走保证寄生电容一致。实测共模抑制比从40dB提到了70dB以上这个提升对电磁组来说是决定性的。如果你做的是非差分传感器也可以利用差分结构——比如把远端地线通过缓冲器接回来形成一个“伪差分”结构同样能抑制地环路噪声。这个思路在很多工业采集卡上都有我们在车上也用了。4.4 摄像头信号与模数混合地的处理摄像头组永远离不开一个核心问题数字地和模拟地到底怎么分。网上说法很多有的说干脆不分割有的说完全分开然后单点连接。我们最后采用了“局部单点连接”的方案摄像头数字信号和模拟供电在传感器板上就近共地整个传感器板的地和主控板的数字地在排针处单点相连。这样的好处是数字信号回流路径短不会穿过模拟敏感区域。还有一点摄像头的I2C配置线和PCLK像素时钟线我们串了33欧姆的小电阻并加了ESD保护二极管。别小看这两个元件赛场上静电和插拔造成的损坏基本都是它们挡下来的。摄像头排线我们也从10cm砍到6cm信号线之间用地线隔开花屏问题少了很多。5. 驱动侧电路蜂鸣器、推挽、图腾柱与IR2110半桥5.1 无源蜂鸣器驱动一个三极管加一个续流二极管的学问无源蜂鸣器需要用一定频率的方波驱动不能用直流。很多新手直接用一个NPN三极管开关蜂鸣器然后发现声音发闷、音量小。原因是蜂鸣器是感性负载开关瞬间会产生反电动势三极管没有续流通路能量无处释放声音自然差。我们的驱动电路是单片机GPIO经过限流电阻控制NPN三极管蜂鸣器接在三极管集电极和电源之间集电极对地并联一个续流二极管。这样三极管关断时蜂鸣器电感里的电流通过二极管续流不会击穿三极管声音也干脆多了。更讲究一点可以在蜂鸣器两端反并联一个小阻值电阻加速阻尼声音会更脆但耗电稍微大一点。这个电路很基础但每年都有队伍在这一块翻车具体原因就是续流二极管放反或漏放。5.2 推挽电路与图腾柱电路栅极驱动的两兄弟控制电机驱动MOS管时单片机GPIO直接驱动是不行的因为MOS管的栅极电容很大需要瞬时充放电电流GPIO根本给不了。这时候就要用到推挽电路或者图腾柱电路。这两个词经常混用但严格说推挽是指两个互补三极管交替导通一个推电流一个拉电流图腾柱就是在推挽结构上再叠一层常见的是用两个NPN和一个PNP组成的离散图腾柱专门用于快速关断MOS栅极。我们电机驱动板上用了图腾柱驱动芯片或者分立元件方案关键在于关断速度要比开启速度快。MOS管关断时如果太慢会长时间停留在线性区发热巨大。我们在栅极电阻上做了不对称处理开启用10欧姆关断通过二极管旁路到2欧姆这样开通慢一点避免振铃关断快一点降低开关损耗。这个细节在示波器上看得清清楚楚但原理图上一眼看不出来所以我特意在notes里画了时序波形。5.3 IR2110半桥电路与自举原理驱动板上的电机全桥是用IR2110搭建的。IR2110是半桥驱动芯片一片能驱动上下两个MOS管自带电平位移功能。全桥就用两片IR2110一共四个MOS管。这里最需要理解的是自举电容的工作原理。IR2110的高边驱动悬浮电源靠自举电容提供。当低边MOS管导通时自举电容通过二极管从VCC充电高边MOS管导通时电容放电维持栅极电压。所以自举电容的容量和ESR很关键。我们用了1uF的CBB电容并联0.1uF陶瓷电容位置紧贴芯片的VB和VS引脚。如果容量太小高边驱动电压维持不住MOS管会半导通如果走线太长寄生电感会让自举电压产生剧烈振荡。还有一个常见坑低边MOS管的PWM占空比不能长时间接近0%否则自举电容没有足够的充电时间高边会直接罢工。我们的PWM最低限制在5%就是在IR2110上踩过坑之后加的保护。6. 通信与调试接口485电路与下载口的坑6.1 485电路终端的120欧姆电阻到底加在哪485通信在智能车上主要用于主控和上位机之间的长线调试以及和裁判系统之类的外部设备通信。485是差分信号抗干扰能力强但它的正确性非常依赖终端匹配。标准做法是在总线最远端两端各接一个120欧姆电阻。但“最远端”这个概念经常被忽略。如果车上只挂了一个485节点这个电阻到底加不加我们的经验是短距离调试1米以内不加也能用但一上赛场、线缆变长、干扰变多问题就出来了。所以我们通信板上做了跳线帽设计默认焊上120欧姆电阻做短距离点对点调试时可以直接拔跳线帽去掉非常灵活。485收发器的A、B线上我们还加了TVS管和共模电感因为赛场上电机火花会产生很强的共模干扰这些干扰如果不滤掉轻则丢帧重则烧芯片。偏置电阻我们也加了——拉高A端、拉低B端保证总线空闲时电平确定不会出现乱收数据的情况。6.2 下载调试接口与“调试口复用”问题主控板的调试接口SWD或者JTAG是最容易被忽略但又最能影响开发效率的。我们把SWD接口做成了标准4针SWDIO、SWCLK、GND、VCC加一个复位引脚全部用排针引出并且放在板子边缘方便插调试器。这里有个很坑的点很多单片机引脚是复用的SWDIO和SWCLK同时是普通GPIO。如果初始化代码里把这两个引脚配置成其他功能调试器就再也连不上了——俗称“闭锁”。我们备赛期间至少遇到三次。后来养成了习惯调试接口引脚单独做一个小封装默认不引出到功能电路确需复用时也要加跳线帽。开机初始化流程里还加了一个延时判断按住某个按键就不初始化外设只等调试器连接。这个“救砖技巧”在目录里单独写了一个文档强烈建议所有做嵌入式开发的人都看一眼。6.3 防抖电路和按键处理按键防抖在智能车上其实不是一个高深话题但我们的按键直接连到单片机外部中断用于模式切换和参数调节。机械按键按下时会有几毫秒到几十毫秒的抖动如果只靠软件延时消抖中断响应就变慢了而且过程中还会误触发多次。我们的方案是硬件RC低通滤波加施密特触发器一劳永逸。电容取0.1uF电阻取10k时间常数1ms再经过施密特整形抖动被消除得很干净。软件里就不需要再做延时消抖了中断只要触发就一定是有效按键。这个电路占地方很小但对调试体验的提升非常明显——你按一下按键功能就切一下绝不会出现按一下切三下的鬼畜现象。7. 踩坑实录几块PCB上肉眼看不见的教训7.1 BUCK电感啸叫不是电感坏了是环路在振荡有一版电源板打样回来上电就听到电感发出吱吱声声音不大但听着心慌。我第一反应是电感饱和换了个更大规格的结果没用。后来用示波器测输出纹波发现低频段有一个十几kHz的振荡分量才反应过来是环路不稳定。原因是补偿网络的零点频率设置得太低轻载时系统相位余量不够产生了次谐波振荡。解决办法很简单调整补偿电阻电容把环路增益交点压在开关频率的1/10以下同时加大输出电容的MLCC容量。修改之后再测啸叫消失纹波也从80mV降到了30mV以内。这个案例让我明白了一个道理PCB上的很多“神秘现象”本质都是控制环路问题不要一上来就怀疑器件。7.2 运放自激振荡示波器探头一碰就正常传感器板调试时发现了一个很诡异的现场运放输出信号有高频毛刺但用示波器探头碰上去毛刺反而消失了。一开始以为探头接触不良后来查资料才明白这是运放自激了——探头本身带了10pF左右的输入电容这个电容刚好压住了振荡频率等于“外挂”了一个补偿电容。解决方法是直接在运放输出端和反相输入端之间并联一个22pF的小电容把带宽压一压防止自激。这个电容在原理图上看着多余但在实际电路里非常关键。如果不用加电容的方案也可以在运放输出串联一个小电阻再接负载电容隔离容性负载。两种方法我们都在不同板卡上用过后者对信号完整性更好但多一个元件。7.3 摄像头花屏排线才是最大干扰源有段时间摄像头图像在上位机上总有几条横纹一开始怀疑是摄像头本身换了一个问题依旧。后来发现是排线问题排线走过电机驱动板附近PCLK信号被耦合了噪声导致图像数据错位。改进办法是把排线长度缩短信号线之间插入地线并且排线在PCB上的连接器周围做了包地处理。还有一个细节排线折弯处不能成直角否则信号线之间间距会被压缩串扰增加。我们最终把排线从10cm换成6cm花屏问题基本绝迹。这个案例告诉我们高速信号的完整性问题往往从物理结构上解决比从电路上解决更有效。7.4 看门狗误复位主循环里的一次“堵车”看门狗误复位是另一个经典问题。我们的主循环里有图像处理任务偶尔会出现一个比较重的运算比如图像二值化加边缘提取耗时几十毫秒。如果这时候看门狗还在倒计时主循环一卡喂狗不及时系统就复位了。解决思路不是无限调大看门狗超时时间而是把耗时操作拆解到多个循环周期里或者把喂狗动作放在主循环最前面只要程序没彻底卡死就至少能喂一次狗。真正的死机比如死循环依然会被看门狗抓住。这个策略既保证安全性又避免误伤正常任务。8. 复刻这套资料前我想先跟你交代几件事8.1 元器件采购与替代建议开源目录里所有元器件的型号和封装都写在BOM表里但个别器件尤其是运放和驱动芯片可能因为渠道和价格原因不太好买。我的建议是不要随意替换核心参数不同的器件。比如把运放换成带宽更低的信号链路的增益带宽积立刻变化之前调好的滤波特性全乱套。替代选型时至少要对上这几个参数供电电压范围、增益带宽积、压摆率、输入偏置电流、封装。电源部分的电感也不要乱换DCR和饱和电流是硬指标。有些便宜的工字电感直流电阻大满载时效率低还发热车身一烫性能就飘。BOM表里我们标注了每一颗电感的品牌和订购链接照着买是最稳的。8.2 建议的测试工具与调试顺序如果你要复刻这套硬件我强烈建议至少准备以下几样东西一台双通道以上示波器100MHz带宽起步、一个电子负载或者至少是大功率电阻、一个可调电源、一个串口转USB模块。花费不高但能解决80%的硬件问题。调试顺序也很重要千万别一上来就全板上电。我的习惯是先空载测电源板确认各路电压正常再带载测纹波然后单独给主控板烧录最小程序确认调试接口通畅接着接传感器用上位机看数据是否合理最后才接电机驱动而且第一次不让电机转只测PWM波形和栅极驱动波形。每一步都确认无误再进行下一步。这套顺序写在了仓库docs/debug-order.md里照做可以省下大量排查时间。8.3 给下一届队员和想入坑的朋友的一句话开源目录不是让你拿来直接交差的而是给你省掉“从零踩坑”时间的。真正有价值的是那些 notes 里记录的实验数据和失败过程——它们比最终的原理图珍贵得多。如果你复刻过程中发现了更好的方案欢迎回头提issue或者直接改代码这才是开源的意义。我个人在整理完这些资料之后的最大体会是智能车竞赛比的不是谁的理论课学得好而是谁能在有限时间里把每一个细节做到位。电路组尤其如此——一块板子的稳定性可能决定整个车队一整个赛季的努力能不能在赛场上兑现。希望这套开源目录能帮你少走点弯路也希望你们队的电路组也能像我们一样“疯狂”但靠谱。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。