精华内容
下载资源
问答
  • 2021-08-11 09:20:51

    CAN應用層和CANopen

    CANopen 概述

    CANopen是附加了一套设备子协议的高层(第7层)CAN通信协议。作为一种标准化、高度可配置的嵌入式网络解决方案,它广泛应用于实时工业应用、机器人、医疗、交通、汽车和航空等领域。CANopen设备子协议系列规定了各种标准化的通信机制和设备功能,以服务于各种应用程序。CANopen标准由CAN in Automation (CiA)国际用户和制造商协会维护保持。

    CANopen的优势

    通过应用程序和网络活动服务,使具备高度灵活配置能力的嵌入式应用标准化。

    标准化的设备、接口和应用程序配置有助于CANopen系统和高度模块功能的充分集成,并提供互操作性和互换性。

    众多国际供应商支持的高度标准化协议。

    实时数据交换,同步与异步,循环与非循环,事件驱动。

    具有高效寻址方案的对象字典,允许系统工程师和应用程序开发人员在CANopen基本配置文件上进行扩展,并提供扩展设备配置和诊断功能。

    SDO(服务数据对象)报文与对象字典相结合,为系统设计者提供了通过网络进行设备配置的途径。

    各种通信对象都允许系统设计者为过程数据通信、错误显示和网络控制,设计编程所需的网络功能。

    通过专用同步SYNC(同步对象)和TIME(时间标识对象)实现高效同步。

    通过Node Guarding (节点监测) 进行可靠的节点监测和诊断。

    高效灵活的设备状态,实现耐用性、容错性和恢复能力。

    觀看由CAN in Automation組提供的有關“ CANopen FD”的更新。

    CANopen协议

    CiA 通过一系列文件维护保持 CANopen 设备和通讯协议规定。CANopen 的CiA 文件 包括下列3类:

    CiA规定 – 为实施协议,对硬件及软件配置的功能规定。

    CiA建议 – 关于最适宜解决方案的信息。

    CiA 实施和用户指南– 关于怎样使用CiA 功能和建议的说明。

    基本配置由CiA 301规范定义。它被命名为“CANopen应用层和通信配置”,并规定了CANopen应用层。这些规范包括:

    1. CANopen对象字典中的数据类型、编码规则和对象

    2. CANopen通信服务和协议

    3. CANopen 网络管理服务和协议

    4. CANopen 通讯配置 – 物理层

    5. 预定义的通信对象标识符连接数集、与紧急事件相关的对象、时间标识和同步通信对象

    此基本 CiA 301配置规定由其他CiA文件进行了补充和扩展,为一些具体领域的设备和功能规定了设备、应用程序和接口配置。下面是其中几个例子:

    CiA 302 – CANopen 附加应用层功能

    CiA 303-1 – 布线和接头管脚分配

    CiA 303-3 – 指示器规范

    CiA 306 – CANopen 电子数据表规范

    CiA 309 – 从其他网络接入CANopen

    CiA 315 – CANopen 通用框架

    CiA 401 – 通用I/O模块的CANopen设备配置

    CiA 402 – 驱动和运动控制的CANopen设备配置

    CANopen设备模型

    每个CANopen设备都遵循一个通用的设备模型,因此不同的设备能依据同样的CANopen标准。CANopen设备模型的三个组成部分是:

    通讯

    对象字典

    应用软件

    121b15f372b61692fe95928242337dde.png

    通讯

    CANopen通过不同的通讯模式在节点之间传输报文:

    生产/消费模式: 它是一个广播连接,以推送模式工作(信号生产节点向消费节点发送无任何特定要求的信息)和引入模式(消费节点向信号生产节点要求特定信息)。

    用户机/服务器模式: 通过SDO协议,用户节点向服务器节点要求数据(对象字典索引),然后服务器节点通过发送在指定索引处的对象内容来响应。

    主机/从机模式: 主机节点可在任何时候向从机节点发送或要求数据。例如:NMT协议通信。

    CANopen通信单元由必要的通信接口和协议软件组成,通过总线在节点之间进行通信对象的发送和接收。各种CANopen通信对象用于实现各种类型的通信,如过程数据、网络管理、节点监控、同步信号错误控制和紧急报文。这些对象及其说明如下:

    ec9bfe879ec12500a40fa1244a0df506.png

    CANopen帧

    它由下列场组成:

    11位 CAN帧id,也称为CANopen通信对象标识符(COB-ID)。它进一步分为4位功能代码(代表一个CANopen通信对象)和7位节点id。

    1位远程传输请求 (RTR)。

    4位数据长度。

    0 – 8字节的数据。

    6fb9d4ef3043984db4e59d53c2385381.png

    对象字典

    对象字典(OD)是CANopen协议的核心概念。它是一组预定义的CANopen对象,通过网络使用索引和子索引访问对象。对象字典提供了应用程序和设备之间的沟通方式,提供了配置该设备的途径,和与设备通信的方法。作为对象索引存储在对象字典中的信息包括:

    通信和应用程序配置参数

    标准化设备配置参数

    制造商特定设备配置文件参数

    设备配置静态数据类型

    设备配置复杂数据类型

    复杂和静态数据类型

    制造商特定数据类型

    其他

    从上述对象说明可以清楚地看出,制造商可以通过扩展由标准设备配置和数据类型规范要求的标准设备功能,来增强其设备的功能。他可以按照CANopen标准的指导,以预定义的方式添加自己特定的制造商配置和数据类型。

    对象字典条目中的场包括:

    主索引: 16位索引,直接对应对象字典中的条目。对于简单变量,该索引直接引用变量值;对于复杂类型,该索引对应整个记录或数组。

    索引: 对应具体数据场的8位子索引,如主索引指向的复杂数据结构中的数组项或记录值。

    对象: 条目中对象类型的符号名称。例如:变量、数组、记录等。

    名称: 描述条目的字符串。

    类型: 条目的数据类型限定词。例如:UNSIGNED32、BOOLEAN等。

    属性: 此条目的访问权限值。例如:读取和书写,只读取,只书写。

    必须/可选/Optional: 设备必须实现此具体对象条目,还是可以选择执行。

    各种对象参数组按索引范围排列如下:

    25ea51cc61ed4feceb2aada25343bdbb.png

    通讯配置的范例索引

    f8446bba58f477a91064ce3fb3593618.png

    引用复杂或结构化数据类型条目的子索引示例

    87939ea7b5395b457f55170b9e9bf169.png

    这些条目用于单通道RS-232适配器,其通信参数在索引6092H处以单一结构数据类型存在。然后,各个通信参数存在于子索引6092H中,范围从0起。

    上述对象字典项的C编程语言结构定义为:

    CANopen的网络管理

    CANopen的网络管理采取主机/从机通信模式。整个网络被设置为一个“状态机”,其中一个设备被指定为NMT主机,另一个设备被指定为NMT从机。NMT主机控制和监控NMT从机的状态。通过NMT主机触发,NMT从机进行状态转换,实现CANopen网络的各个阶段。

    d7e40f665f46732166373ca1ef3a0972.png

    通过具体的NMT协议,如启动协议、模块控制协议、心跳协议(Heartbeat Protocol)和节点监测,从主机向从机发出状态更改命令,进行这些状态转换。NMT主机向特定节点或所有节点发送NMT命令代码以改变状态。

    NMT从状态机的初始状态序列从开机,或从关机事件的恢复开始,然后是设备初始化。然后,NMT从机将自动转换到预运行状态。在错误监测和诊断期间的内部设备重置(重置应用程序和重置通信)也会使NMT从机进入初始化状态,然后进入预运行状态。在此转换之前,该从机将使用启动协议向总线发送启动报文,以表明启动过程。

    在预运行状态下,应用程序配置工具可以使用SDO通信,配置NMT从机和设置参数。由于设备尚未开始运行,因此在此状态下不能使用PDO通信。

    一旦状态从预运行变为运行状态,节点中的所有通信对象都将变为活跃状态,并且运行节点之间均可进行PDO和SDO通信。在此阶段,也可以通过SDO访问对象字典。当节点状态更改为停止时,PDO和SDO通信都将停止。

    CANopen中的节点监测

    NMT主机定期使用远程帧询问从机的当前状态,并将其与网络数据库中记录的早期状态相比较。任何不匹配和缺少PDO传输的状态都会以适当的错误代码表示,然后应用程序将采取适当的操作,如设备重置或错误标识。这称为节点监测,是通过使用节点监测协议得以实现。NMT从机使用一种称为生命监测的技术,通过在预定义的时间间隔里,内部检查节点监测帧的接收,来检测NMT主机的缺失。

    现代设备设计使用Heartbeat协议进行节点监视,其中NMT从设备(Heartbeat Producer心跳发出者)将周期性地向NMT主设备(Heartbeat Consumer心跳使用者)发送Heartbeat报文。这些报文之间的间隔是可配置的,并在主、从两个设备的对象字典中Heartbeat producer time(心跳产生时间)对象上都进行设置。如果心跳报文在此时间限制内未到达,则发出者将被视为关机,使用者将采取补救措施,如设备重置或错误显示。

    预定义的连接数组

    对于只有1个主机和最多127个从机的简单通信结构,CANopen提供了CAN报文标识符的预定义分配,这被称为预定义连接数集。此方法的主要目的是减少简单网络中仅需要点对点连接的的配置数量。此预定义的主从机连接机制支持按设备分配通信对象,如下所示:

    一个紧急状况对象

    SYNC和时间标识对象

    一个 SDO 连接

    NMT节点监测 (节点监测/心跳)

    最多 4个输出和4 个输入PDO

    电子数据表格和 CANopen 系统配置

    一个电子数据表(EDS)是一个标准化的电子文件,描述为CANopen设备定义的通信功能和对象。此供应方生成的文件有3个区域:

    关于EDS文件的信息

    一般设备信息

    具有默认变量的对象字典

    EDS文件可用作CANopen设备的配置和网络设置工具。

    CANopen 和 Kvaser

    Kvaser 开发了 Kvaser CANopen Stack, 这是一个使用便捷、存储高效的AAPI,能实现CANopen设备的高性能运行 。它完全符合CANopen标准,并完全支持CANopen主机和从机功能。

    CANopen在工业中的应用

    Vector Informatik GmbH 是CCANalyzer的的开发商 – 这是 CANopen 网络分析和模拟的最佳软件工具之一。

    Port GmbH 开发了大量CANopen 工具,包括:

    用于CANopen设备开发的CANopen Design Tool。

    CANopen 主机/从机协议库

    CANopen 模块和配置文件

    CANopen 设备监测

    CANopen 网关服务器

    National Instruments提供一个1-Port C系列CANopen接口模块,用于帮助CANopen应用程序开发。

    有许多其他CANopen商业工具,以及开源API和协议栈,比如CANopenNode,它们使用CANopen的开放架构,借助于此协议的高度标准化、详细的建议和指南,发展新的应用。

    更多資源

    e1b9122964b159a0620efafb8102a3d9.png

    獲取與CANopen兼容的協議棧和軟件。搜索軟件

    f09abd0297a2c3c657e276a90440bac1.png

    請聯繫專門從事CANopen應用的Kvaser技術助理之一。搜索助理

    更多相关内容
  • CanOpen协议讲解 和 CanOpen协议C++代码
  • CANopen例程CANopen例程

    2020-09-22 15:35:31
    CANopen例程CANopen例程CANopen例程CANopen例程CANopen例程CANopen例程
  • 为促进CANopen协议在工业控制领域的推广,本文在对CANopen协议研究的基础上,提出了基于STM32的CANopen协议的主从通信设计。本文主要分析了CANopen协议通信规范及其具体的通信对象的实现方式,并详细描述了CANopen...
  • rtthread + stm32f103基础工程,以及移植到stm32f103 裸机 canopen协议栈的工程 及其他canopen协议栈学习资料
  • CANopen伺服运动控制行规CiA+402.
  • CANopen轻松入门.pdf

    2021-06-17 19:19:01
    Canopen 入门介绍
  • CANopen是用于嵌入式控制系统的国际标准化(EN 50325-4)基于CAN的高层协议。 有关CANopen的更多信息,请参见 该库允许操作CiA 301中定义的CANopen设备。 规约 紧急-EMCY CANopen紧急协议用于指示CANopen设备的...
  • STM32 CANOPEN 电机驱动

    2022-03-30 17:45:43
    在STM32基础上移植CANOPEN库驱动马克松电机。
  • 适用于Python的CANopen 标准的Python实现。 该项目的目的是在一个简单的Pythonic界面中支持CiA 301标准的最常见部分。 它主要针对测试和自动化任务,而不是符合标准的主实施。 该库支持Python 3.6+。 特征 该库...
  • CANopen应用层通信协议

    2019-11-30 11:45:35
    This specification specifies the CANopen application layer. This includes the data types, encoding rules and object dictionary objects as well as the CANopen communication services and protocols. In ...
  • 汇川CANOPEN通讯协议,学习CANOPNEN有很大的参考价值,对于SPO、PDO都有详细介绍,对于CANOPNE的入门有很大的帮助
  • CANopen 是一个基于 CAN (控制局域网)串行总线系统和 CAL(CAN 应用层) 的高层协议。
  • 适用于UniSwarm产品的CANOpen工具。 依存关系 Qt> 5.9 使用的Qt模块: 核 gui 小部件 图表 串行总线 适用于UDTStudio的QT5:图表+串行总线 sudo apt install git make g++ qt5-default libqt5serialbus5-dev ...
  • 关于电机伺服驱动的CANopen子协议
  • 隔离 CANOPEN 通信,符合 CiA301 V4.2.0 规范。 A. 支持 SDO,TPDO ,RPDO。 B. 支持速度模式,位置模式(轮廓模式,插补模式)。 C. 支持心跳生产和消费 2. 15 位绝对编码器,一圈脉冲高达 32768。 3. 多圈绝对值...
  •  CANopen是一种架构在控制局域网路(Control Area Network, CAN)上的高层通讯协定,包括通讯子协定及设备子协定常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。  CANopen 实作了OSI模型中的网络层以上...
  • 台达PLC通过CANOPEN控制步进电机
  • 西门子出的PN/canlink官方说明文档,有需要的可以下载。应用示例展示了 PN/CAN LINK 的 SDO 通信。在此过程中,作为管理器的 PN/CAN LINK 访问组态为从站的 PN/CAN LINK ...PN/CAN LINK 2 - 使用“CANopen Slave”模式
  • STM32F4移植canfestival实现canopen协议,两块板子通过canopen协议连接,主从机产生和恢复紧急事件。
  • STM32F4移植canfestival实现canopen协议,两块板子通过canopen协议连接,主机检测从机掉线。
  • 周立功的CANopen入门,讲解的很详细。对于新手入门有很大的帮助,建议搭配CANopen设备操作协议看。
  • CANOPEN参考_CANOPEN参考_

    2021-09-29 12:45:52
    CANOPEN协议说明,简要介绍了相关的数据格式,命令解析额。
  • 含以下CANopen 协议及子协议,请选择 DS301 规范了对应用层、通信子协议进行了全面描述外,还为特定的应用提供了扩展架构,定义了更多规则和特殊通信对象。例如:定义 了网络管理对象(节点保护,寿命保护),并定义...
  • CAN Open standard wiki
  • #资源达人分享计划#
  • CANopen协议以太网报文,可以用wireshark软件打开,适用于学习CANopen报文解析,学习各种工业以太网协议可参考本人其他下载文件
  • STM32F4移植canfestival实现canopen协议,两块板子通过canopen协议主机修改从机心跳时间。
  • 本文档介绍了基于canopen总线协议步进电机驱动控制器的协议、参数等内容。本文档详细介绍了SDO和PDO的定义,已经自动归零等功能的实现方法。
  • 通过CANopen 和 Elmo 通讯.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,395
精华内容 1,758
关键字:

CAnopen