联系方式

    深圳市英瑞尔芯科技有限公司

    电话:

    186 6591 0262

    E-mail:

    sally@szinter.com.cn

    地址:

    深圳市福田区振华路现代之窗A座7B

ClassB ST MCU相关故障检测方法库

发布时间:2022-11-21 08:05:00

来源:http://www.szinter.com.cn/news891704.html

本文介绍给您。IEC60335 Class B ST MCU软件库。

首先,我们需要知道什么是软件评估。手机软件评估是评估手机软件运行中的风险控制措施,以更好地保证家用电器的应用安全。

手机软件评估的内容不是独立看手机软件本身。它必须从手机软件的整体方面分析系统的隐患和系统相关的风险。因此,它包括系统对设计方案、硬件配置结构和软件结构的综合检查,以及对所有软件开发过程的评估。

Class B关键是电气产品,如果使用电气产品MCU,而且MCU承担部分或全部安全维护功能,必须进行手机软件评估;如果MCU只要完成商品的作用,安全维护就由硬件配置进行,这种家用电器就不需要进行手机软件评估。

Class B软件库的结构

Class B程序流程分为两部分,查和运行时自查两部分。

在启动系统软件复位之前,将对上述所有资源进行全面检测,包括看门狗自检CPU存储器自查,FLASH自检、系统软件时钟自检、控制流自检。

在运行过程中,定期检查与安全相关的资源。

下图显示了启动过程中自检步骤和检测程序流程的部分。

按照程序执行timer导致周期时间按时终止,运行run time自查,实行run time自查前一定要读STL_InitRun TimeChecks()复位RAM在周期时间按时终断系统服务中进行检测。RAM主循环系统进行其他检测。

CPU存储器故障

在规范中,是的CPU存储器故障的定义是滞位故障,是指存储器的某个或多个位置为0或1,故障情况固定不变。

在测试中,我们选择Checkerboard旗盘存储器检测方法,将0或1分别输入要检测的模块,然后读取,看结果是否合适。旗盘检测输入被检测区域的数据信息的标准是,每个模块的值必须与相邻单位不同,一般选择55AA。

下面的图是STM32启动和运行时检测了什么?

下面的图是STM8启动和运行时检测了什么?

在程序执行过程中,还必须检测堆栈溢出,即在局部变量的边界部分定义边界检测区域,并放置独特的标记值。在程序执行过程中,应按时检测该区域的标记值。如果发生变化,则表出。

CPU程序计数器故障

在规范中对CPU程序计数器故障的定义也是滞位故障有两种检测方法,一种是单独的时间片检测,可以根据看门狗完成;另一种是程序程序的逻辑检测。

ST集成ic给两只不同时钟源的看门狗:对话框看门狗和单独看门狗。

当PC在某个地方或跑步时,对话框看门狗和单独看门狗可以集成ic校准。ST的Class B软件库还保证了编码。当系统软件启动时,检测对话框看门狗和单独看门狗,以确保对话框看门狗和单独看门狗工作正常。

下图是检测实施流程表

ST手机软件杜兰特还带来了系统控制流检测的完成方法,可以根据系统控制流检查数据是否被适当读取和进行。其完成方法是为每个必须检测的控制模块定义两个值。这两个值是不同的和唯一的。然后定义两个自变量进行记数,并在进入和退出每个控制模块时记录这两个自变量,然后在程序流程的固定部分检查这两个变量值,然后检查所有安全控制模块是否正确读取和执行。

下图是整个过程的平面图

系统软件时钟故障

系统时钟故障是指不正确的下落不明频率,所选的检测方法是将时钟频率与单独的固定频率进行比较。

下面的图是STM32启动时检测系统软件时钟的步骤

STM时钟的检测方法与前面描述的启动方法相同。

下面的图是STM8启动时检测时钟的步骤

STM8操作时的检测与启动时相似

非易失存储器——FLASH故障

FLASH故障是指所有单比特犬都不正确,通常使用CRC检测方式。

启动和运行时必须对齐FLASH实际检测全过程如下:

启动时的检测方法是在编译程序时计算所有FLASH的CRC并存储验证值FLASH最后一部分。启动时,用同样的优化算法再次计算所有FLASH的CRC并存储验证值FLASH中的CRC比较验证值。

在操作过程中,不能一次性检查全部FLASH,在这种情况下,实施时间过长会危及应用软件的实施,因此必须对其进行处理FLASH分层逐步计算最终分层CRC验证值,然后将最终结果与适当的结果进行验证CRC比较验证值。

这里简单介绍一下。CRC校验

CRC验证是对传输数据和存储中的不正确检测技术,应用程序转换为代数,对初始信息内容进行模二乘法,除数为CRC校验码。CRC验证码和初始信息内容一起推送,接受方以同样的方式 完成数据数据的计算,然后接收到CRC代码进行比较,不同的是数据信息在传输中被破坏。

STM32的CRC控制模块

全部的STM32集成ic都含有CRC控制模块,CRC默认设置模块应用程序CRC32代数型,部分集成ic适用于可编代数式,如STM32F3或是是F0系列产品可计算8位、16位和32位数据信息CRC值。CRC默认值默认为0xFFFFFFFF,STM32F0和STM32F3可以改变默认值,也可以根据存储器设置对键入数据信息和导出数据信息进行展位翻转,而不是默认设置下的数据信息展位翻转。

在IAR7.2中如何配置CRC

在IAR中配备CRC要做两项工作,首先是项目选择项Checksum在网页页面中,根据应用程序CRC配备主要参数,如果应用CRC如果默认设置主要参数,可根据下图进行配置

在第二份工作中linker文件中特定CRC在FLASH中间的存储部分。

Keil中怎样加上CRC值

Keil并不像IAR在程序运行过程中计算可以方便地使用CRC并存储值FLASH必须使用外部专用工具独立计算特定部位CRC手动添加编码的值FLASH结尾。

RAM故障检测

启动时应用March C检测,全部RAM区域检测。

操作时只存储Class B检测自变量区域。

March C优化算法

March C算法分为六个步骤,按照详细地址的增减顺序对所有检测模块进行写0和写1检测。

March X优化算法比March C少正中间的两个过程。

除开March C优化算法也可以使用STM32的SRAM硬件配置奇偶校验RAM开展检测。STM部分集成32ic适用于此功能。

我们可以应用STM32集成ic的SRAM奇偶验证的硬件配置也可以是奇偶验证的硬件配置和手机软件March检测融合甚至可以实现Class C要求。应用硬件配置奇偶校验时,建议先向全部提出SRAM复位室内空间,防止不正确。

在应用软件中,我们无疑会遇到新的改进Class在自变量的情况下,我们必须做的是根据下图所强调的库函数对新的文件格式进行处理Class同时,必须根据客户应用软件进行自变量声明Class B在IAR可根据变化进行改变linker完成文件,在keil中必须在stm32fxxx_STLparam.h文件中的变更。

内部数据信息途径故障

内部数据信息渠道故障包括数据信息不正确和地址搜索方法不正确。对于这两个故障,仅规定使用外部存储器的微处理器和单片微控制板。

终断故障

中断故障是指未中断或中断过于频繁,可选择的检测方法是每次中断计数自加:

定期检查计数值(间隔由单独的计时器驱动),然后检查在固定不动时间内是否导致必要的最终频率。

外部通信故障

外部通信故障包括数据信息故障和详细地址故障,可选择:

提传输数据中,提高沉余信息内容、奇偶校验、CRC根据具体应用选择验值等。

带硬件配置CRC的外接设备

外部通信故障还有一个时钟频率故障,与前面提到的最终故障相同,可以选择:

在每个通信事件中,计数都是自加的,计数值是定期检查的(间隔时间由独立计时器驱动),然后检查是否在固定时间内使用必要的通信事件频率。

I/O外部设备故障

I/O包含数据的外部设备I/O口与仿真模拟I/O可选择的检测方法有:

必须能够检测数据I/O口腔的所有故障很可能必须与应用中其他部件的工作进行检查。(例如,温度传感器检测到的温度在加热管电源开关操作管脚转换后是否发生变化)。

仿真模拟I/O口腔检测方法如下:

应用到的pin脚应根据一定的时间间隙进行检测。空余管脚可用于检测应用中使用的模拟端口号。还必须检测内部参考源。

登录电堂网站观看大量课程内容

高科技电堂
相关标签: