打印
[MM32软件]

(分享)灵动微课堂 MM32F013x——IEC60730-1 B类认证软件设计...

[复制链接]
3498|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2021-5-19 15:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
用电器制造商在设计时就被要求考虑到设备的安全性,产品的硬件和软件要求遵循相关的安全标准,所以很多新技术解决方案被应用在产品中。 IEC60730 ClassB 认证简介在全球范围内,IEC(国际电工委员会)、UL(美国保险商实验室)及CSA(加拿大标准协会)颁布了全球公认标准,主要针对电气设备有了规范和要求。该标准被TUV及VDE(大部分在欧洲)、UL及CSA(目标市场在美国和加拿大)等机构认可,并被要求应用在认证程序中。
IEC(国际电工委员会)是由所有国家电工委员会组成的世界性标准化组织,IEC针对家用电器的正常安全运行制定了安全标准IEC60730。

使用特权

评论回复
沙发
jcky001|  楼主 | 2021-5-19 15:42 | 只看该作者
IEC60730安全标准里面定义了多种测试和诊断方法,确保面向家用电器的嵌入式控制硬件和软件的安全运行。IEC60730安全标准主要针对安全和性能、环境、电能效率及其可再生能力,其标准为硬件及软件解决方案提供建议,根据应用目的,这些标准可分为若干安全等级。

使用特权

评论回复
板凳
jcky001|  楼主 | 2021-5-19 15:42 | 只看该作者
家用电器制造商必须采取措施,以确保其产品的安全和可靠地运行,以符合IEC60730标准。IEC60730标准涵盖了交流电器的机械、电气、电子、EMC和交流电器的异常操作,包括为自动电子控制定义的三种软件分类:
A类功能,如房间恒温器、湿度控制、照明控制、计时器和开关,它们的区别在于不依赖于设备的安全。
B类功能,如热切断装置,旨在防止洗衣机、洗碗机、烘干机、冰箱、冰柜和炊具等电器的不安全操作。
C类功能,旨在防止特殊危险,如爆炸。这些包括自动燃烧器控制和封闭的热水器的热切断。
MM32开发出多种安全特性和软件开发包(包括IEC60730安全库),可帮助大型电器市场的自动化控制制造商满足IEC60730 B类规范。

使用特权

评论回复
地板
jcky001|  楼主 | 2021-5-19 15:43 | 只看该作者
ClassB 验证
#01ClassB 软件库
1.1    评估的目的
对软件启动时自检和运行时自检,对风险控制措施进行评估;
确保在使用电器时安全,对人体不会造成伤害。


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


1.3    评估的对象
家用电器如果同时具备以下两个条件,就应当进行软件评估:

1、使用可编程电子电路,即嵌入式微控制器MCU;
2、可编程电子电路具有安全保护功能。
比如具有过热控制的电磁炉,带自动门锁控制的洗衣机等。

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

使用特权

评论回复
5
jcky001|  楼主 | 2021-5-19 15:52 | 只看该作者
#02 MM32提供的示例代码测试项
(1) CPU寄存器测试
(2) 时钟验证测试
(3) 不变存储器FLASH验证测试
(4) 可变存储器RAM验证测试
(5) 看门狗验证测试
(6) 控制流程检查验证测试

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

使用特权

评论回复
6
jcky001|  楼主 | 2021-5-19 15:53 | 只看该作者
#03 验证方法
3.1    MCU相关故障检测

3.2    应用相关故障检测



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

使用特权

评论回复
7
jcky001|  楼主 | 2021-5-19 15:55 | 只看该作者
#04 系统测试流程

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


使用特权

评论回复
8
jcky001|  楼主 | 2021-5-19 15:56 | 只看该作者
4.1    启动自检
CPU寄存器进行自检操作,如果检测没有故障则进行看门狗的自检,如果有故障则进行故障的处理。看门狗自检流程与CPU寄存器自检的流程一致,后面依次会进行FLASH,RAM以及时钟自检,启动自检完成以后会进入程序的主循环函数中。

启动自检流程如下:


使用特权

评论回复
9
jcky001|  楼主 | 2021-5-19 15:57 | 只看该作者
4.2    运行自检
在主循环中会定期的进行自检操作,在进行自检操作的时候会依次进行如下操作:CPU寄存器的自检、栈自检、时钟自检、FLASH自检、并设置定时器定时进行RAM自检,如果在自检的过程中出现故障则会进行故障的处理。

运行自检流程如下:

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

使用特权

评论回复
10
jcky001|  楼主 | 2021-5-19 16:00 | 只看该作者
#05 代码整合
如果用户已经开发好相关的应用控制程序,只需要在原有的应用程序中添加ClassB的程序,操作方法如下:

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


使用特权

评论回复
11
jcky001|  楼主 | 2021-5-19 16:01 | 只看该作者
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();

使用特权

评论回复
12
jcky001|  楼主 | 2021-5-19 16:03 | 只看该作者
5、ClassB变量的存储地址范围,堆栈边界检测区的位置,对检测到的故障进行处理。

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


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

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

使用特权

评论回复
13
yangjiaxu| | 2021-5-23 17:38 | 只看该作者
这个挺好 能快速出产品

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1522

主题

4618

帖子

6

粉丝