CANopen协议
- 格式:pdf
- 大小:1.41 MB
- 文档页数:16
CANopen协议
⼀、CANOpen总线结构
⼴播命令
⼆、通信类型CANOpen有三种通信⽅式:
主/从通信⽅式
服务器/客户端通信⽅式
⽣产商/顾客通信⽅式2.1主/从通信⽅式(NMT)对某⼀特点功能⽽⾔,⼀个⽹络中只有⼀个主机,其他全为从机。由主机发送请求信号,从机发送相应信号(如果需要)
主机发出命令,从机作出响应,但不回送数据
主机发出命令,从机作出响应,同时回送数据确认2.2服务器/客户端通信⽅式(SDO)这种关系指发⽣在⼀个服务器和⼀个客户端之间,客户端发送命令,服务器执⾏后,回答客户端
2.3⽣产商/顾客通信⽅式(SYNC、Time Stamp、EMCY)
这种通信⽅式有Push和pull两种模式,⽹络中在这⼀个⽣产⼚,0或多个顾客。2.3.1push模式⼚商发送命令,顾客执⾏,不需回送数据
2.3.2 pull模式
⼚商发送命令,顾客执⾏,回送证实数据
三PDO传送模式PDO分为TPDO(发送PDO)与RPDO(接收PDO)两种,PDO的传送模式有两种:同步传送与异步传送。同步传送⼜分为周期传送与⾮周期传送3.1同步传送
由某⼀个同步应⽤在⽹路上周期性的发送同步对象,及发送SYNC帧,该同步应⽤可以是主机也可以是从机
PDO通信参数中的传输类型说明传送模式与触发⽅式,
TPDO:传送类型同时说明其传送率,以基本传送周期的倍数表⽰。
传送类型为0时,表⽰当某事件发⽣后,收到⼀个同步对象帧(SYNC)时,⽴刻进⾏数据传输。(⾮周期传送)
传送类型为1时,表⽰当每收到⼀次同步对象帧(SYNC)时,传送⼀次数据。(周期传送)
传送类型为n时,表⽰当每收到n次同步对象帧(SYNC)时,传送⼀次数据。(周期传送)RPDO:接收是在收到SYNC信号后,运⾏接收,独⽴于传输参数定义的传送率。
传输类型 252 为⾮周期传输,在接收到同步对象后进⾏采样但不发送,在接收到请求该数据的远程帧后发送。3.2异步传送
TPDO: 异步传送与SYNC⽆关,
传输类型 253-255 为异步传输,定义为此三种类型的 TPDO在接收到远程帧或规定的事件发⽣后进⾏传输。3.3触发模式:
触发⽅式有三种3.3.1事件触发⽅式
对于周期性传送,接收到的SYNC报⽂达到设定数量,相当于出发事件,引起⼀次发送。
对于⾮周期性传送由设备⼦协议设定的事件触发发送3.3.2定时器触发
当设定的时间达到后,触发⼀次发送3.3.3远程帧触发
在收到其他设备发送的远程帧后,启动⼀次异步传送3.4PDO协议
PDO的通信模式相当于⼚商/顾客的通信模式,包含如下参数:
PDO数量:1~512,
⽤户类型:⼚商/顾客
数据类型:由PDO映射确定
禁⽌时间:n*100ns
索引20h描述PDO的通信参数,索引21描述PDO的映射参数3.4.1写PDO
使⽤⼚商/顾客模式的PUSH形式,⼚商主动发送PDO3.4.2读PDO
使⽤⼚商/顾客模式的PULL形式,某⼀顾客发送远程帧,传送发送PDO,这是可选模式,所有的PDO都可以接收,。这种模式若PDO发送的数据量L⼤于PDO映射定义的数据量n,取前那个数据,若PDO发送的数据量L⼩于PDO映射定义的数据量n,若顾客⽀持Emergency报⽂,发送Emergency报⽂,错误代码为8210
四SDO传送模式SDO以段的形式发送,⾸先发送的是初始化阶段的段,以加速传送⽅式传送,包含4个以内字节的数据,索引为22h的对象字典描述SDO通信参数。相应的对象字典的条⽬通过下式计算:SSDO(RSDO)通信参数索引=1200h+SSDO_No-1
CSDO(TSDO)通信参数索引=1280h+CSDO_No-1
4.1SDO协议
SDO参数:
SDO数量:1~128,
⽤户类型:客户端/服务器Index和subindex的数据类型有多种形式:structure unsigned(16),unsigned(8)Index说明对象字典的条⽬,subindex说明条⽬中的具体内容
传送类型:数据在4个字节以下:加速传送
数据在4个字节以上:分段传送或块传送
数据类型:由index和subindex确定禁⽌时间:n*100ns5对象字典
5.1对象字典的通⽤格式
Index:指⽰该对象在对象字典中的位置,不包含⼦索引
Object:按照下表确定的对象名称
表37
Name:是该对象功能的简单⽂本描述
Type:提供关于对象类型的信息,可能的类型包括:BOOLEAN, floating point number, UNSIGNED Integer, Signed Integer, visible/octetstring, timeof-day, time-difference and DOMAIN,还包括预定义的复杂数据类型PDOMapping和⼚商或设备预定义的特殊的复杂数据类型
Attribute:定义从总线看向设备时的访问权限,如下所⽰
M/O:表明该对象是强制(Mandatory)的还是可选(Optional)的5.2对象字典的内容
下表给出对象字典的整体布局
表39
索引20h~23h包含预定义的复杂数据类型
索引24h~3Fh预留
索引40h~5Fh⼚家⾃由定义⾃⼰的复杂数据类型
索引60h~7Fh包含设备⼦协议说明的标准数据类型
索引80h~9Fh包含设备⼦协议说明的复杂数据类型
索引A0h~25Fh包含多功能设备模块中的数据类型
索引1000h~1FFFh包含对象字典中相关通信解释内容。这些内容称为通信条⽬,对于所有设备是⼀样的
索引2000h~5FFFh留给⼚家定义⼦协议索引6000h~9FFFh包含标准设备⼦协议参数
索引A000h~FFFFh预留
设备不必⽀持所有的数据类型,只要⽀持1000h~9FFFh中⽤到的数据类型即可
对象字典条⽬结构类型的组织
若对象字典的某⼀条⽬包含⼦⽬录,则⼦索引0的内容为⼦索引的个数,不算⼦索引为FFh 这⼀条。FFh这⼀条表⽰内容如下:
这⼀条是可选项
预定义的复杂数据类型
索引20h~23h预定义复杂数据类型:thePDO CommPar record(PDO_COMMUNICATION_PARAMETER), the PDO MappingAPPLICATION LAYER CANopen CiA82record (PDO_MAPPING), the SDO Parameter record (SDO_PARAMETER) and the Identityrecord (IDENTITY).其具体内容解析如下:
6 通信协议说明
对象字典条⽬的结构按照如下⽅式进⾏描述:所有设备
接⼝
应⽤协议6.1对象规范细节
对象代码必须是上表内容中的⼀个,为了便于阅读,对象表述还包含对象名
对于简单变量值描述只出现⼀次,且不包含sub-index和Entry Category,对于复杂数据类型必须包括上述所有内容。6.2对象字典中有关通信⽅⾯的条⽬概述
表47给出由通信⼦协议定义的对象字典相关条⽬的概况
若某设备⽀持PDO,则必须包含相应的PDO communication parameter and PDO mapping条⽬(强制),若⽀持SDO必须包含相应的SDOparameters(强制)
6.3通信⼦协议的特殊对象的详细描述
Object 1000h: 设备类型
本条包含有关设备类型的信息。描述设备类型及他的功能。有两个16位的数据组成,第⼀的16位描述所使⽤的设备⼦协议,第⼆个16位给出设备可选功能的附加信息。附加的信息参数是设备⼦协议特定的,有各⾃的设备⼦协议确定。值0000h表⽰这个设备不是标准的设备⼦协议。对于多设备模块,附加信息参数包括FFFFh且1000h所参考的设备⼦协议号是对象字典中第⼀个设备的设备⼦协议,其他设备⼦协议的设备⼦协议存储在67FFh+x*800h的对象内,x=内部设备号(0~7)。
数据类型
下表是CANOpen⽀持的数据类型,这些数据类型的编码表如下:第⼀列是在IEC 61131-3中的定义,第⼆列是在CANOpen中的等价定义,第三列是数据对应的数据长度,第四列是该数据类型对应的实际编码
下表的数据类型不能通过PDO发送下表中是不同数据类型之间如何进⾏转换
预定义的连接集CAN的帧结构
COB_ID即11位仲裁区
1.CAN初始化:
1.1初始化本节点ID
⼼跳报⽂(包括发送时间间隔,报⽂ID,长度以及数据初始化为0)SDO 响应/中⽌报⽂(包括报⽂ID,长度以及数据初始化为0)
1.2初始化RPDO
①检查RPDO 数⽬的范围和节点ID 的范围(1-127) 以及PROD 指向过程映射数组的偏移量(offset) 是否超过映射数组的最⼤范围;
②初始化通讯⼦索引(通讯参数的个数) 的数⽬,传输类型,事件定时周期,数据长度,偏移量(offset) 和ID。
1.3初始化TPDO
①检查TPDO 数⽬和节点ID 的范围(1-127) 、数据长度(1-8) 和事件定时周期、禁⽌时间的设置(两个变量⾄少定义⼀个) 以及offset(指向过程数组的偏移量) 是否超过映射对象的范围;②初始化通讯⼦索引,传输类型,数据长度,偏移量,接收同步对象计数器,ID,时间定时周期,时间定时周期计数器,禁⽌时间,禁⽌时间计数器。1.4 初始化同步报⽂
设置同步对象的ID,长度,发送周期以及周期计数器2.进⼊预操作状态2.1发送boot_up报⽂
2.2根据需要发送SYNC报⽂
2.3处理接收到的NMT、SDO报⽂