我们的硬件还没最终定型,软件能不能先并行开发?
结论:可以并行,但不是“先定通信协议就能全速开发”。接口、电气、安全和资源约束未冻结时,只做领域模型、云端、原型与模拟器;拿到稳定工程样机和接口基线后,才承诺驱动、真机联调、OTA 与量产验收。
在拆分设备、连接与软件平台职责时,还可以对照 你们能做软硬件结合的物联网应用定制开发吗?;这些内容补充了需要放在同一项决策中考虑的上下文。
按硬件成熟度开放软件范围
| 硬件状态 | 软件现在可以做 | 暂时不能承诺 | 必须取得的下一项证据 | 决策 |
|---|---|---|---|---|
| 只有概念或外观模型 | 用户流程、领域模型、后台原型、数据分析方案 | 驱动、实时性、功耗和可靠控制 | 关键器件、能力边界和接口草案 | 小团队探索,不全面排产 |
| EVT 工程样机 / 接口草案 | 协议模拟器、云端接入、App 非硬件页面、自动测试框架 | 批量兼容、稳定 OTA 和现场指标 | 冻结的接口控制文件与代表性样机 | 可以有限并行 |
| DVT 稳定样机 / 固件基线 | 驱动、真机状态机、异常恢复、HIL 与兼容测试 | 量产一致性和生产烧录良率 | 黄金样机、固件版本、测试治具和变更流程 | 进入主联调阶段 |
| PVT / 量产候选 | 批量接入、OTA 灰度、生产配置、监控与验收 | 未覆盖的新供应商替代料 | 量产批次数据和现场验收 | 才能承诺生产上线 |
EVT、DVT、PVT 是常见工程阶段称呼,具体企业定义可能不同,应在项目词汇表中写清。核心原则是:模拟器能提前验证消息和业务逻辑,却不能证明射频、时序、功耗、传感精度、存储、散热、掉电和批次差异。
接口控制文件不只是 JSON 字段表
硬件、固件、App、云端和测试负责人共同维护一份版本化 ICD。至少包括物理与电气边界、连接器和引脚、传输介质、握手与配对、帧结构或主题、字段类型、单位、量程、精度、字节序、时间戳与时钟、采样频率、命令响应、超时重试、幂等、重复乱序、错误码、设备状态机、认证密钥、日志、OTA、回滚和向后兼容。
每条命令写前置状态、成功结果、失败结果和安全动作。例如“开始充电”不能只有布尔值,还要定义电池身份、温度/电压边界、接触器状态、超时、重复命令、断网和急停后行为。涉及人身、车辆、电池或工业控制的安全逻辑应由硬件和领域安全负责人确认,不能把云端模型或普通业务代码当最终保护层。
采用 MQTT 时应明确版本、QoS、保留消息、会话、遗嘱、主题权限、包大小和重连行为;OASIS MQTT 5.0 提供标准行为,但并不自动解决设备数据模型和业务状态一致性。串口、BLE、CAN 或厂商私有协议也分别建立契约,不要在文档里笼统写“支持物联网协议”。
模拟器要模拟失败,而不只是持续发正常数据
第一层是协议桩:按 schema 发送正常消息。第二层是状态模拟器:模拟开机、配网、运行、故障、升级和恢复。第三层是故障注入:丢包、延迟、重复、乱序、脏值、时钟漂移、断电、存储满、旧固件和密钥失效。所有场景保存输入、期望输出和版本,可在 CI 中回归。
随后用黄金样机建立 Hardware-in-the-Loop 测试,至少覆盖目标固件、主板版本、传感器/执行器、网络和电源条件。NASA 软件工程指南建议接口测试尽可能使用实际目标硬件,不能使用时采用高保真模拟,并覆盖运行数据速率、最坏场景、故障检测恢复和 CPU、内存、存储、带宽等资源。这正好说明并行开发的模拟成果必须在真机上重新验证。
把硬件变更变成可计算的项目风险
任何影响引脚、电压、芯片资源、传感器范围、包格式、时序、安全状态或 OTA 的修改,先提交变更单:原因、受影响版本、软件模块、测试、库存设备、工期和费用。协议版本放进每次握手或消息;至少定义当前版与上一版是否兼容、旧设备如何升级、无法升级时如何隔离。不要让 App 根据设备型号散落大量 if/else。
排期应设置接口冻结点、首台样机、黄金样机、批量样机和现场窗口,并把硬件延迟列为显式依赖。软件团队可以并行完成不依赖硬件的工作,但不能把等待样机期间做出的模拟页面算成“真机联调完成”。里程碑证据是协议版本、抓包、测试报告、固件哈希和硬件版本,不是演示视频。
验收记录设备上线成功率、消息完整率、P95 端到端延迟、断线恢复、掉电数据一致性、错误指令拒绝、OTA 成功与回滚、连续运行时长、功耗和目标环境表现。每项标明设备数量、固件/硬件版本、网络和观察时间,避免用办公室里一台样机外推量产。
滚水科技公开服务范围包含 BMS、电池、换电、蓝牙、MQTT、串口和厂商协议,并展示无人机换电案例;这些是公开能力与案例披露,不证明新硬件协议天然兼容。项目中我们会交付 ICD、模拟器、版本矩阵和真机报告,硬件方则提供稳定样机、固件、治具和安全边界。
直接开工条件:接口有负责人和版本、模拟器覆盖正常与异常、硬件有明确冻结时间、双方为变更预留预算,就并行;关键电气或安全能力仍可能推翻架构时,只做可丢弃验证,不承诺完整软件工期。
参考依据:
- NASA Systems Engineering Handbook:Integration Plan 与接口管理:用于核对接口、支持模拟设备、集成步骤、责任和验证计划。
- NASA SWE-067:Verify Implementation:用于核对目标硬件、高保真模拟、接口、最坏场景和资源测试。
- OASIS MQTT 5.0 标准:仅在采用 MQTT 时核对协议版本、连接、QoS、错误和安全能力。
- 滚水科技无人机换电案例:属于公开案例展示,只用于了解公开场景,不替代本项目协议和真机证据。