【先占坑,慢慢更新】
1.1.1 概念越复杂的软硬件环境,会有越可能多的安全隐患。产品的功能安全(FunctionSafety),功能安全需要同时考虑需求分析、系统设计和环境变化。安全功能(Safety Function)是功能安全中的概念,是指一些有助于设备安全性的功能。可以简单认为,所有安全功能达标的总和,就可以认为达到了功能安全。
功能安全是以人的安全为核心的,即在发生安全异常的情况下,首先考虑人的安全因素。
Function Safety有标准,但How to do是一个比较主观的、有弹性的过程,而且可以参考的资料并不多。
1.1.2 标准所谓一流企业做标准,发达国家已经制定了很多的功能安全相关产品指令和设计标准,并深入到各个领域,如:汽车(ISO26262)轨道控制(EN 5012X)、核电(EN 61513)、工业装备及机器控制(EN 62601, EN ISO 13849-1/2)、过程控制(EN61511)等。
IEC 61508系列是安全相关系统的国际标准。ISO 26262是适用于道路车辆或汽车系统的标准。这些标准支持在任何时间和情况下对风险进行评估,以尽量减少系统故障。
1.1.3 方法检查手段目前是通过安全文档WI方式进行,比如:现在STM8A-SafeASIL功能安全设计包中主要提供的是安全文档,通过该文档可以指导客户进行安全相关代码的开发。在明年3月左右,ST会推出更加详细的自检库实现规范。
(另,个人感觉将来应该有更专业工具类软件跟进才行,类似于现在的代码安全审计和检查工具的效果)
针对这三大类的安全标准认证,ST分别提供了对应的功能安全设计包:
· SIL功能安全设计包,针对IEC61508标准,覆盖STM32系列产品。
· ASIL功能安全设计包,针对汽车行业的ISO26262标准,支持STM8AF系列MCU。
· ClassB功能安全设计包,针对家电应用领域的IEC60335-1/60730-1标准,覆盖STM32和STM8系列产品。
ST提供的特定方法:
功能安全设计包中提供的自检库和安全手册中的检测方法,一部分是通过纯软件的方式实现的,还有一部分是利用MCU本身提供的硬件属性完成的。上表中列出了STM32 MCU内置的一些安全属性:
· 看门狗可以用在对程序计数器的检测中,在程序计数器跑飞的时候复位设备;
· 硬件CRC单元可以用在对Flash的校验中。STM32F7,H7,L4/L4+,G0,G4全系列支持CRC多项式系数可编程,STM32F0和L0/L1系列部分型号支持CRC多项式系数可编程;
· 通过I/O功能锁定,可以保护I/O端口的配置参数不会被软件意外修改,详细说明请见对应STM32系列参考手册中的“GPIO锁定机制”部分;
1.1.4 参考资料关于汽提供符合 ISO 26262 的功能安全要求详细清单和样例,指导STM8AF 用户获得安全完整级的认证 (ASIL A or ASIL B)车功能安全,STM8定义了一个满足ASIL A/B安全级别的指导。
AN4838介绍了如何管理STM32产品中的存储器保护单元(MPU),MPU是用于内存保护的可选组件。 将MPU包含在STM32微控制器中使它们更健壮和可靠 、使用前必须对MPU进行编程和启用。 如果未启用MPU,则原有内存系统行为无改变。
https://www.stmcu.com.cn/ecosystem/app/function-safety