跳转至

KeyGo:BLE 手机钥匙

分类:硬件与半导体 / 汽车电子
项目类型:实战项目(基于 CH582M 的 BLE 智能车钥匙)
关联综述:无钥匙进入系统
更新日期:2026年9月1日


1. 方案概述

KeyGo 是一把以手机为载体的 BLE 智能车钥匙:手机通过 BLE 与车载端匹配,靠近自动解锁、远离自动落锁,并支持一键启动。整体对标传统 PEPS 的"无感进入"体验,但把实体钥匙换成了手机 + 一块低功耗 BLE 从机(CH582M)。

与综述的关系

本文是 无钥匙进入系统项目落地篇:综述讲"系统是什么、有哪些形态、有什么风险",这里讲"KeyGo 这一把具体怎么实现、踩了哪些坑"。综述里关于 PEPS / RKE / 中继攻击的概念不再复述,请按需回看。

关键链路(待补 KeyGo 实际框图)

  • 手机 App(BLE 中央设备)↔ 车载 BLE 从机(CH582M)
  • 认证:绑定 / NONCE / AUTH 流程,BLE 密钥由 HMAC-SHA256 KDF 派生
  • 解锁判定:RSSI 卡尔曼滤波 + 阈值/磁滞(解锁 −60 / 落锁 −70)
  • 备份:NFC 卡片(手机低电量应急)

待补

KeyGo 的固件版本演进(v3.5.7 等)、当前已知 Bug 清单、与 CH582M 裸片/模组选型说明。


2. BLE 低功耗实测

实体钥匙端(CH582M)靠电池供电,平均电流直接决定换电池周期,是项目第一约束。

功耗构成(概念)

  • 广播/连接态:周期性 BLE 广播 + 连接事件,电流在 mA 级跳变。
  • 深度睡眠:无事件时进入睡眠,目标 µA 级。
  • 唤醒源:RTC / GPIO(门把手触摸、按键)打破睡眠。

实测数据(dev/pm-test 分支,固件侧)

工况 实测电流 备注
深度睡眠 35 µA 淘宝 CH582M 开发板,RTC 8s 唤醒版(V27);CH582M 裸片标称 ~0.3 µA,板级地板受外围限制
间歇广播 最低 88 µA(观测) No-App 配对自举开窗态(fix27);均流与广播间隔待补
连接保持 __ mA(平均) 连接间隔待补
峰值(TX @ 0 dBm) __ mA 待补

深度睡眠 35 µA 的来历

这 35 µA 来自淘宝开发板(LDO = ME6215,正规料)的实测。自焊 PCB_V1(LDO = 疑似山寨 XC6206)深睡高达 4.4 mA——根因经 dev/pcb-v1 commit 校正为板级外围 IC 固定静态电流,最大嫌疑是山寨 XC6206 LDO;GPIO 浮空只是次要检查项。完整复盘与"两次反转"见 KeyGo 调试踩坑记录

降低平均电流的三板斧

  1. 拉长广播/连接间隔:间隔翻倍,连接态平均电流近似减半,但解锁延迟变大——需在"手感"与"续航"间折中。
  2. 睡眠期间关外设时钟与给 GPIO 确定电平:见第 4 节供电选型 + 调试踩坑 1.4。
  3. RSSI 采样不要在连接事件外另起高频定时:复用连接事件节拍,避免额外唤醒。

dev/pm-test 分支实测参数(固件侧,最终产品值待核)

  • 广播:断连后恒定 120–150 ms(fix28+P15-final / fix28+P15);两段式「快窗 + 慢速待机」。
  • 连接参数:MIN 160 / MAX 320 ms,SLAVE_LATENCY = 2(消除 AUTH 超时);早期激进试过 MIN120/MAX240 LATENCY3。
  • TX 功率−3 dBm(降 TX 省电,31f33a4)。
  • RSSI 采样:状态机周期 2s → 1s(05334cf,响应加速);g_cfgRssiPeriodMs 复活方案。
  • DCDC:启用内部 DCDC 降压(P5,495e866),唤醒后需重建 60M 时钟。
  • 以上取自 dev/pm-test 分支提交记录,标注为 PM-test 阶段实测/设定;KeyGo 量产固件的最终参数请以后续发布为准。

待补

KeyGo 量产固件的广播/连接间隔、睡眠策略、"靠近即解锁"端到端延迟,以及连接保持/峰值 TX 的最终实测。


3. NFC 实现

NFC 作为手机低电量时的应急备份:把手机(或独立 NFC 卡片)贴近车载感应区完成一次认证解锁。

  • 工作频率 13.56 MHz,通信距离几厘米(被动式,由读卡器磁场取电,卡片自身零自耗电)。
  • 在 KeyGo 中承担"主 BLE 链路不可用时的保底进入"角色,与综述中"NFC 适合做应急备份"一致。

待补

KeyGo 采用的 NFC 芯片/卡片型号、与 CH582M 的接口(SPI?独立 NFC 控制器?)、门限感应区位置与读卡距离实测。


4. 电源管理实战:XC6206 山寨踩坑与 LDO 选型平替

实体钥匙端体积小、电池容量有限,LDO 的压差、静态电流、负载能力直接决定续航与稳定性。这一节是项目里最"物理"的坑。

4.1 XC6206 山寨踩坑

XC6206 是经典的 SOT-23-3 / SSOT-24-3 三端 LDO(原厂 Torex XC6206P 系列),因极致便宜被海量克隆,市面流通的"XC6206"大半是打磨/仿制片,实测表现与原版差距很大:

维度 原版预期 山寨常见翻车点
压差(Dropout) 约 0.3 V @ 100 mA 动辄 0.5–0.8 V,电池电压略降就掉压
负载调整率 较好 带载后输出电压明显下坠
最大电流 标称 200–250 mA 实际 80–120 mA 就热保护/掉压
静态电流 数 µA 级 偏高,且批次离散大
纹波/噪声 可接受 偏大,干扰 BLE 射频与 ADC
丝印/封装 规范 打磨重打、引脚定义混乱(有"假 1117"混卖)

XC6206 山寨的两个最坑后果

  1. 电池不是没电而是被 LDO 坑没的:标称 3.3 V 输出,山寨片在电池 3.6 V 时就已压到 3.0 V 附近,CH582M 在低电压下射频性能/稳定性劣化,表现为"偶发断连、解锁变慢"。
  2. 批次一致性差:同一型号不同批次表现不一,量产翻车难追溯。

待补

KeyGo 实际踩到的 XC6206 具体现象(电压跌落曲线?断连日志?)、所用渠道/丝印,以及换料后的对比。

真实调试经历见「调试踩坑记录」(根因已据 commit 校正)

KeyGo 早期确实因低功耗压不下去、误以为是代码问题折磨了 4 天,最后换淘宝开发板对比(开发板 35 µA vs 自焊板 4.4 mA,差约 100×)才锁定硬件。dev/pcb-v1 commit(827d85b / 0ce8ae1)校正:最大嫌疑是板级外围 IC 固定静态电流、尤以山寨 XC6206 LDO 为甚(开发板用 ME6215 即 35 µA),并非 GPIO 浮空、也非 MCU/固件——作者始终未单独点测 LDO 电流,结论由"同程序换板"隔离实验推断。GPIO 浮空是次要检查项。完整时间线与排查方法论见 KeyGo 调试踩坑记录

4.2 LDO 选型平替

XC6206 不是不能用,而是不能闭眼用山寨片。平替思路按优先级:

选型方向 代表型号 关键参数 适用场景
超低静态电流(续航优先) MCP1700、ME6211、RT9193 IQ 1–2 µA 级,压差小 纽扣电池/小容量锂保供电,睡眠占比高的 BLE 从机
带载能力更强 AP2112、ME6206、RT9013 150–300 mA,压差 ~0.2–0.4 V 需同时喂 BLE 芯片 + NFC + 外设
原版同封装直替 Torex XC6206P(正规渠道) 与原设计 pin-to-pin 想最小改动替换山寨片
需更低噪声/更高 PSRR TPS7A / RT90xx 系列 PSRR > 60 dB @ 1 kHz 射频敏感、ADC 精度要求高

选型三问

  1. 压差够不够? 电池最低工作电压 − LDO 压差 ≥ 芯片最低供电(CH582M 为 2.3 V)。纽扣电池放电末段可能掉到 2.8–3.0 V,山寨 XC6206 此时已崩。
  2. 静态电流够低吗? 睡眠占比高的 BLE 从机,IQ 每多 1 µA 都直接吃续航。
  3. 渠道可靠吗? 关键料优先原厂/授权代理,避免"拆机片/打磨片";小批量也建议留物料批次记录以便追溯。

待补

KeyGo 最终选用的 LDO 型号、实测压差/纹波/静态电流,以及与原山寨 XC6206 的续航对比数据。


5. 抗中继设计

综述「安全与攻击」已说明:BLE 同样存在中继攻击风险——攻击者把手机/钥匙与车之间的 BLE 链路远距离延伸,欺骗"钥匙就在身边"。KeyGo 的防护思路:

  • 距离边界(distance bounding):用信号往返时延估算真实距离,中继引入的时延会暴露(需 UWB 或精细的 BLE 测距,难度高)。
  • 运动/情境校验:结合手机传感器(是否真的在走向车)、解锁地理围栏等,抬高中继门槛。
  • 多层认证 + NFC 备份:主链路异常时退回 NFC 物理接触解锁。

待补

KeyGo 实际落地的抗中继措施(是否引入 UWB?RSSI 阈值本身能否抗中继?)、以及相应测试结果。


相关概念

  • 详见 无钥匙进入系统 的「相关概念」与「参考」。
  • LDO(低压差线性稳压器):压差、静态电流、负载调整率、PSRR 是选型四要素。
  • XC6206:经典三端 LDO,山寨泛滥,关键料慎用。
  • RSSI / 卡尔曼滤波:KeyGo 用其做距离估计与解锁/落锁阈值判定。