广告

满足IEC61508标准的电池监控单元设计

2023-03-30 10:58:09 深圳市车电网络有限公司冯瑞明 阅读:
本文详细介绍了功能安全的概念、标准、意义和安全完整性等级(SIL),以及如何利用ST的功能安全设计包,设计出满足安全完整性等级(SIL2)认证的电池监控单元(BMU)。

随着计算机技术的发展,更多可编程电子部件的应用,和人们认知的发展,发现由于系统失效或者故障、软件的问题、安全相关元器件、零部件的失效或故障、引发的危险越来越频繁,甚至会造成巨大的人员及财产损失。为了更好的解决这些出现的问题,最终形成的IEC61508标准试图建立一个体系,IEC61508标准首先定义了功能安全(functional safety)这一概念,意即“当安全系统满足以下条件时就认为是功能安全的,即当随机故障、系统故障或共因失效都不会导致安全系统的故障,从而引起人员的伤害或死亡、环境的破坏、设备财产的损失,也就是装置或控制系统的安全功能无论在正常情况或者有故障存在的情况下都应该保证正确实施。”FWlednc

功能安全的意义在于:FWlednc

  1. 识别出潜在的,可能导致人身伤害或者物品毁坏事故发生的危险条件,情况或者事件
  2. 通过一些改善或者预防的措施,来降低或避免这些事故的影响
  3. 当失效出现时,系统能监测到并进入一个可知的安全状态
  4. 主动发现系统故障,降低风险(减少伤害发生的概率和严重性)
  5. 使系统始终处于“安全状态”

功能安全和信息安全不同。功能安全英文单词为Safety,例如汽车刹车失灵;信息安全英文单词为Security,例如智能锁被黑;但二者有重叠的部分。黑客利用了固件更新的漏洞(信息安全问题Security)获取了对CAN总线的访问权限,进而控制了刹车系统造成了事故(功能安全问题Safety)。FWlednc

SIL认证(SIL Safety Integrity Level)是基于IEC 61508针对安全设备的安全完整性等级进行评估和确认的一种第三方评估、验证和认证。安全完整性等级(SIL)是由每小时发生的危险失效概率来区分,划分为4个等级:SIL1、SIL2、SIL3和SIL4——SIL4是其中安全完整性最高等级。安全完整性等级越高,执行所要求的安全功能的概率也越高,换而言之就是出现失效的概率越低。FWlednc

我们设计的BMU(Battery Monitor Unit)出口欧美时,需做SIL2认证,降低储能系统因各种异常导致电池爆炸等安全问题发生。BMU功能安全主要是针对参数有效性、告警保护、均衡安全性、热失控安全性、软件功能安全包应用、软件异常处理的设计。对于功能安全,由于ST MCU从芯片内置的硬件安全属性,经过认证的软件自检库和完备的安全文档三个层面来支持STM32用户在系统级进行开发,达到要求的功能安全等级。可帮助用户快速推出基于STM32的安全关键应用,并达到这些行业安全标准IEC 61508安全完整性等级(SIL2/SIL3),例如:工业、电机控制、工厂自动化或发电/转换。因此,我们的BMU产品选用STM32F103系列MCU。STM32提供的安全包资源如下图所示:FWlednc

FWlednc

图一 STM32提供的功能安全设计包资源图FWlednc

功能安全设计包中提供的自检库和安全手册中的检测方法,一部分是通过纯软件的方式实现的,还有一部分是利用MCU本身提供的硬件属性完成的。下图中列出了STM32 MCU内置的一些安全属性。FWlednc

FWlednc

图二 STM32内置安全属性FWlednc

关于自检库,这里需要说明的是,ST提供的SIL自检库只是实现功能安全所需的安全机制的子集。用户可以将自检库压缩包中的库文件添加到实际工程中,该自检库已经包括了对CPU,FLASH和SRAM这些与具体应用无关部分的检测。然后用户还要再根据实际工程的需要,参考安全手册中列出的安全检测机制,自己通过代码实现其他的检测。FWlednc

BMU安全功能包整合进BMU应用程序,包含如下内容:FWlednc

  1. 在执行用户程序之前,先执行STL_StartUp函数(启动自检)
  2. 设置WWDG和IWDG,防止其在程序正常运行时复位
  3. 设置启动和运行时的RAM和FLASH检测范围
  4. CRC校验的范围,checksum在Flash中存储的位置
  5. ClassB变量的存储地址范围
  6. 堆栈边界检测区的位置
  7. 对检测到的故障进行处理
  8. 根据具体的应用,增加用户相关的故障检测内内容
  9. 根据具体应用定义程序运行时自检的频率
  10. 在进入主循环前调用STL_InitRunTimeChecks()
  11. 主循环中调用STL_DoRunTimeChecks()

安全功能包整合进应用程序中流程图如下所示:FWlednc

FWlednc

图三 安全功能包整合进应用程序中流程图FWlednc

芯片复位后,在执行初始化工作之前,必须先调用STL_StartUp函数进行启动时的自检。启动自检流程图如下所示:FWlednc

FWlednc

图四 启动自检流程图FWlednc

所有启动自检都成功通过且已完成标准的初始化,则运行时自检包必须在程序进入主循环前进行初始化,同时执行运行时自检的定期调用。FWlednc

FWlednc

图五 定时自检流程图FWlednc

在BMU的开发过程中,我们利用STM32提供的安全设计包快速实现满足SIL2等级的安全认证,降低项目成本和复杂度,简化认证评估过程,缩短认证需要的时间。FWlednc

参考文献

  1. UM1814 STM32F1 series Safety manual
  2. AN5698使用SIL功能安全库如何支持其他的标准
  3. AN5659-功能安全自检库Arm Cortex-M整合技巧
  4. AN5321- 适配FMEDA到STM32
  5. STM32功能安全 链接如下:FWlednc
    https://www.stmcu.com.cn/ecosystem/app/function-safety

作者简介

冯瑞明先后于华中科技大学(1991.09-1995.07)和西安电子科技大学(1998.09-2001.12)获得工业自动化学士学位和电子与信息工程硕士学位。长期从事嵌入式硬件开发相关工作,熟悉基于M3/M4/A系列等ARM内核的嵌入式系统部件开发。原在华为网络能源,作为系统工程师从事数据中心,光伏逆变器,站点电源的监控系统开发工作。现在科陆电子下属车电网从事充电桩,储能系统的开发工作。FWlednc

责编:Franklin
  • 赞,学习了
  • 冯老师威武
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了