CANopen协议SDO部分基础知识实例介绍_第1页
CANopen协议SDO部分基础知识实例介绍_第2页
CANopen协议SDO部分基础知识实例介绍_第3页
CANopen协议SDO部分基础知识实例介绍_第4页
CANopen协议SDO部分基础知识实例介绍_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录第一章 SDO实例分析1一、目的:1二、手段:1三、分析:1四、过程:24.1.对象字典的编写2各节点ID分配2对节点1进行对象字典编写2对节点2进行对象字典编写2对节点3进行对象字典编写34.2节点1读取节点2数据3节点1发送请求读取命令至节点234.2.2 节点2响应节点1读取命令44.3 节点1写入数据至节点364.3.1 节点1 发送数据至节点364.3.2 节点3响应节点1写入数据命令7参考文献8附录一:9第一章 SDO实例分析一、目的: 实现节点2的数据传送到节点3 二、手段:使用SDO进行传送注:SDO不能实现从节点之间数据的直接传送三、分析:图1-1 SDO客户/服务器通讯

2、模式1 SDO通讯可以描述成客户/服务器模型,SDO的客户/服务器通讯模式如图1-1所示。两节点中请求进行读写操作的节点为客户端节点,数据被读写的节点为服务器节点3。SDO通讯用于主节点对从节点对象字典的读写访问,以实现对从节点参数的设置,下载程序,定义PDO的通讯类型和数据格式等 1。由此可知要实现将节点2中数据传送给节点3的实现方法为:设置节点1为主站(Client),数据传送过程由SDO传送的特点分为两段:节点1读取节点2(server)数据,节点1写入数据到节点3(server)。从而实现了节点2(server)的数据传送到节点3(server)。如图1-2所示。 图1-2 数据传送过

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

4、制/可选 图1-3 对象字典模块结构图各节点ID分配表1-1 各节点ID分配表节点 节点1 节点2、 节点3主节点NODE-ID 0x010x020x030x04对节点1进行对象字典编写表1-2 节点2的SDO参数在对象字典中的定义索引子索引接受/发送SDOSDO参数强制/可选0x120000h入口数目Unit803hrw01h接受SDOUnit32ro02h发送SDOUnit32ro03h节点号Unit320x01rw节点1的SDO参数在对象字典中的定义如表1-2所示。因为此处节点1充当客户端角色,故而无需定义其接受SDO与发送SDO的COB-ID。对节点2进行对象字典编写表1-3 节点2的

5、SDO参数在对象字典中的定义索引子索引接受/发送SDOSDO参数强制/可选0x120000h入口数目Unit803hrw01h接受SDOUnit32600h+节点号ro02h发送SDOUnit32580h+节点号ro03h节点号Unit320x02rw 节点2的SDO参数在对象字典中的定义如表1-3所示。节点2的发送SDO的COB-ID为0x582,节点1的接受SDO的COB-ID分别为0x602。 除了完成SDO参数在对象字典中的定义外,还需实现节点2所要传输数据在对象字典中的定义。如表1-4所示。表1-4 节点2的数据在对象字典中的定义节点索引子索引名称属性类型强制/可选0x020x600

6、00x01体积(A)rwunit8O0x60010x01质量(B)rwunit32O0x60020x01速度(C)rwunit8O0x60030x01位移(D)rwUnit16O其中体积(A)定义在对象字典的应用数据区索引为0x6000、子索引为0x01的目录中,质量(B)定义在索引为0x6001、子索引为0x01的对象字典目录中,体积(C)定义在索引为0x6002、子索引为0x01的对象字典目录中,体积(D)定义在索引为0x6003、子索引为0x01的对象字典目录中。对节点3进行对象字典编写同节点2的对象字典编写方法对节点3对象字典进行编写。其中节点3的SDO参数在对象字典中的定义如表1-5

7、所示;表1-5 节点2的SDO参数在对象字典中的定义索引子索引接受/发送SDOSDO参数强制/可选0x120000h入口数目Unit803hrw01h接受SDOUnit32600h+节点号ro02h发送SDOUnit32580h+节点号ro03h节点号Unit320x03rw节点2的SDO参数在对象字典中的定义如表1-5所示。节点2的发送SDO的COB-ID为0x582,节点1的接受SDO的COB-ID分别为0x602。节点3数据接受区在对象字典中定义如表1-6所示表1-6 节点3的数据在对象字典中的定义节点索引子索引名称属性类型强制/可选0x030x70000x01体积1(A)rwunit8

8、O0x70010x01质量2(B)rwunit32O0x70020x01速度3(C)rwunit8O0x70030x01位移4(D)rwUnit16O其中体积1,质量2,速度3、位移4分别由节点1写入数据。4.2节点1读取节点2数据节点1发送请求读取命令至节点2发送格式如图1-4所示:图 1-4 节点1请求读取命令格式4.2.2 节点2响应节点1读取命令若读取成功,则节点2返回:表1-7 节点响应读取成功命令格式数据长度为1个字节时580+ServNodeID04F索引子索引d0000数据长度为2个字节时580+ServNodeID04B索引子索引d0d100数据长度为3个字节时580+Ser

9、vNodeID047索引子索引d0d1d20数据长度为4个字节时580+ServNodeID043索引子索引d0d1d2d3注:d0,d1,d2,d3为所要传输的数据。本例中假设节点2返回582 4F 00 60 01 FD 00 00 00 ,其具体含义如图1-5所示。图1-5 节点2响应读取成功命令格式节点1读取节点2中对象字典中索引为0x6000,子索引为0x01目录中的数据,即FD 00 00 00。如果读取失败,则节点2返回读取失败命令。其格式如下图1-6所示:图1-6节点2响应读取失败命令格式注:其中SDO abort code error根据具体错误返回相应的参数,其具体参数详见

10、附录一。4.3 节点1写入数据至节点34.3.1 节点1 发送数据至节点3节点1写入数据命令格式如表1-8所示节点1请求数据长为1个字节时600+ServNodeID02F索引子索引d000 0 数据长度为2个字节时600+ServNodeID02B索引子索引d0d10 0 数据长度为3个字节时600+ServNodeID027索引子索引d0d1d2 0 数据长度为4个字节时600+ServNodeID023索引子索引d0d1d2 d3 表1-8 节点写入数据命令格式注:d0,d1,d2,d3为所要传输的数据。本例中假设节点1发送603 2F 00 70 01 FD 00 00 00 ,其具体

11、含义如图1-7所示。图1-7节点1写入数据实例节点1将数据FD 00 00 00写到节点3对象字典索引为7000h,子索引为01h的条目中。4.3.2 节点3响应节点1写入数据命令若写入成功,则节点3返回写入成功命令给节点1,其格式如图1-8所示:图1-8节点3响应写入成功命令格式若写入失败,则节点返回写入失败命令,其格式如图1-9所示:图1-9节点3响应写入失败命令格式注:其中SDO abort code error根据具体错误返回相应的参数,其具体参数详见附录一。参考文献1 王芳. 基于汽车总线模型的CANopen协议的实现 D. 2008. 2 董石峰. 混合动力电动汽车车载网络CANo

12、pen协议及其应用研究 D. 2010. 3 叶浩峰. CANopen总线的原理以及实现 D. 2005. 4 张厚林. CANopen通讯协议设计与实现 D. 2009. 5 闫士珍. CANopen主栈及混合动力电动汽车CANopen行规设计 D. 2008. 6 周跃峰. CANopen协议在冗余系统中的应用研究 D. 2009. 7 田山. 基于CANopen协议的网络主控制器的设计 D. 2008. 8 宋晓强. CAN bus高层协议CANopen的研究以及在模块化CAN控制器上的实现 D. 2004. 9 蒋智康. 基于CANopen协议的分布式控制系统的研究 D. 2008.

13、10 王瑞鹏. 基于CANopen+uC/OS_平台的主从节点通信 D. 2007. 11 张晓阳. 基于CANopen协议的分布式控制系统智能从站设计 D. 2010. 12 陈涛. 汽车仪表的CANopen节点通信的研究与实现 D. 2007. 13 宋威. CANOPEN现场总线应用层协议主站的开发与实现 D. 2008. 14 李昱. 基于CANopen协议的工程车辆网络系统的设计与实现 D. 2008. 15 CANopen Application Layer and Communication Profile. CiA Draft Standard 301, Version 4.0

14、2,200216 饶运涛等.现场总线CAN原理与应用技术(第2版).北京:北京航天航空大学出版社.200717 广州周立功单片机发展有限公司.CANopen协议介绍附录一:附录 SDO abort code error中止代码代码功能描述05 03 00 00触发位没有交替改变05 04 00 00 SDO协议超时05 04 00 01非法或未知的Client/Server 命令字05 04 00 02无效的块大小(仅Block Transfer模式) 05 04 00 03无效的序号(仅Block Transfer模式)05 03 00 04CRC错误(仅Block Transfer模式)05 03 00 05内存溢出06 01 00 00对象不支持访问06 01 00 01试图读只写对象06 01 00 02试图写只读对象06 02 00 00对象字典中对象不存在06 04 00 41对象不能够映射到PDO06 04 00 42映射的对象的数目和长度超出PDO长度06 04 00 43一般性参数不兼容06 04 00 47一般性设备内部不兼容06 06 00 00硬件错误导致对象访问失败06 06 00 10数据类型不匹配,服务参数长度不匹配06 06 00 12数据类型不匹配,服务参数长度太大06 06 00 13数据类型不匹配,服务参数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论