注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

易拉罐的博客

心静自然凉

 
 
 

日志

 
 

转 CAN编码器参数修改说明  

2011-10-19 20:19:12|  分类: CAN总线 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
由于CiA协会对编码器的设备子协议有相关的推荐标准《CiA Draft Standard 406——Device profile for encoders》,并且它是免费公开的,所以通常编码器厂家会在生产CANopen编码器的时候遵循上述标准。该协议主要定义了标准设备子协议区域的索引,即6000h~9FFFh的内容。需要该协议的朋友可以上CiA的官方网站www.can-cia.org去下载。也可以给我邮件索要。
        在CANopen协议中,对对象字典的内容进行修改可以通过SDO(Service Data Object)来完成,下面我简单介绍一下SDO命令的结构和遵循的准则。
        SDO的基本结构如下:Client→Server/Server→
Client

转 CAN编码器参数修改说明 - 易拉罐bb - 易拉罐的博客

            SDO 命令字包含如下信息:

           下载/上传(Download / upload)

           请求/应答(Request /response)

           分段/加速传送(Segmented / expedited transfer)

           CAN帧数据字节长度

           用于后续每个分段的交替清零和置位的触发位(toggle bit)

  SDO中实现了5个请求/应答协议:启动域下载(Initiate Domain Download);域分段下载(Download Domain Segment);启动域上传(Initiate Domain Upload);域分段上传(Upload Domain Segment)和域传送中止(Abort Domain Transfer)。

  §  下载(Download)是指对对象字典进行写操作,上传(Upload)指对对象字典进行读操作。

  §  协议的SDO 命令字(SDO  CAN报文的第一个字节)语法和细节在下面部分说明:(‘-’表示不相关,应为0)。

  §  读取参数时,使用启动域上传(Initiate Domain Upload )协议

  §  设置参数时,使用启动域下载(Initiate Domain Download)协议

转 CAN编码器参数修改说明 - 易拉罐bb - 易拉罐的博客 

  说明:

  n:表示报文数据中无意义数据的字节数[从(8-n)字节到第7字节数据无意义] (当e=1且s=1时n有效,否则n为0)。

  e:e=0时正常传送,e=1时加速传送。

  s:表示是否指明数据长度,0为数据长度未指明,1为数据长度指明。

  e=0,s=0:由CiA保留。

  e=0,s=1:数据字节为字节计数器,byte 4是数据低位部分(LSB),byte 7是数据高位部分(MSB)。

  e=1:数据字节为将要下载(download)的数据。

转 CAN编码器参数修改说明 - 易拉罐bb - 易拉罐的博客 

  Examples:

  ※读取参数

  发送SDO报文

转 CAN编码器参数修改说明 - 易拉罐bb - 易拉罐的博客 

  接收SDO报文

 

转 CAN编码器参数修改说明 - 易拉罐bb - 易拉罐的博客 

  (** 最大四字节数据)

  ※   注 :SDO报文发送时命令字均为0x40

  如果数据为1个字节,则接收命令字为0x4F

  如果数据为2个字节,则接收命令字为0x4B

  如果数据为4个字节,则接收命令字为0x43

  ※   修改参数时

  发送SDO报文

转 CAN编码器参数修改说明 - 易拉罐bb - 易拉罐的博客 

  (** 最大四字节数据)

  接收SDO报文

转 CAN编码器参数修改说明 - 易拉罐bb - 易拉罐的博客 

  ※  注 :SDO报文接收时命令字均为0x60

  如果数据为1个字节,则发送命令字为0x2F

  如果数据为2个字节,则发送命令字为0x2B

  如果数据为4个字节,则发送命令字为0x23

  读取参数举例

Send :       601  40 01 65 00 00 00 00 00         -> 读取6501h/00h地址的参数(节点地址01)

                                                                         (SingleTurn resolution:四个字节)

Receive:    581  43 01 65 00 A0 8C 00 00         -> 6501h/00h地址的参数值为0x00008CA0

 

Send :       601  40 00 20 00 00 00 00 00          -> 读取2000h/00h地址的参数

                                                                          (Mode:一个字节)                                          

Receive:    581  4F 00 20 00 00 00 00 00           -> 2000h/00h地址的参数值为0x00

  写入参数举例

Send :       601  23 01 65 00 A0 8C 00 00          -> 将6501h/00h地址的参数值设为0x00008CA0

                                                                           (SingleTurn resolution:四个字节)

Receive:    581  60 01 65 00 00 00 00 00           -> 6501h/00h地址的参数值修改成功

 

Send :       601  2F 00 20 00 00 00 00 00            -> 将2000h/00h地址的参数值设为0x00

                                                                           (Mode:一个字节)                                          

Receive:    581  60 00 20 00 00 00 00 00            -> 2000h/00h地址的参数值修改成功

§  注:参数修改后并没有直接保存,必须在Object 1010h:Save parameters(保存参数)内进行“save”写入才能保存所修改参数。在Sub-Index 1写入命令“save”(0x65766173h),参数将会存入存储器。

 举例:

Send:   601  23  10  10  01  73  61  76  65    -> 将0x65766173h写入1010h/01h地址

Receive: 581  60  10  10  01  00  00  00  00     -> 1010h/01h地址的参数值修改成功

 §  注:恢复默认参数时,也必须对Object 1011h:Restore default parameters(恢复默认参数)内进行“load”修改参数并保存。在Sub-Index 1写入命令“load”(0x64616F6Ch),参数将会恢复成默认值并写入存储器。

 举例:

Send:   601  23  11  10  01  6C  6F  61  64    -> 将0x64616F6Ch写入1011h/01h

Receive:  581  60  11  10  01  00  00  00  00     -> 1011h/01h地址的参数值修改成功

 §  注:编码器除了可以在CAN接口内修改波特率和节点地址外,还可以通过在CiA DSP-305协议里定义的Layer-Setting-Service (LSS)进行设置。LSS主节点通过CAN总线可以对LSS从节点的节点地址和CAN波特率进行设置。LSS主节点先设置LSS从节点进入configuration mode(配置模式),然后从节点被给予了一个新的节点地址,从节点进行确认是否支持新的节点地址。然后再切换回operation mode (操作模式)。

 举例:

1.       Setting node address(设置节点地址)

Send :          7E5 04 01 00 00 00 00 00 00                     -> 进入配置模式

Send :          7E5 11 20 00 00 00 00 00                          -> 设置新的节点地址为0x20

Receive:       7E4 11 00 00 00 00 00 00 00                      -> Success

Send :          7E5 17 00 00 00 00 00 00 00                      ->存贮配置

Receive:       7E4 17 00 00 00 00 00 00 00                      -> Success

Send :          7E5 04 00 00 00 00 00 00 00                      -> 进入操作模式(重启)

Receive:       720                                                            -> New bootup message

 2.       Setting baudrate(设置波特率)

Send :          7E5 04 01 00 00 00 00 00 00                     ->进入配置模式

Send :          7E5 13 00 02 00 00 00 00 00                     -> 设置新的波特率500K

Receive:       7E4 13 00 00 00 00 00 00 00                     -> Success

Send :          7E5 15 10 00 00 00 00 00 00                     -> 设置编码器波特率(重启)

Receive:       740                                                           -> New bootup message (500k)

  评论这张
 
阅读(388)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017