3. 需求工程导论

硬件产品开发与纯软件产品开发有一个本质区别:硬件一旦投板(PCB Layout 冻结、模具开模、光罩流片),修改成本呈指数级上升。一块四层板的改版费用可能数千元,而一颗 ASIC 的流片费用动辄数百万元。因此,硬件开发中需求工程的核心价值,就是在“修改成本还很低”的需求阶段,把“做什么、做到什么程度、如何验证”定义清楚。本章围绕需求的定义、层次划分、关键属性(可验证性、可追溯性)以及需求工程过程展开,帮助学员建立一套从用户声音到硬件可测试规格的完整方法论。

硬件需求工程全景图:从用户声音到可验证规格 用户需求(Voice of Customer) “拍出来的照片不能模糊” “电池要能用一整天” 系统需求(System Requirements) “拍照防抖 ≤ 0.3° 角度偏移” “待机功耗 ≤ 2mW @ 25°C” 硬件需求(Hardware Requirements) “IMU 采样率 ≥ 1kHz,量程 ±4g” “DC-DC 效率 ≥ 92% @ 200mA” 细化 分配 需求关键属性 可验证性(Verifiability) 可测量、可测试、可判定通过/失败 可追溯性(Traceability) 双向追踪:用户→系统→硬件→测试 无歧义性(Unambiguity) 唯一解释,不依赖个人经验 需求工程过程(五阶段闭环) ① 需求获取 访谈/问卷/竞品 ② 需求分析 分类/冲突消解/优先级 ③ 需求规格化 编写SRS/硬件需求文档 ④ 需求验证 评审/原型/仿真确认 ⑤ 需求管理 变更控制/基线/追踪 变更请求 / 需求回流 / 持续追踪 硬件需求工程的核心:将模糊的用户期望,转化为可测量、可验证、可追溯的工程规格

3.1 需求的定义与本质

3.1.1 核心原理:需求是“问题”与“解决方案”之间的桥梁

在硬件产品开发语境下,需求(Requirement)不是简单的“用户想要什么”的愿望清单,而是经过分析、约束、量化后,能够指导设计与验证的工程陈述。IEEE 610.12 将需求定义为:“用户解决问题或达到目标所需的条件或能力;系统或系统组件为满足合同、标准、规范或其他正式文档所必须满足的条件或能力。”

硬件需求与软件需求有一个显著差异:硬件需求必须绑定物理可实现性。例如,“拍照清晰”是一个用户期望,但硬件工程师需要将其转化为“在 100 lux 照度下,MTF50 ≥ 0.6 lp/mm @ 中心视场”这样的光学与传感器联合指标。这中间涉及光学镜头、图像传感器、ISP 处理链路、机械防抖结构等多个子系统的协同约束。

需求在硬件开发中承担三个核心角色:

  • 契约角色:需求是研发团队、市场团队、供应链、测试团队之间的“合同”,定义了各方交付的验收标准。
  • 决策依据:硬件选型(如 MCU 主频、传感器分辨率、电源拓扑)必须以需求为输入,而非工程师个人偏好。
  • 变更管理锚点:当项目发生变更(如成本削减、交期压缩)时,需求是评估变更影响的基准。

3.1.2 判断方法:如何区分“真需求”与“伪需求”

硬件开发中常见的需求陷阱包括:伪需求(用户口头表达但并非真实痛点)、过度需求(超出目标市场价值的技术指标)、模糊需求(无法量化的描述)。判断一个需求是否“合格”,可以使用以下四个过滤器:

  1. 可观察性:需求是否描述了可观察、可测量的系统行为或属性?例如“系统应快速启动”不可观察,应改为“系统上电到主界面显示时间 ≤ 3 秒”。
  2. 可测试性:是否存在明确的测试方法或测量手段?例如“低功耗”需要明确是待机功耗、运行功耗还是平均功耗,以及测试条件(供电电压、温度、负载)。
  3. 可实现性:在当前技术、成本、时间约束下是否可行?例如消费级产品要求“-40°C 到 +85°C 全温区工作”可能大幅增加 BOM 成本。
  4. 必要性:如果去掉该需求,产品是否仍然满足核心用户价值?若答案是肯定的,该需求可能不是关键路径。
经验提醒:硬件需求分析中,建议使用“需求卡片”工具,每张卡片包含:需求编号、来源(用户/市场/法规/内部)、描述、优先级(Must/Should/Could)、验收标准、关联风险。这比在文档中堆砌文字更利于评审和追溯。

3.2 需求的层次:用户需求 → 系统需求 → 硬件需求

3.2.1 核心原理:三层分解与映射

硬件产品需求通常划分为三个层次,每一层都是对上一层的细化与约束:

层次 定义 典型表达方式 责任角色 示例(以智能门锁为例)
用户需求 用户或市场对产品的期望、痛点、使用场景描述,通常是非技术语言 用户故事、场景描述、市场调研报告 产品经理、市场人员 “用户希望门锁在手指有汗时也能快速识别开锁”
系统需求 对产品整体(含硬件、软件、机械、结构)的功能、性能、接口、环境约束的工程化描述 系统需求规格说明书(SysRS),包含功能需求、性能需求、接口需求、环境需求 系统架构师、系统工程师 “指纹识别模块在手指湿润(相对湿度 80%)条件下,识别成功率 ≥ 98%,识别时间 ≤ 0.5 秒”
硬件需求 从系统需求中分配给硬件子系统的需求,包含电路、芯片、接口、电源、时序、环境适应性等具体指标 硬件需求规格说明书(HWRS),含原理图设计约束、PCB 设计约束、器件选型约束 硬件工程师、硬件架构师 “指纹传感器 FPC 接口采用 8-pin 0.5mm pitch,SPI 时钟频率 ≥ 4MHz;传感器供电 AVDD = 3.3V ± 5%,纹波 ≤ 30mVpp;ESD 等级 ≥ ±8kV(接触放电)”

三层需求之间不是简单的“翻译”关系,而是存在双向可追溯性:从用户需求可以追踪到系统需求,从系统需求可以追踪到硬件需求;反向亦然。当硬件实现遇到困难需要调整指标时,必须评估对系统需求和用户需求的影响。

3.2.2 操作流程:从用户声音到硬件规格的分解步骤

以一个便携式医疗监护仪的心率监测功能为例,展示需求分解的完整流程:

  1. 收集用户需求:通过访谈医生和护士,得到“设备要能准确监测心率,在患者移动时也不能丢失信号”。
  2. 转化为系统需求:系统工程师定义“心率测量范围 30-250 bpm,精度 ±2 bpm 或 ±2%(取较大值);在患者肢体运动幅度 ≤ 5cm 时,信号丢失时间 ≤ 2 秒”。
  3. 分配硬件需求:硬件工程师进一步分解为:
    • 模拟前端:ECG 放大器输入噪声 ≤ 10μVpp,带宽 0.05-150Hz,共模抑制比 ≥ 90dB;
    • 运动传感器:加速度计量程 ±8g,采样率 ≥ 100Hz,用于运动伪影消除;
    • 处理器:MCU 主频 ≥ 64MHz,内置 DSP 指令,ADC 采样率 ≥ 500Hz,12-bit 分辨率;
    • 电源:模拟供电 AVDD = 3.0V,纹波 ≤ 5mVpp,数字与模拟地单点连接。
  4. 验证需求覆盖:检查每个系统需求是否至少有一条硬件需求支撑,每个硬件需求是否能追溯到系统需求。

3.2.3 案例拆解:智能摄像头夜视功能的需求分解

背景与约束:某安防厂商计划开发一款家用智能摄像头,目标成本 BOM ≤ 180 元,夜视距离 ≥ 10 米,支持 1080P 30fps 实时预览。市场反馈用户抱怨“晚上看不清人脸”。

初始现象:早期原型采用 850nm 红外 LED + 普通 CMOS 传感器,实测夜视距离仅 6 米,且画面噪点明显。

关键输入数据:传感器量子效率在 850nm 处仅 18%;红外 LED 辐射功率 800mW;镜头 F 值 1.6;环境照度 0.01 lux。

分析判断过程:

  • 系统需求定义为“在 0.01 lux 照度下,可识别 10 米处人脸轮廓(分辨率 ≥ 8 对线/mm)”;
  • 硬件需求分解为:传感器最低照度 ≤ 0.001 lux(F1.6 条件下),红外 LED 总辐射功率 ≥ 1.2W,或改用 940nm LED 配合高灵敏度传感器;
  • 进一步分析发现:940nm 方案人眼不可见但传感器灵敏度更低,需要选择背照式(BSI)传感器;
  • 成本约束下,最终选择 850nm LED + 定制红外增强滤光片 + 背照式传感器,硬件需求更新为“传感器在 850nm 处 QE ≥ 30%,LED 驱动电流 350mA,脉冲调制频率 25kHz 以避免与摄像头帧率干扰”。

实际操作步骤:

  1. 将系统需求“夜视 10 米识别人脸”拆解为光学、传感器、LED 驱动、图像处理四部分硬件需求;
  2. 建立需求追踪矩阵,标注每项硬件需求的验证方法(积分球测辐射功率、分辨率测试卡实测);
  3. 在 PCB 设计阶段,将 LED 驱动电路与传感器模拟供电分区,避免电源噪声耦合。

结果对比:改进后夜视距离实测 11.5 米,人脸识别率从 62% 提升至 95%。代价是 BOM 增加 22 元,仍在目标范围内。

复盘经验:需求分解时不能只看单一指标,要关注链路耦合——LED 波长、传感器 QE、滤光片透过率三者必须联合优化,单独提升任何一项都无法达到系统目标。

3.3 需求属性:可验证性与可追溯性

3.3.1 核心原理:为什么这两个属性对硬件尤其重要

可验证性(Verifiability)是指需求是否具备明确的、可操作的验证方法。硬件需求的验证通常依赖:测试测量(如示波器测时序、频谱仪测 EMI)、仿真分析(如 SI/PI 仿真、热仿真)、检查确认(如设计评审、DFM 检查)。不可验证的需求是硬件开发中的“定时炸弹”——到了测试阶段才发现无法判定是否满足,导致项目延期。

可追溯性(Traceability)是指需求之间的上下游关联关系是否清晰。硬件开发中,一颗电容的选型变更可能影响电源纹波,进而影响 ADC 采样精度,最终导致系统性能下降。没有追溯矩阵,这种影响链很难被完整识别。

3.3.2 判断方法:如何写出可验证的硬件需求

一个可验证的硬件需求应包含以下要素:

要素 说明 反例 正例
可测量的参数 使用物理量而非形容词 “电源纹波要小” “电源纹波 ≤ 30mVpp(20MHz 带宽限制,1μF + 0.1μF 去耦条件下)”
明确的测试条件 温度、负载、供电、外围配置 “USB 通信稳定” “USB 2.0 高速模式,线缆 3m,主机为 Intel 标准 USB 控制器,连续传输 1GB 数据无丢包”
可判定的通过/失败标准 给出数值边界或统计要求 “ESD 防护要好” “接触放电 ±8kV,空气放电 ±15kV,测试后功能正常(IEC 61000-4-2)”
验证方法指引 指明测试设备或仿真工具 “时钟精度要高” “RTC 时钟精度 ±20ppm,使用频率计测量 24 小时累计误差 ≤ 1.7 秒”

3.3.3 操作流程:建立需求追溯矩阵

推荐使用双向追溯矩阵(Requirements Traceability Matrix, RTM),在硬件项目中至少维护以下关联:

  • 用户需求 ↔ 系统需求:确保每个用户痛点都有系统需求覆盖;
  • 系统需求 ↔ 硬件需求:确保每个系统指标都分解到硬件子系统的具体参数;
  • 硬件需求 ↔ 测试用例:确保每个硬件需求都有对应的验证测试项;
  • 硬件需求 ↔ 设计文档:确保原理图、PCB、结构设计都落实了需求约束。
实战建议:在硬件项目中,RTM 建议使用电子表格或需求管理工具(如 DOORS、Jama Connect)维护,每周更新一次。当发生设计变更时,首先在 RTM 中标注影响范围,再执行变更。不要等到测试阶段才回溯需求覆盖情况。

3.4 需求工程过程:五阶段闭环

3.4.1 核心原理:需求工程不是“写文档”,而是“管理不确定性”

需求工程过程包括五个阶段:需求获取、需求分析、需求规格化、需求验证、需求管理。这五个阶段不是一次性顺序执行,而是在整个硬件开发周期中迭代进行。硬件项目尤其需要关注需求变更——因为硬件改版周期长,需求变更的代价随时间急剧上升。

3.4.2 各阶段操作要点

阶段 核心活动 硬件场景下的关键输出 常见工具/方法
需求获取 收集用户声音、市场趋势、法规要求、内部约束 用户需求清单、场景描述、竞品分析报告 用户访谈、问卷调查、竞品拆解、法规检索
需求分析 分类、去重、冲突消解、优先级排序、可行性评估 需求分类表(功能/性能/接口/环境/法规)、优先级列表 KANO 模型、MoSCoW 法、技术可行性评估(TRL)
需求规格化 编写正式的需求文档,确保无歧义、可验证 系统需求规格说明书(SysRS)、硬件需求规格说明书(HWRS) IEEE 29148 模板、需求编号规范、指标量化
需求验证 确认需求正确、完整、一致、可测试 需求评审记录、原型验证报告、仿真验证结果 同行评审、原型制作、仿真分析(SPICE、SI/PI)
需求管理 基线控制、变更管理、状态跟踪、追溯维护 需求基线、变更请求记录、RTM 更新记录 配置管理工具、变更控制委员会(CCB)、RTM

3.4.3 案例拆解:需求变更引发的硬件改版教训

背景:某工业网关产品,原设计使用外部看门狗芯片(如 MAX6369)实现系统监控。在需求评审阶段,系统需求为“系统异常时自动复位,复位时间 ≤ 500ms”。硬件需求据此选择了外部看门狗,并完成原理图设计。

变更发生:项目进行到 PCB Layout 阶段,软件团队提出:外部看门狗在固件升级模式下会误触发复位,导致升级失败。因此需求变更为“看门狗功能可配置,升级模式下可禁用”。

影响分析:

  • 硬件需求变更:需要增加 GPIO 控制看门狗使能,或改用内部看门狗 + 外部冗余方案;
  • 原理图修改:增加 1 个 GPIO 连接、1 个 10kΩ 上拉电阻;
  • PCB 修改:需要调整走线,增加一个过孔,板子面积不变;
  • 测试用例变更:新增“升级模式下看门狗禁用”测试项。

代价评估:由于变更发生在 Layout 阶段,修改 PCB 需要重新投板,增加 2 周时间和约 5000 元成本。如果需求变更发生在测试阶段,代价将更高(可能需要改结构件)。

复盘经验:硬件需求评审时,必须邀请软件、测试、结构、生产等多角色参与,尤其是跨层需求冲突(如硬件看门狗与软件升级流程的冲突)应在需求分析阶段暴露,而非等到设计阶段。

风险提示:硬件需求变更的代价随时间呈指数增长。需求阶段变更代价为 1 倍,原理图阶段为 5-10 倍,PCB 投板后为 50-100 倍,量产阶段则可能达到 1000 倍以上。因此,需求评审是硬件项目中最值得投入时间的环节。

3.5 常见误区与总结复盘

3.5.1 硬件需求工程中的典型误区

  • 误区一:需求文档“一写了之”。需求文档完成后束之高阁,设计与测试各做各的,导致最终产品与需求偏离。正确做法是将需求作为设计评审、测试用例设计、验收测试的输入基准。
  • 误区二:只关注功能需求,忽略非功能需求。硬件产品的功耗、EMC、热设计、可靠性、可制造性(DFM)往往决定产品成败。例如,一个功能完备的电路板如果 EMI 超标,可能无法通过认证,导致上市延期。
  • 误区三:需求指标“拍脑袋”。没有经过仿真或实测验证的需求指标,可能在开发中后期被证明无法实现。例如,某项目要求 DDR 总线速率 1600MT/s,但 PCB 走线长度和阻抗控制无法满足,最终只能降速。
  • 误区四:忽视需求优先级。所有需求都是“Must”,导致资源分配平均,关键路径被次要需求拖累。建议使用 MoSCoW 法(Must/Should/Could/Won't)明确优先级。

3.5.2 总结:硬件需求工程的核心能力

硬件需求工程师(或系统工程师)需要具备三项核心能力:

  1. 量化思维:将模糊的用户语言转化为可测量的物理参数,并理解参数之间的耦合关系(如功耗与散热的权衡、采样率与数据量的权衡)。
  2. 系统视角:能够跨越硬件、软件、结构、算法等多个领域,识别需求冲突并推动消解。
  3. 验证意识:在写需求时就思考“如何测试”,确保每条需求都有对应的验证方法和判定标准。