一、 CAN和CANopen简介
CAN总线全称为 Controller AreaNetwork 即掌握器局域网是国际上运用最广泛的现场总线之一,已经在汽车制造、机器制造、包装机器、烟草等行业得到了广泛的应 用 。
CAN 总线是德国 BOSCH 公司从 80 年代初为办理当代汽车中浩瀚的掌握与测试仪器之间的数据交流而开拓的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率可达 1MBPS 。CAN 总线通信接口中集成了 CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位添补、数据块编码、循环冗余考验、优先级判别等项事情。

CAN 协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采取这种方法的优点可使网络内的节点个数在理论上不受限定,数据块的标识码可由 11 位或 29 位二进制数组成,因此可以定义 211 或 229 个不同的数据块,这种按数据块编码的办法,还可使不同的节点同时吸收到相同的数据,这一点在分布式掌握系统中非常有用。数据段长度最多为 8 个字节,可知足常日工业领域中掌握命令、事情状态及测试数据的一样平常哀求。同时,8 个字节不会占用总线韶光过长,从而担保了通信的实时性。CAN 协议采取 CRC 考验并可供应相应的缺点处理功能,担保了数据通信的可靠性。CAN 卓越的特性、极高的可靠性和独特的设计,特殊适宜工业过程监控设备的互连,因此,越来越受到工业界的重视,并已公认为最有出息的现场总线之一。
其余,CAN 总线采取了多主竞争式总线构造,具有多主站运行和分散仲裁的串行总线以及广播通信的特点。CAN 总线上任意节点可在任意时候主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。CAN 总线协议已被国际标准化组织认证,技能比较成熟,掌握的芯片已做生意品化,性价比高,特殊适用于分布式测控系统之间的数通讯。CAN 总线插卡可以任意插在 PC、 AT 、XT 兼容机上,方便地构成分布式监控系统。
而 CANopen 是基于 CAN 总线的运用层协议,在开放的现场总线标准中CANopen是最著名和成功的一种,已经在欧洲和美国得到广泛的认可和大量运用。1992 年在德国成立了“自动化 CAN 用户和制造商协会”(CiA,CANinAutomation),开始动手制订自动化CAN 的运用层协议CANopen。此后,协会成员开拓出一系列 CANopen 产品,在机器制造、铁路、车辆、船舶、制药、食品加工等领域得到大量运用。目前 CANopen 协议已经成为了一种新的工业现场总线标准 EN-50325-4。CANopen 协议是 CAN-in-Automation(CiA)定义的标准之一,在欧洲,CANopen 协议被认为是在基于 CAN 的工业系统中盘踞导地位的标准。大多数主要的设备类型,例如数字和仿照的输入输出模块、驱动设备、操作设备、掌握器、可编程掌握器或编码器,都在称为“设备描述”的协议中进行描述;“设备描述”定义了不同类型的标准设备及其相应的功能。依赖 CANopen 协议的支持,可以对不同厂商的设备通过总线进行配置。
二、CANopen的基本知识
EDS文件
EDS (Electronic Data Sheet)
EDS 文件描述了 CAN 网络上设备通信属性(波特率、输出类型、I/O 供应…)。它由设备制造商供应,用于在配置工具中配置节点(就像 Windows 里的设备驱动程序)。
PDO
PDO (过程数据工具)
CANopen 帧包含 I/O 数据
区分在:
1、 传送 PDO:TXPDO 带有节点供应给其他节点的数据
2、 吸收 PDO:RXPDO 节点花费的数据
传送的方向从节点的不雅观点看总是可见的。PDO 没有必要包含所有节点映象。常日仿照量和数字量被分身分歧的 PDO 进行传送。对输出也是同样如此!
SDO
SDO (做事数据工具)
CANopen 帧包含参数
SDO 紧张用于在程序运行时,从设备读参数或者向设备写参数
COB-ID
COB-ID(通讯工具标识符)
每个 CAN 帧以一个 COB-ID 开头,COB-ID 作为 CAN 帧的标识符。
在配置阶段,每个节点在吸收 COB-ID 时,对帧来说,他是供应者或者消费者。
三、关于CANopen
先容
CANopen 是一个标准的工业掌握系统现场总线协议。它特殊适宜实时掌握的 PLC ,由于它为集成的和可传输的工业运用供应了一个高效、低本钱的办理方案。
CANopen协议
CANopen 协议是建立在 CAL 协议根本上的一个子协议。通过定义设备规范,它乃至更加适宜于标准工业组件。CANopen 是一个 CIA (CAN inAutomation)标准,投入市场之初,它就迅速被推广。在欧洲,CANopen现在已经被公认为基于 CAN 设计的工业系统的工业标准。
物理层
CAN 利用差分驱动两总线(公共回路)。CAN 旗子暗记是 CAN-high 和CAN-low 线之间的电压差值。
1:CAN-high 线
2:CAN-low 线
3:终端电阻:120Ω
4:节点
根据电磁兼容哀求,总线可以利用平行、双绞或者屏蔽走线办法。单线构造使反射最小化。
CANopen规范文件
通讯规范文件
CANopen 规范文件时基于“通信规范文件”的,用来规定紧张通讯机制和它们的描述(DS301 )。
设备规范文件
在设备规范文件中描述了工业自动化领域最主要的设备类型,同时也定义了设备功能类型。
标准设备描述例子为:
◆ 数字量和仿照量输入/输出模块(DS401)
◆ 电机(DS402)
◆ 掌握设备(DS4P403)
◆ 闭环掌握器(DSP404)
◆ PLC (DS405)
◆ 编码器(DS406)
通过CAN总线配置设备
通过 CAN 总线配置设备的可能性是制造商哀求自治的基本原则之一。
CANopen规范文件的通用规格
CANopen 是符合以下规定文件的,用于 CAN 系统的一套规范:
◆ 开拓的总线系统
◆ 无协议超负荷的实时数据交流
◆ 可重新定义尺寸的模块化设计
◆ 设备互用性和交流性
◆ 被大量国际制造商支持
◆ 标准的网络配置
◆ 访问所有的参数设备
◆ 同步和循环过程数据/事宜驱动数据
CANopen产品认证
在市场上供应CANopen 认证产品的制造商都是 CiA 组织成员。
CAN标准
CANopen 协议被 CIA 组织定义并且可访问该组织(须遵守某些限定 )站点:http://www.can-cia.com.对主从设备的源代码可以从不同的供应商得
到。
与CANopen网络通讯
通讯协议文件基于 CAL 做事和协议。
它供应用户对两种交流类型的访问:SDO、PDO。
在上电时,设备进入一个初始化阶段,接着进入预处理阶段。在这个阶段,只有SDO 可以通讯。在接到一个启动命令后,设备进入事情状态 ,在这个阶段 PDO 可以进行通讯,SDO 通讯仍旧有效。
CANopen启动Boot-up
启动过程 最小设备配置指定了简化的启动程序。这个过程描述如下:
详细步骤先容:
1、模块上电
2、模块初始化,进入预处理状态
3、NMT 做事:启动远程节点
4、NMT 做事:预处理
5、NMT 做事:停滞远程节点
6、NMT 做事:重启节点
7、NMT 做事:重启节点通讯
初始
进入“重新启动通讯”后,设备进入初始模式。
该状态许可的操作有:
◆ 定义哀求的通讯工具(SDO、PDO、紧急事宜处理)
◆ 安装干系的 CAL 做事
◆ 配置 CAN 掌握器
初始化完成后设备自动进入预处理模式。
预处理
进入预处理的条件:
◆ 在初始化完成后
◆ 在正常事情模式下,吸收到“进入预处理”NMT 命令
在这种情形下,设备的配置可以被修正。然而只有 SDO 可以用来读或写设备的参数。
当配置完成后,通过吸收干系的命令,设备进入以下的事情状态:
◆ 停滞 ,当吸收到“停滞远程节点”NMT 命令
◆ 运行 ,当吸收到“启动远程节点”NMT 命令
停滞
如果设备处于“预处理 ” 或者“正常事情 ” 状态,吸收到“节点停滞 ” 命令(NMT 做事),设备进入 “停滞状态 ” 。
在这种情形下,设备不能被配置。不能读写设备干系参数(SDO ),只有从设备的监视功能(即节点保护)有效。
操作
当设备处于“预处理”状态,吸收到“启动远程节点 ” ,设备进入操作状态。在“运行 ” 状态,当利用“节点启动 ” NMT 做事启动 CANopen 网络,所有的设备功能性被利用,PDO、SDO 均可进行通讯。
过程数据工具(PDO)
PDO定义
PDO 是过程数据通信干系的通信工具,它能担保过程数据的实时交流。
一个 CANopen 设备的 PDO 工具定义了它与网络上其他 CANopen 设备之间的
隐式数据交流。
当设备运行时,PDO 交流被激活。
PDO类型
有两种 PDO 类型:
◆ TXPDO/TPDO:PDO 被设备传送
◆ RXPDO/RPDO:PDO 被设备吸收
PDO的供给者与消费者
PDO 基于“供给者/消费者 ” 模型。传送的叫“供给者 ” ,吸收的叫“消费者 ” 。
PDO的传送模式
◆ 同步(通过吸收SYNC工具实现同步)
非周期:由远程帧预触发传送,或者由设备子协议中规定的工具特定事宜预触发传送。
周期:传送在每1到240个SYNC后触发。
◆ 异步
由远程帧触发传送。
由设备子协议中规定的工具特定事宜触发传送。
做事数据工具(SDO)
SDO定义
做事数据工具 SDO 许可利用显示要求交流数据。
当设备处于预处理、事情状态,SDO 做事是有效的 。
SDO的类型
有两种 SDO 类型:
◆ 读 SDO(上传)
◆写 SDO(下载)
客户端/ 做事器模型
SDO 协议是基于“客户端/做事器”模型。
对付下载 SDO
客户端发送一个标示被写工具的要求,做事器返回一个确认信息。
对付上传 SDO
客户端发送一个标示被读工具的要求,做事器返回被读工具的数据。
对付一个未处理的 SDO
对付以上的两种情形,如果一个 SDO 不能被处理,做事器返回一个缺点
代码。
“节点保护”和“寿命保护”
利用期限的定义
“利用期限”参数是按以下来打算的:
利用期限=保护韶光(看门狗韶光)利用期限系数;
保护韶光的范例值在 250ms 到 2S 之间。工具 0X100CH 含有以毫秒韶光定义的保护韶光,工具 0X100DH 含有“利用期限系数 ” 。
监控机制:
1、节点保护
2、心跳报文
监控激活
如果两个参数中有一个为零,那么模块不实行监控,即无寿命保护。为了激活监控,必须在两个工具中输入非零的数值。
担保可靠事情
为了担保可靠事情,建议设置“利用期限系数 ” 为 2。如果不是只样,主模块会产生延时(例如,在“节点保护 ” 时高优先级信息的处理或者内部处理时),模块会转入预处理模式而不产生缺点。
监控的主要性
这两种保护机制对 CANopen 系统的安全运行特殊主要,特殊是对不事情于事宜-被控模式的设备。
从设备的监控
监控按以下的方法实行:
◆ 主设备发送远程帧,来读取从设备的状态;
从设备答复:
◆ 从设备可以被配置为产生周期性的被称着 “心跳报文” 的报文,周期性的发送从设备的状态。
主设备的监控
如果主设备基于严格循环要求“保护 ” 信息,从设备可以检测主设备的状态。如果从设备在也定义的利用期限内没有收到主设备的要求(保护缺点),它会认为主设备故障。这种情形下相应输出进入出错状态并且从设备进入预处理状态。
“保护”协议
在第一个“保护”信息里,“锁住位”(t)的值是0,然后在每个后来的保护信息里,该位都会改变,只有可以显示信息是否丢失。总线头部用7个剩余的位来指示网络状态:
四、CANopen设备
CAN 总线网络中有如下几类设备:
(1)PLC:PLC 做 CAN 上的一个主站,起到中心掌握器的浸染,对全体系统的事情起安排、调度、实行各个操作等浸染。作为 CAN 网络中的主站,PLC 可以访问网络中任何节点的任何可以访问的数据,并起总线监控浸染,实时监控总线上各个节点的事情状态,如果涌现缺点并实行相应的处理程序;
(2)分散式I/O:常日由电源部分、通信适配器部分、接线端子部分组成。分散式I/O 不具有程序存储和程序实行,通信适配器部分吸收主站指令,按主站指令驱动 I/O ,并将 I/O 输入及故障诊断等信息返回给主站。
(3)驱动器、传感器、实行机构等现场设备:即带 CAN 接口的现场设备,可由主站在线完成系统配置、参数修正、数据交流等功能。至于哪些参数可进行通信及参数格式由 CANopen 行规决定。