这篇文章给各位介绍一下IEC60335 Class B ST MCU软件库。
最先,我们要了解什么是软件评定。手机软件评定是对手机软件运作时的风险控制措施开展评定,目的是为了更好地保证家用电器的应用安全性。
手机软件评定的內容并并不是独立地看手机软件自身,它必须从手机软件总体的方面来数据分析系统存有的隐患和系统有关的风险性,因此它包含了系统对设计方案、硬件配置构造和软件结构的综合性查验,还包含对全部软件开发过程的评定。
Class B关键对于电器产品,假如电器产品中采用了MCU,而且MCU担负了一部分或是所有的安全性维护作用,那么就必须开展手机软件评定;而假如MCU只是完成商品的作用,安全性维护由硬件配置开展,那这种家用电器不用开展手机软件评定。
Class B软件库的构造
Class B程序流程分成2个一部分,启动时的自查和运转时的自查。
启动时在开展系统软件复位以前,会对全部使用的上面資源做一个总体检测,包含看门狗自查、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给予2个不一样时钟源的看门狗:对话框看门狗和单独看门狗。
当PC滞位在某一地方或是跑飞时,对话框看门狗和单独看门狗可以对集成ic校准。ST的Class B软件库也保证了编码,在系统软件启动时对对话框看门狗和单独看门狗开展检测,确保对话框看门狗和单独看门狗工作中一切正常。
下面的图是检测的实行流程表
ST手机软件杜兰特还带来了系统控制流检测的完成方式,根据系统控制流可以检查数据是不是被恰当读取和进行。它的完成方式是,为每一个必须检测的控制模块界定2个标值,这两个数值是不一样并且是唯一的,随后界定2个自变量来开展记数,对这两个自变量各自在进到和撤出每一个控制模块时开展记数,随后在程序流程固定不动的部位对这两个变量值开展查验,进而来检测全部的安全性控制模块是不是被恰当读取和进行。
下面的图是对整个过程的平面图
系统软件时钟故障
系统时钟故障指的是不正确的下落不明頻率,选用的检测方式是将时钟頻率和一个单独的固定不动頻率相较为。
下面的图是STM32启动时检测系统软件时钟的步骤
STM32运作时对时钟的检测方式与前边所叙述的启动时是一样的。
下面的图是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要做2个工作中,第一是在工程项目选择项的Checksum网页页面中,依据应用的CRC主要参数开展配备,假如应用的是CRC默认设置主要参数得话,可以依照下面的图开展配备
第二个工作中是要在linker文件中特定CRC在FLASH中的储存部位。
Keil中怎样加上CRC值
Keil并不像IAR可以很便捷的适用在程序运行时测算CRC的值,并储存在FLASH的特定部位,它必须采用外界专用工具独立测算CRC的值,并手动式加上编码将其放到FLASH结尾。
RAM故障检测
启动时应用March C检测,对全部RAM区开展检测。
运作时只对储存Class B自变量的地区开展检测。
March C优化算法
March C算法分成6步实行,它是各自依照详细地址增长和下降的先后顺序对全部的检测模块开展写0和写1的检测。
March X优化算法比March C少正中间的2个流程。
除开March C优化算法,还能够运用STM32的SRAM硬件配置奇偶校验作用对RAM开展检测。STM32的一部分集成ic是适用这一作用的。
我们可以应用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脚应当依照一定的時间空隙开展检测。空余的管脚可以用于检测运用中使用的仿真模拟端口号。内部参考源也必须开展检测。
登陆电堂网址收看大量有关课程内容
电堂高新科技