ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

智能垃圾桶无刷电机驱动板设计实战:从选型到联调全解析

智能垃圾桶无刷电机驱动板设计实战:从选型到联调全解析 去年我接到一个任务给一款销量不小的智能垃圾桶做电机系统升级。用一句大实话开场开盖这个动作看着简单但真正把无刷电机驱动板装进智能垃圾桶电机系统之后我才发现从选型到联调每一步都有当初做工业设备时根本不会遇到的坑。整机原方案用的是有刷直流电机加减速齿轮成本低、实现快但用户投诉里噪音和用半年后开盖变慢的问题一直压着产品口碑。这篇文章就把这个项目的完整过程拆开讲从方案选型、换相逻辑、堵转防夹到整机联调适合正在做智能家居小电机驱动、或者准备从有刷切无刷的工程师参考也适合想搞明白一个盖子为什么要用无刷电机的硬件爱好者。1. 垃圾桶电机看着简单为什么非要换成无刷1.1 老方案的痛点有刷电机的寿命瓶颈有刷直流电机便宜驱动电路只需要一颗MOS管加续流二极管堵转保护靠电流采样电阻就能做软件上几乎没有门槛。但它的硬伤在换向器碳刷和换向器之间是滑动摩擦摩擦就有损耗磨下来的粉末还会污染轴承和减速箱。垃圾桶这种家电一天开合几十次一年下来就是上万次动作碳刷磨损是实打实的寿命短板。我专门拆过一批用了一年多的有刷电机垃圾桶减速箱内部已经能看到明显的黑色碳粉电机转速下降空载电流反而比出厂值高了近一倍。用户感知到的就是盖子打开发抖声音越来越响售后统计里这类故障占比相当高。另外有刷电机的换向火花是宽谱EMI源早期产品过EMC测试时没少往电机线上加磁环、改滤波电容。1.2 无刷电机在这个场景里强在哪无刷直流电机BLDC取消了碳刷和换向器转子上贴永磁体定子绕组由驱动板按顺序通电产生旋转磁场。结构上的改变带来几个实际好处没有碳刷磨损电机寿命主要受轴承限制对垃圾桶这种间歇性负载来说基本免维护没有换向火花和碳刷摩擦整机声学表现更好更容易过噪音测试效率更高同样堵转力矩下电流更小、发热更低电子换相天然需要转子位置反馈这给了驱动板精确控制启停和加减速的能力。对于智能垃圾桶这种频繁启停、对噪音敏感、摆在客厅或厨房、用户还经常在盖子附近伸手的环境这几条优势正好打在旧方案的痛点上。1.3 先算负载曲线再谈方案我在项目初期犯过一个错只盯着换成无刷这个目标没有先量化负载需求。开盖机构带动的不只是轻质盖板减速齿轮的摩擦、复位弹簧的阻尼、防夹机构的附加阻力都要算进去。不量化直接选电机要么力矩不够开盖变慢要么力矩过大、堵转电流和发热超预期。我们最后用扭矩测试仪和电流钳测出来的关键参数如下参数实测值备注额定电压12V整机统一供电空载电流≤0.3A盖板配平后的空转电流最大负载电流0.8A开盖加速与弹簧阻尼叠加堵转电流约2.5A人为阻挡盖板时目标转速300~600 RPM电机本体转速经减速齿轮后满足开合速度单次动作时长0.8~1.5s从触发到完全开盖这组数据决定了驱动板的选型边界电机本体选12V、十几瓦以内的小功率无刷就行驱动板不需要很高的持续电流能力但电流采样分辨率必须够高。因为正常工作、堵转和启动尖峰之间的电流差异不算悬殊采样精度不够会导致后面做防夹判断时阈值很难卡准。这个先测负载、再选器件的顺序是我后来在别的项目里也一直遵守的习惯。2. 驱动板方案对比三条路线和我的最终选型2.1 市面上的三种实现路线做垃圾桶这种低压小功率无刷驱动大体有三条路线。第一条是买通用BLDC电调模块输入PWM就能控制转速。这类模块大多是给航模和风扇设计的优势是开发极快劣势是黑盒——堵转策略、反向制动、位置反馈都要自己额外想别的办法。而且很多航模电调的低速线性度很差垃圾桶开盖时常需要从零速快速建立力矩电调在这种短时大负载工况下表现并不理想。第二条是主控MCU加三相栅极驱动、外加分立MOS管搭三相全桥。换相逻辑、PI调速、堵转检测全部写在MCU里驱动板只负责把PWM信号放大成能驱动MOS管栅极的开关信号。这条路线灵活性和成本最平衡也是我最终采用的方案后面详细说。第三条是主控MCU加全集成驱动SoC类似DRV8313这种内部已经把栅极驱动和功率MOS集成在一起的芯片。集成度高适合PCB空间极小、持续电流在1A以内的场景。但我们的堵转电流到2.5A芯片本体热阻在这个电流下会偏紧长时间堵转测试容易触发芯片过热保护选型余量不够。需要特别说明的是也有一批人直接上FOC磁场定向控制。FOC确实能换来更细腻的低速平顺性和更安静的运行声但代价是软件调试复杂、电流采样精度要求高、还要标定电机电感参数。对开盖这么一个短行程、低转速、非连续运行的动作六步换相的梯形波控制完全够用调试成本低一个数量级。除非产品定位高端要求在任意角度做绝对安静的线性运动否则没有必要把FOC拖进来。2.2 我最终确定的系统架构最后落地的系统架构分两块板整机主控板负责传感器、UI和整机逻辑电机驱动板独立工作专门负责换相、调速和全部保护逻辑。两者之间用简单的UART协议通信主控发开盖关盖停止指令驱动板回传状态和故障码。整机主控STM32F103 ├── 红外测距传感器 ├── 触摸按键 / LED指示 └── UART ── 电机驱动板 ├── STM32G431换相、PI调速、堵转检测 ├── 三相栅极驱动EG2131 ├── 6×N-MOSFET 三相全桥 ├── 霍尔接口 H1/H2/H3 ├── 三相低侧电流采样 └── 限位开关接口开到位/关到位这个电机控制单列一块板的决策有几个理由。整机主控要处理红外传感器、按键、LED和可能的蓝牙实时性要求不高而电机换相和堵转保护对中断响应和时序有硬性要求混在一起容易互相干扰。两块板各干各的电机部分出问题时可以单板调试不用在复杂的主控逻辑里翻来翻去。MCU选STM32G431不是随便定的。这颗芯片的高级定时器可以直接输出带死区的互补PWMADC支持多通道采样和注入模式做六步换相甚至以后升级FOC都够用。相比用F103的时代省掉了大量定时器中断里手动翻转GPIO的代码。2.3 直接能用的BOM参考核心物料清单如下都是容易采购的通用型号供参考器件型号/规格作用驱动板MCUSTM32G431CBT6换相、调速、保护逻辑栅极驱动EG2131 三相栅极驱动器低压信号放大为栅极驱动MOS管30V/8mΩ N-MOS × 6三相全桥功率级采样电阻0.02Ω/1W低感电阻 × 3相电流采样运放MCP6002电流信号放大霍尔连接器PH2.0 5PIN接电机霍尔线限位开关接口PH2.0 3PIN × 2弹簧限位/磁感应限位栅极驱动用EG2131这种三相集成驱动好处是省掉三个半桥驱动器和对应外围电路板上面积小且内部集成了死区逻辑。MOS管的参数按照5.1节说的原则选12V系统用30V档足够重点看导通电阻。3. 六步换相、PWM调制与软启停开合盖动作的实现细节3.1 霍尔换相表和定时器通道的配合无感BLDC是通过反电动势过零检测来换相的但垃圾桶开盖机构经常要从零速启动还频繁遇到堵转用无感方案很容易在低速时失去同步。所以这里必须用带霍尔传感器的方案。三个霍尔按120°电气角排布转子每转过60°电气角就触发一次换相一个电周期正好六次这就是六步换相这个名字的由来。驱动板启动后先读霍尔状态根据换相表决定桥臂开关组合。下面这张表是我们给这台电机标定出来的结果注意霍尔和相位的对应关系随电机绕线方式不同而变化换一台新电机必须重新验证不能直接照搬。// 桥臂状态位定义bit5AH, bit4BH, bit3CH, bit2AL, bit1BL, bit0CL // 霍尔状态索引(H32) | (H21) | H1 static const uint8_t swap_table[8] { [0b000] 0x00, [0b001] 0b100010, // A B- [0b011] 0b100001, // A C- [0b010] 0b010001, // B C- [0b110] 0b010100, // B A- [0b111] 0b001100, // C A- [0b101] 0b001010, // C B- [0b100] 0x00, }; void bldc_commutate(uint8_t hall_state) { // 根据换相表配置高级定时器通道和输出极性 // 这一步只切换输出通道PWM频率和占空比由定时器统一管理 uint8_t step swap_table[hall_state 0x07]; config_timer_output(step); }实际工程里我不会在中断里手动把GPIO拉高拉低来换相那样会引入时序竞争。正确做法是把PWM通道配置成A相上管把需要恒通的相配置成强制低电平输出其余通道关闭。这样PWM频率、占空比由定时器统一控制换相只是切换通道配置代码简单波形也干净。霍尔信号建议用外部中断加定时器捕获双保险防止丢沿。3.2 PWM调制方式、自举电容和死区换相表决定哪几个管子导通PWM决定导通多长时间两者结合才形成转速控制。常用调制方式有三种上管PWM下管恒通、下管PWM上管恒通、上下管互补对称PWM。我们选的是上管PWM、下管恒通。选这个方式有一个很容易被忽略的理由自举电容。栅极驱动IC要驱动上管靠的是自举电容储存的电荷给上管驱动电路供电而自举电容必须在开关过程中不断补充电荷。上管PWM调制时每个PWM周期上管都会关断一次此时自举电容有充电窗口所以就算占空比接近100%电荷也能持续补充。如果改成上管恒通、下管PWM的方式当上管长时间直通时自举电容电荷会慢慢耗尽最后上管驱动电压不足MOS管进入线性区发热迅速上升这是很多低压驱动板烧管子的隐蔽原因。PWM频率我选在18~20kHz高于人耳可听上限听不到开关噪声死区则由EG2131这类集成栅极驱动内部处理默认几百纳秒对12V低压系统足够。如果以后改用分立半桥驱动就必须在MCU高级定时器里自己配死区时间从1µs起步比较稳妥。3.3 软启停让盖子温柔地打开也温柔地停下直接给满PWM开盖盖子会啪一声弹开减速齿轮冲击大整机声学测试也过不了。我的做法是PWM占空比从初始值按固定斜率爬升到目标值停止时再斜坡下降到零。我用的参数大致是启动初始占空比8%爬升速率每毫秒0.15%到36%进入匀速段关盖减速段从36%以每毫秒0.3%降到0完全停止后低侧两管同时导通500ms作为刹车靠绕组电阻把转子动能耗散掉。这里要特意提醒一个很容易犯的错只做软启动不做软停车。机械系统带惯性和减速齿轮刹车刹得太猛齿轮背隙会反过来敲击结构件发出咔哒一声长期反复还会造成齿面磨损异响。软停车的斜坡斜率一般比启动略陡是没问题的但不要直接切零占空比。4. 电流采样、堵转检测与防夹状态机4.1 电流检测电路怎么搭防夹功能的核心是可靠地知道电机是否被卡住。垃圾桶的盖子被手挡住、被线缆缠住、或者时间久了转轴生涩本质都会表现为电机电流异常升高。电流采样电路就是这套安全逻辑的眼睛。我在驱动板上做了三路低侧采样每相一个0.02Ω采样电阻信号经运放放大20倍后送ADC。选低侧采样的原因是共地电压低运放好处理代价是采样电阻上面的电压在开关瞬间会快速跳动所以采样走线要远离功率走线做开尔文连接否则测出来的电流波形全是毛刺。放大倍数不是随便定的。需要根据最需要分辨的电流区间反推正常工作最大电流0.8A放大20倍后运放输出约0.02×0.8×200.32V堵转2.5A时约1V距离ADC满量程3.3V还有很大裕量。这个裕量是故意留的防止电机启动瞬间的电流尖峰直接顶满ADC导致读数失真也为了给后续更高的堵转阈值留调整空间。4.2 堵转判断阈值和延时怎么定堵转判断不能简单做电流超过X就停。电机启动瞬间有惯性冲击电流正常工作时负载也会波动直接拿瞬时值判断必然误动作。我采用电流超限加时间窗的方案连续200ms电流都超过1.2A才判定为堵转期间一旦掉下去计时清零。这个200ms不是拍脑袋定的。我拿示波器抓过电机从静止到匀速的启动波形软启动下冲击电流持续时间大约50~80ms正常开盖过程中的负载波动持续没有超过150ms的。所以200ms既能躲过正常瞬态又不会让堵转保护慢到损伤电机。堵转时绕组电流基本不变MOS管和线圈都在持续发热2.5A×12V这种量级下两三秒就会明显升温200ms判断加立即关断是安全的。4.3 防夹流程软件智能和硬件保命并行整机的开盖和关盖指令来自主控但驱动板上的保护逻辑不依赖主控自己在中断和主循环里处理。防夹状态机简化成四个状态IDLE、OPENING、CLOSING、STALL_RELEASE。OPENING阶段检测到堵转直接停止并回IDLE。开盖方向被卡概率低多数是异物短暂阻挡停止等待即可。CLOSING阶段检测到堵转进入STALL_RELEASE电机反向运行800ms再回IDLE。这是防夹的关键场景——手或宠物伸到盖下时盖子必须立刻反向退开绝不能硬顶着继续往下压。反向释放也做软启动避免突然反向把异物夹得更紧或冲击减速机构。我还在驱动板上加了一道硬件层面的保险电流采样信号直接进比较器一旦超过硬件阈值硬件电路立刻封锁桥臂驱动输出这个动作不经过MCU软件响应在微秒级。软件堵转检测负责智能部分比如判断方向、反向释放多久硬件比较器负责保命部分两条路径完全独立任何一条失效另一条还在。这是我的习惯驱动类产品上永远要给软件留一道物理后备。5. 驱动板硬件设计MOS选型、layout和几个保护细节5.1 低压系统的MOS管反而要抠导通电阻有人觉得12V低压MOS管随便选一颗就能用这个想法会吃亏。低压系统里电流一定时导通损耗在总损耗里占比更高。同样堵转2.5A一颗50mΩ的管子发热就有0.31W看着不多但驱动板PCB面积小又装在马达组件旁边散热条件很差长时间堵转测试时这个热量就会累积到不可接受。我的选型思路是耐压按最大工作电压的1.5~2倍选12V系统选30V档就行选40V也没有问题代价是导通电阻和栅电荷略大重点看Rds(on)尽量压到10mΩ以下再看栅极电荷Qg越小栅极驱动损耗越低。最终选了一颗30V/8mΩ的国产N-MOSSOP-8封装低侧管子下面的地平面尽量铺铜散热。5.2 三相全桥layout的三个关键点第一版驱动板打样回来问题出在高频开关噪声上后来重画一版才解决。三条原则直接分享功率回路面积尽量小。从母线电容正极→上管→电机相线→下管→采样电阻→电容负极这个高频电流回路包围的面积越小寄生电感越小开关尖峰越小。我的布局是上管和下管紧挨着放构成一个半桥对三对半桥在地平面上排成一条直线母线电容放在桥路输入端。采样电阻走开尔文连接。采样电阻两端的电压信号单独两条细线走回运放输入端不从地平面大面积走否则地平面上的寄生压降会串入采样信号造成电流读数偏差。栅极走线短而直。栅极驱动IC到各MOS管栅极的走线越短越好串联栅极电阻要紧挨着MOS管栅极放。栅极走线过长会引入寄生电感开关瞬间振铃严重时能把栅极电压振到超过耐压值。5.3 不只是堵转保护电压和静电防护驱动板作为产品的一部分除了堵转保护还要考虑电源异常和装配环节的静电。母线电压监测用ADC持续采样12V母线低于9V或高于15V直接停机。电池供电时电量下降这个保护能避免低压下强行开盖导致MCU复位、盖子卡在半路的尴尬。输入反接保护用一颗PMOS实现防反接压降低、无静态损耗。霍尔线和电机相线是引到外部的装配过程中难免带上静电霍尔输入接口上加了RC滤波加TVS管电机相线上预留共模磁环的位置。这些小东西成本不高但能省掉大量售后返修。6. 联调实测从空载到装壳的排错记录6.1 空载测试第一步先验证换相表拿到第一版驱动板和电机我没有急着接盖子而是把电机拆出来空载测试。接好电源和霍尔线先确认霍尔供电正常再用示波器夹霍尔输出手动慢慢转动电机看三个霍尔信号是否呈120°错开的方波。这一步能发现大量接线问题。比如霍尔信号相位不对多半是霍尔A和霍尔B线序接反了如果霍尔输出不是干净方波而是边沿缓慢可能是上拉电阻太大或线缆过长应适当减小上拉阻值。确认霍尔波形正常后给一个很小的占空比让电机转起来。这里我遇到一个典型故障电机只是来回抖动不连续旋转偶尔还发出嗡嗡声。逐相排查后确认是换相表和实际电机绕线不匹配。我没有直接盲改代码而是用示波器同时夹霍尔信号和电机相电压对比每个霍尔沿发生时反电动势的相位关系把换相表按电机实际顺序逐项校正。改完之后电机转动顺畅这一步的经验是换相表验证必须用波形说话靠猜会浪费一下午。6.2 装壳后的隐蔽bug电机启动瞬间误触发传感器空载和带载测试全部通过后装回整机结果出现一个非常隐蔽的故障红外感应模块在电机启动瞬间会误触发开盖。第一次遇到时我完全没头绪因为驱动板单独工作一切正常。排查过程是这样的先在电机运行时用示波器看传感器供电纹波纹波确实增加了但进一步试验发现即使拿隔离电源单独给传感器供电误触发依然存在这就说明不是电源传导问题而是空间辐射耦合进了传感器信号线。处理办法是把电机相线从传感器线束旁边挪开避免长距离并行并在电机线束上加磁环。改完之后误触发率从大约10%降到几乎为零。这件事让我重新理解了智能垃圾桶这类小体积产品里的一个关键原则驱动板性能好不等于整机工作正常。电机线的走向、连接器位置、线束与传感器信号线的空间隔离这些在原理图上看不到的东西往往决定产品能不能过验收。6.3 长期循环测试暴露的两个参数问题EMI问题解决后进入长时间循环测试让样机连续做开合动作每5000次记录一次电流波形和堵转保护触发次数。这个阶段暴露了两个问题。第一个是驱动板长时间运行温度偏高。用红外热像仪一看低侧MOS管附近的铜皮面积不够热量散不出去。重新绘制覆铜区域、增加过孔阵列后温度降了十几度。第二个是堵转保护参数需要留出老化余量。开盖机构运行几千次以后润滑油脂和齿轮磨损会让负载电流缓慢变化老化前后的正常负载电流差大约0.2A。如果阈值卡得太紧旧机器就容易误触发保护。最后我把堵转阈值放宽到1.5A、时间窗保持200ms并且把这两个参数做成可通过串口在产线校准的可配置项。6.4 可以直接抄的最终参数量产定版的参数汇总如下同类产品可以直接拿去做初始值再根据实际电机微调。参数数值PWM频率19kHz死区时间600ns栅极驱动IC内置启动初始占空比8%启动爬升速率0.15% / ms额定运行占空比36%关盖减速斜率0.3% / ms堵转电流阈值1.5A堵转时间窗200ms防夹反向释放时间800ms母线欠压保护点9V母线过压保护点15V最后分享一个调试习惯上的建议做这种小功率无刷驱动手上一定要有一台能保存波形的示波器和电流探头。我在联调阶段有几次都是靠对比启动瞬间的电流波形才发现问题只看万用表的有效值根本看不出是哪个环节时序不对。另外每次修改固件和参数记得在存储区写版本号这个习惯在量产前帮我追回了不止一个参数漂移问题。无刷电机驱动板在智能垃圾桶里能跑得稳靠的不是某一个参数突出而是换相表、电流采样、软启停和保护逻辑这些环节都拼完整了。
返回列表