【虹科】CANopen报文总结_Password_Removed.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
虹科干货 | 读不懂CANopen 报文?看完这篇文章你就知道了! 作者:虹科智能自动化团队 CANopen 是位于CAN 总线之上的应用层协议。CAN 报文由7 个不同的位域组成,CANopen 主要是规定 了其中的仲裁域和数据域的使用情况。 一、CANopen 报文格式 CANopen 的报文格式为COB-ID+D0+D 1+ …..+D7, 放入CAN 帧的数据,低字节优先。例如数据 0对应如下组织:COB-ID。 COB-ID= Function Code+Node ID (或其他),如图所示。 Function Code (二进制): EMCY :0001 ; PDO :0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010; SDOrx : 1011; SDOtx : 1100; NMT error control : 1110 ; NMT : 0000 ; SYNC : 0001; TIME STAMP : 0010 ; 例子:182H=0001 1000 0010 (B ) 11bit 为 0011 0000 010:前四位0011 为功能码PDO ,后四位为节点,10=2 即节点为2. 二、CANopen 报文测试 1. Boot-up 报文 CAN-ID=700+node_ID 当某个节点在initializing 模式之后,进入pre-operational 模式将发送boot-up 报文,例如CIO 102 在上电之 后会收到报文如下。这个boot-up 报文其实也是第一个心跳报文。 2. NMT 报文 NMT 状态机:1)Power on 上电 2 )自动切换到预操作状态 3 )6 )网络管理切换到操作状态。4 )7 )网络 管理切换到预操作状态。5 )8 )网络管理切换到停止状态。9 )10 )11)网络管理切换到应用层复位状态。 12 )13 )14 )网络管理切换到通讯复位状态。15 )掉电或者硬件复位。 NMT 协议:11-bit 的CAN 报文ID 中只携带高4-bit 的功能码,CANID 均为000h ,具备最高的 CAN 优 先级。数据为Node-ID 放在数据域的D1 处;具体的NMT 命令编码放在数据域的D0 处!例:将节点1 设 置为operational 状态:000 01 01 如果要对整个网络所有节点同时进行控制,则D 1 为0 即可。例:将所有节点设置为operational 状态 000 01 00 3. 心跳报文 Stare :0=Boot-up 4=stopped 5=operational 7F=pre-operational CAN-ID 为700+Node-ID 数据为一个字节。如图,设备上电后处于pre-op 状态,通过SDO 写入心跳周期 5s,每隔5s 自动发送一次设备的状态,通过000 01 01 将设备的状态切换为op.。报文:601 2B 17 10 00 88 13 00 00:601 为CAN-ID (600+NODE_ID ),2B 代表写两个字节,17 10 表示索引(根据报文格式低位在 前,此处代表对象 1017h ),00 表示子索引,88 13 00 00 代表数据内容(低位在前则该数据为 00 00 13 88=5000 ). 4. Node guard 主站发送一帧远程帧,节点应答700+Node_ID state State :0=初始化,1=断开连接,2=连接,3=准备,4=stopped ,5=operational,6=pre-operational 5. 同步报文 同步窗口时间索引:1007 h 约束了同步帧发送后从节点发送PDO 的时效即在这个时间内发送的PDO 才有 效超过时间的PDO 将被丢弃;通讯循环周期:索引 1006 h 规定了同步帧的循环周期。 测试过程: 1)令设备处于op 状态 2 )1800,1802 的transmission type 设为3 6. SDO 1)快速SDO:用于读/写某个节点的对象字典,其数据内容不超过四个字节。例如601 22 00 62 01 FF 00 00 00 :601 (600+Node_ID );22 (不对传输数据的字节数做区分)=0010 0010 (如下图)001 表示写, 0 表示没有用到的字节数,00

您可能关注的文档

文档评论(0)

云淡风轻 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档