搜档网
当前位置:搜档网 › CANOpen协议家族

CANOpen协议家族

CANOpen协议族入门学习笔记CANOPEN 2010-11-07 16:52:57

当我们使用CANOpen时,首先要明确我们

CANOPEN能干什么?

要用canopen干什么?

怎么用canopen来干活? CANOPEN能干什么?

首先需要明确canopen各个协议的功能,兄弟我最近在学习中大概总结了一些提纲如下:

canopen分为两种协议类型:

1)基础题,应用层和通信层规范,主要是3xx系列的规范

2)解应用题,相当于用基础科目解应用题的一些套路,4xx系列规范

一般来讲,CANopen协议集定义了基于CAN的分布式工业自动化系统的应用标准以及CAN应用层通信标准。 CANopen是CAN-in-Automation(CiA)定义的标准之一,并且在发布后不久就获得了广泛的承认。尤其是在欧洲,CANopen被认为是在基于CAN的工业系统中占领导地位的标准。CANopen协议集基于所谓的"通信子集",该子集规定了基本的通信机制及其特性。 cAN物理层和数据链路层协议最初开发用作客车的车载网络。基于CAN的高层协议定义了如何根据特定的应用要求来使用CAN数据链路协议。除专用的基于CAN的高层协议外,还有多个国际标准化协议:用于嵌入式控制系统的CANopen、

用于工厂自动化的DeviceNet、用于卡车和其它车辆的基于J1939的解决方案(J1939-71、Isobus、ISO 11992、CiA 501/2)、用于客车诊断的ISO 15765。

分解学习CANOPEN

基础题类的3xx,等效于课本和字典,看个大概,用的时候再翻查也不迟,反正是开卷考试。最重要的莫过于301这个协议了,所有的应用题都是在这个基础题上的变化,国内的资料基本上都是讲解这部分,出于偷懒,我就不多讲了。

应用题类:既然是应用题,我把cia中文网站上的一些资料copy过来,作为我的纲要

CiA 401: 针对通用I/O模块的设备规范

CiA 402: 针对驱动装置和运动控制装置(伺服控制器、步进式电机控制器、

变频器)的设备规范

CiA 404: 针对测量设备和闭环回路控制器的设备规范

CiA 406: 针对编码器(旋转和线性)的设备规范

CiA 408: 针对比例阀和液压传动装置的设备规范

CiA 410: 针对倾斜仪的设备规范

CiA 412: 针对医疗设备(例如,准直仪、剂量计)的设备规范集

CiA 413: 针对卡车网关的设备规范集

CiA 414: 针对织机(例如,进料器)的设备规范集

CiA 415: 针对筑路机械传感器的应用规范

CiA 416: 针对建筑门控制系统的应用规范

CiA 417: 针对电梯控制系统的应用规范

CiA 418: 针对蓄电池模块的设备规范

CiA 419: 针对蓄电池充电器的设备规范

CiA 420: 针对挤压机下游设备的设备规范集

CiA 421: 针对列车车辆控制网络(车辆子级的集成平台)的应用规范

CiA 422: 针对市政车辆(例如,垃圾车)的应用规范

CiA 423: 针对动力驱动系统(例如,柴油机)的应用规范

CiA 424: 针对轨道车辆车门控制系统的应用规范

CiA 425: 针对医疗附加设备(例如,造影剂注射器)的设备规范集

CiA 426: 针对外部轨道车辆照明装置的应用规范

CiA 430: 针对辅助轨道车辆设备(例如,冷却风扇、发动机预热装置)的应用规范

CiA 433: 针对内部轨道车辆照明装置的应用规范

CiA 444: 针对起重机附加设备(例如,延伸器)的设备规范集

CiA 445: 针对RFID阅读器的设备规范

CiA 446: 针对As-i网关的接口规范

看来对于解决“要用canopen干什么?”和“怎么用canopen来干活?”就需要根据具体的应用题来选择这些套路了。以下也是从cia中文网站上将部分跟汽车有关的内容copy的,用来概述这些协议的功能

1.CiA 401针对通用I/O模块的CANopen设备规范 CiA 401设备规范指定用于带通用模拟量和数字量输入和输出的模块的CANopen接口。缺省状态下,第1个TPDO和第1个RPDO分别支持最多64个数字量输入和最多64个数字量输出这两种字节方式。剩余的缺省PDO分别发送或接收最多12个模拟量输入和最多12个模拟量输出,输入和输出的分辨率均为16位分辨率。所有TPDO均通过状态的改变而被触发。因此,包含模拟量输入的缺省TPDO都处于禁用状态。除按缺省的字节方式访问数字量I/O外,还可支持可选的位、字和双字访问。除模拟量I/O的缺省16位分辨率外,还可支持可选的8位、32位、浮点以及制造商特定的分辨率。可指定多个参数来组态输入和输出特性(例如,输入的触发条件,内部设备故障时的输出特性)。对于模拟量I/O,信号调节和滤波器功能未进行标准化。对这些情况,建议对模拟传感器应用使用CiA 404规范。在CiA 401规范附录中给出了特定I/O模块(如操纵杆)的实现提示。操纵杆被视为包含三维模拟量输入(x,y,z) 的输入模块。缺省状态下,还有一个附加TPDO 包含一字节的数字信息。在该字节中,三个位用于启用三维(x,y,z) 的存储器功能。

2.CiA 402针对驱动装置和运动控制装置的CANopen设备规范

针对驱动装置和运动控制装置的设备规范定义伺服驱动器、变频器和步进式电机控制器的功能特性。它还指定多个操作模式和相应的组态参数。该规范包括一个有限状态自动机(FSA),该FSA指定每个状态的内部和外部设备特性。驱动装置的状态确定接受哪个命令以及是否应用大功率。状态因从主机控制器接收到的控制字而更改,并可以因内部事件进行更改。通过状态字指示当前状态。控制字和不同的命令值(例如,速度)映射到缺省的RPDO(接收过程数据对象)中。状态字和不同的实际值(例如,位置)映射到TPDO(发送过程数据对象)中。该规范提供一组可供所有驱动装置使用的通用缺省PDO,以及仅适用于特定类别驱动装置的特定缺省PDO组,例如伺服驱动器、变频器或步进式电机。多种可选功能和参数限制了符合CiA 402的设备互换性。 CiA 402设备规范符合IEC 61800-7-201和IEC 61800-7-301国际标准,可从IEC获取这两个标准

3.CiA 404针对测量设备和闭环回路控制器的CANopen设备规范。CiA 404设备规范专门针对还可提供数字量I/O功能的模拟传感器。此外,该规范还对收

集传感器信号和提供执行器设定值的闭环回路控制器进行了描述。符合CiA 404的设备可最多支持199个传感器通道。模拟量输入功能会区分现场值和过程值。现场值是来自模拟/数字转换器的无比例读数、来自增量式编码器的计数或由变压器提供的已校准的电气值。该数值被转换为物理尺寸或测量质量,结果称为过程值。过程值的实例包括重量测量值(单位为kg)、温度测量值

(单位为摄氏温度)或位移测量值(单位为mm)。闭环回路控制器功能提供包含两个设定值、一个手动超驰值和一个自优化值的PID算法。设备可配置为2点或3点控制器。可以限制PID控制器的输出,例如,用于确保最小和最大压力。通过自优化算法,可以自动计算必需的PID参数。可以将多通道传感器设备连接至一个或多个执行器设备或闭环回路控制器。这些传感器信号收集设备提供第二个 CANopen网络接口,通过该接口提供传感器信号。这便允许设计级联的CANopen传感器配置文件还定义一个报警功能,该功能根据预配置的条件(如传感器故障、超出信号值、信号超出之差等)生成PDO. 注意事项:由于CiA 404已经使用标准化配置文件的整个索引范围,因此它不支持逻辑设备。

4.CiA 406针对编码器的设备规范(旋转和线性)针对编码器的CiA 406设备规范指定绝对线性和旋转编码器的CANopen接口。除位置和速度输出外,该规范还对加速度和急停输出进行了描述。此外,编码器配置规范还指定多个组态参数,例如,确定计数方向的代码序列(补码),输出代码按这个方向增大或减少。分辨率参数用于组态每转的给定步数。此外,该规范还涵盖带滞后的完整凸轮功能。除此之外,还可以对在单个CANopen编码器设备中实现的多传感器模块进行描述。编码器规范指定下列操作模式:事件-定时器模式:周期性地采样和发送当前位置值。同步模式:在接收到同步消息后采样并发送当前位置。由于在使用CAN远程帧时,会出现若干常见问题,因此,不建议使用基于远程请求的PDO(过程数据对象)的远程模式

5.CiA 408CANopen设备规范流体动力技术 CiA 408设备规范基于由VDMA (德国机器制造商的非营利组织)发布的独立于总线的流体系统规范框架。该规范描述了可互连的比例阀、静液压泵和静液压传动装置的功能。该规范也适用于气动泵。符合该规范的设备在移动机械(例如,建筑机械、农用和林业机械)、工业机械以及过程和工厂自动化中使用。同时用于阀和驱动装置的有

限状态自动机(FSA)协调工作。这两个设备类别的定义非常相似。操作模式参数确定实际值的表现形式。系统设计人员通过组态相应的参数来选择控制模式,例如,阀芯位置开环/闭环控制或压力开环/闭环控制或压力流量控制。预定义的TPDO和RPDO包含FSA状态字、FSA控制字与实际值及命令值,具体取决于所组态的控制模式

6.CiA 410针对倾斜仪的CANopen设备规范

倾斜传感器用于对机器进行水平准直,以及用于控制重型推土机、推进装置和特殊用途的车辆。CiA 410设备规范指定用于单轴和双轴倾斜传感器的CANopen 接口。测量值在缺省时被映射到“发送-PDO”,并在此进行同步发送。在第一个缺省的TPDO中,发送16位斜率纵向对象和可选的16位斜率横向对象。支持32位斜率值的倾斜仪使用可选的第二个TPDO 为了使倾斜传感器适应应用需求,指定了多个组态参数。预设值用于将期望的倾斜角分配给实际的物理倾斜角,并以此校准传感器。最小值和最大值的可选软件限位开关可以监视允许的操作范围。

7.CiA 413针对卡车网关的CANopen接口规范 CiA 413 CANopen

接口规范集指定了到用于卡车、公交车、拖车和其它商用汽车的基于J1939的车载网络的网关。除 CANopen接口外,网关还提供一个或多个符合ISO 11992 (卡车/拖车点到点网络)、SAE J1939-71 (卡车动力传动系统网络)或ISO 11783 (农业和林业车辆中的实现网络)的CAN接口。CiA 413指定了四个缺省的符合ISO 11992-3标准的RPDO (接收过程数据对象)和TPDO (发送过程数据对象)。所有其它参数组必须进行组态或编程。卡车制造商可能会提供预组态和预编程的网关设备,以满足车身制造商的要求。车身制造商可以使用现成的CANopen传感器和执行器,因为ISO11992 的模拟参数(如数值范围、数值前缀和SI单位)可以进行组态。它是符合ISO 11992的可编程网关。CiA 413规范集包含下列部分:第1部分描述了通用的定义和缺省的通讯对象。第2部分指定了制动和传动装置的参数(ISO 11992-2)。第3部分指定了除制动装置和传动装置外的设备参数(ISO 11992-3)。第4部分指定了诊断参数(ISO 11992-4)。第6部分描述了基于J1939的映射的框架。8.CiA 415针对筑路机械的CANopen应用规范针对筑路机械的CiA 415 CANopen应用规范由OSYRIS协会(公路信息支持开放系

统)和欧洲沥青路面协会(EAPA)联合开发。该应用规范指定传感器、温度和定位控制器。该规范涵盖下列机器类型:铺路机平路机推土机粉碎机洒水车加热器卡车符合该规范的设备要求一个具有支持CANopen网络自组态(组态管理器)CANopen管理器(NMT)功能的应用主站设备。在系统启动阶段,CANopen

管理器设备扫描网络以找到设备在网络中的表示。通过SDO(服务数据对象)读取服务, CANopen管理器得知提供了哪些过程数据,以及要求从其它设备获取哪些过程数据。CANopen管理器自动在所有设备中组态必需的PDO(过程数据对象)。

9.CiA 418/9针对蓄电池和充电器的CANopen设备规范 CiA 418设备规范指定用于蓄电池模块的接口,而CiA 419设备规范指定用于蓄电池充电器的接口。蓄电池模块提供信息给充电器,从而使充电器对蓄电池进行充电。必须提供的信息包括蓄电池类型、蓄电池容量、蓄电池数目、允许的最大充电电流和蓄电池温度。此外,还可以定义可选信息,例如,各种标识符、充电历史数据、蓄电池电压、蓄电池充电状态、所请求的电流和水位状态。一个缺省的TPOD定义为用于基于定时器驱动机制发送蓄电池温度和状态信息。可选的TPOD定义为用于发送蓄电池电压、电流请求和充电状态。一个缺省的RPOD定义为用于接收充电器状态。一个可选的RPOD用于将“充电返回”对象添加到所接收的数据中。受模块支持的可选PDO可通过SDO服务进行组态。相应的缺省PDO在蓄电池充电器中实现。蓄电池模块必须支持心跳协议。

10.CiA 422针对市政车辆的CANopen应用规范 CiA 422应用规范指定用于垃圾车的虚拟设备。由系统设计人员集成CiA 422兼容的设备。这些设备可实现一个或多个下列虚拟设备:升降机装置测量装置集装箱装置垃圾箱分类装置压紧装置等等应用规范预定义所有必需的PDO和一些附加的SDO 通道,从而简化了系统集成。系统集成受不同供应商提供的大量专用工具支持。应用规范包括四个部分:第1部分:常规定义和物理层规范第2部分:虚拟设备定义第3部分:预定义的通讯对象第4部分:详细的应用对象规范

11.CANOpen移动机械

(1)CANopen建筑机械

由称为OSYRIS (用于公路信息支持的开放式系统)的EU研究项目

创立,CANopen规范CiA 415由针对建筑业的SIG制定并维护。该应用规范描述了筑路机械上的传感器互连。已定义了20多个接口(例如位置、温度、称重传感器),这些接口可通过传感器控制器自动组态另外,工作组还定义了一个用于互连所有网络和筑路机械电子设备的集成网络(CiA 436)。该网络具有多个接口,例如,可以连接至HMI、发动机系统、液压装置或传感器系统。

(2)CANopen卡车网关

SIG卡车网关定义了用于访问通过ISO 11992进行通讯的卡车车载网络(IVN)的规范(CiA 413)。网关用于卡车的上层结构,如起重机。由于ISO 11992称为“公路车辆 - 拖车和被拖车之间电气连接上的数字信息交换”,CANopen规范的内容侧重于卡车和拖车之间的通讯。此外,其中一部分定义了一种通过SAE J1939或ISO 11992网络访问CANopen数据的技术。

(3)CleANopen SIG市政工程组为市政车辆保留了一个用于卡车上层结构的规范。该应用规范对例如升降机、识别系统或称重装置进行了描述。该应用规范定义了可以在物理设备中实现的虚拟设备(功能组)。虚拟设备的原理不指定物理设备。在CiA 303-1中描述了连接器针脚分配、布线和接线建议。所有这些标准和规范均允许设计与不依赖于制造商的市政车辆组件,例如,垃圾车。虚拟设备定义包括对过程数据信号和组态参数的详细描述。对于每个虚拟设备,还描述了诊断数据。所有这些数据均可通过CAN网络在设备的CANopen

对象词典中找到。对象词典可视为一个包含16位索引地址和附加的8位子索引的数据库。过程数据信号、组态参数和诊断数据的地址在整个CleANopen系统中都是唯一分配的。

结果:知道了这些协议的大概应用范围,就可以根据自己产品的方向选择需要重点阅读的规范浏览了无数网站,发现目前在国内应用主要在以下几个方面:1)学习类,方向定位在初级培训市场,或者是芯片代理,无需对其他协议有所了解,典型特点:非终极产品,只要实现基本的物理层和链路层,剩余的不管,这是目前国内最大的一块 2) 汽车诊断类附属产品,各种诊断仪,需要网关类413,和其他类的网关协议 3)汽车零部件,需要阅读413、及具体应用部件的规范,难度最大,方向最复杂

CANopen协议讲解

根据DS301的内容进行介绍 1、CAN总线 CAN标准报文

2、CANopen应用层协议 CANopen 协议不针对某种特别的应用对象,具有较高的配置灵活性,高数据传输能力,较低的实现复杂度。同时,CANopen 完全基于CAN 标准报文格式,而无需扩展报文的支持,最多支持127个节点,并且协议开源。 一个标准的CANopen 节点(下图),在数据链路层之上,添加了应用层。该应用层一般由软件实现,和控制算法共同运行在实时处理单元内。 一个标准的CANopen 节点 CANopen 应用层协议细化了CAN 总线协议中关于标识符的定义。定义标准报文的11 比特标识符中高4 比特为功能码,后7 比特为节点号,重命名为通讯对象标识符(COB-ID)。功能码将所有的报文分为7个优先级,按照优先级从高至低依次为: 网络命令报文(NMT) 同步报文(SYNC) 紧急报文(EMERGENCY) 时间戳(TIME)

过程数据对象(PDO) 服务数据对象(SDO) 节点状态报文(NMT Err Control) 7 位的节点号则表明CANopen 网络最多可支持127个节点共存(0 号节点为主站)。 下表给出了各报文的COB-ID 范围。 NMT 命令为最高优先级报文,由CANopen 主站发出,用以更改从节点的运行状态。 SYNC 报文定期由CANopen 主站发出,所有的同步PDO 根据SYNC报文发送。 EMERGENCY报文由出现紧急状态的从节点发出,任何具备紧急事件监控与

处理能力的节点会接收并处理紧急报文。

TIME 报文由CANopen 主站发出,用于同步所有从站的内部时钟。 PDO 分为4 对发送和接收PDO,每一个节点默认拥有4对发送PDO 和接收PDO,用于过程数据的传递。 SDO 分为发送SDO 和接收SDO,用于读写对象字典。 MT Error Control报文由从节点发出,用以监测从节点的运行状态。 状态机 CANopen 的每一个节点都维护了一个状态机。该状态机的状态决定了该节点当前支持的通讯方式以及节点行为。 初始化时,节点将自动设置自身参数和CANopen 对象字典,发出节点启动报文,并不接收任何网络报文。 初始化完成后,自动进入预运行状态。在该状态,节点等待主站的网络命令,接收主站的配置请求,因此可以接收和发送除了PDO 以外的所有报文。 运行状态为节点的正常工作状态,接收并发送所有通讯报文。 停止状态为一种临时状态,只能接收主站的网络命令,以恢复运行或者重新启动。

CANopen协议介绍

CANopen ?????????CAN-bus????

?? 1??? (1) 2?CAL ?? (2) 3?CANopen (3) 3ˊ1 ????OD (3) 3ˊ2 CANopen?? (4) 3ˊ3 CANopen8?Н??▊ (6) 3ˊ4 CANopen????? (8) 3ˊ5 CANopen boot-up?? (8) 3ˊ6 CANopen?????? (9) 4??? (18) 5??? (19)

1??? ?OSI????????????????????????1???ˊ????2??????????7?????????????????????????????3????????4???????г????5???????6?????????? CAN?Controller Area Network????????Н??1???2???ISO11898?????┉??Ё????????????????????????????Software?????Firmware????????????? ???CAN??Н?ˊ?????????????????????????????????НCAN??Ё?11/29?????8?????????????CAN??????????Ё?????????????????????????????CAN??????????????????CAN ??Ё????????????????????????????????ˊ???z ????Application layer?????Ё??????????????????????? z ?????Communication profile???????????????Н??Н???????z ?????Device proflile?????????????????? ??????????CAN??????CAL?????CAL?????CANopen???CANopen ???CAN-in-Automation(CiA)?Н???П?????????Й?????????????????CANopen?????????CAN?????Ё?:??????????????????????????????????????????????????????????????ā????ā???Ё?????ā????ā?Н????????????????????CANopen????????????????????????? ?OSI??Ё?CAN???CANopen??П?????????? C iA DS P-401C iA DS P-404 CiA DSP-xxx Application C hip Data Link Physical Layer ?1.1 CAN?CANopen???OSI????Ё?????

CAN总线与CANopen协议

CAN总线与CANOpen协议 一CAN总线简介 1.1 引言 在20世纪90年代的汽车研究领域,采用总线分布式控制获得了很大的成功。用户要求汽车的控制系统具有优越的性能以保证汽车的安全性和舒适性,因此越来越多的具有超强计算能力的电子设备加载在汽车上。这就要求不同的电子设备之间能够进行通信和数据交换,以达到信息共享协调工作的目的。德国的博世公司(Bosch)率先将CAN总线(Controller Area Network)应用于汽车电子控制系统,解决了控制系统的部件之间的以及控制系统与测试设备主机的数据交换问题,替代了原有网络(用于车体控制的LIN网络、用于厂内环境控制的MOST 网络及原有车内通信的Flecray网络等)实现的功能。由于其独特的设计思想和高可靠性,在不同总线标准的竞争中获得了广泛的认可,并逐渐成为汽车最基本的控制网络,广泛应用于火车、机器人、楼宇控制、机械制造、数字机床、医疗器械、自动化仪表等领域。 图1.1 早期的ECU(汽车电子控制单元)通信 CAN总线是一种串行通信协议,具有较高的通信速率的和较强的抗干扰能力,可以作为现场总线应用于电磁噪声较大的场合。由于CAN总线本身只定义ISO/OSI模型中的第一层(物理层)和第二层(数据链路层),通常情况下CAN 总线网络都是独立的网络,所以没有网络层。在实际使用中,用户还需要自己定义应用层的协议,因此在CAN总线的发展过程中出现了各种版本的CAN应用

层协议,现阶段最流行的CAN应用层协议主要有CANopen、DeviceNet和J1939等协议。 图1.2 基于总线(CAN)的ECU通信 1.2 CAN总线的特点 CAN总线并不采用物理地址的模式传送数据,而是每个消息有自己的标识符用来识别总线上的节点。标识符主要有2个功能:消息滤波和消息优先级确定。节点利用标识符确定是否接收总线上的传送的消息当有2个或更多节点需要传送数据时,根据标识符确定消息的优先级。总线访问采用多主原则,所有节点都可以作为主节点占用总线。CAN总线相对于Ethernet具有非破坏性避免总线冲突的特点(CSMA/CA协议,与CSMA/CD协议相似),这种方式可以保证在产生总线冲突的情况下,具有更高优先级的信息没有被延时传输。 其物理传输层详细和高效的定义,使得CAN总线具有其它总线无法达到的优势,注定其在工业现场总线中占有不可动摇的地位,CAN总线通信主要具有如下所示的优势和特点: (1)CAN总线上任意节点均可在任意时刻主动的向其它节点发起通信,节点没有主从之分,但在同一时刻优先级高的节点能获得总线的使用权,在高优先级的节点释放总线后,任意节点都可使用总线; (2)CAN总线传输波特率为5Kbps~1Mbps,在5Kbps的通信波特率下最远传输距离可以达到10Km,即使在1Mbps的波特率下也能传输40m的距离。在1Mbps波特率下节点发送一帧数据最多需要134μs; (3)CAN总线采用载波监听多路访问、逐位仲裁的非破坏性总线仲裁技术。在节点需要发送信息时,节点先监听总线是否空闲,只有节点监听到总线空

can总线与canopen协议

竭诚为您提供优质文档/双击可除can总线与canopen协议 篇一:?canopen协议讲解 根据ds301的内容进行介绍 1、can总线 can标准报文 2、canopen应用层协议 canopen协议不针对某种特别的应用对象,具有较高的配置灵活性,高数据传输能力,较低的实现复杂度。同时,canopen完全基于can标准报文格式,而无需扩展报文的支持,最多支持127个节点,并且协议开源。 一个标准的canopen节点(下图),在数据链路层之上,添加了应用层。该应用层一般由软件实现,和控制算法共同运行在实时处理单元内。 一个标准的canopen节点 canopen应用层协议细化了can总线协议中关于标识符的定义。定义标准报文的11比特标识符中高4比特为功能码,后7比特为节点号,重命名为通讯对象标识符(cob-id)。功能码将所有的报文分为7个优先级,按照优先级从高至低

依次为: 网络命令报文(nmt) 同步报文(sync) 紧急报文(emeRgency) 时间戳(time) 过程数据对象(pdo) 服务数据对象(sdo) 节点状态报文(nmterrcontrol) 7位的节点号则表明canopen网络最多可支持127个节点共存(0号节点为主站)。 下表给出了各报文的cob-id范围。 nmt命令为最高优先级报文,由canopen主站发出,用以更改从节点的运行状态。 sync报文定期由canopen主站发出,所有的同步pdo根据sync报文发送。 emeRgency报文由出现紧急状态的从节点发出,任何具备紧急事件监控与处理能力的节点会接收并处理紧急报文。 time报文由canopen主站发出,用于同步所有从站的内部时钟。 pdo分为4对发送和接收pdo,每一个节点默认拥有4 对发送pdo和接收pdo,用于过程数据的传递。 sdo分为发送sdo和接收sdo,用于读写对象字典。

CANopen协议—PDO介绍

机械工程学院机械设计及理论研究所 目录 第一章PDO实例分析 (1) 一、目的: (1) 二、手段: (1) 三、分析: (1) 四、过程: (2) 4.1.对象字典的编写 (2) 4.1.1各节点ID分配表定义 (2) 4.1.2对节点1进行对象字典编写 (2) 4.1.3对节点2进行对象字典编写 (3) 4.1.4对节点3进行对象字典编写 (5) 4.2节点1发送数据至节点2、节点3 (6) 4.2.1节点1发送数据至总线 (6) 4.2.2 节点2、节点3从总线接收数据 (7) 4.3 节点2 发送数据至节点3 (8) 4.3.1 节点2 发送数据至总线 (8) 4.3.2 节点3从总线接收数据 (9) 参考文献 (10)

第一章PDO实例分析 一、目的: 实例的目的如图1-1所示,实现节点1的数据(A、B)传送到节点2、节点3,同时实现节点2传输数据(C、D)至节点3 。 图1-1 数据传输目的 二、手段: 使用PDO进行数据传送。 三、分析: 图1-2 SDO客户/服务器通讯模式[1] PDO通信是基于生产者/消费者(Producer/Consumer)模型,主要用于传输实时数据。产生数据的节点将带有自己节点号的数据放到总线上,需要该数据的节点可以配置为接收该节点发送的数据[3]。

四、过程: 4.1.对象字典的编写 对象字典的结构和条目对于所有设备是共同的,本例中采用索引定位,子索引确定对象的思想构建对象字典,方法是使用结构体定义子索引,子索引结构体的成员变量包含对象的属性(读写权限,数据类型,数据长度等)和指向对象的指针,定义索引时包含指向子索引的指针和子索引数目,对象字典各项在代码中采取如图1-3所示的方式来组织构建,这样可以方便地通过索引和子索引一找到对应的项,对象定义为指针的形式可以通过主站的SDO报文进行读写,实现对对象字典的灵活配置,同时这种方式实现通讯层与应用层共享数据变量的特点。对象字典的条目格式如图1-3所示: 图1-3 对象字典模块结构图 4.1.1各节点ID分配表定义 表1-1 各节点ID分配表 4.1.2对节点1进行对象字典编写 节点1发送数据至节点2、节点3,故需定义TPDO,我们在此处定义为TPDO1。节点1的应用数据区、TPDO1的通讯参数和映射参数在对象字典中的定义分别如表1-2、1-3和1-4所示。 表1-2 节点1的应用数据区在对象字典中的定义 表1-3 节点1的TPDO1通讯参数在对象字典中的定义

CANopen协议介绍

CANopen协议介绍(讲义) 2010-10-12 15:58:28| 分类:技术文档| 标签:|举报|字号大中小订阅 很长一段时间以来,很多人问我CANopen 总线优势到底在什么地方,我也大体的给了口头的讲述,但是比较笼统,没办法做到详细解释,加上纯技术的话语比较晦涩,遇上内行还能多聊几句,如果是刚接触的,那就是云里雾里了。这次正好要进行公司业务员培训,要讲讲CANopen,在整理过程中把我的讲义贴出来,希望能帮到大家,以下内容是我讲课的口述内容,比较白话,不能作为资料,大家见谅,鉴于我整理也比较辛苦,也算个小小的知识产权,所以PPT我就不 贴出来了。^-^ 讲义内容: 通常CANopen协议相关的一些资料相对来说比较晦涩,非专业人士看起来比较困难。我尽量以浅显易懂的方式将CANopen 协议的框架和它在实际应用中存在的优缺 点展示给大家。

我按照最先接触的内容由浅入深的讲解,直接讲CANopen协议会有点跳跃的感觉,所以,我以产品作为切入点,分析一下如何使用,在这个过程中,让大家理解什么是CANopen协议。首先,我们拿到一个产品,比方说是编码器,它的用途是作为位置传感器,那我们就需要将编码器送出的数据进行采集。一般自然界中存在的信号有多种形式,大多以模拟量形式存在,类似于人感觉到温度的高低、水流的快慢、风力的大小等等。但这是很模糊的概念,今天热了还是冷了,风大风小,没有比较是很难界定的,为了规范这些量,方便描述时的统一性,温度计量标准有华氏和摄氏、水流有每秒多少立方、风力有级数。这些,就是数字量。数字量在人与人之间传递时,可以通过嘴和耳,语言和听力,在设备之间如何来传递呢?学过数电的人知道,灯泡有两种状态,亮和暗,在最基础的电路回路里,“通”和“断”是两个最基本的状态,我们可以把他理解为“1”和“0”,这样,就有了表述的方法。但是单独使用这两种状态是无法传递信息的,如何把编码器

CANOPEN协议详解.pdf

一、CAN-BUS 介绍 1.CAN 的基本概念、特点 CAN 是Controller Area Network 的缩写(以下称为 CAN ),是ISO*1国际标准化 的串行通信协议。CAN 协议如表 3 所示涵盖了ISO 规定的OSI 基本参照模型中的传输层、数据链路层及物理层。 CAN 协议中关于ISO/OSI 基本参照模型中的传输层、数据链路层及物理层,具体有哪些定义如图所示。 . ISO/OSI 基本参照模型ISO/OSI 基本参照模型 各层定义的主要项目软件 控制 7 层:应用层 由实际应用程序提供可利用的服务。6 层:表示层 进行数据表现形式的转换。如:文字设定、数据压缩、加密等的控制5 层:会话层 为建立会话式的通信,控制数据正确地接收和发送。4 层:传输层控制数据传输的顺序、传送错误的恢复等,保证通信的品质。 如:错误修正、再传输控制。 3 层:网络层进行数据传送的路由选择或中继。 如:单元间的数据交换、地址管理。 硬件 控制 2 层:数据链路层 将物理层收到的信号(位序列)组成有意义的数据,提供传输错误控 制等数据传输控制流程。如:访问的方法、数据的形式。 通信方式、连接控制方式、同步方式、检错方式。应答方式、通信方式、包(帧)的构成。位的调制方式(包括位时序条件)。 1 层:物理层 规定了通信时使用的电缆、连接器等的媒体、电气信号规格等,以实 现设备间的信号传送。 如:信号电平、收发器、电缆、连接器等的形态。【注】*1 OSI :Open Systems Interconnection (开放式系统间互联)

CAN的特点 CAN 协议具有以下特点。 (1) 多主控制 在总线空闲时,所有的单元都可开始发送消息(多主控制)。最先访问总线的单元可获得发送权。 (2) 消息的发送 在CAN 协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连 的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为ID)决定优先级。ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利 的单元则立刻停止发送而进行接收工作。 (3) 系统的柔软性 与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在 总线上的其它单元的软硬件及应用层都不需要改变。 (4) 通信速度 根据整个网络的规模,可设定适合的通信速度。 在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度 与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以 有不同的通信速度。 (5) 远程数据请求 可通过发送“遥控帧”请求其他单元发送数据。 (6) 错误检测功能·错误通知功能·错误恢复功能 所有的单元都可以检测错误(错误检测功能)。 检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。 正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单 元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。 (7) 故障封闭 CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的 数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。 (8) 连接 CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。 但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连 接的单元数增加;提高通信速度,则可连接的单元数减少。 2. CAN协议及标准规格

CANOPEN协议详解

一、CAN-BUS介绍 1.CAN的基本概念、特点 CAN 是Controller Area Network的缩写(以下称为CAN),是ISO*1国际标准化的串行通信协议。 CAN 协议如表3 所示涵盖了ISO 规定的OSI 基本参照模型中的传输层、数据链路层及物理层。 CAN 协议中关于ISO/OSI 基本参照模型中的传输层、数据链路层及物理层,具体有哪些定义如图所示。 . ISO/OSI 基本参照模型 【注】*1 OSI:Open Systems Interconnection (开放式系统间互联)

CAN的特点 CAN 协议具有以下特点。 (1) 多主控制 在总线空闲时,所有的单元都可开始发送消息(多主控制)。最先访问总线的单元可获得发送权。 (2) 消息的发送 在CAN 协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为ID)决定优先级。ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。 (3) 系统的柔软性 与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。 (4) 通信速度 根据整个网络的规模,可设定适合的通信速度。 在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。 (5) 远程数据请求 可通过发送“遥控帧”请求其他单元发送数据。 (6) 错误检测功能·错误通知功能·错误恢复功能 所有的单元都可以检测错误(错误检测功能)。 检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。 正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。 (7) 故障封闭 CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。 (8) 连接 CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。 2. CAN协议及标准规格

CANOpen协议家族

CANOpen协议族入门学习笔记CANOPEN 2010-11-07 16:52:57 当我们使用CANOpen时,首先要明确我们 CANOPEN能干什么? 要用canopen干什么? 怎么用canopen来干活? CANOPEN能干什么? 首先需要明确canopen各个协议的功能,兄弟我最近在学习中大概总结了一些提纲如下: canopen分为两种协议类型: 1)基础题,应用层和通信层规范,主要是3xx系列的规范 2)解应用题,相当于用基础科目解应用题的一些套路,4xx系列规范 一般来讲,CANopen协议集定义了基于CAN的分布式工业自动化系统的应用标准以及CAN应用层通信标准。 CANopen是CAN-in-Automation(CiA)定义的标准之一,并且在发布后不久就获得了广泛的承认。尤其是在欧洲,CANopen被认为是在基于CAN的工业系统中占领导地位的标准。CANopen协议集基于所谓的"通信子集",该子集规定了基本的通信机制及其特性。 cAN物理层和数据链路层协议最初开发用作客车的车载网络。基于CAN的高层协议定义了如何根据特定的应用要求来使用CAN数据链路协议。除专用的基于CAN的高层协议外,还有多个国际标准化协议:用于嵌入式控制系统的CANopen、 用于工厂自动化的DeviceNet、用于卡车和其它车辆的基于J1939的解决方案(J1939-71、Isobus、ISO 11992、CiA 501/2)、用于客车诊断的ISO 15765。 分解学习CANOPEN 基础题类的3xx,等效于课本和字典,看个大概,用的时候再翻查也不迟,反正是开卷考试。最重要的莫过于301这个协议了,所有的应用题都是在这个基础题上的变化,国内的资料基本上都是讲解这部分,出于偷懒,我就不多讲了。 应用题类:既然是应用题,我把cia中文网站上的一些资料copy过来,作为我的纲要 CiA 401: 针对通用I/O模块的设备规范 CiA 402: 针对驱动装置和运动控制装置(伺服控制器、步进式电机控制器、

CANopen从站协议在stm32分析和说明

1 CANopen是一种架构在控制局域网路 (Control Area Network, CAN)上的高层通讯协定,其协议在嵌入式系统及单片机上广泛使用,是工业控制常用到的一种现场总线。依靠CANopen协议集的支持,可以对不同的从站设备通过总线进行配置和系统重构。相信在不久的将来随着国内对CANopen协议的研究深入,CANopen协议会在各个领域有广泛的应用。 CANopen 是OSI模型中的网络层以上(包括网络层)的协定。 CANopen 支持网络管理、设备监控及节点间的通讯,其中包括一个简易的传输层,可处理资料的传送。数据的传输和接收都基于CAN总线。如图1,通常多个从站设备靠CANopen网络传输数据给一个CANopen 主站设备。 CANopen需要有对象字典,SDO(服务数据对象)处理功能,PDO(过程数据对象)处理功能,定时器,NMT(网络管理)处理功能等。 2 CANopen对象字典介绍及设计 对象字典(od:object dictionary)是CANopen协议的核心。对象字典(od:object dictionary)是一个有序的对象组;每个对象采用一个16位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8位的子索引。通过接收主站发送的SDO(服务数据对象)报文,可以设置从站的对象字典,主要对象字典请参见表1。从站在做事件处理时通常会读取对象字典,根据对象字典里的数据进行事件处理。 譬如从站的1017索引是记录从站发送心跳包的时间间隔。当从站程序运行时并且从站是准备、停止、运行状态时,程序会查找1017索引的0号子索引里的数据进行处理。如果里面有数据的话(假设数据为2000),程序则会根据数据所设置的时间通过定时器判断来每2000毫秒发送心跳包。 表1 从站主要对象字典介绍

CANopen协议分析指南

广州致远电子有限公司

修订历史

目录 1. CANopen协议分析插件简介 (1) 1.1 CANopen协议及其插件简介 (1) 1.2 CANopen协议插件安装说明 (1) 1.3 CANopen数据分析结果的实例 (2) 2. CANopen协议分析的方法 (3) 2.1 支持块传输的CANopen协议分析 (3) 2.2 不支持块传输的CANopen协议分析 (5) 2.3 发送CANopen协议帧 (7) 3. 免责声明 (12)

1. CANopen协议分析插件简介 1.1 CANopen协议及其插件简介 CANopen协议集定义了基于CAN总线的分布式工业自动化系统的应用标准以及CAN 总线应用层通信标准。其最核心部分是通过对象词典来描述设备功能并以EDS文件格式来记录,采用实时数据与服务数据分开传输,最大限度提高实时数据传输效率,灵活多变的数据传输方式以及强大的网络管理能力。一经推出便得到了广泛的应用,在车辆工业、工业机具、建筑物自动化、医疗设备、航海机具、餐厅设备、实验室器材及科研研究等行业中已得到广泛的应用。 CANopen协议分析插件是CANPro协议分析平台的一部分,与CAN分析仪配套使用。用于分析CANopen网络的数据、错误状态、网络负载,或模拟CANopen应用终端的工作状态等,是CANopen网络开发工程师的好帮手,可以大大缩短开发周期,方便实现网络维护、查错、管理等复杂工作。 1.2 CANopen协议插件安装说明 要使用CANopen协议插件对CANopen网络进行分析,您需要两个安装包:CANPro协议分析平台安装包和CANopen协议分析插件安装包。安装包可以从广州致远电子有限公司的网站上下载:https://www.sodocs.net/doc/ae10118540.html,/products/CANalyst/CANalyst.asp。 请注意,在安装CANopen协议分析插件之前,必须已安装好CANPro协议分析平台软件,且CANPro协议分析平台的版本需要1.40或更高的版本。否则,安装失败。出现下面的错误提示: 图1-1 插件安装错误提示(1) 图1-2 插件安装错误提示(2) 安装1.40或更高版本的CANPro协议分析平台后,就可以成功安装CANopen协议分析插件,开始分析CANopen网络数据了。 由于现在协议分析插件和协议分析平台都作了较大的修改,V1.00的插件只能和V1.40的CANPro协议分析平台配套使用,建议用户需要时,协议分析插件和协议分析平台均使用最新的版本。

CANOPEN从站协议在stm32f103zet6单片机上的实现-给人

CANopen从站协议在stm32f103zet6单片机上的实现 摘要:本文对CANopen从站协议在stm32f103zet6单片机上的实现做了分析和说明。介绍了CANopen协议的SDO(服务数据对象),PDO(过程数据对象)等报文处理的工作和实现原理,实现了向主站发送数据及处理主站报文等功能。本文中,做了一个从站与一个主站进行数据交互的实现,实验表明CANopen从站协议可以正常使用在stm32f103zet6单片机上,并且可以与CANopen主站进行数据传输等交互操作。 关键词:CANopen;从站协议;服务数据对象;过程数据对象;单片机 1引言 (STM32F103ZET6)(STM32F103ZET6)(STM32F103ZET6)从站设备 (STM32F103ZET6) 图1 CANOPEN连接示意图 CANopen是一种架构在控制局域网路(Control Area Network, CAN)上的高层通讯协定,其协议在嵌入式系统及单片机上广泛使用,是工业控制常用到的一种现场总线。依靠CANopen协议集的支持,可以对不同的从站设备通过总线进行配置和系统 重构。相信在不久的将来随着国内对CANo pen协议的研究深入,CANopen协议会在各个领域有广泛的应用。 CANopen 是OSI模型中的网络层以上(包括网络层)的协定。CANopen 支持网络管理、设备监控及节点间的通讯,其中包括一个简易的传输层,可处理资料的传送。数据的传输和接收都基于CAN总线。如图1,通常多个从站设备靠CANopen网络传输数据给一个CANopen主站设备。 CANopen需要有对象字典,SDO(服务数据对象)处理功能,PDO(过程数据对象)处理功能,定时器,NMT(网络管理)处理功能等。本文着重介绍了CANopen协议的各个功能以及CANopen协议在单片机上stm32f103zet6的设计与实现。 2 CANopen对象字典介绍及设计 对象字典(od:object dictionary)是CAN open协议的核心。对象字典(od:object dict ionary)是一个有序的对象组;每个对象采用一个16位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8位的子索引。通过接收主站发送的SDO(服务数据对象)报文,可以设置从站的对象字典,主要对象字典请参见表1。从站在做事件处理时通常会读取对象字典,根据对象字典里的数据进行事件处理。 譬如从站的1017索引是记录从站发送心跳包的时间间隔。当从站程序运行时并且从站是准备、停止、运行状态时,程序会查找1017索引的0号子索引里的数据进行处理。如果里面有数据的话(假设数据为2000),程序则会根据数据所设置的时间通过定时器判断来每2000毫秒发送心跳包。 表1 从站主要对象字典介绍 索引:对象16 位元的位址。数据的类型:一个代表对象的类型,可以是阵列、纪录或只是一个变量。类型:变量的类型。属性:提供此是否可读/可写的资料,有下列四种:可读/写、只读、唯写、只读常数。 以下是建立6003索引的代码案例,并且里面的数据是(2.78593)*100000的代码片

相关主题