系统架构文档(SAD)

← 开发流程规范 | ← 主页

来源:Stage4 01 系统架构文档 System Architecture Document(SAD)


字段内容
项目/产品受限网络工况下的生命体征监控智能手表(内部代号:EC‑Watch)
架构范围系统级架构(含腕端设备、手机 App 交互、可选后台;重点在腕端)
硬件平台STM32F411CEU6 + nRF52840(BLE 5.x / Mesh)
软件平台STM32:FreeRTOS(可 Tickless)/ 裸机可裁剪;nRF:Nordic SDK(SoftDevice/Zephyr 视实现)
版本V1.0(重构版)
发布日期2025-12-28
编写课程文档组
审核架构评审组
保密等级内部资料

文档变更记录

版本修订日期修订内容修订人审核人
V1.02025-12-28按大厂 SAD 规范重构:补齐架构驱动、视图、接口、机制与可追溯性课程文档组架构评审组

参考资料

  • Stage1-01 干系人需求文档(Stakeholder Needs Document)
  • Stage1-02 用户需求文档(User Needs Document)
  • Stage2-03 业务需求文档(BRD)
  • Stage3-01 系统需求文档(SyRS / SRSys)
  • Stage4-03 架构决策记录(ADR,单独文档维护)
  • 硬件原理图/接口定义(SchDoc / PinMap)

1. 文档目的与适用范围

  • 给研发、测试、产品与项目管理提供一致的系统级架构蓝图,用于评审、分工、实施与验证。
  • 明确:系统边界、关键模块、接口、数据流、部署与非功能策略(低功耗/可靠性/安全/可维护)。
  • 本 SAD 聚焦 Stage4(System Architecture / Allocation)产物:描述“做成什么架构”,不替代详细设计(SDD)。

2. 术语与缩写

缩写英文中文
SNStakeholder Needs干系人需求
UN/UNDUser Needs (Document)用户需求(文档)
BR/BRDBusiness Requirements (Document)业务需求(文档)
SyRS/SRSysSystem Requirements Specification系统需求规格说明(系统级)
SADSystem Architecture Document系统架构文档
RAMRequirement Allocation Matrix需求分配矩阵
ADRArchitecture Decision Record架构决策记录
SIDSystem Interface Definition系统接口定义
SSRDSoftware System Requirements Definition软件系统需求定义(软件侧 HLR)
SRSSoftware Requirements Specification软件需求规格说明(软件侧详细需求)

3. 背景与问题定义

3.1 场景概述

  • 目标用户:矿井、钢厂、码头、海上作业平台等高风险一线人员;网络信号弱/不稳定,且现场管理需要实时与可追溯。
  • 核心诉求:生命体征持续采集与异常告警;离线可用;可在本地组网/通过手机作为网关进行数据汇聚与上报。
  • 约束变化:NFC 已移除;定位能力通过 BLE 与手机侧融合(手机提供位置源)。

3.2 系统边界

  • 系统内:腕端设备(传感/显示/告警/存储/无线)、手机 App(配对绑定/数据同步/定位/转发)、可选后台平台(统计/告警推送/设备管理)。
  • 系统外:企业现场管理制度、人员调度流程、第三方网络/蜂窝覆盖、手机系统能力(定位/通知权限)。

图 3‑1 系统上下文(离线优先 + 手机网关 + 可选后台)

4. 架构驱动因素(Architecture Drivers)

4.1 架构目标(从业务到工程约束)

  • 离线优先:在断网/断连情况下仍能完成采集、判定、告警与本地留痕;恢复连接后再补传。
  • 可扩展:传感器/业务能力可按产品线裁剪与组合;支持后续型号迭代(平台化)。
  • 低功耗:以“可解释的功耗预算”为设计目标,支持多档运行模式与测量策略。
  • 可靠与可验证:关键告警链路可测、可回放;日志可追踪;支持量产测试与现场排障。
  • 安全:腕端与手机绑定/鉴权;升级链路与存储数据具备基本的完整性保护。

4.2 关键约束(Constraints)

  • 硬件:主控 STM32F411(资源有限,外设复用复杂);无线采用 nRF52840 作为 BLE 协处理/子系统。
  • 通信:受限网络工况;优先 BLE(含 Mesh)本地通信;后台连接属于“可选增强”。
  • 定位:腕端不做独立 GPS,依赖手机定位;腕端只维护“与手机的关联与同步”。
  • 交付:需要可教学、可面试表达的工程链路(需求→架构→实现→验证→版本基线)。

4.3 架构级关键需求(ASR,摘自 SyRS)

SyRS ID需求摘要(架构相关)优先级验证方式
SR-C-001系统面向“受限/无公网网络覆盖”的作业现场(如矿井、山区、海上平台等),核心通信链路以 BLE(手机网关/本地组网)为主;系统不依赖腕端蜂窝通信能力。P0评审/检查
SR-C-002系统不包含 NFC 功能;与身份绑定/入场校验相关能力通过二维码/APP账号与后台权限体系实现。P0评审/检查
SR-C-003系统定位信息由手机端获取(GPS/北斗等由手机OS提供),腕端通过 BLE 接收定位并展示/上报;腕端不内置 GNSS 模块。P0评审/检查
SR-C-004系统应支持腕端离线独立工作:在与手机/网关断连时仍可完成生命体征采集、告警与本地记录。P0测试/演示
SR-IF-001腕端应通过 BLE 与手机 App 建立连接,并支持:绑定/鉴权、数据同步、参数下发、固件升级(OTA)等交互。P0测试
SR-IF-002腕端应支持 BLE Mesh(或等效本地组网机制)进行本地告警广播/中继,在无公网时实现人员间的告警联动。P0测试
SR-F-003系统应提供“一键紧急求助”入口(实体按键或长按触控),触发后在 1s 内进入告警态并开始本地广播与记录。P0测试
SR-F-010系统应支持心率采集与展示:采样周期 ≤1s(TBD),并支持异常心率阈值告警。P0测试
SR-F-015系统应支持多通道告警:振动(必选)+ 屏幕弹窗(必选)+ 蜂鸣/提示音(可选),并支持不同等级告警不同提示策略。P0测试/演示
SR-F-016系统应支持告警确认(Acknowledge)与解除(Clear)流程:告警产生后需记录确认人/确认时间(通过App或腕端操作)。P0测试
SR-F-018系统在与手机/网关断连时,应持续采集并本地存储关键数据与告警事件;恢复连接后应自动补传,保证数据不丢失。P0测试
SR-F-020系统应在紧急告警触发后 2s 内通过本地组网广播“告警事件”(包含设备ID、人员ID、告警类型、时间戳等)。P0测试

5. 架构总览(Overview)

5.1 总体架构策略

  • 双 MCU 分工:STM32 负责采集/算法/界面/存储/电源管理;nRF 负责 BLE 协议栈(可含 Mesh)与对外无线交互。
  • 离线优先的数据管线:传感器数据 → 本地算法/阈值判定 → 事件化(Event) → 本地存储 → 连接恢复后增量同步。
  • 告警优先的链路:告警(震动/蜂鸣/屏显)必须在腕端闭环;无线用于扩大告警覆盖与通知管理端。

5.2 关键模块分解

模块职责
腕端-采集子系统多传感器采集、校准、采样调度、健康数据预处理
腕端-告警子系统阈值/状态机、声光震动、Mesh 广播、SOS 快捷触发
腕端-交互子系统LCD/触控、UI 状态机、关键参数展示
腕端-存储与日志健康数据、事件、操作日志、故障日志;导出与回放
腕端-电源管理模式管理、外设电源门控、低功耗进入/唤醒、续航估算
无线通信子系统STM32↔nRF 协议;nRF↔手机 GATT;可选 Mesh 中继
手机 App 网关绑定/权限、位置源、数据同步、上传/推送(可选)

6. 架构视图(Views)

6.1 功能视图(Functional View)

  • 生命体征:心率/体温/(可选血氧)采集、滤波、趋势与异常检测。
  • 安全告警:异常阈值告警、SOS 一键求助、电子围栏(手机侧定位)、Mesh 广播/中继。
  • 数据管理:本地存储、滚动覆盖策略、导出/同步、审计留痕。
  • 设备管理:绑定/解绑、参数配置、固件升级、产测与自检。

6.2 逻辑视图(Logical View)

腕端软件逻辑分层(STM32)

层级内容
Bootloader启动校验/回滚策略、升级入口、基础安全策略
OS/KernelFreeRTOS 调度、时间基准、同步原语、Tickless/低功耗适配
BSP/DriversGPIO/I2C/SPI/UART/DMA/ADC/RTC、LCD/TP、传感器驱动、Flash/EEPROM
Services采样调度、数据管线、告警引擎、存储管理、设备管理、日志系统
Application场景策略(矿井/钢厂等参数集)、UI 业务、联动策略、演示/教学脚本

无线子系统(nRF52840)逻辑分层

  • BLE 协议栈:GAP/GATT、连接参数、绑定/加密、DFU(若采用 Nordic DFU)。
  • 可选 Mesh:告警广播/中继,降低手机直连依赖(场景可配)。
  • Host Interface:与 STM32 的 UART/(可选 SPI)命令与数据通道(版本化协议)。

6.3 进程/任务视图(Process View)

STM32 侧建议任务划分(可随裁剪合并)

任务职责优先级建议
SensorTask采样调度、I2C/SPI 读数、时间戳高
AlgoTask滤波/阈值/趋势、事件生成中
AlarmTask告警状态机、声光震动控制、Mesh 告警触发高
UiTaskLVGL 刷新、交互事件处理中
StorageTaskFlash 写入、磨损均衡(若有)、导出低
BleHostTask与 nRF 协议、缓存与重传、同步窗口管理中
PowerMgrTask模式切换、外设门控、Tickless/Stop 管理高
LogTask运行日志聚合、故障码、上传/导出低

6.4 数据视图(Data View)

  • 原始采样:传感器原始值(带时间戳、采样率、校准信息)。
  • 健康记录:按分钟/按事件聚合的记录(心率、体温、可选血氧、活动量)。
  • 事件(Event):告警、SOS、电子围栏触发、连接变化、低电量等。
  • 日志:运行日志(Info)、故障日志(Warn/Error)、升级与配置变更审计。

存储建议(示例)

分区结构容量/策略
健康数据分区环形缓冲/按天文件≥7 天(可配置)
事件分区索引 + 事件体≥1000 条(可配置)
日志分区分级日志 + 崩溃转储≥256KB(可配置)
配置分区版本化 KV(含校准/阈值/绑定信息)双备份/CRC

6.5 部署视图(Deployment View)

硬件连接与职责映射(来自原理图/接口设计)

图 6‑1 关键外设连接(示意)

图 6‑2 双 MCU 系统架构与数据通路(示意)

7. 系统接口(Interfaces)

7.1 外部接口(对手机/平台)

  • BLE GATT:健康数据服务、告警服务、设备信息服务、电池服务、配置服务、DFU/OTA 服务(按方案选型)。
  • 手机定位接口:App 获取手机位置(GPS/Wi‑Fi/基站)并以“位置快照”同步给腕端,用于事件关联与电子围栏判定。
  • 后台接口(可选):App 作为网关调用 HTTPS/MQTT 上传;断网缓存与补传策略由 App 负责。

7.2 内部接口(STM32 ↔ nRF)

接口形态:UART(推荐)+ GPIO 唤醒/握手;必要时可升级为 SPI 以提升吞吐。

类别内容建议机制
控制类配置下发/状态查询/连接控制/功耗模式TLV 命令,带序号与 ACK
数据类健康数据块/事件/日志摘要分片 + CRC + 窗口重传
升级类进入 DFU、镜像分片传输、结果回执升级期间独占链路

7.3 硬件接口与产测接口

  • 充电与电源:3.7V 电池 + PMIC;电量采样(ADC)用于续航估计与低电量策略。
  • 调试:SWD(量产可锁/需授权);串口日志(开发态);产测模式下开放测试指令。
  • 可选外设:蜂鸣器/马达/按键/触控/光照等按 SKU 裁剪。

8. 关键机制设计(Cross‑cutting Mechanisms)

8.1 离线优先与补传同步

  1. 腕端以事件驱动写入:采集→聚合→事件化→落盘;连接状态变化不影响落盘。
  2. 与手机连接窗口打开时,按“事件优先、健康数据其次”的顺序增量同步。
  3. 补传采用‘游标/水位’机制,避免重复与丢失;同步过程可中断可续传。

8.2 告警链路闭环

  • 告警判定在腕端完成(不依赖手机/云),并立即触发声光震动。
  • 告警事件同时走两条链路:①本地 Mesh 广播(扩大覆盖);②与手机连接时上报 App。
  • 告警事件包含:类型、级别、时间戳、(可选)位置快照、最近 N 秒关键指标摘要。

8.3 升级与回滚

  • 升级入口:App→BLE→nRF→STM32(或 nRF 独立 DFU);升级镜像需版本校验与完整性校验。
  • 建议双分区或 A/B 镜像策略;最小化掉电风险:分片校验 + 断点续传 + 最终切换原子化。
  • 升级过程全链路记录审计日志:版本、时间、结果、失败原因。

8.4 安全与权限(基础版)

  • 绑定:设备出厂默认未绑定;首次绑定需要物理接触确认(按键长按)+ App 认证流程。
  • 通信:BLE 配对加密;内部 UART 协议带 CRC 与序号;关键命令需二次确认。
  • 数据:本地数据至少做完整性保护(CRC/签名可选);敏感数据(绑定信息/密钥)分区隔离。

9. 质量属性与度量(Quality Attributes)

属性策略度量/验收
低功耗多档模式:正常/巡检/休眠;Tickless + 外设门控;采样率随模式调整续航(小时/天)、平均电流、唤醒时延
可靠性看门狗+心跳;关键链路重试;日志可回放;异常自恢复MTBF、告警成功率、重连时间
可维护分层架构+BSP 抽象;统一日志/错误码;模块化测试用例缺陷定位时间、复用比例
可扩展传感器/服务可插拔;SKU 配置表驱动;nRF/STM32 协议版本化新增功能改动面、兼容性

10. 需求到架构的可追溯性(Traceability)

SyRS ID需求摘要主要落点模块(一级)
SR-C-001系统面向“受限/无公网网络覆盖”的作业现场(如矿井、山区、海上平台等),核心通信链路以 BLE(手机网关/本地组网)为主;系统不依赖腕端蜂窝通信能力。无线通信子系统(nRF + 协议)
SR-C-002系统不包含 NFC 功能;与身份绑定/入场校验相关能力通过二维码/APP账号与后台权限体系实现。无线通信子系统(nRF + 协议)
SR-C-003系统定位信息由手机端获取(GPS/北斗等由手机OS提供),腕端通过 BLE 接收定位并展示/上报;腕端不内置 GNSS 模块。无线通信子系统(nRF + 协议)
SR-C-004系统应支持腕端离线独立工作:在与手机/网关断连时仍可完成生命体征采集、告警与本地记录。告警子系统
SR-IF-001腕端应通过 BLE 与手机 App 建立连接,并支持:绑定/鉴权、数据同步、参数下发、固件升级(OTA)等交互。无线通信子系统(nRF + 协议)
SR-IF-002腕端应支持 BLE Mesh(或等效本地组网机制)进行本地告警广播/中继,在无公网时实现人员间的告警联动。无线通信子系统(nRF + 协议)
SR-F-003系统应提供“一键紧急求助”入口(实体按键或长按触控),触发后在 1s 内进入告警态并开始本地广播与记录。告警子系统
SR-F-010系统应支持心率采集与展示:采样周期 ≤1s(TBD),并支持异常心率阈值告警。告警子系统
SR-F-015系统应支持多通道告警:振动(必选)+ 屏幕弹窗(必选)+ 蜂鸣/提示音(可选),并支持不同等级告警不同提示策略。告警子系统
SR-F-016系统应支持告警确认(Acknowledge)与解除(Clear)流程:告警产生后需记录确认人/确认时间(通过App或腕端操作)。告警子系统
SR-F-018系统在与手机/网关断连时,应持续采集并本地存储关键数据与告警事件;恢复连接后应自动补传,保证数据不丢失。无线通信子系统(nRF + 协议)
SR-F-020系统应在紧急告警触发后 2s 内通过本地组网广播“告警事件”(包含设备ID、人员ID、告警类型、时间戳等)。告警子系统

注:完整的逐条分配矩阵见 Stage4-02《RAM》;本表仅列架构级关键需求。

附录 A. 评审清单(SAD Review Checklist)

  • 系统边界是否清晰?外部依赖是否列明?
  • 架构驱动(约束/ASR)是否覆盖 Stage3 SyRS 的关键条目?
  • 是否给出了至少 3 个视图:逻辑/进程/部署?接口与数据是否可实现可测试?
  • 关键机制(离线、告警、升级、安全、低功耗)是否有闭环策略与验证点?
  • 是否能指导 Stage5 SSRD/SRS 的需求分解与 Stage7 验证计划?