用户中心
· 企业空间 首页 | 资讯 | 技术 | 产品 | 企业 | 直播 | 专题 | 智能制造 | 论坛| 在线研讨会
广州虹科电子科技有限公司
企业空间 > 案例应用 > 正文
  • 虹科干货 | 读不懂CANopen报文?看完这篇文章你就知道了!
  • 发布时间:2022/8/12 14:26:55   修改时间:2022/8/12 14:26:55 浏览次数:2031
  •   CANopen是位于CAN总线之上的应用层协议。CAN报文由7个不同的位域组成,CANopen主要是规定了其中的仲裁域和数据域的使用情况。
      一、CANopen报文格式
      CANopen的报文格式为COB-ID+D0+D1+…..+D7, 放入CAN帧的数据,低字节优先。例如数据0x01020304对应如下组织:COB-ID 04030201。
      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报文,例如CIO102在上电之后会收到报文如下。这个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

      如果要对整个网络所有节点同时进行控制,则D1为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表示剩下的字节数,1表示快速传输,0表示data区没有字节数指示;01表示子索引;FF 00 00 00 表示数据区的内容。
      SDO写:

      CCS: 客户端的命令码 [1:写入初始化请求]
      X: unused bits
      n: 字节数 (n表示后面4个字节数据剩余的数量)
      e: transfer expedited (快速传输,无分段)
      s: data区是否为字节数指示:0表示data区无,1表示data区的数值为要写入的数据
      SCS: 服务器命令码 [3:写入初始化响应]
      SDO读:

      CCS: 客户端命令码 [2:读SDO初始化请求]
      n: 当快速模式时,表示data区内空余的字节数
      e: transfer type:1表示快速传输,无分段
      s: data size indicator
      SCS: 服务器端命令码 [2:读SDO初始化响应]
      X: unused bits
      SDO命令符

      下图为SDO测试的过程,包括读6200 01和6200 02的读写操作。

      2) 分段SDO/块传输(用得比较少,了解即可):针对读写数据超过四个字节。报文以测试以分段传输为例。报文传输如下图所示,601 40 08 10 00 00 00 00表示读取1008索引10子索引。
      41 01 10 00 0D 00 00 00;60 00 00 00 00 00 00 00;70 00 00 00 00 00 00 00该为确认报文信息
      00 68 69 70 65 63 73 2D;13 43 49 4F 31 30 32 00为具体内容,其中00和13为命令码;其他通过查ASCII表68:h;69:i;70:p;65:e;63:c;73:s;2D:-;43:C;49:I;4F:O;31:1;30:0;32:2;00:NULL;即内容为:hipecs-CIO02.


      7. PDO
      PDO有三种触发机制:事件触发、远程帧、同步
      PDO的COB-ID组成


      此处为什么要再提COB-ID呢?他与开头讲的COB-ID= Function Code+Node ID有什么区别?
      (该处的COB-ID就是开头所讲的其他的情况)这一应用主要在修改PDO映射中。其中PDO的COB-ID主要有以下这些

      PDO通讯中有两个重要的概念,通讯参数与映射参数(CiA301中规定了他们的对象),通讯参数中定义了该设备所使用的COB-ID、传输类型、禁止时间、事件定时器触发时间、同步起始值

  • 企业介绍
虹科电子科技有限公司(前身是宏科)成立于1995年,总部位于中国南方经济和文化中心-广州。目前在上海、北京、西安、成都、苏州、台湾、香港等城市设有分部,在韩国、日本设有海外分公司。同时,为了实现本地服务,特在以下工业城市设立销售代…  更多>>
  • 联系方式

广州虹科电子科技有限公司

联系人:虹小科

地址:广州黄埔区科学城科汇金谷三街2号701室

邮编:510700

电话:020-38743030

传真:020-38743233

公司网址:http://www.hkaco.com

  • 该空间手机版

扫描此二维码即可访问该空间手机版

  • 在线反馈
1.我有以下需求:



2.详细的需求:
姓名:
单位:
电话:
邮件:
您还没有登录,请登陆,
如果您还没有注册,点击这里注册.
  • 网友反馈
  • 邝生 在2023/11/28 12:58:00留言
  • 留言类型:得到贵公司产品详细资料,得到贵公司产品的价格信息,
  • 详细留言:想了解温控厢式货车,做车厢的温度分布验证
  • 郝先生 在2023/9/3 15:18:00留言
  • 留言类型:我想得到贵公司产品详细资料,我让贵公司技术支持人员联系我,
  • 详细留言:虹科AI深度相机
  • 鲁钢 在2023/6/27 14:14:00留言
  • 留言类型:我想得到贵公司产品详细资料,我想得到贵公司产品的价格信息,
  • 详细留言:您好我是做非标自动化控制的,想了解贵公司HMI_PLC一体机产品
  • 莫先生 在2022/9/13 14:10:00留言
  • 留言类型:我想得到贵公司产品的价格信息,
  • 详细留言:密度传感器和粘度传感器的技术资料和价格信息
  • 董钒 在2022/7/14 13:47:00留言
  • 留言类型:得到贵公司产品详细资料,贵公司技术支持人员联系我,
  • 详细留言:IPEH-002055 CAN卡 手机号同微信
更多请进入空间管理中心查看
关于我们 | 网站地图 | 联系我们
© 2003-2018    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688
我要反馈