
本书是一本关于家用和类似用途电子控制器软件安全设计与测评的工具书,也是对 GB14536-1:2008附录H中使用软件控制器的安全要求的解读,介绍了电子控制器的MCU故障、存储器故障、系统运行故障、外设I/O故障、中断故障、时钟故障、通信故障等常见故障产生机理,结合标准的要求给出预防故障的软件安全性设计和实现方法实例,并通过实际工作积累实例介绍安全防护措施的测评验证方法。
序言 自18世纪中期以来,人类历史先后发生了3次工业革命:第一次工业革命开创了“蒸汽时代”(1760—1840年),标志着农耕文明向工业文明的过渡;第二次工业革命进入了“电气时代”(1840—1950年),使得电力、钢铁、铁路、化工、汽车等重工业兴起;第三次工业革命开创了“信息时代”(1950年至今),全球信息和资源交流变得更为迅速,工业化与信息化深度融合。3次工业革命的演进和积累使得人类发展进入了繁荣的时代。与此同时,这种发展方式也造成了巨大的能源、资源消耗,并付出了巨大的生态成本和环境代价,急剧扩大了人与自然之间的矛盾。人类开始意识到,粗放型发展方式是错误的,绿色、节约、高质量的发展方式成为21世纪的必然选择。 我国在前两次工业革命中发展迟缓,在第三次工业革命期间奋起直追,逐渐改变局面。特别是近些年来,中国空间站、深海蛟龙、太湖之光、中国天眼、华龙一号等成就举世瞩目。但同时应该清楚地认识到,我国众多产业中的关键零部件和材料仍依赖进口,基础产业仍处于“大而不强”的状态,如何进一步攻克核心领域的关键技术,如何全面提高核心产业的整体水平,如何快速实现我国经济发展的转型升级是中华民族伟大复兴之路的关键问题。 当前,软件已成为各行各业智能化、互联化的关键,广泛应用于金融、电力、交通、航天航空、国防等重点领域。随着软件的规模越发庞大、结构日趋复杂,会存在问题或缺陷,可能导致失效,甚至引发事故。软件的安全性、可信性成为业内广泛关注的焦点。软件安全性分析、设计、验证、维护等关键基础技术更加重要。 在这个问题的研究上,西方发达国家比我国先迈出了一步。1995年,麻省理工学院研究团队针对嵌入式软件安全性(Safety)发起了“MIT Safety Project”项目。依托此项目,该团队发表了大量关于软件安全性分析、安全需求管理、软件安全性设计和验证的论文、著作,为嵌入式软件安全性研究奠定了较好的理论基础。在此之后,该领域的研究得到了国际上的广泛关注。2000年,国际电工委员会发布了首个产品安全性标准—IEC 61508《电气/电子/可编程电子安全系统的功能安全》。该标准从研发过程管理、安全保障技术等多个方面对安全相关产品(含软件)提出了要求,得到了国际上知名检测认证机构(TUV、SGS、UL、CSA等)、领军企业(波音、空客、GE、ABB、宝马等)的广泛支持,在世界范围内产生了较大的影响力。 经过20多年的发展,以该标准为基础,结合各领域知识背景,已形成了适用于航空、核电、轨道交通、工业仪表、医疗电子、电驱设备、智能家电等领域的产品安全技术标准,涉及国计民生各个重点行业。虽然标准体系逐渐完善,但是功能安全相关标准仍比较松散,针对具体检测的技术方法、工具仍十分缺乏。因此,本丛书对软件功能安全相关标准进行了梳理,并从技术角度进行了总结,希望将来这些标准能成为系列,并有统一的归口。 当前,我国智能制造的发展需求十分迫切,本丛书对软件功能安全相关标准的条款进行了详细解析,并对重要条款的细则进行了详细介绍,希望能帮助读者理解和掌握标准条款的内涵,推动标准技术的正确应用,为广大读者做向导。本丛书由工业和信息化部电子第五研究所杨春晖副总工牵头,20多位有丰富软件安全性、软件质量、软件测试评估经验的一线专家和技术人员参与了编写工作。本丛书具有系统性、实用性和前瞻性,有助于读者全面、系统地了解和掌握软件功能安全技术的全貌。尽管对于书中一些具体概念的提法和技术细节可能存在不同的看法,但我认为:一方面,学术需要争论;另一方面,需要通过具体实践逐步走向共识。相信本丛书能间接促进轨道交通、汽车电子、智能家电等领域产品软件质量的提升并取得国际认证,助力我国智能制造的发展。 前言 在日常生活中,常用的冰箱、空调、空气去湿器、加湿器、洗衣机、电熨斗、电磁炉、微波炉、电烤箱、电饭煲、电热水器、破壁理疗机、空气能热水器、电视机等都属于家用和类似用途设备的范畴。这些设备中的电自动控制器是其大脑或神经中枢,控制这些设备正常工作,使这些设备可以使用电、气体、油、固体燃料、太阳能或其他能源更好地为人类服务。根据使用能源的不同,可将这些设备分为家用电器、燃气燃烧器具、燃油燃烧器具、太阳能器具等。家用电器是其中最为普遍的类型,是以电能(或机械化动作)进行驱动的用具,可执行家庭杂务,如做饭、食物保存或清洁,除了用于家庭环境,还可用于公司或工业环境。 家用电器产业已成为我国国民经济的重要组成部分,是消费品产业的重要支柱和主导产业,总产值占国民生产总值的比例有不断增长的趋势。根据奥维云网数据,2020年,我国家用电器产业国内累计销售额为7297亿元(涉及彩电、白电、厨卫、小家电产品等品类)。根据国家统计局公布的限额以上单位商品零售额数据,家用电器仅次于汽车、粮油食品类、服装类和石油及制品类,位居第五。 随着产业的发展和科技的进步,微处理器、传感器技术、网络通信技术被引入家电/商用设备,使其功能越来越强,智能化越来越成为用户对高端家电/商用设备的需求。但由此也带来了设备中越来越多的安全功能由相关的电子、可编程电子、软件实现,结构越来越复杂,相应的安全相关硬件和软件缺陷也将不可避免地给人、财产等带来安全危害,这就给家电/商用设备厂商提出了新的安全技术挑战。 电自动控制器对这些家用/商用设备的正常运行起着至关重要的作用,控制着设备的压力、温度等重要工作参数,避免设备出现超温、超压甚至起火、爆炸等危险,以保证设备安全工作。 1993年,IEC发布了标准IEC 60730-1:1993,国内现行标准为2008年由中国电器工业协会提出,由全国家用自动控制器标准化技术委员会归口的GB 14536.1—2008。目前,国际标准最新版更新为IEC 60730-1:2020。 IEC 60730-1适用于电自动控制器固有的安全、与设备安全有关的操作值/操作时间/操作程序、电自动控制器的试验、机械操纵或电操纵的电自动控制器(这些控制器能响应或控制各种特性,如温度、压力、时间、湿度、电压、电流、加速度等)等。IEC 60730-1对电自动控制器的试验、额定值、分类、资料、防触电保护、接地保护措施、端子和端头、结构、防潮防尘、电气强度、绝缘电阻、发热、制造偏差和漂移、环境应力、耐久性、机械强度、螺纹部件及连接、爬电距离、电气间隙、穿通固体绝缘的距离、耐热、耐燃、耐漏电起痕、耐腐蚀性、电磁兼容发射和抗扰度、正常操作、非正常操作、电子断开使用导则等进行了要求和规范。 本书详细讲述了GB 14536.1—2008中安全相关软件研发的技术要求,详细解读了安全相关控制器软件的开发要求、控制器安全相关部件的常见故障及故障检测设计要求,给出了 B 类控制软件的主要常见故障检测设计流程图和伪代码,并分析解读了新标准IEC 60730-1:2020的变更和新增要求,对安全相关软件研发的生命周期要求进行了详细阐述,可供相关工程技术人员参考。
第1章 定义及要求 1 1.1 控制器相关定义 1 1.1.1 与断开和切断相关的定义 1 1.1.2 按结构分类的控制器类型定义 2 1.1.3 与防触电保护相关的定义 3 1.1.4 与使用软件的控制器结构相关的定义 4 1.1.5 与使用软件的控制器中避免错误相关的定义 6 1.1.6 与使用软件的控制器故障/错误控制技术相关的定义 10 1.1.7 与使用软件的控制器的贮存测试相关的定义 21 1.2 软件相关定义 27 1.2.1 软件术语的定义——总则 27 1.2.2 与功能安全相关的定义 30 1.2.3 与软件类别相关的定义 33 1.2.4 与数据交换相关的定义 34 1.3 相关要求 36 1.3.1 资料要求 36 1.3.2 控制器的结构要求 39 1.3.3 故障/错误的控制措施 40 1.3.4 控制器安全相关部件的常见故障及检测处理措施 42 1.3.5 其他故障/错误的控制措施 47 第2章 控制器安全相关部件的常见故障及故障检测方法 51 2.1 CPU(MCU)故障及故障检测方法 51 2.1.1 寄存器故障及故障检测方法 51 2.1.2 指令、译码与执行故障及故障检测方法 69 2.1.3 程序计数器故障及故障检测方法 71 2.1.4 寻址故障及故障检测方法 78 2.1.5 数据路径和指令译码故障及故障检测方法 79 2.2 中断处理与执行故障及故障检测方法 80 2.2.1 中断处理与执行故障及故障检测方法 80 2.2.2 中断的功能监测 82 2.2.3 中断的时隙监测 83 2.3 Clock时钟故障及故障检测方法 86 2.3.1 Clock时钟故障及其检测措施 86 2.3.2 频率监测 87 2.3.3 时隙监测 89 2.4 贮存器故障及故障检测方法 91 2.4.1 不可变贮存器故障及故障检测方法 92 2.4.2 可变贮存器故障及故障检测方法 96 2.4.3 寻址故障及故障检测方法 98 2.5 内部数据路径故障及故障检测方法 99 2.5.1 数据故障及故障检测方法 99 2.5.2 寻址故障及故障检测方法 101 2.6 外部通信故障及故障检测方法 101 2.6.1 数据故障及故障检测方法 102 2.6.2 寻址故障及故障检测方法 110 2.6.3 计时故障及故障检测方法 111 2.7 外围I/O故障及故障检测方法 118 2.7.1 数字I/O故障及故障检测方法 118 2.7.2 模拟I/O故障及故障检测方法 120 2.8 监测装置和比较器故障及故障检测方法 126 2.9 常规集成块故障及故障检测方法 127 2.9.1 常规集成块故障检测方法 127 2.9.2 周期性自检 128 第3章 新标准的变动情况分析 129 3.1 局部改动内容 129 3.2 新增条款 130 3.2.1 预防缺陷的方法 130 3.2.2 远程驱动控制相关条款 141 第4章 软件生命周期要求解析 151 4.1 软件安全需求 155 4.2 软件结构设计 156 4.3 模块设计 158 4.4 编码 159 4.5 测试 160 4.5.1 模块测试 160 4.5.2 集成测试 164 4.5.3 系统测试 165 4.5.4 验收测试 167 4.5.5 其他测试 168 4.5.6 其他 175 附录A 软件配置项测试内容 177 A.1 功能性 177 A.2 可靠性 178 A.3 易用性 179 A.4 效率 180 A.5 维护性 180 A.6 可移植性 181 A.7 依从性 182 参考文献 183