汽车电子ISO 26262功能安全系列(第15期):技术安全需求(TSR)的编写与分配
2026/8/25 6:10:29 网站建设 项目流程

第一部分:TSR怎么写才算规范?

TSR的三大核心特性

一个规范的TSR,必须具备以下三个核心特性

特性大白话示例
可测试性“能被验证”——能通过测试或审查来证明它实现了“响应时间<300ms”可测;“系统足够快”不可测
技术具体化“明确实现方式”——不是抽象的功能描述,而是具体的技术参数“用77GHz毫米波雷达” vs “用雷达”
覆盖完整性“全部覆盖”——所有FSR都要有对应的TSR每个FSR至少有一条TSR与之关联

TSR是工程师能直接干活的需求文档,不是“理想”,是“方案”。

一个好的TSR长什么样?

根据ISO 26262的要求和行业实践,一个完整的TSR至少应包含以下七个核心要素

要素问的问题示例
🆔唯一标识符“这条需求叫什么名字?”TSR-01-01
📝需求描述“具体要做什么?”“雷达应选用77GHz频段,探测距离≥200m”
🎯ASIL等级“安全等级是多少?”ASIL-D
🔗来源追溯“从哪条FSR来的?”关联FSR-01
🛡️安全机制“出问题了怎么处理?”“通信超时50ms触发报警”
🏗️分配对象“谁来负责实现?”雷达硬件 / 雷达软件 / 二者共同
验证方法“怎么证明它实现了?”测试 / 审查 / 分析

可追溯性是功能安全评审的必查项!每个TSR都要能追溯到对应的FSR。

❌ 好TSR vs 坏TSR

类型写法问题在哪?
❌ 坏TSR“雷达要可靠”太模糊。“可靠”是什么意思?没法测
❌ 坏TSR“软件不能有bug”这是废话,不是需求。所有软件都不想有bug
✅ 好TSR“雷达应在-40℃~85℃全温度范围内满足测距精度±2m,ASIL-D”具体、可测、有边界条件

写TSR的核心原则:用**“在[条件]下,[谁]应[做什么],达到[量化指标],ASIL [X]”** 的句式。

第二部分:TSR怎么分配?

FSR是“功能层面”的需求,TSR是“技术层面”的需求。但TSR最终要落实到具体的硬件软件上,这就涉及到一个关键问题——分配(Allocation)

分配的核心原则

根据ISO 26262的要求,TSR分配遵循以下核心原则

1️⃣每个TSR必须分配给至少一个系统架构要素(硬件组件或软件组件)

2️⃣每个架构要素必须实现分配给它的最高ASIL等级的TSR

如果一个硬件组件同时收到了ASIL-D和ASIL-B的TSR,整个组件必须按照ASIL-D的等级来开发。因为“低等级”的部分出问题了,一样会影响到“高等级”的部分。

3️⃣不同ASIL等级的要素之间,必须保证“免于干涉(Freedom from Interference)”

大白话:ASIL-D的代码和QM的代码不能互相干扰。通常通过内存分区、时间隔离、通信隔离等手段实现。

🗺️ 怎么判断TSR该分给硬件还是软件?

这是一个非常实际的问题。行业里常用的判断标准是:

分配给谁判断标准示例
硬件涉及物理实现、芯片选型、电路设计、电气参数“选用77GHz毫米波雷达”“工作温度-40℃~85℃”
💻软件涉及算法逻辑、数据处理、通信协议、状态管理“实现双路冗余算法”“50ms周期发送数据”
🔗二者共同需要软硬件协同配合“雷达探测精度±2m”——硬件选型+软件温度补偿算法

分配原则硬件决定“能不能做到”,软件决定“怎么做到位”

TSR分配示例(ACC系统)

TSR ID需求描述ASIL分配给谁
TSR-01-01选用77GHz毫米波雷达,探测距离≥200mD雷达硬件
TSR-01-02全温度范围内测距精度±2mD雷达硬件+软件(硬件选型+温度补偿算法)
TSR-01-03上电时执行自检(BIST)D雷达固件
TSR-01-04每50ms通过CAN-FD发送数据D雷达软件
TSR-02-01选用ASIL-D等级的MCUD控制器硬件
TSR-02-02运行在QNX安全操作系统上D控制器软件
TSR-02-03使用双路冗余算法计算跟车距离D控制器软件
TSR-02-04计算超时>300ms触发报警D控制器软件
TSR-03-01制动执行器支持减速度限制功能D执行器硬件
TSR-03-02监控实际减速度,超限时切断指令D执行器软件

关键洞察:同一个FSR(比如“雷达应能正确检测前方目标”),会被拆分成硬件TSR(选什么雷达)和软件TSR(怎么处理数据)——两者协同工作,缺一不可。

第三部分:ASIL等级在分配时的“坑”

场景一:一个组件收到不同ASIL等级的需求

问题:一个MCU既要跑ASIL-D的刹车控制算法,又要跑QM的空调控制逻辑。怎么办?

答案整个MCU必须按照ASIL-D来开发

ISO 26262规定:如果一个要素被分配了多个不同ASIL等级的需求,该要素必须满足其中最高的ASIL等级

为什么呢?

因为硬件是“共享资源”——QM的代码跑在同一个CPU上,如果QM的代码出问题了(比如内存越界),可能把ASIL-D的代码也搞崩了。

解决方案

  1. 硬件隔离:用两个独立的MCU——一个跑ASIL-D的安全功能,一个跑QM的非安全功能
  2. 软件隔离:在同一个MCU上通过内存保护单元(MPU)Hypervisor实现分区隔离

场景二:ASIL分解——把“一个D”拆成“两个B”

还记得第5期我们提到的ASIL分解吗?

ASIL-D = ASIL-B(D) + ASIL-B(D)

什么时候用?

当你觉得“直接做ASIL-D太贵了、太难了”,可以考虑把需求拆成两个相互独立的低等级需求,由两个独立的组件分别实现。

前提条件

  1. 独立性:两个组件必须充分独立——不能共用同一个电源、同一个时钟、同一个传感器
  2. 证据:必须通过相关失效分析(DFA)证明它们确实独立

示例

原始需求分解后
制动系统需在100ms内响应(ASIL-D)① 主制动通道响应时间<100ms(ASIL-B)
② 备用制动通道响应时间<100ms(ASIL-B)
③ 两个通道相互独立(通过DFA证明)

ASIL分解可以在安全生命周期的多个阶段进行——功能安全概念阶段、系统设计阶段、硬件设计阶段、软件设计阶段都可以。

场景三:安全机制本身也可能失效

这是一个容易被忽视的“坑”。

安全机制本身也可能出故障。如果你针对一个ASIL-D的TSR设计了安全机制A,但安全机制A本身失效了,就会变成潜伏故障(Latent Fault)——平时看不出来,一旦主功能出问题它就帮不上忙了。

解决方案:对安全机制A再加一层监控——这就是“安全机制的安全机制”。

一般来讲,考虑到成本和复杂度,安全机制不超过两层。ISO 26262认为三点及以上故障就可以视为安全故障,否则会出现无穷嵌套。

第四部分:TSR分配全景图

把以上内容串起来,TSR从产生到分配的完整流程是这样的:

关键节点:TSR分配完成后,HSI(软硬件接口规范)就可以定义了——这是硬件团队和软件团队“分头干活”的分界线。

TSR编写与分配中常见的“坑”

坑1:TSR写得像FSR

❌ “系统应能检测前方障碍物” → 这是FSR,不是TSR
✅ “雷达应在50ms内通过CAN-FD发送目标距离数据,精度±2m” → 这才是TSR

FSR是“要什么”,TSR是“怎么做”

坑2:TSR没有关联安全机制

❌ 只写了“用77GHz雷达”,没写“雷达坏了怎么办”
✅ 写了“用77GHz雷达” + “上电自检” + “通信超时监控” + “数据合理性检查”

每个TSR都应该配套安全机制

坑3:分配时忘了考虑ASIL兼容性

❌ 把ASIL-D和QM的需求分给同一个MCU,但没做隔离
✅ 要么用两个独立的MCU,要么通过MPU/Hypervisor做分区隔离

坑4:没有建立可追溯性

❌ TSR和FSR之间没有关联,审核员问“这个TSR从哪来的?”答不上来
✅ 建立SG → FSR → TSR → 测试用例的完整追溯链

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询