关于家电软件评估.docx
《关于家电软件评估.docx》由会员分享,可在线阅读,更多相关《关于家电软件评估.docx(11页珍藏版)》请在冰豆网上搜索。
![关于家电软件评估.docx](https://file1.bdocx.com/fileroot1/2023-1/11/cc8217bf-cc13-4fda-a639-25f6f085118e/cc8217bf-cc13-4fda-a639-25f6f085118e1.gif)
关于家电软件评估
关于家电软件评估
1、软件评估的来源
IEC60335-1:
2004(Ed.
4.0:
2001+A1:
2004)《家用和类似用途电器的安全第一部分通用要求》第
4.1版增加了“附录R软件评估”和三个相关定义(
3.9.3/
3.9.4/
3.9.5)。
IEC60335-1:
2006(Ed.
4.2)对附录R做了修改。
IEC60335-1I-SH01:
2007对
22.46做了解释,没有任何实质性变化。
IEC60335-1:
2010Ed.
5.0对此作了全面的修改。
取消了B/C类软件的分类,在通用要求中只提出了表R1的控制措施要求,相当于针对B类软件;R2要求相当于C类软件。
标准的变化反映了IECTC61这帮电工们对软件评估这类现代技术不熟悉,但在逐渐改善。
目前国内使用的版本是G
B4706.1-2005,相当于IEC60335-1:
2001+A1:
2004。
在CB认证中,按照IEC60335-1:
2001+A1:
2004+A2:
2006;在3C认证中,具体实施软件评估时,对G
B4706.1-2005做偏离说明,否则乱做多做对企业和工程师都无益。
软件评估的来源,应该说是软件评估要求的来源。
软件评估的标准,讲的比较全的是IEC61508(Functionalsafetyofelectrical/electronic/programmableelectronicsafety-relatedsystems)这个一个系列的标准,60335-1的annexR和60730的相关部分都是引用这里的一些内容的。
2、那些家电需要软件评估
内嵌可编程电子电路(PEC),就是单片机,用保护功能,就叫可编程保护电子电路,
保护功能:
例如过热、爆炸、燃烧、电磁辐射、机械损伤,等等。
目前看主要是电磁灶、微波炉、部份智能洗衣机、部份贮水式热水器、变频空调器,等等。
软件评估费时费力,是不是能够绕开?
回答:
能!
就是不考虑软件控制的保护功能。
但是,按照
19.11.3的要求,就要进行doublefaults故障模拟,即要增加相当于软件控制的保护功能的硬件,可以实现,但很难成功。
(335-1ed.
4.1)
19.11.3如果器具装有使器具符合第19章要求的保护电子电路,则按
19.11.2中a)~f)的要求,相关试验以模拟单一故障的方式重复进行。
ed.
4.2有个g)failureofanelectronicpowerswitchingdeviceinapartialturn-onmodewithlossofgate(base)control.Duringthistest,windingtemperaturesshallnotexceedthevaluesgivenin
19.7.
以这条要求考核目前家电功率开关管的电路结构,基本上都不合格。
有些产品的结构从目前来看是没有硬件保护的,比如直流无刷电机,这个就必须通过软件保护。
到目前为止没有看到过有通过硬件来保护的。
另外通过60335的
19.11.3是不能完全来评估的,我们需要了解产品是怎么工作的,比如系统中的时钟频率出错,可能会导致多个元件不工作,这个需要通过软件来模拟的才能知道的。
3、要求
以目前使用的标准IEC60335-1:
2001+A1:
2004+A2:
2006
在第22章结构第
22.46条:
在保护电子电路中使用的软件,应为B类或C类软件。
依据附录R通过软件评估确定其是否合格。
软件评估按照附录R要求进行,评估方法和流程程序采用了IEC60730-1(G
B14536.1)《家用和类似用途电自动控制器第1部分:
通用要求》的附录H。
3.9.3保护电子电路protectiveelectroniccircuit防止非正常运行状态下出现危险的电子电路。
注:
电路中的部分也可以起到功能作用。
3.9.4B级软件softwareclassB
含有代码的软件,用于防止器具由于非软件故障而引起的危险。
3.9.5C级软件softwareclassC
含有代码的软件,用于防止没有使用其他保护装置时出现的危险。
现有的60335中的定义完全不可用,用这个是没有办法定义是classB还是ClassC的,这里只是说了classB和ClassC的作用,而没有说明什么是ClassB和ClassC,估计今年新版的IEC60335-1要发行了,里面会给出新的定义。
其等级是根据保护失效后引起的危险程度来分的,具体在-2部分中指出,否者就是ClassB。
也就是说标准会告诉你软件等级的。
注意这个Ed.
4.2与G
B4706.1-2005版有不一致的地方
AnnexR
(normative)
Softwareevaluation
SoftwareshallbeevaluatedinaccordancewiththefollowingclausesofAnnexHofIEC60730-1,asmodifiedbelow.
H.2Definitions
OnlydefinitionsH.
2.16toH.
2.20areapplicable.
H.7Information
Onlyfootnotes12)to16)and18)ofTable
7.2areapplicable.
Infootnote15),replace“therequirementsof17,25,26and27”by“
19.13ofIEC60335-1”andreplace“H.27”by“
19.11.2ofIEC60335-1”.
H.
11.12Controlsusingsoftware
AllofthesubclausesofH.
11.12asmodifiedbelowareapplicable,exceptsubclausesH.
11.12.6andH.
11.12.
6.1whicharenotapplicable.
Inthesecondparagraph,replace“requiredinitems66to72inclusive”by“referredtoinfootnotes12)to16)and18)inclusive”.
H.
11.12.7Delete“andidentifiedintable
7.2,requirement68”.
H.
11.12.
7.1Replacethetextbythefollowing:
ForappliancesusingsoftwareclassChavingasinglechannelwithself-testandmonitoringstructure,themanufacturershallprovidethemeasuresnecessarytoaddressthefault/errorsinsafetyrelatedsegmentsanddataindicatedinTableH.
11.12.7-
1.
H.
11.12.8Replacethetextbythefollowing:
19.13ofIEC60335-1isimpaired.
H.
11.12.
8.1Replace“resultintheresponsedeclaredintable
19.13ofIEC60335-1isimpaired”.
H.
11.12.13Replacethetextbythefollowing:
19.13ofIEC60335-1isimpaired.
4、家电软件评估——评估什么?
目前许多人都是糊涂的:
软件评估什么?
了解软件评估的以为是黑盒白盒测试,其实跟黑盒测试毫无关系。
先看IEC60335标准的目标:
就是保证家电的安全使用;
有了电子电路,就要按照
19.11.2测试,检查电路故障情况下安全是否得到保障;
如果有保护电子电路,在
19.11.2试验中它就要起作用;在19.11.3中还要对保护电子电路进行故障模拟,同样是检查安全是否得到保障;当故障模拟试验进行到
19.11.2的a)~f)时,由于同时要进行
19.11.3的a)~f)故障模拟,这就出现了doublefaults状态;
如果保护电子电路使用的是可编程电子电路PEC,上述测试就是黑盒测试,检查安全保护功能是否完善。
这些保护功能相当于一个安全卫士,通过了
19.11.2和
19.11.3的测试,说明这个卫士称职;
问题来了,这个卫士称职归称职了,但要是他的身体状况不咋地,不能保证及时处理不安全现象,就不能保证安全功能及时实现,就是称职而不胜任;
这个时候就要对这个卫士进行体能评估,就要考虑他万一缺胳膊少腿中毒脑残怎么办,这就是软件评估的主要内容:
控制故障/错误的措施。
故障/错误的发生地指的是智能控制器内部硬件,不是其它。
对于单片机构成的控制器,就是要考虑哪个硬件出了问题,软件控制程序内应有保障器具使用安全的措施。
这个是所有做软件评估的工程师要清楚的。
但是可惜这个并没有讲清楚。
其实软件评估实际上不是来评估软件的,它是用来评估硬件的,看一看,在annexR或60730的annexH中模拟的是哪些错误就知道了。
因为在集成电路或芯片中,电子元件的开路和短路是没有办法通过实际的短路开路来实现,只能通过软件来模拟它失效的。
众所周知的是计算机是二进制代码的,所有的存储是0和1两种形式,stuck-at是指其存储单元坏死,固定在0或者1上的。
DCfault是指内部短路。
芯片制造是刻一层线路涂一层很薄的绝缘很多层线路和绝缘层就组成了芯片。
两个带电位的节点和这个绝缘会形成类似“电容”对任意两个节点短路就相当于对一个“电容”短路。
当通过软件控制电子开关管的断开实现保护时,这个的评估是必然的,同时模拟两个错误也无法实现对软件的模拟。
因为你不知道当芯片内的计数器或其他元件的出错是否会使所有的开关管失效。
除非产品还有另外的机械保护器。
5、家电安全功能软件——结构设计
要软件实现安全控制功能,同时要软件能够运转流畅,就要在设计阶段把好关,即避免错误的措施。
这方面在目前的标准中提得笼统,下面介绍Ed.
5.0的要求。
软件安全要求规范应包括:
——每个要执行的安全相关功能的描述,包括响应时间:
——涉及应用的功能,包括相关软件类别;
——涉及检测、公布和管理软件或硬件故障的功能;
——软件和硬件之间接口的描述;
——任何安全相关功能和非安全相关功能之间接口的描述;
——任何用于把源代码生成目标代码的编译器的描述,包括用于像库函数选项、存储模式、优化方法、SRAM细节、时钟等级及芯片细节的编译器开关设置的细节。
软件结构规范应包括下列方面:
——控制软件故障/错误的技术和措施(参见R.
2.2)。
——硬件与软件之间的相互作用。
——分成模块和指定安全功能的分配。
——模块的层与调用结构(控制流)。
——中断处理。
——数据流及数据存取限制。
——数据结构与存储。
——顺序和数据相关性的时间
在评估过程中需要提供符合上述要求的证明文件,一般是利用下属框图来说明的:
——逻辑/功能块框图;
——顺序框图;
——有限态机/状态转换框图;
——数据流框图
软件的功能需要模拟或刺激测试试验:
——正常操作期间出现的输入信号;
——预料发生的现象;
——要求系统动作的不希望的情形。
目前,对大多数企业来说,由于条件限制,采用仿真器或直接使用产品无法实现这些模拟实验,可行的方法还是软件模拟。
软件保护功能是产品的保护功能之一,仔细看看
19.11.2和
19.11.3就会明白,单靠软件一路控制保护功能是不够的。
以往的测试经验在这里部分有用,就是非正常测试,提示安全功能是否到位,涉及软件分析评估就是另一个领域了,电工知识和经验不太容易入门。
结构是设计并不是很难,如果不是产品本身有天生的缺陷的话,目前困扰中国厂家的是软件的拥有权,一般的厂家的线路板是外包的,而线路板的厂家的软件可能是请人设计的。
而在做软件评估时,我们需要知道最底层的代码,如果整机厂家无法拿到这个代码并请软件工程师配合的话,根本无法做评估。
软件评估必须请软件工程师一起来测试的!
!
!
6、控制软件故障/错误的技术和措施
这是考虑软件运行期间遇到故障/错误怎么办的问题。
所谓故障fault,基本上是有单片机内部元器件问题引起软件工作不正常,通常划归为两种:
stuck-at滞位和DC故障。
error,不是中文中“错误”的意思,这是翻译问题,应该称作“偏离”,即偏离正常值的一种现象,常见的如ADC/CDA转换。
stuck-at故障就是电路不能正常反转,粘滞在某个电平的现象;
DC=directcurrent故障,也是一种stuck-at故障,一种短路故障,短路中的电平会发生变化,取决于哪根短路线强势。
一般软件设计人员不会考虑这些故障的,所以程序中不存在控制措施。
控制措施的作用就是,当软件运行中遇到这些故障/错误时,为了保障产品安全,即应当及时处理这些故障/错误,就是该断路就断路、该停机就停机,不要让危害发生。
这就是标准对软件的要求。
单片机的故障模型不只Stuck-at和DCfault,另外还包括CF(CouplingFault)PSF(pattensensetivefault)等等。
当然这些故障模型用imarchC算法或者其改进算法可以检测,配合冗余校验和适当编码还可以纠正。
然而这只是60730附件H中的一小部分(335附件R引用730的附件H)。
另外还要参考IEC61508的部分要求,60335-1引用了61508的部分措施。
softwareevaluation比较麻烦,国内似乎做的不多。
现在很多时候都绕过这一部分评估。
但是随着家电功能的越来越复杂,软件的安全作用越来越关键,这个评估早晚还是要做的。
Stuck-at和DCfault属于持续故障;
CF和PSF属于短时故障;
CF和PSF可能引发stuckat或DC故障,诸多诱因之一。
对整机来说,stuck-at就是“死机”;要是这样,软件算是过关了;要是某个元件或针脚"stuck-at"了,整机还在工作,这就麻烦了,对应的处理方法就是控制故障/错误的措施。
335的要求针对的是安全控制功能。
这个在annexR中已经有了,按照那个一个做就可以了,60730的annexH和这个差不多的。
7、引起故障的常见原因
stuck-at或DC故障是许多故障的归类,直觉感到这种分类太笼统,但一时也找不到更好的解释。
什么因素导致故障?
标准没有说,因为太多的因素,估计编标准的人一时也反应不过来,这需要时间积累。
常见的导致stuck-at或DC故障的因素是:
静电:
集成电路内部的cmos管很容易击穿;
传导电磁骚扰:
类似浪涌、脉冲群;
机械损伤:
跌落等;
无线骚扰:
外界和电路设计不当,导致信号失真;
其它的,大家补充
控制故障/错误措施
控制故障/错误的措施,这是硬的要求,在程序中必须有的内容。
IEC60730-1H.
11.12.7控制故障/错误的措施
control-measures
控制措施
它显示了所有的检查内容,很明显它所涉及的内容都是控制器硬件,就是考虑哪个部件一旦出现故障应该怎么办。
下面举例说明采取怎样的措施才可以。
以存储器为例,采用通用60335-1Ed.
5.0标准的要求,相当于B类软件。
Memory如4.1不可变存储器,就是ROM,对应B类软件,有三种措施选项,任选一种或几种的组合:
周期修改的检查和;或H.
2.19.
3.1多重检查和H.
2.19.
3.2带有一位冗余的字保护H.
2.19.
8.2
这条要求中,就是选H.
2.19.
3.1或者H.
2.19.
3.2再加上H.
2.19.
8.2下面是这几条措施的定义,也就是方法,实现的途径很多,如何实现取决于编程员的个人偏好。
H.
2.19.
3.1修改的检查和modifiedchecksum产生并贮存代表贮存器中全部宇内容的一个单字的一种故障/错误控制技术。
在自检期间,从相同的算法中形成一个检查和,并与被贮存的检查和比较。
注:
本技术识别所有奇错误和某些偶错误。
H.
2.19.
3.2多重检查和multiplechecksum
产生并贮存代表待测贮存区域内在的一个独*立字的一种故障/错误控制技术。
在自检期间,从相同的算法形成一个检查和并与为该区域的贮存的检查和比较。
注:
本技术识别所有奇错误和某些偶错误。
H.
2.19.
8.2带有一位冗余的字保护wordprotectionwithsinglebitredundancy把一位加到被试贮存器区域的每一字,并且贮存的一种故障/错误控制技术,产生的奇偶性或者为奇数或者为偶数。
当读每一字时,进行奇偶性校验。
注:
本技术识别所有的奇数位错误
对于整个控制系统,控制措施的工作量很大,可能比使用功能的工作量还大,其间涉及到时间节点等问题,所以,程序员很头痛。
高手不少,我认为现在国产的电器虽然用了些软件控制,但不是全智能,也就是不是B程序,软件评估不难,但做成B类程序软件就难了,开发费用和认证费用都是比较高的,而且不见效益.所以我国是"不提倡鼓励的"。
软件评估是个比较麻烦的事情,一般我都会建议工厂避开这个环节,在保留软件控制的保护功能的同时,增加一个硬件控制的保护装置,如直接接在电源极的温度保险丝等等,这样,即使软件失效,在发生危险的时候,还有硬件保护这一保护功能。
如何实现相对应的保护措施?
这个需要一些计算机硬件和软件的知识单不需要太深,知道一点就可以了,而且也可以边做案子边学习的。
举个简单的例子,奇偶校验,一般计算机发出的指令都是一串二进制代码,如果01110,把这个代码的所有的0和1相加得到5,也就是奇数,当有一个0变成1或有一个1变成0时,所有的1和0加起来就是偶数了,这时通过奇偶校验就会被发现,因为其接受的条件是指令代码必须是奇数,偶数就说明出错了,指令会被拒绝。
另一个要知道的是,奇偶校验只能发现一位0或1出错的情况,当有两位数字同时出错,是发现不了的。
所以在要求更高的classC软件中,奇偶校验被认为不能满足保护的要求。
在安全问题方面主要表现在:
1、误操作会不会引发事故或者对人和环境造成危害。
2、有无外围保护电路。
如过热,过载之类,在微片不能工作或者传感器失效情况下不出现事故。
按照60730附录H的要求执行,软件评估虽然标准里有讲到,但实际操作难度非常大,而且成本也非常高。
目前安规在这方面还是通过结构和非正常测试来达到标准的要求。
看看这个:
1家用电器软件评估概要<<安全与电磁兼容>>2009年第01期2家用电器软件评估要求<<安全与电磁兼容>>2009年第04期3家用电器软件评估注意事项<<安全与电磁兼容>>2010年第01期其中,“家用电器软件评估注意事项”最有参考价值。
家电软件评估指的是对控制安全功能的软件进行的可靠性评估,涉及风险解决方案、硬件结构、软件结构,以及家电运行中对控制单元硬件故障/错误处理措施,内容非常复杂。
可靠性评估是寻找证据,就是你的控制器在遇到问题时能够及时处理,保证不发生不安全现象。
目前面临的问题是:
1标准混乱
2编程员不懂安全要求,不理解处理措施干什么,也编不出合理的处理措施,也搞不出模拟试验
3验证软件的方法是静态视检,就是逐条分析程序,这叫代码级评估。
4再就是动态模拟。
动态模拟方法有三种:
(1)产品模拟,开发人员搞不了信号源,运行结果不那么准确但可以评估部分处理措施是否到位。
(2)仿真器模拟,这叫芯片级评估,问题一样,信号源难搞,如果信号源都搞出来了,就是一个大工程,企业一般不会这么干。
(3)软件模拟,开发程序都能debug,可以进行代码级模拟;再就是利用keil+Proteus构成模拟平台,这个动态效果最好,比上变得任何方法都好。