0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

虹科干货 | 读不懂CANopen报文?看完这篇文章你就知道了!

虹科智能自动化 2022-08-10 09:21 次阅读

//

CANopen是位于CAN总线之上的应用层协议。CAN报文由7个不同的位域组成,CANopen主要是规定了其中的仲裁域和数据域的使用情况。

01

CANopen报文格式

CANopen的报文格式为COB-ID+D0+D1+…..+D7, 放入CAN帧的数据,低字节优先。例如数据0x01020304对应如下组织:COB-ID 04030201。COB-ID= Function Code+Node ID(或其他),如图所示:

e96b3670-17d0-11ed-9ade-dac502259ad0.png

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.

02

CANopen报文测试

01

Boot-up报文

Boot-up报文为CAN-ID=700+node_ID。当某个节点在initializing模式之后,进入pre-operational模式将发送boot-up报文,例如CIO102在上电之后会收到报文如下图。这个boot-up报文其实也是第一个心跳报文。

e97dc6c8-17d0-11ed-9ade-dac502259ad0.png

02

NMT报文

e98e9142-17d0-11ed-9ade-dac502259ad0.png

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


e9ba1cd6-17d0-11ed-9ade-dac502259ad0.png

如果要对整个网络所有节点同时进行控制,则D1为0即可。例:将所有节点设置为operational状态000 01 00


e9e1f42c-17d0-11ed-9ade-dac502259ad0.png

03

心跳报文

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 1710 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).


e9efc1ce-17d0-11ed-9ade-dac502259ad0.png

04

Node guard

主站发送一帧远程帧,节点应答700+Node_IDstate

State:0=初始化,1=断开连接,2=连接,3=准备,4=stopped,5=operational,6=pre-operational

ea076e50-17d0-11ed-9ade-dac502259ad0.png

ea22c222-17d0-11ed-9ade-dac502259ad0.png

05

同步报文

同步窗口时间索引:1007h约束了同步帧发送后从节点发送PDO的时效即在这个时间内发送的PDO才有效超过时间的PDO将被丢弃;通讯循环周期:索引 1006 h 规定了同步帧的循环周期。

测试过程/Testing process

1)令设备处于op状态

2)1800,1802的transmission type设为3

ea309d3e-17d0-11ed-9ade-dac502259ad0.png

ea597f7e-17d0-11ed-9ade-dac502259ad0.png

06

SDO

快速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写

ea6dd62c-17d0-11ed-9ade-dac502259ad0.png

CCS: 客户端的命令码 [1:写入初始化请求]

X: unused bits

n: 字节数 (n表示后面4个字节数据剩余的数量)

e: transfer expedited (快速传输,无分段)

s: data区是否为字节数指示:0表示data区无,1表示data区的数值为要写入的数据

SCS: 服务器命令码 [3:写入初始化响应]

SDO读

ea7f1c02-17d0-11ed-9ade-dac502259ad0.png

CCS: 客户端命令码 [2:读SDO初始化请求]

n: 当快速模式时,表示data区内空余的字节数

e: transfer type:1表示快速传输,无分段

s: data size indicator

SCS: 服务器端命令码 [2:读SDO初始化响应]

X: unused bits

SDO命令符

ea9db964-17d0-11ed-9ade-dac502259ad0.png

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


eacad700-17d0-11ed-9ade-dac502259ad0.png

分段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。


eae4dcc2-17d0-11ed-9ade-dac502259ad0.png

eaf6aefc-17d0-11ed-9ade-dac502259ad0.png

07

PDO

PDO有三种触发机制:事件触发、远程帧、同步。

PDO的COB-ID组成如下方的表格所示:

eb2cc6fe-17d0-11ed-9ade-dac502259ad0.png

此处的COB-ID就是文章开头所说的其他的情况,这一应用主要在修改PDO映射中。其中PDO的COB-ID主要有以下这些:


eb436ada-17d0-11ed-9ade-dac502259ad0.png

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

eb835596-17d0-11ed-9ade-dac502259ad0.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN
    CAN
    +关注

    关注

    57

    文章

    2702

    浏览量

    463206
收藏 人收藏

    评论

    相关推荐

    CANopen系列】CANopen从站为什么总不上传PDO报文

    CANopen网络中无法获取从站的TPDO数据?本文将为您解析可能的原因及解决方案。通过检查TPDO的通信参数和传输类型,确保主站与从站的数据同步,快速定位问题所在。如果CANopen网络中
    的头像 发表于 09-19 08:05 231次阅读
    【<b class='flag-5'>CANopen</b>系列】<b class='flag-5'>CANopen</b>从站为什么总不上传PDO<b class='flag-5'>报文</b>?

    干货 轻松掌握PCAN-Explorer 6,dll调用一文打尽!

    导读:PCAN-Explorer 6(下称“PE6”)作为一款专业的CAN/CAN FD网络处理软件,不仅提供强大的报文监控和发送功能,还通过其创新的dll加载功能,为用户带来了
    的头像 发表于 08-29 10:00 400次阅读
    <b class='flag-5'>虹</b><b class='flag-5'>科</b><b class='flag-5'>干货</b> 轻松掌握PCAN-Explorer 6,dll调用一文打尽!

    方案 领航智能交通革新:PEAK智行定位车控系统Demo版亮相

    /CANFD信号处理,方案不仅提升了车辆的智能化水平,更在安全性和效率上迈出了革命性的一步。 PEAK智行定位车控系统,通过CAN/CANFD信号实现车辆的精准控制,包括加减速
    的头像 发表于 08-27 09:28 227次阅读
    <b class='flag-5'>虹</b><b class='flag-5'>科</b>方案  领航智能交通革新:<b class='flag-5'>虹</b><b class='flag-5'>科</b>PEAK智行定位车控系统Demo版亮相

    干货 | 突破功耗限制:PCAN Router设备低功耗模式与高效唤醒

    在汽车测试和现代工业领域,功耗控制与效率优化是工程师们不断追求的目标。PCAN Router系列设备以其卓越的性能和灵活性,为CAN和CAN FD网络中的报文转换提供高效解决方案
    的头像 发表于 06-12 13:14 283次阅读
    <b class='flag-5'>虹</b><b class='flag-5'>科</b><b class='flag-5'>干货</b> | 突破功耗限制:PCAN Router设备低功耗模式与高效唤醒

    案例|为什么PCAN MicroMod FD是数模信号转换的首选方案?

    精确的信号采集和转换是确保生产效率和质量的关键。PCAN MicroMod FD系列模块,以其卓越的数模信号转换能力,为工程师们提供一个强大的工具。本文将深入探讨如何通过
    的头像 发表于 06-11 15:36 317次阅读
    <b class='flag-5'>虹</b><b class='flag-5'>科</b>案例|为什么PCAN MicroMod FD是数模信号转换的首选方案?

    干货丨轻松掌握PCAN-Explorer 6,dll调用一文打尽!

    PCAN-Explorer 6(下称“PE6”)作为一款专业的CAN/CAN FD网络处理软件,不仅提供强大的报文监控和发送功能,还通过其创新的dll加载功能,为用户带来了更加灵
    的头像 发表于 04-19 10:36 733次阅读
    <b class='flag-5'>虹</b><b class='flag-5'>科</b><b class='flag-5'>干货</b>丨轻松掌握PCAN-Explorer 6,dll调用一文打尽!

    新品 | E-Val Pro Plus有线验证解决方案

    有线验证解决方案E-ValProPlus我们很高兴地宣布,我们将推出全新的E-Val
    的头像 发表于 04-19 08:04 320次阅读
    <b class='flag-5'>虹</b><b class='flag-5'>科</b>新品 | E-Val Pro Plus有线验证解决方案

    【米尔-瑞萨RZ/G2UL开发板】5.CAN通讯进阶CANopen

    1 CANopen协议 从 OSI 的 7 层网络模型的角度来看同,CAN(Controller Area Network)现场总线仅仅 定义第 1 层(物理层,见 ISO11898-2 标准
    发表于 03-31 16:19

    北斗三短报文终端是什么?看完就懂了

    北斗三短报文终端是基于中国北斗卫星导航系统(BDS)的一种通信终端设备。它利用北斗卫星的特殊功能,实现报文通信服务,即使用户所处的环境没有传统的通信网络覆盖,也能通过北斗卫星发送和接收简短的信息
    的头像 发表于 03-19 11:05 1002次阅读

    科技术 | PCAN View功能细讲:从实时监测到错误帧分析

    相信使用过PCAN工具的朋友都知道PCAN-View这款免费软件,它具有直观的用户界面,可以实时监测和分析CAN总线上的数据帧,并提供过滤、发送和报文记录。但
    的头像 发表于 03-18 13:48 1043次阅读
    <b class='flag-5'>虹</b>科技术 | PCAN View功能细讲:从实时监测到错误帧分析

    干货|HK-TE-200x系列FAQ(一):如何定义EES的VLAN?

    导读:在今天的干货系列中,我们将探讨HK-TE-200x系列交换机中的VLAN配置。VLAN(虚拟局域网)在现代网络架构中扮演着至关重要的角色,它能够帮助我们有效地隔离广播域,提高网络安全性,并
    的头像 发表于 03-04 14:26 359次阅读
    <b class='flag-5'>虹</b><b class='flag-5'>科</b><b class='flag-5'>干货</b>|HK-TE-200x系列FAQ(一):如何定义EES的VLAN?

    知道激光钻孔技术有多牛吗?看完这篇文章就明白

    知道激光钻孔技术有多牛吗?看完这篇文章就明白
    的头像 发表于 02-29 17:09 845次阅读

    分享 | PCAN工具:强大的CAN通讯解决方案,了解多少?

    在当今的汽车和工业自动化领域,可靠的通讯系统至关重要,PCAN工具为这些应用提供强大的支持。本文将介绍PCAN工具的功能、应用和优
    的头像 发表于 02-02 09:54 764次阅读
    <b class='flag-5'>虹</b><b class='flag-5'>科</b>分享 | PCAN工具:强大的CAN通讯解决方案,<b class='flag-5'>你</b>了解多少?

    线路板行业的10个黑话,听过几个?不懂就out

    线路板行业的10个黑话,听过几个?不懂就out
    的头像 发表于 12-25 10:19 988次阅读

    码器基础干货分享

    码器是一种用于读取条形码和二维码的设备,随着移动互联网的普及,码器在各个行业的应用越来越广泛。
    的头像 发表于 12-12 15:48 1733次阅读
    <b class='flag-5'>读</b>码器基础<b class='flag-5'>干货</b>分享