4、传感器硬件设计基础:冗余设计原则、多样性设计原则、诊断覆盖率的概念
好,咱们进入正题。传感器是功能安全系统的「眼睛」和「耳朵」。如果传感器本身不可靠,后面算法再牛也没用。今天聊三个核心概念:冗余、多样性、诊断覆盖率。这些不是纸上谈兵,是真正决定你系统能不能过认证的关键。
4.1 冗余设计原则:别把鸡蛋放一个篮子里
冗余,说白了就是「多备一套」。一个传感器坏了,另一个顶上。但这里有个坑——很多人以为冗余就是简单复制粘贴。
我个人的习惯是,做冗余设计时先问自己三个问题:
- 冗余的传感器是否共享了同一个电源?
- 它们的信号路径是否完全独立?
- 故障模式是否可能同时影响两个传感器?
举个例子。我之前做一个汽车刹车压力传感器项目,客户要求ASIL D。我们用了两个压力传感器,但PCB布局时不小心把它们的供电走线挨在一起。结果EMC测试时,一个浪涌脉冲同时打坏了两个传感器。嗯,这就是典型的「共因失效」——冗余白做了。
冗余的常见形式有:
- 1oo1:单通道,无冗余。适用于QM或ASIL A。
- 1oo2:两个通道,只要一个正常就能工作。安全等级高,但可用性一般。
- 2oo2:两个通道都正常才能工作。可用性高,但安全等级不如1oo2。
- 2oo3:三取二。常用于航空和核电,成本高但容错性好。
| 架构 | 安全等级 | 可用性 | 典型应用 |
|---|---|---|---|
| 1oo1 | 低 | 高 | 非安全相关 |
| 1oo2 | 高 | 中 | 安全气囊、刹车 |
| 2oo2 | 中 | 高 | 工业过程控制 |
| 2oo3 | 高 | 高 | 航空飞控 |
4.2 多样性设计原则:同样的错误别犯两次
冗余解决的是「一个坏了另一个上」的问题。但万一两个传感器因为同样的原因一起坏呢?这就是多样性要解决的问题。
多样性,就是让两个通道「不一样」。 不一样在哪里?
- 技术多样性:比如一个用霍尔效应,一个用磁阻效应。或者一个用光学,一个用超声波。
- 软件多样性:两个通道用不同的算法、不同的编译器、甚至不同的开发团队。
- 硬件多样性:不同的芯片厂商、不同的封装、不同的晶振频率。
我记得有个项目,客户用两个相同的温度传感器做冗余。结果发现,当环境温度超过85°C时,两个传感器同时出现非线性漂移——因为它们的半导体材料一样。后来我们换了一个PT100铂电阻和一个NTC热敏电阻,问题就解决了。这就是技术多样性的价值。
4.3 诊断覆盖率的概念:你到底能发现多少故障?
诊断覆盖率(DC),是功能安全里最容易被低估的指标。它衡量的是:当系统发生故障时,你的诊断机制能检测到多少。
公式很简单:
DC = 检测到的危险故障数 / 总危险故障数 × 100%
但实际落地时,你会发现这个数字很难算。为什么?因为你得知道「总危险故障数」是多少——这需要做FMEDA(故障模式影响与诊断分析)。
我个人的经验是,诊断覆盖率不是拍脑袋定的。你得一个一个故障模式去分析。比如:
- 传感器短路到电源:能不能检测?
- 传感器短路到地:能不能检测?
- 传感器输出漂移:能不能检测?
- 传感器老化导致精度下降:能不能检测?
每个故障模式都要给出「能」或「不能」,然后算比例。
常见的诊断手段和对应的覆盖率:
| 诊断手段 | 典型DC | 说明 |
|---|---|---|
| 看门狗定时器 | 90% | 检测程序跑飞 |
| RAM校验(ECC) | 99% | 检测单比特翻转 |
| 传感器自检(BIST) | 60%~90% | 取决于覆盖的故障模式 |
| 冗余比较 | 99% | 两个通道输出不一致即报错 |
| 信号范围检查 | 50% | 只能检测超出量程的故障 |
4.4 三者如何配合?
冗余、多样性、诊断覆盖率,不是孤立的概念。它们是一个整体。
举个例子。你设计一个压力传感器系统:
- 冗余:用了两个压力传感器(1oo2架构)。
- 多样性:一个用压阻式,一个用电容式。供电和信号路径完全独立。
- 诊断覆盖率:每个传感器都做自检(BIST),同时两个传感器的输出做交叉比较。如果差值超过阈值,触发故障响应。
这样设计下来,系统的安全等级可以轻松达到ASIL D。但代价是成本翻倍、体积变大、功耗增加。所以实际项目中,你得权衡。
我见过最惨的案例是一个医疗设备项目,工程师为了追求高安全等级,用了三冗余加四种不同原理的传感器。结果系统太复杂,反而引入了新的故障模式——软件同步问题导致三个传感器数据打架。最后不得不降级到双冗余加诊断。
- 冗余解决「一个坏了另一个上」的问题。
- 多样性解决「两个一起坏」的问题。
- 诊断覆盖率解决「坏了你能不能知道」的问题。
- 三者结合,才能构建真正可靠的传感器系统。
下一章,咱们聊聊传感器信号调理电路中的常见陷阱。嗯,那又是一个容易踩坑的地方。