4、传感器硬件设计基础:冗余设计原则、多样性设计原则、诊断覆盖率的概念

好,咱们进入正题。传感器是功能安全系统的「眼睛」和「耳朵」。如果传感器本身不可靠,后面算法再牛也没用。今天聊三个核心概念:冗余、多样性、诊断覆盖率。这些不是纸上谈兵,是真正决定你系统能不能过认证的关键。

4.1 冗余设计原则:别把鸡蛋放一个篮子里

冗余,说白了就是「多备一套」。一个传感器坏了,另一个顶上。但这里有个坑——很多人以为冗余就是简单复制粘贴。

我个人的习惯是,做冗余设计时先问自己三个问题:

  • 冗余的传感器是否共享了同一个电源?
  • 它们的信号路径是否完全独立?
  • 故障模式是否可能同时影响两个传感器?

举个例子。我之前做一个汽车刹车压力传感器项目,客户要求ASIL D。我们用了两个压力传感器,但PCB布局时不小心把它们的供电走线挨在一起。结果EMC测试时,一个浪涌脉冲同时打坏了两个传感器。嗯,这就是典型的「共因失效」——冗余白做了。

⚠️ 我曾经踩过的坑: 冗余设计必须保证物理隔离。两个传感器不能共用同一个晶振、同一个LDO、甚至不能走同一段线束。否则冗余就是心理安慰。

冗余的常见形式有:

  • 1oo1:单通道,无冗余。适用于QM或ASIL A。
  • 1oo2:两个通道,只要一个正常就能工作。安全等级高,但可用性一般。
  • 2oo2:两个通道都正常才能工作。可用性高,但安全等级不如1oo2。
  • 2oo3:三取二。常用于航空和核电,成本高但容错性好。
架构 安全等级 可用性 典型应用
1oo1 非安全相关
1oo2 安全气囊、刹车
2oo2 工业过程控制
2oo3 航空飞控

4.2 多样性设计原则:同样的错误别犯两次

冗余解决的是「一个坏了另一个上」的问题。但万一两个传感器因为同样的原因一起坏呢?这就是多样性要解决的问题。

多样性,就是让两个通道「不一样」。 不一样在哪里?

  • 技术多样性:比如一个用霍尔效应,一个用磁阻效应。或者一个用光学,一个用超声波。
  • 软件多样性:两个通道用不同的算法、不同的编译器、甚至不同的开发团队。
  • 硬件多样性:不同的芯片厂商、不同的封装、不同的晶振频率。

我记得有个项目,客户用两个相同的温度传感器做冗余。结果发现,当环境温度超过85°C时,两个传感器同时出现非线性漂移——因为它们的半导体材料一样。后来我们换了一个PT100铂电阻和一个NTC热敏电阻,问题就解决了。这就是技术多样性的价值。

💡 我的建议: 多样性不是越花哨越好。要考虑成本、体积、功耗。比如汽车上,一个用霍尔传感器,一个用AMR传感器,就足够了。没必要搞三个不同原理的。

4.3 诊断覆盖率的概念:你到底能发现多少故障?

诊断覆盖率(DC),是功能安全里最容易被低估的指标。它衡量的是:当系统发生故障时,你的诊断机制能检测到多少。

公式很简单:

DC = 检测到的危险故障数 / 总危险故障数 × 100%

但实际落地时,你会发现这个数字很难算。为什么?因为你得知道「总危险故障数」是多少——这需要做FMEDA(故障模式影响与诊断分析)。

我个人的经验是,诊断覆盖率不是拍脑袋定的。你得一个一个故障模式去分析。比如:

  • 传感器短路到电源:能不能检测?
  • 传感器短路到地:能不能检测?
  • 传感器输出漂移:能不能检测?
  • 传感器老化导致精度下降:能不能检测?

每个故障模式都要给出「能」或「不能」,然后算比例。

常见的诊断手段和对应的覆盖率:

诊断手段 典型DC 说明
看门狗定时器 90% 检测程序跑飞
RAM校验(ECC) 99% 检测单比特翻转
传感器自检(BIST) 60%~90% 取决于覆盖的故障模式
冗余比较 99% 两个通道输出不一致即报错
信号范围检查 50% 只能检测超出量程的故障
⚠️ 注意: 诊断覆盖率不是越高越好。追求99.9%的DC,可能成本翻三倍。实际工程中,根据安全目标(ASIL等级)来定。ASIL B通常要求DC ≥ 90%,ASIL D要求DC ≥ 99%。

4.4 三者如何配合?

冗余、多样性、诊断覆盖率,不是孤立的概念。它们是一个整体。

举个例子。你设计一个压力传感器系统:

  • 冗余:用了两个压力传感器(1oo2架构)。
  • 多样性:一个用压阻式,一个用电容式。供电和信号路径完全独立。
  • 诊断覆盖率:每个传感器都做自检(BIST),同时两个传感器的输出做交叉比较。如果差值超过阈值,触发故障响应。

这样设计下来,系统的安全等级可以轻松达到ASIL D。但代价是成本翻倍、体积变大、功耗增加。所以实际项目中,你得权衡。

我见过最惨的案例是一个医疗设备项目,工程师为了追求高安全等级,用了三冗余加四种不同原理的传感器。结果系统太复杂,反而引入了新的故障模式——软件同步问题导致三个传感器数据打架。最后不得不降级到双冗余加诊断。

核心总结:
  • 冗余解决「一个坏了另一个上」的问题。
  • 多样性解决「两个一起坏」的问题。
  • 诊断覆盖率解决「坏了你能不能知道」的问题。
  • 三者结合,才能构建真正可靠的传感器系统。

下一章,咱们聊聊传感器信号调理电路中的常见陷阱。嗯,那又是一个容易踩坑的地方。