您的位置:控制工程论坛网论坛 » 现场总线 » 基于CAN的高层协议CANopen与DeviceNET的比较

chenwh78

chenwh78   |   当前状态:在线

总积分:6174  2024年可用积分:0

注册时间: 2008-10-10

最后登录时间: 2019-06-16

空间 发短消息加为好友

基于CAN的高层协议CANopen与DeviceNET的比较

chenwh78  发表于 2008/10/21 9:05:22      1141 查看 2 回复  [上一主题]  [下一主题]

手机阅读

CAN总线以其成本低廉、通信实时性好、纠错能力强等优点而被汽车工业、电力系统变电站自动化、智能大厦等系统广泛采用。作为一种通信协议,CAN本身并未指出流量控制、节点地址分配、通信建立、设备连接标准等具体的细则。后来在CAN总线协议的基础上,产生了DeviceNET和CANopen协议标准。 

1 CANopen简介
1.1 CANopen由来
    1993年,Bosch公司领导的CAN-BUS协会开始研究CAN-BUS通讯、系统、管理方面的细则,以后逐步完善,由此发展成为CANopen协议,它是CAL(CAN Application Layer)协议基础上开发的,使用了CAL通信和服务协议子集,它在保证网络节点互用性的同时允许节点的功能随意
扩展,定义了基于CAN的分布式工业自动化系统的应用标准以及CAN应用层通信标准。CANopen协议是一个开放性的协议,对于开发者来说它是完全免费的。CANopen在发布后不久就获得了广泛的承认,后来,有CiA(CAN in Automation)协会管理、维护、和发展。到2001年,CANopen协议已经成为全欧洲的嵌入式网络标准。

1.2 CANopen协议剖析
1.2.1 网络模型
    CANopen协议的物理层和数据链路层延用了CAL(CAN Application Layer)协议标准,一个网段上最多支持127个节点,采用CAN 收发器芯片,支持CAN2.0和CAN2.0B帧格式收发。并在CiA DS303-1指出了电缆和接点标准,在CiA DS-304中指出了接点保护的规范,即总线要有安全开关、光电隔离、紧急开关、电源保护等。CANopen把CAN的11位标识符分成2部分,及4位功能码和7个操作数据类型,如图1所示。具体分配如表1所示。
 
图1 canopen COB-ID

表1 CANopen标识符的分配表
功能段地址段
0000NMT 系统管理
0001SYNC同步标记
0011PD0(tx)过程数据对象发送包
0100PD0(rx)过程数据对象接收包
1011SDO(tx)服务数据的发送包
1100SD0(rx)服务数据的接收包

    如果是29位的标识符机制,可以把现有的11标识符的定义映射到29位的COB-ID的高11位,使表中的C0B-ID的范围变的更大。
1.2.2 报文格式
    CANopen通信模型定义4种报文:

  • 管理报文 主要网络管理和ID分配服务,如初始化,配置和网络管理(包括:节点保护)。
  • 服务数据对象(Service Data Object,SDO) 通过使用索引和子索引(在CAN报文的前几个字节),SDO使客户机能够访问设备(服务器)对象字典中的项(对象)。SDO通过CAL中多元域的CMS对象实现,允许传送任何长度的数据(当数据超过4个字节时分拆成几个报文)。
  • 过程数据对象(Process Data Object,PDO) 用来传输实时数据,数据从一个生产者传到一个或多个消费者。数据传送限制在1~8个字节。
  • 预定义和特殊功能对象 包括同步(SYNC)、时间标记对象(Time Stamp)、紧急事件(Emergency)、节点/寿命保护(Node/Life guarding)、Boot-UP过程对象。

    其中PDO是实时性要求最高的也是最重要的的数据,它有同步和异步触发2种模式。
1.2.3 通信机理
    CANopen的核心概念是设备对象字典(Object Dictionary,OD),它是一个有序的对象组;每个对象采用一个16位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8位的子索引,CANopen网络中每个节点都有一个对象字典。对象字典包含了描述这个设备和它的网络行为的所有参数。一个节点的对象字典是在电子数据文档(Electronic Data Sheet,EDS)中描述或者记录在纸上。CANopen由一系列称为子协议构成。如通信子协议DS-301,还有各种设备子协议(device profile),如DS-404(传感器和调节器),DS-405(可编程控制器)等。通信机理的核心如图2所示。
 
图2 CANopen设备的通信过程
1.2.4 应用中要注意的一些问题
(1)在开发过程中不必要将CANopen协议中的各项内容都一一编写,只要根据应用的具体要求按照CANopen协议编写即可。对象字典都要通过软件实现,这是实现CANopen的关键。
(2)组建对象字典时并没有必要把协议规定的所有项都包括进去,另外还要留出足够的空间,使得用户可以根据以后的具体需要向对象字典中添加功能项。
(3)一般应用中,如果CANopen网络不复杂,使用预定义的标识符分配就能满足要求。对于特别大的系统,如果要制定标识符分配,这需要大量的软件编程。
(4)对于CANopen网络中必须实现的管理功能,一般由一个节点来实现,但也可以由几个节点分别承担。尤其对于SYNC报文传输和标识符的分配,分开来实现会更好。

1楼 0 0 回复
  • chenwh78

    chenwh78   |   当前状态:在线

    总积分:6174  2024年可用积分:0

    注册时间: 2008-10-10

    最后登录时间: 2019-06-16

    空间 发短消息加为好友

    chenwh78   发表于 2008/10/21 9:04:31

    2 DeviceNET简介
    2.1 DeviceNET由来及OSI/SIO参考模型
        DeviceNET协议最初有美国的Rockwell自动化公司开发应用。目前有ODVA(Open DeviceNET Vendor Association)组织管理和推广。它是一个开放式的协议,只要付出象征性的资金获得ODVA的一个许可号码,就可以得到协议的详细内容。DeviceNET属于CIP(Control and Information Protoco1)网络的范畴,CIP网络有下列特点:
    (1)报文的传输类型有I/O、互索、配置、程序上下载等;
    (2)它是一个面向连接的协议,必须要先建立,才能通信;
    (3)采用生产者/消费者模型;
    (4)可以支持主从,多主,对等,或者三种模式的任意组合;
    (5)面向对象编程等特点。
        DeviceNET以CIP协议为基础,沿用了CAN 协议标准所规定的ISO参考模型中物理层和数据链路层的一部分,并补充了不同的报文的传送格式,总线访问仲裁规则及故障检测和隔离的发法。DeviceNET增加了传输介质的协议规范,每个网段最大只允许有64个节点,采用干线支线进行网络拓扑;5线制总线结构(2信号线,2电源线,1屏蔽线),总线支持125/250/500 kb/s三种波特率,最大传输距离为500 m,DeviceNET使用5线制,可以对网络上的节点进行总线供电。又由于它采用5线制,在实际的应用中接错的可能性更大,所以要求节点能够承受由于任意的5条线误接而产生的电压。所以在这个原因下,要求在实际的应用中的收发器一定要符合DeviceNET规范的规约中,仅要求收发器能承受2条信号线的误接线产生的电压。DeviceNET要有节点的接地和隔离,即任一设备必须要有隔离栅,以及节点的误接线保护电路。

    2.2 标识符分配
        DeviceNET中,每一个连接有一个11位的连接标识符(Connection ID,CID)来标识,将CID分成优先级不同的4组报文,如图3所示。组一报文优先级最高,通常用来发送设备的I/O报文,报文组四优先级最低,用于设备离线时的通信。
     

    2.3 DeviceNET报文
        I/O报文用来传送实时性,准确性高的数据。而且支持多种触发方式,如位选通(bit strobe)、轮询(poll)、状态改变(change of state)和循环(cyclic)等。
        显式报文 用来传送实时性要求低的对象,如上下载程序、修改设备组态、记载数据日志等。

    2.4 对象模型
        DeviceNET的每个节点被模型化为对象的集合,主要包括连接对象、对象实例、标识对象、参数对象等。它是一个面向对象的连接,可以用VC++类对象编程。通信核心是;根据数据的优先级分配成哪类报文组CID,根据节点对象模型引用和配置参数,初始化网络。

    2楼 回复本楼

    引用 chenwh78 2008/10/21 9:04:31 发表于2楼的内容

  • chenwh78

    chenwh78   |   当前状态:在线

    总积分:6174  2024年可用积分:0

    注册时间: 2008-10-10

    最后登录时间: 2019-06-16

    空间 发短消息加为好友

    chenwh78   发表于 2008/10/21 9:05:22

    3 主要区别
    3.1 传输距离
         CANopen网络可实现远距离传输(≤10 km),工作速率可调(1 Mb/s≥ 通讯速率≥ 5 kb/s),因此,在实际应用中,要考虑到传输距离的限制而选择总线协议。如果用devicenet进行远距离传输,要使用网络中继器,现在市场上已经有很多这两种总线系统的中继器产品.

    3.2 标识符分配
        CANopen支持CAN2.0 A11位和CAN2.0 B29位标识符,而且报文的优先级只能通过它的大小来区分,通常节点地址比较小的COB-ID报文的优先级最高。如果要传送需要快速响应的事件,则要通过预定义和特殊功能对象,如同步(SYNC),时间标记对象(time stamp),紧急事件(emergency),PDO 用来传输实时数据,优先级大于SDO,因为SDO的数据量大,通常用于设备初始化组态。而DeviceNET只用了CAN2.0 A的11位标识符去分组定义报文的优先级,这种信息组设计方法使总线优先级可任意分布,而不仅和节点地址有关。还取决与它是I/O还是显示报文,报文的组号等。虽然CANopen和DeviceNET的标识符分配机制不同,但都可以很方便的定义报文的优先级。

    3.3 初始化组态不同
     

    3.4 软件开发流程不同

    3.5 应用领域
        CANopen不仅可以用在远距离的通信系统中,还可以用在像咖啡机、电子直线加速器、大型超市自动化、安全系统、注压机等系统中。DeviceNET比较适合应用在传感器设备、微型执行器设备等设备上。

    4 结语
        本文通过对两种非常流行的现场总线协议的比较,清楚地说明了它们的不同之处,两者的技术有时可以互相借鉴,在具体的工业应用中,要综合考虑它们的价格,接线保护,通信长度,开发时间,通信机制等的不同,选择最适合的现场总线。
        CAN总线在各个领域有着很好的应用前景,CANopen和DeviceNET是一种国际上公开的应用层总线协议,它们和CAN协议构成一个完整的网络协议,它可以使开发商生产的设备具有很好兼容性。DeviceNET的技术以及应用在国内外已经趋于成熟,CANopen协议在欧洲已经非常流行,但国内应用的还不多,有待进一步研究。

    3楼 回复本楼

    引用 chenwh78 2008/10/21 9:05:22 发表于3楼的内容

总共 , 当前 /