您的当前位置:首页正文

应用于安全相关领域的CANopen Safety协议

来源:华佗健康网
《工业控制计算机}2010年第23卷第1 1期 应用于安全相关领域的CANopen Safety协议 CANopen Safety Protocol Based on Safety——related Application 高大朋 白 焰 (华北电力大学控制与计算机工程学院,北京102206) 摘 要 CANopen协议是一种基于CAN(Controllor Area Network)总线的高层协议,在Z-业领域已有了极其广泛的应用。近 年来,针对在安全相关领域的应用,CANopen协议加入了安全的特性,推出了基于CANopen协议的CANopen Safety协 议。首先介绍了CANopen协议,在讨论了CAN和CANopen协议的失效机制的基础上,进而分析了CANopen Safety协 议在安全相关方面的新特性。 关键词:CAN,CANopen,CANopen Safety,安全相关 Abstract CANopen is the higher—layer protocol of CAN,it has an extremely wide range of application.In recent years,research on the safety—related system gradually bacame the focus of industrial automation field,CANopen Safety protocol was intro— duced based on CANopen protocal The concept of CANopen protocol and the basic failu re mechanism of the CAN and CANopen protocol is introduced,the new security features based on CANopen Safety is also anylized KeywOrds:CAN.CANopen,CANopen Safety,safety—related 现场总线技术在自动化系统中主要用于控制相关的设备, 而非安全相关的设备。安全相关设备,比如安全PLC、紧急事故 按钮等,仍然是通过传统的硬接线方式连接到实际系统中的,并 且安全相关设备采用单独的一套系统。对安全相关系统的要求 不应该是只去实现它的控制功能,它还要确保在工业机械工怍 过程中没有人员会受到安全威胁或避免财产损失。 分布式控制系统的广泛应用提供了解决之道。到2001年, CANopen协议已经成为全欧洲的嵌入网络标准之一。目前 CANopen协议在欧洲已经非常流行,CANopen协议被认为是 在基于CAN的工业系统中占领导地位的标准。 CANopen协议是一个基于CAL(CAN Application Layer Protocol,CAN应用层协议)的子协议,采用面向对象的思想设 目前工业上的许多安全相关系统还停留在使用“安全继电 器”或“安全PLC”的硬接线的低级控制状态,安装和维护的成本 都很高,且重新配置系统比较麻烦,灵活性比较差。但是如果直 接将这些安全设备连接到用于工业生产的通常的现场总线系统 上去,又会存在较大的安全隐患 基于上述情况,随着现场总线技术的不断深入和发展和应 计,具有很好的模块化特性和很高的适应性,使控制系统开发者 不必考虑CAN规范的细节。它提供了足够的灵活性来适应开发 者的特殊需求,通过扩展可以应用于各种各样的应用领域。 CANopen l  lCANopen J”川J雎 I ——1 索0 刈象 — I J』  【用,近年来,相关现场总线的组织和厂商先后推出了应用于安全 相关领域的现场总线协议。但把现场总线技术应用于安全相关 系统并不一定会降低成本.现在已开发出的专有的安全相关现 场总线系统的解决方案,通常的做法是平行于控制总线系统添 J II 】 l ……目l ———————L—  CAN H————N—_—L— —+ I 图1 CANopen的通信模型  J lJ  l 加新的布线。对最终用户而言,这意味着多了一个需要安装和维 护的系统,这无疑增加了用户的成本。降低成本最明确的办法是 研究现有的系统,看它们能否支持安全相关应用。 CANopen协议在CAN协议原有的物理层和数据链路层 协议的基础上,规定了应用层协议,如图1所示。用户定义了设 备通信过程中要用到的通信对象,设备之间通过相互交换通信 对象进行通信,清晰的分层结构和面向对象的设计使得通信模 CiA组织已成立了一个组织来专门研究将CANopen协议 应用于安全相关领域的方法,推出了CANopen Safety协议以 及协议芯片CSC01,并获得BIA和T0V的认证。 型较为清晰 这些通信对象可以通过一个16位的索引和一个8 位的子索引检索到。这些通信对象由预先定义或配置的标识符 映射到CAN的报文结构中 本文在介绍CANopen协议的网络模型、通信机理的基础 上,对CANopen Safety协议以及CAN和CANopen协议的失 效机制进行了详细分析,并对其在安全相关领域应用的可行性 进行了分析,并介绍了一款CANopen Safety芯片CSC01。 1 CANopen协议 CAN总线只定义了物理层和数据链路层,本身并不完整, 用户在应用CAN协议时,必须自行定义高层协议。 1 1 CANopen协议 1995年,针对CAN总线自身固有的缺陷,CiA颁布了 CANopen协议,它不仅定义了应用层和通信子协议,也定义了 大量的行规,遵循这些行规开发出来的CANopen设备能够实 图2 CANopen的设备模型 CANopen的设备模型如图2所示。CANopen设备分为三 部分:通信接Lq、对象字典和应用。其中,通信接口提供总线上的 数据收发服务。通信接口中定义了4类标准的通信对象:SD0 现不同公司产品间的互操作。这也为基于CAN总线的全数字化 2 应用于安全相关领域的CANopen Safety协议 (服务数据对象)、PDO(过程数据对象)、NMT(系统管理命令) 和特殊功能对象,通过这四类标准的通信对象可以实现通信、网 络管理和紧急情况处理等功能。SDO xl,x ̄象字典进行访问,主 要用于在设备配置过程中传递参数或大的数据块;PDO用于传 在使用了CANopen高层协议之后,仍无法满足某些特殊要求。 为实现安全相关通信,CiA在CiA DSP 304 CANopen框架下 增加了安全相关应用的功能,建立了针对安全相关应用的 CANopen框架协议——CANopen Safety协议。 输正常网络传输中的实时数据,可以对小型数据进行高速传输; NMT用于对设备状态进行监控和管理。特殊功能对象用于同 步、应急指示和时间标记对象,配合上面的三种通信对象工作。 对象字典是CANopen标准中最核心的部分。在CANopen 网络中,每个通信节点都有一个对象字典,对象字典中包含了这个 节点设备和它的网络行为的所有参数。节点设备通过一个16位的 CANopen Safety协议允许安全相关通信使用CANopen 通信网络,即在CANopen的同一个网段上运行安全相关和非 安全的通信数据,如图3所示。为了确保兼容性,使用了和 CANopen标准和现有设备协议相协调的标识符和预定义对象。 在一个安全的CANopen系统中,存在着安全相关信息(如安全 开关、紧急停止按钮)的发送者,并且也存在此类信息的接收者 (如继电器、阀门或控制一个可能有危险的运动的驱动器,安全 索引值和一个8位的子索引值来寻址对象字典的人口,通过对象字 典的入口可以对设备的“应用对象”进行基本的网络服务。设备的 “应用对象”可以是输入输出、设备参数、设备功能和网络变量等。 应用程序是连接CANopen设备和上位机的桥梁,通过对对 象字典中的对象进行访问来实现CANopen节点之间的通信。上 位机可利用SDO对CANopen设备进行配置,或者利用PDO与 CANopen设备进行高速的数据交换,从而实现实时控制。 1.2 CAN以及CANopen的失效机制 为防止出现局部故障,所有的CAN控制器都支持检测错误 并通知全网的机制。CAN通信中所谓的“防止不出现故障”并不 是在绝对意义上去确保没有错误和故障发生,而是以一种可预 见(安全)的方式去检测所有可能发生的错误并对此作出反应。 CAN总线系统中取消了常见数据通信总线的通信节点或 通信地址,取而代之的是具有优先级的消息传输机制,从而提高 了了CAN系统的弹性,同时CAN的数据链路层的基于内容的 识别也使得错误处理变得更加复杂。比如,典型的错误处理方法 是,由消息接收者在收到来自发送者的消息后发送一个反馈消 息给消息的发送者,这要求事先知道消息接收者的地址。但是 CAN不支持本地地址,即消息的标识符标记了跟消息相关的信 息,而不是标记了消息的发送者的信息。面对每个消息中的信 息,CAN错误检测需要把错误消息分配到具体的站点。 尽管可以检测到几乎昕有的全局错误,但局部错误也可能 发生,发生局部错误的原因如下: 1)网络中由于采样时划的不同可能会导致节点对于同一个 消息中同一位的值有不同的解释: 2)由于公差和漂移的作用,在单个节点可能有不同的闽值。 3)一些节点由于线性祸合而对同一个位值作出了不同的解释。 为了在网络范围内保证数据的一致性,CAN协议采用位填 充的方法标记全局范围内的错误:一个错误标志包含6位相同 的显性位:对于那些尚未检测出错误的节点,错误标志被解释为 填充错误。检测到错误条件的“错误激活”的站通过发送“激活错 误”标志来指示错误。这样一来,昕有其他的站会检测到错误条 件并且发送错误标志。这个显十牛序列中最短为6位,最长为12 位,可以通过总线来监}见 检测CAN报文故障的机制并不能充仝 ft安全相关的通 信,因为它们只在本地处理并且只处理有限的几种消息。CAN 不处理应用层驱动相关的失效消息。 相对于CAN,尽管CANopen增加了对应用层失效的处 理,可以支持更多的错误检洲和紧急情况消息,足以应对工业自 动化领域实时通信的要求,但这对于在要求更高的安全相关领 域的应用,CANopen的现有机制仍然无法满足需要。 2 CANopen Safety以及CSC01芯片 2 1 CANopen Safety协议 由于CAN并不满足安全相关应用所必需的所有要求,即使 PLc)。因为安全相关信息的“发送者”的控制可能出现危险情 况,它们要负责在受到安全相关的干扰后进人安全状态。安全相 关信息的“发送者”还要负责检查安全相关的通信数据的完整 性。而安全相关信息的“接收者”是一个安全的CANopen系统 的安全相关的行为的执行机构。 由于安全相关消息的发送者(安全相关消息的输入)是安全 的通信对象的来源,所以安全相关消息的发送者的数量要受到 限制 安全相关消息的接收者的数量在理论上是没有限制的,因 为CAN总线允许多个消息的接收者来侦听同一个安全通信对 象,比如,多个执行器设备可以使用同一个信息。 Nx:}¨匪 - Dx: 叭 动 图3带有CANopen Safety节点的CANopen网络 (1)安全相关的数据传输 CANopen Safety协议安全相关的数据传输的基本思路 是:与安全相关的信息使用不同的消息标志符传送两次。并且这 两次的传输的数据是逐位倒置的,并且对超时属性进行设置。 为了满足安全相关的要求使用带交叉检查的冗余。此外,还使 用了特殊标识符和时间期望等措施来满足安全相关通信的要求。 在CANopen应用层协议(DS301/302)的基础上, CANopen Safety协议为了传输安全相关数据定义了安全相关 数据对象(SRDO,Safety Related Data Object)。安全相关数 据是通过SRDO传输的。一个SRDO由两个CAN消息组成,这 两个CAN消息的标识符至少有两位不同,并且第二个CAN消 息中的数据信息是第一个CAN消息中的数据按位取反得到的, 如图4所示。在标准 CANopen设备和应用 —协议中定义的PDO映 _叫 Ito 8 B、l 射也适应于没有特殊 安全协议要求的SR— D0映射。SRDO在每 【.C.A N.al—2 (. —Ifo的 —8.  数B抓).t  域.坂 .._戢J反卜 1 i'  卜{  个安全监控循环周期 里是定期传输的。 图4 SRDO消息 如果需要,SRDO也可以由事件驱动传输。如果在输入端发 生变化后为了确保快速的反映,在工作网络上只允许传输SR— DO。SRDO被用作数据传输和数据接收,两者的消息传递方向 不同。消息方向设置为“传送”的设备是SRDO的发送者,消息 《工业控制计算机 ̄2010年第23卷第1 1期 方向设置为“接收”的设备是SRDO的接收者。 SRDO由SRDO通信参数和SRDO映射参数描述。SRDO 3 该芯片是基于瑞萨公司M306NAFGTFP-D的16位微处 理器,并具有两个独立的片上CAN模块,确保了通信的高效可 通信参数描述了SRDO的通信能力。SRDO映射参数包含了有 关SRDO内容(设备变量)的信息。SRDO需要定期传送,以确 保与安全相关的通信功能的实现。这种定期的时间称为安全保 障周期时间(SCT,Safeguard Cycle Time)。 两个CAN SRDO消息之间的最大时间间隔称为安全相关 验证时间(SRVT,Safety—Related Validation Time)。SRDO发 送设备中配置的任何一个计时器超时的话,将导致出现一个故 障保护状态。为应对SRDO的接收,应用程序会定期地收集和 检查SRDO消息。 总之,一个SRDO的这两个CAN消息要在规定的安全相 关可用时间SRVT里传输。一个SRDO是周期性传输的;两个 SRDO之间的传输间隔称为为安全维护周期时间(SCT,Safe— tyguard Cycle Time),如图5所示。 _二J :i I 1 ÷・一一一S(’T・一一一> ÷一一-一S(T一・一一》 ÷…・一S(’T-……≥ 1 1 I I I I , 图5 SRDO的传输机制 CANopen协议也定义了全局故障保护命令(GFC,GIobal Failure Command)。GFC可用来加速系统反应时间。~个GFC 由两个高优先级的CAN消息组成(CAN标识符1和2)。GFC 并不包含任何数据,可以由网络中任何一个节点发送,随后通过 发送SRDO消息来说明发送GFC的原因。 考虑到CANopen应用层的兼容性问题,在实际应用中安 全相关的通信会限制传输的SRDO不能多于64个。SRDO接 收者的个数则不做限制。 理论上,需要进行安全相关通信的设备也可以具有一般 CANopen节点具有的功能,包括使用PDO、SDO、NMT和紧急 情况服务等。只有在NMT预操作的状态时,SDO才可以访问与 安全相关的应用程序和配置对象。由于安全控制器对数据的完 整性和现状负责,所有安全柑关的输出设备要查询所有相应的 安全数据来源。 2l2 CSC01芯片 对于设备制造商而言,安全相关设备必须通过在世界上有 影响力的专业组织的认证,基于这个原因,CiA开发了 CANopen Safety芯片CSC01。CANopen Safety协议被写入 了芯片的16位微处理器,TOV已对该芯片做了鉴定,证明该芯 片达到了lEC61508的SlL3标准。 已经预认证和部分预编程的CSC01可以应用于安全相关 设备中,比如传感器(紧急开关、光栅、安全地毯)和执行器(安全 相关驱动)上。该芯片的一个特色就是系统设计者能够在安全相 关传感器执行器与非安全相关控制器或监视器之间建立直接的 通信组态。 该芯片简化了安全相关设备的设计,安全协议已经经过认 证并被写到芯片中了。开发者只需要对自己的安全应用程序进 行认证就可以了。 靠,如图6所示。 匡 曰匾 区母 母圈 图6 CANopen Safety CSC01模型 CSC01的硬件提供了两个发送SRDO和两个接收SRDO。 此外,芯片还支持GFC功能。它还实现了CANopen NMT从站 功能,包括默认的SDO服务器、心跳报文发生器、2个发送 PDO,2个接收PDO。片上的CAN模块支持所有的CANopen 位速率f<=1Mbits)。 CSC01的时钟频率是16MHz,它提供了10KB的SRAM 和256KB的Flash内存。处理器采用QFP一100封装技术。片上 的外围电路包括A/D和D/A转换器、定时/计数器、同步和异 步串口以及数字l/O端口等。 CANopen Safety固件包括下面两部分: 1)CSC主功能:包括经过认证的CANopen Safety协议栈 和经过认证的诊断功能。 2)安全应用程序:这将由CSC用户自行开发。 CSC的主功能控制着内部的程序流,所有用到的外围部 件、系统堆栈、寄存器和运算码。实施的诊断功能包括16位 CRC校验。当发现错误时,SRDO的发送被停止,外部的看门狗 电路被触发来改变对安全状态的输出。 在20ms的安全循环时间里,CSC01为安全应用程序提供 了2ms的计算时间。安全应用软件在每个周期中被调用8次 (2.5+/一0 6ms)。CSC主功能需要2KBRAM和32KB的Flash 内存。此外,系统堆栈需要512字节的RAM。 CSCO1已经通过了T0V认证,CSCO1可在简单的安全相 关传感器和执行器应用中,将紧急开关、光栅、位置传感器直接 连接到CANopen网络中.并且在安全相关的传感器、执行器与 非安全相关的控制器、监控器之间进行通信。 3结束语 在现在和未来的安全相关系统中,网络将是一个不可或缺 的重要组成部分。CANopen Safety使得安全相关的嵌入式网络 应用成为可能。基于现有的CANopen技术的CANopen解决方 案,可以帮助开发人员在制定自己安全相关应用解决方案的时 候,节约大量时间和精力。采用CANopen Safety的解决方案允 许用户把安全相关和非安全相关的设备连接到同一个网络中。 参考文献 [1]Boterenbrood H CANopen:High Level Protocol for CAN—bus fZ1 2000 [2]CAN in Automation.CANopen Specification 『31R Bosch GmbH,Controller Area Network Specification:Version 2 1991 『4]CAN irl Automation。CiA DSP 304一V1 0 1:Framework for safe. tV—relevant communication,2004 [5]Jungandreas,F.The CANopen Safety Chip,CAN Newslette r.4/ 2003 [收稿日期:2010 8.1] 

因篇幅问题不能全部显示,请点此查看更多更全内容