laocuo1142 发表于 2021-5-21 14:23

MM32F013x——IEC60730-1 B类认证软件设计指南(一)

家用电器制造商在设计时就被要求考虑到设备的安全性,产品的硬件和软件要求遵循相关的安全标准,所以很多新技术解决方案被应用在产品中。 IEC60730 ClassB 认证简介在全球范围内,IEC(国际电工委员会)、UL(美国保险商实验室)及CSA(加拿大标准协会)颁布了全球公认标准,主要针对电气设备有了规范和要求。该标准被TUV及VDE(大部分在欧洲)、UL及CSA(目标市场在美国和加拿大)等机构认可,并被要求应用在认证程序中。
IEC(国际电工委员会)是由所有国家电工委员会组成的世界性标准化组织,IEC针对家用电器的正常安全运行制定了安全标准IEC60730。

laocuo1142 发表于 2021-5-21 14:25

IEC60730安全标准里面定义了多种测试和诊断方法,确保面向家用电器的嵌入式控制硬件和软件的安全运行。IEC60730安全标准主要针对安全和性能、环境、电能效率及其可再生能力,其标准为硬件及软件解决方案提供建议,根据应用目的,这些标准可分为若干安全等级。
家用电器制造商必须采取措施,以确保其产品的安全和可靠地运行,以符合IEC60730标准。IEC60730标准涵盖了交流电器的机械、电气、电子、EMC和交流电器的异常操作,包括为自动电子控制定义的三种软件分类:
A类功能,如房间恒温器、湿度控制、照明控制、计时器和开关,它们的区别在于不依赖于设备的安全。
B类功能,如热切断装置,旨在防止洗衣机、洗碗机、烘干机、冰箱、冰柜和炊具等电器的不安全操作。
C类功能,旨在防止特殊危险,如爆炸。这些包括自动燃烧器控制和封闭的热水器的热切断。
MM32开发出多种安全特性和软件开发包(包括IEC60730安全库),可帮助大型电器市场的自动化控制制造商满足IEC60730 B类规范。

laocuo1142 发表于 2021-5-21 14:29

ClassB 验证
#01ClassB 软件库
1.1    评估的目的
对软件启动时自检和运行时自检,对风险控制措施进行评估;
确保在使用电器时安全,对人体不会造成伤害。


1.2    评估的内容
对硬件结构和软件结构的综合检查,防止系统性问题;
对软件开发过程的评估,针对程序潜在性风险进行检查。


1.3    评估的对象

laocuo1142 发表于 2021-5-21 14:30


[*]家用电器如果同时具备以下两个条件,就应当进行软件评估:
1、使用可编程电子电路,即嵌入式微控制器MCU;
2、可编程电子电路具有安全保护功能。
比如具有过热控制的电磁炉,带自动门锁控制的洗衣机等。


[*]如果MCU仅实现产品功能,安全保护由硬件进行,这类家电不需要进行软件评估。

#02 MM32提供的示例代码测试项
(1) CPU寄存器测试
(2) 时钟验证测试
(3) 不变存储器FLASH验证测试
(4) 可变存储器RAM验证测试
(5) 看门狗验证测试
(6) 控制流程检查验证测试

MM32 ClassB所有示例代码的源码向所有有需要的用户开放,用户可以将它们添加到现有的项目中。

laocuo1142 发表于 2021-5-21 14:34

#03 验证方法
3.1    MCU相关故障检测

3.2    应用相关故障检测


其他的对应控制模块也需要从应用层进行自检,具体的实现方式需要根据具体的应用需求进行评估,今天不做过多的假设。

laocuo1142 发表于 2021-5-21 14:37

#04 系统测试流程

MCU在上电的时候会进行复位启动,在启动完成以后会进行运行自检,ClassB系统流程如下:


laocuo1142 发表于 2021-5-21 14:45

4.1    启动自检
CPU寄存器进行自检操作,如果检测没有故障则进行看门狗的自检,如果有故障则进行故障的处理。看门狗自检流程与CPU寄存器自检的流程一致,后面依次会进行FLASH,RAM以及时钟自检,启动自检完成以后会进入程序的主循环函数中。

启动自检流程如下


laocuo1142 发表于 2021-5-21 14:52

4.2    运行自检
在主循环中会定期的进行自检操作,在进行自检操作的时候会依次进行如下操作:CPU寄存器的自检、栈自检、时钟自检、FLASH自检、并设置定时器定时进行RAM自检,如果在自检的过程中出现故障则会进行故障的处理。

运行自检流程如下

以上就是ClassB的整体的测试流程。

laocuo1142 发表于 2021-5-21 14:55

#05 代码整合
如果用户已经开发好相关的应用控制程序,只需要在原有的应用程序中添加ClassB的程序,操作方法如下:

1、在原有的工程框架中添加ClassB的相关.c和.s文件





2、在执行用户程序之前,先执行相关的变量初始化及监测、校准时钟。STL_InitRuntimeChecks();
3、设置WWDG和IWDG功能,防止其在程序正常运行时复位。WWDG_Init(0xFF,0x7F);Iwdg_Init(IWDG_Prescaler_4, (LSI_Freq/4000-2));


4、设置启动和运行时的RAM和FLASH检测范围,crc校验的范围,checksum在Flash中存储的位置。STL_FlashCrc32Init();

5、ClassB变量的存储地址范围,堆栈边界检测区的位置,对检测到的故障进行处理。

6、根据具体的应用,增加用户相关的故障检测内内容,根据具体应用定义程序运行时自检的频率,相关的变量设置MM32_STLparam.h文件中。


7、主循环中调用STL_DoRunTimeChecks()STL_DoRunTimeChecks();

今天主要介绍了ClassB软件的作用、框架和流程等,后续**将逐一介绍MM32F013x在各个自检过程中的实现方式。


dongnanxibei 发表于 2021-5-21 16:07

挺难搞的啊。

xinxianshi 发表于 2021-5-21 18:39

这个要求,我们没做过。

yangjiaxu 发表于 2021-5-23 17:34

没做过 来学习一下

Charlotte夏 发表于 2021-5-27 22:38

没做过家用电器,但是吧很多都有个标准,今天又了解了新鲜标准—— IEC60730 ClassB 认证

iotyib 发表于 2024-6-20 17:16

你好,目前在用MM32的芯片,代码可以分享学习一下吗

lidi911 发表于 2024-6-21 07:50

楼主有这个标准的源文件吗?

Bowclad 发表于 2024-6-27 18:28

家电标准高吗?

地瓜patch 发表于 2024-6-28 14:35

认证是为了更安全,可是很多检测机构只能嘿嘿
页: [1]
查看完整版本: MM32F013x——IEC60730-1 B类认证软件设计指南(一)