功能安全认证简介及ARM认证工具链介绍
SIL功能安全认证
一、简介
SIL(Safety Integrity Level)安全完整性等级认证就是基于IEC61508, IEC61511, IEC61513, IEC13849-1, IEC62061, IEC61800-5-2等标准,对安全设备的安全完整性等级(SIL)或者性能等级(PL)进行评估和确认的一种第三方评估、验证和认证。安全完整性等级的确定需要进行安全系统风险分析,它是进行系统研发的目标和基础,是评估系统能否保证安全的依据。主要涉及针对安全设备开发流程的文档管理(FSM)评估,硬件可靠性计算和评估、软件评估、环境试验、EMC电磁兼容性测试等内容。
SIL认证分为SIL1、SIL2、SIL3、SIL4,其中SIL1级是最低的产品功能安全等级,SIL4是最高的级别。
二、功能安全标准化起源
功能安全标准化的运动起源于20世纪90年代。上世纪70年代开始,随着各种现代化及其的使用,以及工业生产过程的自动化程度越来越高,以电气、电子、可编程电子产品的大量应用为标志的现代化控制系统越来越多的渗透到各个领域,参与着各种控制过程。但是,工业文明在给人类带来利益的同时,也带来了灾难。由于系统设计不合理、设备元器件故障或失效、软件系统的故障导致的事故、人身伤害、环境污染,越来越频繁的危及着我们的生命安全和赖以生存的环境。人们开始认识到,必须采取措施,用标准和法规来规范领域内安全相关系统的使用,使技术在安全的框架内发展,使人类既能尽可能享受新技术带来的安全和舒适,同时又能掌控危险。功能安全标准研究从此展开。
2000年5月,国际电工委员会正式发布了IEC61508标准,名为《电气/电子/可编程电子安全相关系统的功能安全》。这是功能安全领域的第一个国际标准,后面其它的功能安全标准适用于不同的应用领域,但它们都基于由IEC61508标准派生出的安全理念。
三、SIL认证机构
SIL的认证机构有很多,国外的认证机构有德国TÜV、美国艾思达Exida、法国必维(BV)等;国内的认证机构主要有北京仪综所(ITEI)和上海自动化所(SITIIAS)等等。软件方面国内接受度比较高的是德国莱茵TÜV认证。
四、SIL认证流程
SIL认证项目的大致流程:
第一阶段:概念评估
1.检查并评审产品需求规范和安全设计概念;
2.在产品各个生命周期阶段,尤其在开发过程中(质量管理),检查并评估故障避免措施的计划;
3.评估检测和控制故障需采取的措施(诊断)FMEDA(失效模式影响及诊断分析),评价是否安全完整等级能够达到预期的目的;
4.文件系统的审核(设计和质量管理);
5.电磁兼容,环境测试需求定义;
6.为主检阶段出具项目计划;
7.根据概念评估的结果出具报告;
第二阶段:主检
1.测试所有的安全相关功能,最坏情况分析(软硬件);
2.检测控制故障的验证(故障插入测试),FMEDA的验证与执行;
3.软件验证测试的评审(模块,集成测试,系统测试)
4.对开发过程中创建的产品文档评审(设计文档,测试、验证、审核记录)
5.安全相关的可靠性数据的定义及计算;
6.环境测试(包括EMC);
7.用户文档的检查(安装,操作手册,安全手册);
8.提供测试报告;
第三阶段:发证
基于测试报告,如果各项均符合要求,则由认证机构颁发证书。
ARM功能安全相关
一、简介
1、总体介绍
安全终端产品的认证要求开发中使用的编译器工具链符合相应的功能安全标准。鉴定这些工具的过程称为“工具鉴定”或“工具验证”,可能是耗时且昂贵的过程。此外,它没有为最终产品提供任何差异化。虽然最终用户必须对整个工具认证过程负责,但开发工具供应商可以通过提供符合适当安全标准的工具来简化此过程。
Arm Compiler for Embedded FuSa是一个合格的C/C++工具链,已通过安全认证机构TÜV SÜD的评估。合格的工具链适用于为汽车、工业、医疗、铁路和航空等安全市场开发嵌入式软件。凭借TÜV证书和全面的认证套件,用于嵌入式FuSa的Arm编译器极大地简化了整个“工具认证”过程,使最终用户能够专注于他们的最终产品开发。
Arm Compiler for Embedded FuSa有资格开发符合以下标准的最高安全完整性级别的软件:
- IEC 61508 (工业) – SIL 3
- ISO 26262 (汽车) – ASIL D
- EN 50128 (铁路) – SIL 4
- IEC 62304 (医疗) – Class C
对于其他安全标准,其中许多标准源自IEC 61508,认证套件提供了最终用户执行“工具验证”所需的关键信息。
注:
- ISO 26262是汽车行业的安全标准。该标准使用汽车安全完整性等级 (ASIL A–D) 来衡量风险。A等级最低,D等级最高。
- IEC 62304是医疗器械行业使用的安全标准。该标准使用软件安全分类(A-C 类)来设置基于风险的要求,A等级最低,C等级最高。
2、Qualification Kit资格认证套件
Qualification Kit提供有关工具链操作、推荐使用和诊断功能的重要安全信息。
这包括:
- 安全手册- 定义工具链的安全边界。
- 缺陷报告- 描述已知的安全关键缺陷。
- 开发流程- 记录用于开发安全工具链的流程。
- 测试报告- 记录资格认证中使用的语言一致性测试的测试结果。
3、Arm编译工具链方面能提供的安全工具如下图所示
二、Arm Compiler for Embedded FuSa 6.16LTS介绍
Arm Compiler for Embedded FuSa 6.16LTS是Arm公司最新的功能安全嵌入式 C/C++编译工具链,新购功能安全工具链用户都是购买这个版本。它用于开发具有功能安全或长期支持要求的裸机软件、固件和实时操作系统 (RTOS)应用程序。通过强大的优化技术和优化的库,Arm Compiler for Embedded FuSa使嵌入式系统开发人员能够满足具有挑战性的性能目标和内存限制。
Arm Compiler for Embedded FuSa被各行各业的领先公司使用,包括汽车 (ISO 26262)、消费电子、工业 (IEC 61508)、医疗 (IEC 62304)、网络、铁路 (EN 50128)、存储和电信。
它还用于开发以下Arm功能安全产品:
合格库: https ://developer.arm.com/tools-and-software/embedded/arm-compiler/safety
Arm FuSa RTS: https ://developer.arm.com/tools-and-software/embedded/fusa-run-time-system
软件测试库:https ://www.arm.com/products/development-tools/embedded-and-software/software-test-libraries
Arm Compiler for Embedded FuSa 6.16LTS 的主要功能包括:
- 支持Cortex和Neoverse处理器
- 支持A-profile和R-profile目标的动态链接
- 支持线程本地存储 (TLS)
- 支持C++14源语言模式
- 与Arm FuSa C库版本6.6.A的兼容性
用于嵌入式FuSa 6.16LTS的Arm编译器包括:
- 合格的工具链组件:
- armclang:基于LLVM和Clang 技术的编译器和集成汇编器
- armar:归档器,可将 ELF 目标文件集收集在一起
- armlink:将对象和库结合起来生成可执行文件的链接器
- fromelf:图像转换实用程序和反汇编程序
- 非安全的工具链组件:
- Arm C 库:嵌入式系统的运行时支持库
- Arm C++ 库:基于 LLVM libc++ 项目的库
- armasm:旧版汇编器,用于armasm-syntax 汇编代码,仅适用于较旧的 Arm 架构。armclang对所有新的汇编文件使用集成汇编器。
- 资格套件:
- 安全手册:描述认证范围,以及如何使用工具链进行安全相关开发
- 缺陷报告:提供有关已知安全相关缺陷的信息
- 测试报告:包含语言一致性测试的结果
- 开发过程:包含用于开发工具链的过程的概述
- 发布历史: Arm Compiler for Embedded FuSa 6.16LTS 系列迄今为止所有版本的标识信息
- 用户文档:
- 用户指南:提供示例和指南来帮助您使用工具链
- 参考指南:提供帮助您配置工具链的信息
- Arm C和C++库和浮点支持用户指南:提供有关非限定Arm库和浮点支持的信息
- 错误和警告参考指南:提供Arm Compiler for Embedded FuSa 6.16LTS中的工具可以报告的错误和警告列表
- 迁移和兼容性指南:提供信息以帮助您从Arm Compiler 5迁移到 Arm Compiler for Embedded FuSa 6.16LTS
- 发行说明
- 工具链可用于:
- 使用Arm Development Studio黄金版或白金版工具包
- 使用Keil MDK-Professional工具包(需要 Windows 64 位主机平台上的 Windows 32 位工具链)
- 作为独立安装
Arm Compiler for Embedded FuSa 6.16LTS支持什么?
根据许可条款,Arm Compiler for Embedded FuSa 6.16LTS可用于构建以下 Arm架构和处理器:
注意:
用于嵌入式FuSa 6.16LTS的Arm编译器预计不能在比上面列出的版本更早的主机操作系统平台上工作。
使用Keil MDK许可证,用于嵌入式FuSa 6.16LTS的Arm编译器仅在Windows主机平台上受支持。不支持Windows 32位x86主机平台。
如果您使用的是浮动许可证,则您的许可证服务器必须运行11.14.1.0或更高版本armlmd以及lmgrd。
您必须根据您打算如何使用 Arm Compiler for Embedded FuSa 6.16LTS 选择合适的安装位置:
- 集成到 Arm Development Studio Gold Edition 2021.2 或更高版本,或 Platinum Edition 2021.c 或更高版本
- 集成到 Keil MDK-Professional 5.36 或更高版本
- 作为独立安装