原创 风河技术专家解析嵌入式安全设计之道

2013-2-25 17:28 1082 9 9 分类: MCU/ 嵌入式

安全问题不容小觑,但我们又该如何确保系统工作万无一失?国际电工委员会发布的IEC 61508功能安全标准,为设备的制造、认证和部署提供了必要的技术指导,而TÜV等权威机构的认证更是对设备安全提供了严格的把关——继墨西哥湾漏油事 故、德国列车脱轨事故和福岛大灾难等接连发生,人们对安全性的认识日益深刻、为之揪心,认证的“普适”价值也随之突显。

 

这些事故的发生给予我们启迪:系统的不安全隐患一旦爆发,将可能使相关企业付出承重代价,陷入极大风险。同时,对于企业CEO来说,也需要对公司员工的行 为负责。风河(Wind River)公司的工业控制认证领域项目专家Andreas Buchwieser(图1)表示,安全隐患的后果巨大——继福岛核电站事故发生后,德国议会开始考虑:我们以后是否还需要使用核电?铁路系统针对系统安 全实行了100%管制;汽车行业功能安全标准ISO26262从IEC61508标准派生而出。IEC 61508标准不仅针对铁路/交通、石油化工、航空/航天以及核电这些管制的行业适用,而且对其他的未管制行业也同样适用,因为它是最新的安全标准,同时 也将为这些产业带来附加价值。

1.jpg

图1:风河公司工业控制认证领域项目专家Andreas Buchwieser。

 

IEC 61508功能安全的模型如图2所示。图中的受控设备可比作核电厂,而可编程电子(PE)或控制设备则用来测量、计算,并确定是否应该执行动作(主动式管 理)。PE的安全功能可分为安全功能需求和安全完整性需求两个方面——安全功能需求代表需要实现何种功能;安全完整性需求代表安全功能被满意执行的可能 性。对于工厂流水线而言,安装在执行机构上方的监控摄像机若监测到设备不同步,则应立即关闭生产线。

2.jpg

图2:IEC 61508功能安全模型。

 

IEC 61508涵盖了工控、铁路和汽车等多个方面,并且在各方面又有更细的子规范,比如,工控领域又包含IEC 61511(过程控制)、IEC 62061(机器)和IEC 61513(核电)等。功能安全的目的在于降低不可接受的物理性损伤风险和直接或间接对健康的损害。

 

将安全功能引入后,并不意味着设备就已绝对安全——系统的漏洞在所难免。风险的计算可以表示为:风险=事故发生的频率×严重程度。对风险的承受度,日本和 法国要求较高,而在德国这一指标为0。我们可以采用电子安全管制系统或者其他措施来降低风险。图3为基于风险的示意图。

3.jpg

图3:基于风险的方法。

 

风河针对IEC 61508标准推出了一款VxWorks Cert商业现货型(COTS)操作系统。随着用户对安全认证要求不断增加,以及COTS实时操作系统(RTOS)逐渐被大家所采纳,VxWorks Cert应运而生。该操作系统已通过TÜV机构的认证,目前的版本号为VxWorks Cert 6.6.1.x。Andreas指出,对于产品设计而言,公司应该把精力专注在产品的核心竞争力上(例如,IP的开发与认证),而不是对底层技术的开发与 认证煞费苦心。VxWorks Cert平台提供了统一的设计方法(对于全球用户没有任何差异)。在该平台上搭建设计,能够帮助用户提高生产力,加快产品上市时间,以及降低成本。

 

采用VxWorks Cert操作系统设计PE,软件部分由三大块构成:板级支持包(BSP)、VxWorks Cert和安全相关应用程序(图4)。VxWorks Cert作为IEC 61508标准的一致性项目,其安全手册与IEC 61508的要求相对应。安全手册为用户提供了必要的安全指导。VxWorks Cert平台以一套全面的认证工件为凭据(IEC 61508 认证证据DVD),这类工件支持所有的IEC 61508 SIL3要求。由于与内存管理单元(MMU)和其他的架构专用技术相关,VxWorks Cert需要包含架构专用包。现有的认证包能够帮助用户实现安全设计。这其中有两个方面特别重要:用户可以利用VxWorks Cert的架构专用包来支持服务,而无需对此封包生成任何文件;文件和库可以直接利用,这一部分可直接向认证机构提交。

4.jpg

图4:VxWorks/Cert-IEC 61508一致性。

 

对于系统的安全设计,他指出,行业需要有衡量系统安全性的标准:按需求故障概率适用于低需求的模式,这种情况下,安全功能可能仅仅执行一种需求;按小时故 障概率则适用于高要求的模式,对应于连续性的操作。对于安全设计的管理和实现,首先,应采取某些安全性的措施,例如,对于安全功能而言,多核处理器、 HMI等技术可能并不如熟练的列车驾驶员重要;其次,应尽可能将安全性高与安全性低的部分分开,例如,将刹车和收音机分开。

 

对于安全认证,全球都是由统一的认证机构来执行,因此,对于瑞典、北美乃至中国,其测试方法均相同。另外,安全功能是一个全新的概念,没有以往经验可以参 考,因此在这一点上,中国相对较弱。他谈道,在中国他接触到的工程师对安全方面的概念还比较新,在设计架构时缺乏经验(规约性问题)。此外,虽然有标准可 供参考,但工程师对标准的执行却各有不同,对风险的认识也不尽相同。

 

风河中国区销售经理李宁补充道,国外企业在设计系统时,首先分析其中的困难是什么,挑战在哪里;而在国内有些企业则是先谈我们能做哪些,我们又做了哪些。 另外,国内还没有真正的强制标准执行,而是采用国外的标准作为参考(国标还没有建立起来)。IEC 61508是很多行业的安全基础。各行业都有各自的子规范,可能针对各自需求而有所补充,但无论是核电还是大型的水电机组,它们的标准差别都不太大。

 

VxWorks Cert与VxWorks区别在于,VxWorks Cert去掉了某些不太安全的因素。VxWorks系统非常可靠,但并不一定是安全的系统。因此,风河为了满足安全的需求,在其中去掉了某些非安全的机 制,例如:动态申请释放内存和信息队列等。安全系统必须是可控、可预测的:系统应能预测可能发生的故障情况,然后采取某些安全措施。然而,VxWorks Cert着重于安全方面考虑,在调试能力上相对较弱。因此,为方便产品调试,风河将提供给用户两者:用户可以在普通的VxWorks上进行开发,然后再移 植到VxWorks Cert上运行。

 

针对系统软件设计,VxWorks Cert提供了一种分层的方法(图5)。这样,用户便可根据安全要求并行开发,每一部分都可以按照图6所示的V模型进行开发;然后再将所有文件进行汇总, 统一提交认证。用户需要做的工作包括:用户需求和VxWorks Cert需要对应起来,每行代码都要与测试相对应;反复执行回归测试(黑盒测试),以确保产品能够满足安全要求——若用户表示产品采用VxWorks Cert设计,认证机构会对程序进行查证,而客户需要提供相关证明。

5.jpg

图5:软件设计:分层方法。

 

6.jpg

图6:设计分工示意(V模型)。

 

最后,李宁指出:“IEC61508标准是按照目标进行安全验证,而不是规定提交者必须去做哪些事。所以,提交者必须证明所做之事能够达到目标。”在设备 达到安全后,对员工的培训也很重要——安全系统的操作、员工按规程办事以及运营等也都和安全工作息息相关。考虑到以上的方方面面,才能确保设备的运转万无 一失。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
9
关闭 站长推荐上一条 /3 下一条