4、技术安全概念(TSC):技术安全需求的分解、系统架构设计中的安全机制、硬件与软件的安全分配

好,咱们进入技术安全概念这一块。说实话,很多工程师觉得TSC就是写写文档,把功能安全需求往下一层扔就完事了。我刚开始做项目时也这么想,结果被评审专家问得哑口无言——「你这个安全机制到底放在硬件还是软件?为什么?失效了怎么办?」

嗯,TSC不是简单的需求分解,它是一张从「要做什么」到「怎么做」的工程蓝图。说白了,你得把上一层的功能安全概念,翻译成具体的技术实现方案。

4.1 技术安全需求的分解

技术安全需求怎么分解?我个人习惯用三步法:

  1. 识别安全目标:从功能安全概念里提取出每个安全目标对应的技术约束
  2. 分配层级:决定这个需求是系统级、硬件级还是软件级
  3. 细化到可验证:每个需求必须能通过测试或分析来确认

举个例子。功能安全概念里有一条:「当车速超过120km/h时,自动紧急制动必须能在2秒内介入」。到了TSC层面,你得拆成:

  • 车速传感器采样周期 ≤ 50ms(硬件需求)
  • 制动控制算法响应时间 ≤ 1.5s(软件需求)
  • 通信延迟 ≤ 200ms(系统需求)

我在项目中遇到过最典型的坑是什么?就是需求分解后,发现某个子需求根本没法测。比如「系统应足够可靠」——这怎么测?所以记住一条铁律:每个技术安全需求,必须对应一个明确的验证方法

关键原则:技术安全需求的分解要遵循ASIL等级向下兼容。如果父需求是ASIL D,子需求不能低于ASIL D(除非有充分的分解理由)。

4.2 系统架构设计中的安全机制

系统架构设计里,安全机制不是堆砌的,而是有策略的。我一般把安全机制分成三类:

类别 典型机制 适用场景
故障检测 看门狗、CRC校验、自检 运行时监控
故障响应 降级模式、安全状态切换 检测到故障后
故障避免 冗余设计、多样性实现 高ASIL等级

你想想看,为什么很多系统设计了看门狗,最后还是出问题?因为看门狗只负责「发现死机」,但不负责「怎么安全地死」。我曾经在一个ADAS项目里,看门狗触发了,系统直接切断动力——结果车在高速上突然失去动力,比故障本身还危险。

所以架构设计时,安全机制之间要有配合。比如:

  • 故障检测触发后,先进入降级模式(比如限制最高车速)
  • 降级模式持续超时,再进入安全状态(比如靠边停车)
  • 整个过程要有驾驶员提示(仪表盘报警)

我的经验:安全机制的设计要遵循「单一故障原则」——假设系统里只有一个故障发生,你的安全机制能不能兜住?如果能,再考虑多故障场景。

4.3 硬件与软件的安全分配

这个环节最容易引发争论。硬件说「这个安全功能软件也能做」,软件说「硬件实现更可靠」。嗯,其实没有绝对的对错,关键看你怎么分配。

我一般用这张决策矩阵:

判断维度 倾向硬件 倾向软件
响应速度 微秒级响应 毫秒级响应
灵活性 低(固化后难改) 高(可OTA升级)
成本 硬件成本高 开发成本高
ASIL等级 容易达到高ASIL 需要更多软件安全措施

举个例子。安全气囊的触发——这必须硬件实现,因为从碰撞到触发只有几毫秒,软件根本来不及。但像车道保持的纠偏功能,软件实现就足够了,而且方便迭代优化。

我记得有个项目,团队非要把一个ASIL D的功能全塞进软件里。结果软件安全机制堆了一大堆,性能开销大,最后还得加硬件加速器。说白了,硬件和软件不是二选一,而是协同配合

避坑指南:我曾经见过一个案例,硬件和软件各自实现了同一个安全功能,但没做同步。结果硬件触发了安全状态,软件还在正常运行——两边打架,系统直接崩溃。所以分配时一定要定义好接口和交互逻辑。

4.4 知识体系总览

为了让你更直观地理解这一章的结构,我画了张图:

技术安全概念(TSC)知识体系 功能安全概念(输入) 技术安全概念(TSC)分解与设计 需求分解 ASIL等级分配 可验证性约束 安全机制设计 检测/响应/避免 降级与安全状态 HW/SW分配 响应速度权衡 成本与ASIL 可验证的技术安全需求

这张图把TSC的核心脉络串起来了。从功能安全概念出发,经过需求分解、安全机制设计、硬件软件分配,最终输出可验证的技术安全需求。每一步都有对应的工程方法和注意事项。

好了,这一章的内容就这些。记住一句话:TSC做得好不好,直接决定了后续测试验证的工作量。我在项目里见过太多因为TSC没想清楚,导致后期反复改架构的案例——那真是又烧钱又烧时间。


公众号:蓝海资料掘金营,微信deep3321