标签: 研究项目

  • 21 块板卡的去留:A/B/C 分级、三个产品族与四道阶段门

    结论:21 个已购板卡变体、合计 49 块、采购行金额 ¥9,434.92——但这不意味着要发布 21 款商品。真正要回答的是「哪块板服务哪条产品线、什么时候淘汰」:先按 A 首轮必测 / B 通过 A 后验证 / C 研究暂缓分三档,再让它们排队穿过四道阶段门。

    把库存问题当成产品线问题,是常见的起点错误

    采购清单里有 21 个型号变体,同硬件家族和装配变体容易让人误以为要维护 21 套固件。实际做法是:每块已购板都有明确任务,但任务可以只是「验证一个能力假设」,不必走向商品化。同基础设计的变体也不派生独立软件分支——比如 1.75 无壳版与 1.75-B 带壳版共用功能与固件,B 版只用于检验壳体固定、天线遮挡、散热与装车视角。

    三档分级:A / B / C

    档位 含义 典型型号
    A 首轮必测,直接服务首发产品族 1.75 裸板(¥174.50)、1.75-B(¥194.35)、1.85B-EN(¥188.31)
    B 通过 A 阶段后再验证,服务增值版或形态对照 1.75C / 1.75C-EN、1.43-B、1.28-B、1.8-EN、2.06-EN、P4 4.3
    C 研究或暂缓,只回答技术问题 RP2350 1.75-B、T5-E1 1.75、P4 3.5-EN、P4 5-C、ePaper 3.97、C6 系列

    两个 C 档型号值得单独点出:RP2350-Touch-AMOLED-1.75-B(¥181.38)与 T5-E1-Touch-AMOLED-1.75(¥191.28)的具体板卡身份尚未获官方确认,只有采购 / 整理表;两者样机价都高于 1.75 裸板的 ¥174.50。在确认卖家、PCB 修订版、屏驱动与 SDK 之前,不能把它们列为降本方案。

    三个产品族,共用一套数据资产

    产品族 目标价 首版只承诺
    汽车小仪表 Car 1.75 ¥399 / ¥649 / ¥999 经实车验证的转速与车速、IMU G 值、时钟、可配置页面;OBD 收发、车电保护、线束与支架计入整机
    摩托小表 Moto Turn ¥499 / ¥699 手机发送的下一转向、剩余距离、速度来源标识、IMU 倾角;发动机数据须锁定车型后才上屏
    自行车码表 Bike Ride ¥499 轮速或手机 / GPS 速度、转向提示、骑行数据、标准 BLE 心率

    三族共用传感器数据模型、蓝牙协议、UI 组件、日志与 OTA 框架,`car` / `moto` / `bike` 各自发布,板级驱动按 PCB 修订版配置。P4 大屏独立为研究线。导航小表被定义为结构化转向数据,不是手机画面镜像——这个定义决定了它的硬件预算与交互复杂度。

    四道阶段门

    阶段 使用型号 可交付物 进入下一阶段的条件
    1 汽车闭环 1.75、1.75-B,1.75C 作资源对照 可装车的 OBD 标准样机、目标车型矩阵、完整物料表 转速 / 车速刷新、断连提示、车电异常恢复、安装与完整成本过关
    2 两轮基础 1.85B-EN、1.85C-BOX、2.06-EN 摩托转向样机与自行车速度 / 心率样机 手机导航后台可靠;耐候、阳光、供电;车型协议与传感器兼容可复现
    3 增值版 1.28-B、1.75C、1.75C-EN、1.8-EN、1.32 胎压、语音、戒指实验报告 传感器整套成本、服务费、噪声 / 连接稳定性与套餐价值成立
    4 平台探索 LCD-2、LCD-2-C、1.43-B、C6 1.28-B、P4 系列 低价 / 大屏 / 替代芯片技术结论 只在核心产品暴露明确缺口或订单需求时转商品开发

    成本边界:样机价不是量产 BOM

    下表只演示直接毛利率 50% 时的完整交付成本上限,是敏感性示例而非已确认的毛利目标。样机采购单价不等于量产 BOM,余量还要支付接口盒 / 传感器、车电保护、线束、壳体、组装、测试、包装与不良品;渠道、税费、软件服务与研发摊销另算。

    目标价 完整成本上限 对应板卡样机价 仅扣板卡后的余量
    汽车标准 ¥399 ¥199.50 1.75 裸板 ¥174.50 / B ¥194.35 ¥25.00 / ¥5.15
    汽车胎压 ¥649 ¥324.50 1.75 裸板 ¥174.50 ¥150.00(若胎压成本 ¥100 为整套,则余 ¥50.00)
    汽车旗舰 ¥999 ¥499.50 1.75C ¥235.14 ¥264.36
    摩托标准 ¥499 ¥249.50 1.85B-EN ¥188.31 ¥61.19
    自行车标准 ¥499 ¥249.50 1.85C-BOX ¥196.61 ¥52.89

    最紧的一格是汽车标准版:用 1.75-B 的 ¥194.35 去凑 ¥199.50,只剩 ¥5.15 给所有其他部件。结论不是「做不了」,而是必须拿到 100 / 1000 台供应商报价或自研接口底板报价之后,才谈得上定价决策。另外,¥899 的戒指套装应单算表与戒指的成本和新增服务价值——戒指 ¥268 是用户提供的零售价,不能当成本投入模型。

    自研替代的六项前提

    替换主力硬件不是「设计一块板」这么简单,而是保留功能协议与 UI 设计,重新设计六件事:车电输入、CAN / K-Line、屏幕连接、射频、外壳与测试工装。要通过的条件是:供应商同时给出 1 / 100 / 1000 台报价(含屏幕、主板、外接传感器、线束、结构、组装、认证、损耗与售后),且自研样机在同等功能与可靠性下总成本低于开发板方案,并跑通供电瞬态、ESD/EMC、温度、振动、RF 与可维修性测试。

    对车型适配的意义是直接的:像 Mazda MX-5 ND 这类以轻量与自吸响应为核心的平台,与涡轮车在可读字段上并不重合,因此车型矩阵必须先立起来,硬件选型才有依据。采集侧可以参照 SR-RaceBox 车载数据采集器 的宽压 CAN 设计,实时链路则由 SR-Telemetry 实时遥测云 承担。

    FAQ

    21 块板是不是要发 21 款产品?

    不是。已购板都有明确任务,但任务可以是验证一个能力假设。正式发布的只有三个产品族,其余板卡按 A/B/C 分级排队或长期停留研究状态。

    为什么同型号的带壳版不单独做固件?

    因为基础电子设计相同。壳体版本只用于检验固定、天线遮挡、散热与装车视角,共用功能与固件,不派生独立软件 SKU。

    C 档型号还有价值吗?

    有,但价值在回答问题而非上市。例如 P4 5-C 用来验证停车状态双摄 / 后视链路的延迟、布局与供电,未通过环境与法规评估前不作为后视镜或驾驶辅助商品。

    自研板什么时候才算可以替换开发板?

    需要在同等功能与可靠性下总成本更低,并跑通供电瞬态、ESD/EMC、温度、振动、RF 与可维修性测试,而不是只看单板报价。

    参考资料

    • 项目 04 —— D:/AI/PROJECTS/vehicle-display-board-research/research/model-product-designs.md(21 个已购板卡的产品方案,2026-10-03)
    • 项目 04 —— data/owned-boards.csv(采购清单)、research/detailed-report.md(板卡核查)
    • 项目 04 —— research/decision-plan.md(产品与平台决策计划)

    更新记录

    首次发布 2026-10-11 最近核对:2026-10-11

  • 车载信号为什么会说谎:TTL、源时间与 500 ms 新鲜度阈值

    一个显示错误的仪表,比一个不显示的仪表更危险。车载小仪表最常见的问题不是传感器失效,而是失效之后屏幕仍保留着上一次的有效数字——用户以为自己在看实时车速,实际看的是 3 秒前的残值。统一信号服务(Unified Signal Service)的 TTL 模型就是为消除这类误判而设计的。

    过期数据为什么比没有数据更有害?

    因为「看起来正常」会关闭人的怀疑。在我们的原型规范里,网关失联时车速与转速必须同时变为「–」,不允许回退到 GPS 速度冒充 OBD 速度;胎压接收器缺失时显示「–」与无数据状态,绝不显示默认的「正常」。这条规则背后的判断是:缺失状态是可操作的信息,伪造的正常值不是。

    一个信号要带哪些字段才算可信?

    至少要有命名空间、设备稳定 ID、指标定义、单位、数据类型、量程、源采样时间、接收时间、序号、质量状态、过期阈值、精度或置信信息、估算标记与隐私等级。缺任何一项都无法在跨设备融合时判断该值是否可用。

    信号示例 单位 TTL 示例 说明
    GPS 速度(gps.speed) km/h 500 ms 原型值,正式阈值建议先评估 150–500 ms
    四轮胎压(tpms.fl) bar 65,000 ms 广播间隔可能从秒级到分钟级
    发动机转速(OBD) rpm 按车型轮询周期定 随车型、网关与总线负载变化

    需要特别区分的语义差异包括:GPS 对地速度与车辆轮速、海拔相对平均海平面与椭球高、磁航向与真航向、轮胎表压与绝对压力、手表当前心率与最近一次历史同步值。正式适配器必须在语义层标注这些差异,不能靠显示名称区分。

    显示刷新 30 次,等于收到 30 个独立样本吗?

    不等于,这是最容易被混淆的一点。以 25 Hz GPS 为例,它对应 40 ms 的解算周期,适合保留原始样本供统计,但界面每秒重绘 30 次并不代表接收到 30 个独立定位样本。采样频率、传输频率、模型消费频率和显示频率必须分别记录。

    同样需要警惕的是「宣称的 25 Hz」:模块必须真实支持指定的导航速率,输出速率不等于独立解算率。重复发送旧坐标、插值动画或手机补帧都不能宣称为 25 Hz 实测。

    时间不同步时,跨信号判断还能做吗?

    要分情况。源时钟、主机时钟与 UTC 三者分开管理;跨设备融合先估计时间偏移与漂移,必要时利用 PPS(秒脉冲)。没有同步条件时只能并排显示并在分析中明确误差,跨信号提醒不能把不同时间的样本当作严格同时测量。

    这条限制直接影响组合告警的设计。例如在 上海国际赛车场 的长直道上,把「车速超过 200 km/h」与「胎压低于阈值」组合成一条告警,就必须确认两个样本的时间差在可接受范围内,否则结论不成立。我们的 SR-Telemetry 实时遥测云 把推送延迟控制在 500 ms 以内,正是为了让这类组合判断有可核算的时间基准;SR-RaceBox 车载数据采集器 则以 IMU 50 Hz、GPS 20 Hz 同步记录,为事后分析保留原始时间线。

    FAQ

    为什么胎压的 TTL 是 65 秒这么长?

    因为胎压广播发送间隔可能从秒级到分钟级,静止与运动状态也可能不同。TTL 必须来自设备实际行为,不能对所有传感器套用演示里的 1 Hz。

    数据过期后应该立刻清空显示吗?

    应该标记无效而不是保留旧值。某一数据源失联只清空依赖它的指标,其余在线数据仍可显示;失联指标显示明确状态,不沿用上一次的有效样式。

    500 ms 是精度保证吗?

    不是。它是原型设定的新鲜度阈值,属于工程上的保守取值,正式版本需按链路实测制定,建议先评估 150–500 ms 区间。

    换了一个同型号传感器,绑定还能沿用吗?

    不能。设备替换后必须重新确认稳定 ID 与数据绑定,禁止仅按名称接管旧设备的信号。

    参考资料

    • 项目 05 —— D:/Backup/Documents/开发板侧端模型/LINK端侧传感器软件设计说明.md(V0.1,2026-09-13,第 5–6 节)
    • 项目 05 —— EdgeForge自编译软件框架方案.md(V1.4,第 5.3 节设备能力清单)
    • 项目 04 —— research/ui-screen-specs.md(数据源与失联规则)

    更新记录

    首次发布 2026-10-11 最近核对:2026-10-11

  • EdgeSpec 这门语言为什么故意做小:禁掉递归、指针与无界循环的取舍

    结论:EdgeSpec 是一门故意做小的语言。它禁掉了递归、动态代码加载、任意指针、无界字符串、无界循环和未声明 I/O 这六样能力——不是为了省字节,而是为了让每一条规则在编译期就能被证明「跑得完、算得准、不越权」。MCU 侧因此不需要预处理器、汇编器和链接器,只做一次受限翻译。

    为什么把「编译」拆成两段

    把完整工具链塞进 MCU 是个看起来更省事、实际更贵的选择。ESP32-S3 的片内 SRAM 只有 512 KB,勉强跑 Clang 或 GCC 会带来编译延迟、RAM 峰值、ABI 兼容、恶意代码与崩溃恢复这一连串问题。更根本的是:通用编译器给用户的自由度远超车载仪表的需要。

    EdgeForge 的拆法是让重活留在性能充足的 Studio 侧——语法、类型、量纲、越界、权限推导;MCU 只负责把平台无关中间表示(EFIR)翻译成 EdgeVM 字节码,并逐字节核对。这样「能力边界」就在编译期被写死,而不是等到运行时才发现。

    受限语言禁掉的是哪六样

    被禁止的能力 禁它的直接原因 替代做法
    递归 栈深不可静态判定,无法给出确定的内存上限 用有限状态机或固定层数的表达式
    动态代码加载 绕过签名与权限检查,信任根失效 功能包走签名安装通道
    任意指针 越界访问无法在编译期证明 信号按命名空间索引访问
    无界字符串 长度不可预算,缓冲区不可确定 定长字段与枚举值
    无界循环 无法保证在墙钟预算内结束 固定迭代次数或窗口统计原语
    未声明 I/O 插件可触达未授权设备 在设备能力清单内显式声明

    这六条的共同点是:它们都让「这段代码要花多少资源」变成一个无法提前回答的问题。而在车载环境下,无法预算就等于无法承诺。

    预算是语言的一部分,不是运行时的运气

    EdgeVM 的每条 pipeline 都带三重预算:指令预算、墙钟预算与输出预算。触发非法 opcode、越界跳转或栈溢出时,当前插件会被立即停止,而不是降级继续跑。

    这也是它与「在 MCU 上跑 Lua」的关键差别:Lua 提供通用语言能力,很难在编译期证明指令预算、栈深与资源占用;EdgeVM 把这三项做成了代码结构本身的属性。语法检查、类型检查、单位与权限检查、资源检查依次通过之后,才允许生成字节码。

    36 字节是怎么压出来的

    EFIR 使用定长头部与任务表,表达式只允许有限 opcode,事件动作走索引表。ESP32、STM32 与 RP2040 的 C99 编译器都在调用者提供的固定缓冲区内完成转换,全程不申请堆内存——没有堆分配,就没有分配失败这条故障路径。

    产物 输入体积 输出体积 适用条件
    基础示例应用 88 字节 EFIR 36 字节 EdgeVM 常量、信号读取与本地事件
    8 样本平均窗口规则 58 字节 EFIR 20 字节 EdgeVM 最少 4 样本有效,Host API 1.3.0
    Studio 四规则草稿 212 字节 EFIR 132 字节 EdgeVM 草稿态,尚未签名发布

    体积的意义在于更新成本:一次页面布局或阈值调整,从「重新编译并烧录整机固件」降到「传输几百字节并验签」。代价就是上面那六条限制。

    确定性怎么验证

    同一份 EFIR 在三个目标平台上生成完全一致的字节码,这意味着编译结果可以作为制品被审计。基础示例的 88 字节 IR 生成 36 字节字节码,已与 Node 参考编译器逐字节一致;这类比对让「翻译器对不对」从主观判断变成可回归的断言。

    需要区分的是:编译成功只代表确定性校验通过,不代表获得发布许可。AI 生成、开发者编译、维护方签名是三个独立角色,不能互相替代。

    AI 在这套语言里能做什么

    AI 只能输出 EdgeSpec 提案,不产出可运行代码。它可以做需求理解、信号选择、布局组合、规则生成、适配器模板与测试用例;不能扩展 Host API、绕过签名、直接发送总线帧,也不能修改信任根,更不能把猜测的协议发布成正式信号。

    这条边界对产品线的意义是具体的:AI 可以在 SR-RaceBox 车载数据采集器 采集到的信号上组合出新的告警规则,但不能替我们宣称某款车型的私有 PID 已获验证;SR-ECU 赛车 ECU 标定工具 的写入动作属于受控能力,不在插件可自行申请的权限集合内。以 Toyota GR86 这类 200 PS 的后驱入门车为例,车主真正需要的往往是一组「转速阈值 + 水温上限 + 单圈计时」的组合规则,完全落在功能包可覆盖的范围内,不需要触碰任何车辆控制权限。

    FAQ

    EdgeSpec 和直接在 MCU 上跑 Lua 有什么区别?

    区别在于可静态验证。EdgeVM 每条 pipeline 都有指令预算、墙钟预算和输出预算,非法 opcode、越界跳转与栈溢出会立即停止当前插件;Lua 难以在编译期证明这些。

    禁掉递归和循环,还能写出有用的规则吗?

    能。窗口统计、阈值与迟滞、有限状态机、单位显示、记录策略这类车载常用能力都不需要递归或无界循环,用固定迭代次数与窗口原语即可表达。

    有了功能包机制,固件还需要 OTA 吗?

    需要。新外设驱动、新无线协议栈、底层 CAN/USB/显示驱动、VM 漏洞修复与加密库更新都必须走固件通道,功能包降低的是更新频率。

    88 字节与 36 字节是典型值还是保证值?

    是当前原型的实测值,且已验证与 Node 参考编译器逐字节一致;体积随规则复杂度变化,例如 8 样本窗口规则为 58 字节 EFIR、20 字节字节码。

    ESP32-S3 上能顺便跑对话模型吗?

    不适合。S3 只运行规则与显示,通用对话模型应放在手机或 Linux/手机级设备,并按内存、上下文、发热与时延评估量化模型。

    参考资料

    • 项目 05 EdgeForge 开发板侧端框架 —— D:/Backup/Documents/开发板侧端模型/EdgeForge自编译软件框架方案.md(V1.4,2026-09-21)
    • 项目 05 —— LINK端侧传感器软件设计说明.md(V0.1,2026-09-13,设备能力清单)
    • 项目 05 —— OBD_AI插件化平台方案书.md(V1.0,2026-09-13,权限与签名边界)

    更新记录

    首次发布 2026-10-11 最近核对:2026-10-11