软件设计说明书(SDD)

← 开发流程规范 | ← 主页

参考,仅复制


原文标题:Stage6 01 软件设计说明书 Software Design Description(SDD)

产品/项目名称EC‑S100 受限网络工况下生命体征监控智能手表(STM32F411 + nRF52840 双 MCU)
文档类型Software Design Description(SDD)
阶段定位承接 SRS/SSRD,落地到“模块/任务/接口/数据/异常/验证”的可实施设计
目标读者嵌入式工程师、软件架构师、测试/QA、硬件工程师(接口协同)、项目经理
版本/状态V1.0 / Draft(可评审)
编写日期2025-12-30

文档变更记录

版本日期修订内容修订人审核人
V1.02025-12-30基于现有 Stage6 SDD 初稿与 EC‑S100 软件架构设计文档重构完善:补全分层、接口、任务、数据、低功耗、安全与可验证性内容。Liu YueqiTBD

1 引言

本文档描述 EC‑S100 智能手表在 STM32F411 侧的软件总体方案与详细设计。设计以“受限网络工况”为核心约束:现场弱网/无网、环境恶劣、人员安全优先,系统需具备本地闭环能力(采集‑处理‑告警‑存储),并在可用链路出现时完成数据同步与事件上报。

本 SDD 重点覆盖:软件分层与模块职责、运行时任务与并发、关键接口与协议、数据与存储模型、低功耗与可靠性、安全与 OTA、以及与 SRS/SSRD 的设计追踪。

1.1 范围

范围覆盖 STM32F411 侧:显示与交互、传感器采集与预处理、本地存储与日志、与 nRF52840 的串口通信、低功耗与电源管理、异常诊断与恢复。nRF52840 侧 BLE/mesh 仅在接口层描述其交互契约。

1.2 参考与输入

输入来源:Stage5 SSRD/SRS、Stage4 SAD/SID/RAM/ADR、以及《EC‑S100 智能手表软件架构设计文档(STM32F411 侧)》中的目录结构与核心机制(工厂实例化、模块划分、任务/事件/消息约定等)。

1.3 术语与缩写

缩写含义
SDDSoftware Design Description / 软件设计说明书
SyRSSystem Requirements Specification / 系统需求规格说明书
SSRDSoftware System Requirements Definition / 软件系统需求定义
SRSSoftware Requirements Specification / 软件需求规格说明书
SADSystem Architecture Document / 系统架构文档
SIDSystem Interface Definition / 系统接口定义
RAMRequirement Allocation Matrix / 需求分配矩阵
ADRArchitecture Decision Record / 架构决策记录
PMICPower Management IC / 电源管理芯片
HILHardware‑in‑the‑Loop / 硬件在环测试

2 业务与场景约束(受限网络工况)

2.1 典型场景

典型使用场景包括:矿井/隧道/山区/海上平台等蜂窝网络覆盖差或不可用区域;作业人员需要实时生命体征监控与本地告警,并在有链路时将关键信息同步给手机/网关/平台。GPS 定位由手机侧提供(BLE 获取定位信息),手表侧不集成独立 GPS。

2.2 设计目标(面向市场现实)

目标工程解释(为什么这么做)主要落点
本地闭环安全弱网条件下无法依赖云端;告警必须在设备侧完成。阈值/规则引擎、本地弹窗/蜂鸣/震动、离线事件队列
低功耗长续航户外/作业场景充电不便;必须可控功耗与可预期续航。状态机、Tickless/Stop、分域上电、采样占空比
鲁棒与可恢复恶劣环境 + 长时间运行;故障必须可诊断且自动恢复。看门狗、断言/回溯、掉电保护、重试/超时、日志
可演进与平台化后续要换屏/换传感器/换 MCU;软件要能平移。分层架构、驱动抽象、工厂实例化、接口契约、配置化

3 总体软件架构

3.1 部署视图(双 MCU 分工)

系统采用 STM32F411 + nRF52840 双 MCU:

处理器主要职责关键接口
STM32F411(主控/UI)显示与交互、传感器采集与预处理、本地存储/日志、低功耗控制、与 BLE 协处理通信SPI/I2C/ADC/RTC/UART、外部 Flash
nRF52840(BLE 协处理)BLE 5.x/mesh、与手机/网关连接、定位信息转发、与 STM32 串口协议交互UART(与 STM32)、BLE/GATT/mesh

两者通过 UART 进行协议化通信,采用“请求‑应答 + 超时重传 + CRC 校验”的可靠传输策略,避免现场强干扰导致的 silent failure。

图 3‑1 双 MCU 部署与外设连接示意(工程资料)

3.2 分层架构(BSP/Driver/Service/App)

STM32F411 侧采用四层分层:BSP → Driver → Service → App。其核心价值是隔离变化:硬件变化影响 BSP/Driver;业务变化主要在 App;跨模块协同放在 Service,避免 App 之间强耦合。

层级职责边界典型模块(EC‑S100)
BSP(板级支持)时钟/中断/外设基础能力封装,提供稳定 HAL 适配层GPIO/I2C/SPI/UART/ADC/RTC/DMA/低功耗入口
Driver(器件驱动)针对具体芯片/器件的数据手册实现读写与初始化,不关心业务ST7789 显示、触控控制器、W25Qxx Flash、MPU6050、温湿度/PPG 等
Service(系统服务)跨驱动/跨应用的系统能力:调度、缓存、协议、存储、功耗、诊断DisplaySvc/SensorSvc/StorageSvc/BleBridgeSvc/PowerSvc/LogSvc/OtaSvc
App(业务应用)面向用户的功能组合与流程控制,调用服务层能力完成业务表盘/健康/告警/设置/同步 等

3.3 工程目录与实例化机制(EC‑S100 真实工程约束)

EC‑S100 工程采用“工厂实例化(*_inst())+ 句柄(handle)+ 接口表(function pointers)”的 C 语言 OOP 实现,支持按配置切换不同驱动实现。以下目录结构节选自现有工程文档:

C
/* 系统事件类型 /
typedef enum {
SYS_EVENT_NONE = 0,
SYS_EVENT_SENSOR_UPDATE,
SYS_EVENT_BATTERY_UPDATE,
SYS_EVENT_BT_STATUS_CHANGE,
SYS_EVENT_UI_SWITCH,
SYS_EVENT_POWER_MODE_CHANGE
} system_event_type_t;

/
界面状态枚举 /
typedef enum {
UI_STATE_WATCHFACE = 0,
UI_STATE_HEALTH,
UI_STATE_SPORT,
UI_STATE_SETTINGS,
UI_STATE_WEATHER,
UI_STATE_SLEEP
} ui_state_t;

/
传感器数据请求结构 /
typedef struct {
uint32_t sensor_mask; /
请求的传感器位掩码 /
uint32_t sample_rate; /
采样频率 /
uint32_t duration; /
采样持续时间 /
} sensor_request_t;

/
系统状态全局变量 */
typedef struct {
ui_state_t current_ui_state;
uint8_t battery_level;
uint8_t bt_status;
uint8_t power_mode;
uint32_t system_tick;
} system_status_t;

关键约定:

• 每个驱动提供 Xxx_inst() 统一构造入口;BSP 层通过配置注入 I2C/SPI/UART 适配函数指针。

• Service 层持有 Driver Instance,面向 App 暴露“稳定、可测试”的业务接口。

• App 不直接触达底层外设,避免并发访问与耦合扩散。

4 运行时设计(任务/事件/并发)

4.1 任务划分与优先级建议

任务职责依赖优先级触发/周期
UI_TaskLVGL 刷新/触控处理/页面路由DisplaySvc, TouchDrv高20ms 周期刷新 / 事件触发
Sensor_Task传感器采样、滤波、异常检测、事件发布SensorSvc, SensorDrv中高10~100ms(按传感器配置)
BleBridge_Task与 nRF 串口通信、协议解析、重传/应答BleBridgeSvc, UART中事件驱动 + 超时定时器
Storage_Task日志/数据落盘、磨损均衡、导出StorageSvc, W25Qxx中批量落盘(4KB 或 200ms)
Power_Task功耗状态机、唤醒源管理、电量估算PowerSvc, PMIC/ADC/RTC中1s 心跳 + 事件触发
Diag_Task健康监测、看门狗喂狗、错误上报LogSvc, WDT低1s 心跳

说明:UI 与 Sensor 常为实时关键路径;Storage 采用批量策略避免擦写抖动影响实时性;BleBridge 以协议状态机保证可靠。

4.2 事件总线(发布‑订阅)

为降低 App 与 Service 的耦合,系统引入“事件总线(Event Bus)”:SensorSvc/PowerSvc/BleBridgeSvc 发布事件;App/UI 订阅处理。事件数据通过队列传递,支持去抖/合并与优先级。

// 事件定义(示例)
typedef enum {
EVT_HEART_RATE_UPDATE,
EVT_SPO2_UPDATE,
EVT_MOTION_FALL_DETECTED,
EVT_BLE_CONNECTED,
EVT_BLE_GPS_UPDATE,
EVT_BATTERY_LOW,
EVT_ALARM_TRIGGERED,
} app_event_id_t;

typedef struct {
app_event_id_t id;
uint32_t ts_ms;
union {
struct { uint16_t bpm; } hr;
struct { uint8_t spo2; } spo2;
struct { float lat, lon; uint32_t fix_ts; } gps;
struct { uint8_t level; } batt;
} u;
} app_event_t;

事件队列丢弃策略:安全相关(跌倒/求救/低电)优先保留;非关键更新(步数/环境温湿度)可覆盖。

4.3 资源并发与互斥策略

资源冲突来源策略理由
I2C 总线多传感器 + 触控控制器总线互斥(mutex)+ 统一 I2C Service 排队避免并发访问导致 NACK/死锁
SPI LCD/FlashUI 刷新与 Flash 访问并发SPI 总线仲裁;LCD DMA 优先保证 UI 帧率与体验
外部 Flash日志/数据/配置同时读写RAM 缓冲聚合写;后台磨损均衡降低擦写抖动,提升寿命
UART(nRF)上报与命令交织协议层序列化;帧队列 + ACK 重传保证可靠传输与可追踪

5 模块详细设计

5.1 DisplaySvc(显示服务)

职责:统一管理 LVGL、屏幕刷新策略、背光、界面路由与弹窗。对上提供 UI API;对下依赖 ST7789 Driver 与 Touch Driver。

子模块职责关键接口
LVGL Porttick、flush、input driver 适配lv_port_disp_init(), lv_port_indev_init()
Screen DriverSPI/DMA 刷屏,区域更新st7789_init(), st7789_flush(area, color_p)
BacklightPWM/IO 控制,亮度曲线bl_set_level(level), bl_sleep()
UI Router页面栈与事件分发ui_push(page), ui_on_event(evt)

刷新策略:默认 20ms tick;在静止/灭屏时降频或停止刷新,结合 PowerSvc 进入低功耗。

5.2 SensorSvc(传感器服务)

职责:抽象多个传感器的采集、校准、滤波、异常检测与数据发布。通过配置表决定采样周期与启停。

传感器接口数据输出备注
PPG/心率/血氧I2C/SPI(按具体器件)bpm, spo2, signal_quality含佩戴检测与抗干扰
三轴加速度 MPU6050I2C + INTacc/gyro, step, fall中断触发 + 滑窗
温湿度I2Ctemp, hum低频采集
光照/电量ADClux, vbat用于背光/续航估算

关键算法位点:滤波(中值/滑动平均/简单卡尔曼)、跌倒(阈值+姿态变化+再确认计时器)、佩戴检测(信号质量组合判定)。

5.3 BleBridgeSvc(BLE 桥接服务,UART⇄nRF)

职责:定义 STM32 与 nRF 的消息协议、会话状态机、命令/上报队列、超时与重传。

帧格式(建议):
| SOF(0xA5) | VER | TYPE | LEN | PAYLOAD … | CRC16 |
TYPE:
0x01 上报:生命体征/告警/日志摘要
0x02 命令:时间同步/参数下发/屏幕控制
0x03 响应:ACK/NACK/错误码
超时重传:T=200ms,最多 3 次;连续失败进入 Link-Degraded 状态并上报。

5.4 StorageSvc(存储服务)

职责:管理外部 Flash 分区、文件/记录格式、磨损均衡、数据导出与崩溃恢复。

分区用途建议大小写入特性
CFG配置参数/校准数据64KB低频写,带版本与 CRC
LOG运行日志/错误码512KB~2MB追加写 + 周期压缩
DATA生命体征与事件记录2MB~8MB循环缓冲(ring)
OTA升级镜像缓存按镜像大小块写入 + 校验

写入策略:4KB 聚合写/或 200ms 触发写入;掉电保护采用“双页提交(A/B header)+ CRC”。

5.5 PowerSvc(功耗与电源服务)

职责:管理功耗状态机(Active/Idle/ScreenOff/Stop)、唤醒源(RTC/按键/传感器中断/串口)、电量估算与低电策略。

状态进入条件退出/唤醒关键动作
Active有交互/告警/同步—全速运行,UI 20ms
Idle无交互,低频采集触控/事件降低 UI 刷新,传感器降占空
ScreenOff灭屏按键/抬腕/告警关闭背光,停止 LVGL 刷新
Stop(Tickless)长时间静止且无关键任务RTC/按键/中断进入 Stop,外设按需下电

5.6 LogSvc(日志与诊断服务)

职责:统一日志 API(等级/模块/时间戳),支持串口输出、Flash 落盘、异常回溯(HardFault/Assert)、以及对外导出。

5.7 OtaSvc(升级与安全)

职责:升级镜像接收/校验/切换;与 nRF/手机协作完成传输;支持断点续传与完整性验证。升级包建议:完整性校验(CRC32/Hash)+ 可选 AES 加密 + 版本回滚保护。

6 接口设计

6.1 外部接口(对硬件/对协处理器)

接口对象物理接口协议/驱动关键约束
LCD ST7789SPI + GPIOST7789 Driver刷新带宽/帧率;DMA 优先
触控I2C + INTTouch Driver中断去抖;与传感器共享 I2C
外部 Flash W25QxxSPIW25Qxx Driver擦写耗时;磨损均衡
传感器簇I2C/ADC/INTSensor Drivers采样周期/中断优先级
nRF52840UARTBleBridge ProtocolACK/重传;帧校验;流控
PMIC/电池ADC/GPIOPowerSvc低电/充电状态变化

6.2 内部接口(Service⇄App)

// SensorSvc
int sensor_get_latest(sensor_id_t id, sensor_sample_t* out);
int sensor_set_rate(sensor_id_t id, uint16_t hz);
int sensor_subscribe(app_event_id_t evt, event_cb_t cb);

// StorageSvc
int storage_append(record_type_t type, const void* buf, uint16_t len);
int storage_export(export_sink_t sink, export_filter_t* filter);

// PowerSvc
power_state_t power_get_state(void);
int power_request_state(power_state_t target, uint32_t timeout_ms);

7 数据设计(数据模型/格式/一致性)

生命体征与事件采用“定长头 + 可变 payload”的二进制记录,包含:类型、长度、时间戳、序列号、CRC。无网络时以本地 RTC 为准;连上手机后进行时间校正并记录校正偏差。配置采用版本化结构体(magic/version/size/CRC)。

8 可靠性与异常处理

看门狗由 Diag_Task 喂狗;喂狗条件包含关键任务心跳、队列堵塞检测、Flash 擦写超时检测。异常触发软复位并写入崩溃上下文(原因码 + PC/LR + 栈回溯摘要)。错误码分层:模块域 + 子域 + 具体码,可导出/上报。

9 性能与资源预算(示例)

路径/资源预算建议说明
UI 刷新周期≤ 20ms交互体验与功耗平衡
UART 单帧处理≤ 5ms避免阻塞 RTOS 调度
关键告警检测延迟≤ 200ms跌倒/求救等安全路径
Flash 写入后台/分片不可阻塞 UI/Sensor
任务栈UI≥4KB, Sensor≥3KB, Storage≥3KB以 watermark 统计校准

10 可验证性设计(Verification‑Ready)

Service 层接口可 Mock 以做单元测试;HIL 覆盖:传感器波形回放、串口协议 Fuzz、Flash 擦写压力与掉电恢复、低功耗唤醒(RTC/按键/中断)测试。验收用例需与 SRS/SSRD 逐条映射。

11 需求‑设计追踪(Traceability)

每条 SRS/SSRD 需求至少对应一个设计落点(模块/接口/任务/数据结构/参数)并能落到验证项。

需求ID需求标题设计落点验证建议
SRS-FR-UI-001基础表盘DisplaySvc / UI_Task / TouchDrv / ST7789DrvUI 用例 + 帧率/响应测试
SRS-FR-UI-002多页面导航SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-UI-003触控事件DisplaySvc / UI_Task / TouchDrv / ST7789DrvUI 用例 + 帧率/响应测试
SRS-FR-UI-004亮度控制DisplaySvc / UI_Task / TouchDrv / ST7789DrvUI 用例 + 帧率/响应测试
SRS-FR-UI-005告警弹窗SensorSvc + Rule Engine + DisplaySvc Popup + BleBridge Report场景复现/阈值回归 + 误报率统计
SRS-FR-SEN-001温度采集SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-SEN-002心率采集SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-SEN-003运动/跌倒输入SensorSvc + Rule Engine + DisplaySvc Popup + BleBridge Report场景复现/阈值回归 + 误报率统计
SRS-FR-SEN-004阈值告警SensorSvc + Rule Engine + DisplaySvc Popup + BleBridge Report场景复现/阈值回归 + 误报率统计
SRS-FR-SEN-005传感器自检SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-DATA-001本地日志StorageSvc / LogSvc / W25QxxDrv压力测试 + 掉电恢复测试
SRS-FR-DATA-002业务数据存储StorageSvc / LogSvc / W25QxxDrv压力测试 + 掉电恢复测试
SRS-FR-DATA-003数据导出StorageSvc / LogSvc / W25QxxDrv压力测试 + 掉电恢复测试
SRS-FR-DATA-004断电保护SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-COM-001主控↔BLE协议BleBridgeSvc / UART Protocol / BleBridge_Task协议互通 + 丢包/重传测试
SRS-FR-COM-002定位同步BleBridgeSvc / UART Protocol / BleBridge_Task协议互通 + 丢包/重传测试
SRS-FR-COM-003时间同步BleBridgeSvc / UART Protocol / BleBridge_Task协议互通 + 丢包/重传测试
SRS-FR-COM-004离线工作SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-OTA-001升级触发SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-OTA-002完整性校验SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-01生命体征采集SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-02运动/姿态采集SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-03数据预处理SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-04本地阈值告警SensorSvc + Rule Engine + DisplaySvc Popup + BleBridge Report场景复现/阈值回归 + 误报率统计
SSRD-F-05一键求救SensorSvc + Rule Engine + DisplaySvc Popup + BleBridge Report场景复现/阈值回归 + 误报率统计
SSRD-F-06离线运行SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-07实时显示DisplaySvc / UI_Task / TouchDrv / ST7789DrvUI 用例 + 帧率/响应测试
SSRD-F-08交互与设置SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-09数据存储StorageSvc / LogSvc / W25QxxDrv压力测试 + 掉电恢复测试
SSRD-F-10日志与诊断StorageSvc / LogSvc / W25QxxDrv压力测试 + 掉电恢复测试
SSRD-F-11BLE连接与配对BleBridgeSvc / UART Protocol / BleBridge_Task协议互通 + 丢包/重传测试
SSRD-F-12数据同步BleBridgeSvc / UART Protocol / BleBridge_Task协议互通 + 丢包/重传测试
SSRD-F-13定位获取BleBridgeSvc / UART Protocol / BleBridge_Task协议互通 + 丢包/重传测试
SSRD-F-14远程上报协同SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-15OTA升级SensorSvc / App Logic功能用例 + 边界测试

注:完整追踪矩阵见附录 A。

附录 A:完整需求‑设计追踪矩阵(SRS + SSRD)

需求ID需求标题设计落点验证建议
SRS-FR-UI-001基础表盘DisplaySvc / UI_Task / TouchDrv / ST7789DrvUI 用例 + 帧率/响应测试
SRS-FR-UI-002多页面导航SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-UI-003触控事件DisplaySvc / UI_Task / TouchDrv / ST7789DrvUI 用例 + 帧率/响应测试
SRS-FR-UI-004亮度控制DisplaySvc / UI_Task / TouchDrv / ST7789DrvUI 用例 + 帧率/响应测试
SRS-FR-UI-005告警弹窗SensorSvc + Rule Engine + DisplaySvc Popup + BleBridge Report场景复现/阈值回归 + 误报率统计
SRS-FR-SEN-001温度采集SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-SEN-002心率采集SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-SEN-003运动/跌倒输入SensorSvc + Rule Engine + DisplaySvc Popup + BleBridge Report场景复现/阈值回归 + 误报率统计
SRS-FR-SEN-004阈值告警SensorSvc + Rule Engine + DisplaySvc Popup + BleBridge Report场景复现/阈值回归 + 误报率统计
SRS-FR-SEN-005传感器自检SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-DATA-001本地日志StorageSvc / LogSvc / W25QxxDrv压力测试 + 掉电恢复测试
SRS-FR-DATA-002业务数据存储StorageSvc / LogSvc / W25QxxDrv压力测试 + 掉电恢复测试
SRS-FR-DATA-003数据导出StorageSvc / LogSvc / W25QxxDrv压力测试 + 掉电恢复测试
SRS-FR-DATA-004断电保护SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-COM-001主控↔BLE协议BleBridgeSvc / UART Protocol / BleBridge_Task协议互通 + 丢包/重传测试
SRS-FR-COM-002定位同步BleBridgeSvc / UART Protocol / BleBridge_Task协议互通 + 丢包/重传测试
SRS-FR-COM-003时间同步BleBridgeSvc / UART Protocol / BleBridge_Task协议互通 + 丢包/重传测试
SRS-FR-COM-004离线工作SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-OTA-001升级触发SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-OTA-002完整性校验SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-OTA-003安全升级SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-OTA-004失败回滚SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-PWR-001工作模式SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-PWR-002电量采样SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-PWR-003低电告警PowerSvc / Tickless / ADC Battery Estimation功耗曲线/唤醒测试 + 低电策略用例
SRS-FR-SEC-001权限与配对SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-DIAG-001故障码体系SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-DIAG-002看门狗策略SensorSvc / App Logic功能用例 + 边界测试
SRS-NFR-PERF-001响应SensorSvc / App Logic功能用例 + 边界测试
SRS-NFR-PERF-002采样吞吐SensorSvc / App Logic功能用例 + 边界测试
SRS-NFR-PWR-001续航PowerSvc / Tickless / ADC Battery Estimation功耗曲线/唤醒测试 + 低电策略用例
SRS-NFR-REL-001稳定性SensorSvc / App Logic功能用例 + 边界测试
SRS-NFR-REL-002掉电恢复SensorSvc / App Logic功能用例 + 边界测试
SRS-NFR-SEC-001升级安全SensorSvc / App Logic功能用例 + 边界测试
SRS-NFR-MAINT-001可维护SensorSvc / App Logic功能用例 + 边界测试
SRS-NFR-PORT-001可移植SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-OTA-001~004SRS-FR-OTA-001~004SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-UI-005,SRS-FR-UI-005, SRS-FR-SEN-004SensorSvc / App Logic功能用例 + 边界测试
SRS-FR-COM-001~004SRS-FR-COM-001~004SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-01生命体征采集SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-02运动/姿态采集SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-03数据预处理SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-04本地阈值告警SensorSvc + Rule Engine + DisplaySvc Popup + BleBridge Report场景复现/阈值回归 + 误报率统计
SSRD-F-05一键求救SensorSvc + Rule Engine + DisplaySvc Popup + BleBridge Report场景复现/阈值回归 + 误报率统计
SSRD-F-06离线运行SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-07实时显示DisplaySvc / UI_Task / TouchDrv / ST7789DrvUI 用例 + 帧率/响应测试
SSRD-F-08交互与设置SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-09数据存储StorageSvc / LogSvc / W25QxxDrv压力测试 + 掉电恢复测试
SSRD-F-10日志与诊断StorageSvc / LogSvc / W25QxxDrv压力测试 + 掉电恢复测试
SSRD-F-11BLE连接与配对BleBridgeSvc / UART Protocol / BleBridge_Task协议互通 + 丢包/重传测试
SSRD-F-12数据同步BleBridgeSvc / UART Protocol / BleBridge_Task协议互通 + 丢包/重传测试
SSRD-F-13定位获取BleBridgeSvc / UART Protocol / BleBridge_Task协议互通 + 丢包/重传测试
SSRD-F-14远程上报协同SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-15OTA升级SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-16安全机制SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-17低功耗管理PowerSvc / Tickless / ADC Battery Estimation功耗曲线/唤醒测试 + 低电策略用例
SSRD-F-18异常恢复SensorSvc / App Logic功能用例 + 边界测试
SSRD-D-01数据模型SensorSvc / App Logic功能用例 + 边界测试
SSRD-D-02时间戳SensorSvc / App Logic功能用例 + 边界测试
SSRD-D-03数据保留策略SensorSvc / App Logic功能用例 + 边界测试
SSRD-I-01MCU间通信协议SensorSvc / App Logic功能用例 + 边界测试
SSRD-I-02BLE GATT接口BleBridgeSvc / UART Protocol / BleBridge_Task协议互通 + 丢包/重传测试
SSRD-I-03手机APP接口约束SensorSvc / App Logic功能用例 + 边界测试
SSRD-I-04存储接口抽象StorageSvc / LogSvc / W25QxxDrv压力测试 + 掉电恢复测试
SSRD-I-05传感器驱动抽象SensorSvc / App Logic功能用例 + 边界测试
SSRD-NF-P-01采集与告警延迟SensorSvc + Rule Engine + DisplaySvc Popup + BleBridge Report场景复现/阈值回归 + 误报率统计
SSRD-NF-P-02启动时间SensorSvc / App Logic功能用例 + 边界测试
SSRD-NF-P-03续航目标PowerSvc / Tickless / ADC Battery Estimation功耗曲线/唤醒测试 + 低电策略用例
SSRD-NF-R-01稳定性SensorSvc / App Logic功能用例 + 边界测试
SSRD-NF-R-02数据完整性SensorSvc / App Logic功能用例 + 边界测试
SSRD-NF-S-01通信安全SensorSvc / App Logic功能用例 + 边界测试
SSRD-NF-M-01可维护性SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-01,离线采集生命体征SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-04,异常触发告警SensorSvc + Rule Engine + DisplaySvc Popup + BleBridge Report场景复现/阈值回归 + 误报率统计
SSRD-F-06,数据同步与补发BleBridgeSvc / UART Protocol / BleBridge_Task协议互通 + 丢包/重传测试
SSRD-F-17,低功耗与续航PowerSvc / Tickless / ADC Battery Estimation功耗曲线/唤醒测试 + 低电策略用例
SSRD-F-18,可靠性与恢复SensorSvc / App Logic功能用例 + 边界测试
SSRD-F-15,安全与升级完整性SensorSvc / App Logic功能用例 + 边界测试

附录 B:STM32 ⇄ nRF 串口协议要点(摘要)

本附录给出协议最小可用定义,用于联调与测试。最终以 Stage4 SID 为准。

字段字节说明
SOF1固定 0xA5
VER1协议版本
TYPE1消息类型
LEN2payload 长度(小端)
PAYLOADN业务数据
CRC162CRC16-CCITT

建议消息:HR/SPO2/STEP/FALL/ALARM/GPS/TIME_SYNC/CFG_PUSH/LOG_PULL/OTA_CHUNK 等。

附录 C:关键图示

图 C‑1 连接/模块示意(工程资料)