CANopen协议报文处理_canopen报文格式详解-程序员宅基地

技术标签: CANopen  CAN  

       CAN 报文由 7 个不同的位域组成,而 CANopen 就是规定其中的仲裁域(11 位标识符) 和数据域(8 字节数据) 的使用情况,11 位标识符和 8 字节数据在 CAN 帧中的位置如下图所示:


图1.1 CANopen的标识符和数据在CAN帧中的位置


       CANopen 协议中的各种通讯对象通过 11 位标识符中的功能码部分(10-7 位) 进行分别,比如主节点发送 NMT 控制命令功能码为 0000,SDO 的功能码为 1011(发送) 和 1100(接收) 。CAN 网络中各个从节点的 ID 用节点 ID(6-0 位) 表示,最多可以有127 个从节点。

不同通讯对象对 字节数据的使用及各字节代表的意义不同。

(1) 过程数据对象(PDO) :8 个字节全部用来传输实时数据。

(2) 服务数据对象(SDO) :使用 8 个字节,各字节表示的意义如表 1-1。

表1-1 SDO对象数据字节的使用

字节0

字节1~2

字节3

字节4~7

SDO命令字

对象索引

对象子索引

数据值

 

(3) 网络管理对象(NMT) :NMT 对象使用 2 字节数据,心跳报文使用 1 字节数

据,表示的意义如表1-2 和1-3。

表1-2 NMT对象数据字节的使用

标识符

字节0

字节1

0x000

命令字

从节点ID

 

表1-3 心跳报文数据字节的使用

标识符

字节0

0x700+Node_ID

从节点状态


       CANopen 协议作为 CAN 总线的应用层协议,主要对 CAN 报文中可用于报文控制的 11/29 位 CAN-ID 和 8 字节数据进行定义,实现应用层功能。

CANopen 协议使用 11/29 位 CAN-ID 对报文进行分类,协议支持的报文有以下几类:

1. SDO(服务数据对象)报文。SDO 报文的主要用途是主从节点的数据交互。使用 SDO 报文进行通信时,接收报文的节点需要回送报文进行应答,因此 SDO报文实现的是一种面向连接的可靠性通信。关于 SDO 报文通信的详细定义和处理流程将在后面讨论

2. PDO(过程数据对象)报文。PDO 报文的主要用途与 SDO 报文类似,也是用于主从节点数据交互。与 SDO 报文的主要区别在于,使用 PDO 报文通信时,接收报文的节点不需要回送应答;另外 PDO 报文对数据的访问方式与 SDO 报文不同,PDO 报文的数据访问效率比 SDO 报文更高,因此 PDO 报文常用于需要频繁操作的数据,以及需要高效率传输的数据。PDO 报文可采用同步方式或者异步方式进行传输。当需要同步传输 PDO 报文时,设备的对象字典需要支持同步周期字典项(索引值 0x1006)。

3. NMT(网络管理)报文。该报文的主要功能是进行网络管理,CANopen 主节点通过发送 NMT 报文控制从节点的启动,停止,运行等状态切换,从节点通过NMT 报文(具体来说是心跳报文)来通知主节点自己上线或者下线。

4. 特殊功能报文,主要包括同步报文,紧急事件报文,时间邮戳报文等。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/iamplane/article/details/49912749

智能推荐

阿里云ECS服务器网站部署_如何使用ecs搭建网关设备-程序员宅基地

文章浏览阅读1.6k次。**阿里云服务器现在是全世界第三大云服务器提供商,目前是中国第一,所以熟悉和掌握阿里云技术,对以后就业以及深入学习研究云计算和大数据很有帮助,学习过程中,一定要考虑市场和大众都在用什么,就学习什么。***强调内容*1. 购买阿里云ECS服务器 选择计费方式和服务器地址,可以根据需求设定。 网络选择,经典网络设置安全组,选择购买服务器实例的参数 选择带宽,设置服务器系统镜像,可以下拉选择_如何使用ecs搭建网关设备

实时数仓神器 - Flink-CDC(最新版本)_database snapshot phase can't perform checkpoint, -程序员宅基地

文章浏览阅读2.2k次。实时数仓神器 - Flink-CDC(最新版本)关键词:Flink-CDC、Flink-CDC入门教程、Flink CDC Connectors 、Flink-CDC 2.0.0文章目录实时数仓神器 - Flink-CDC(最新版本)前言一、什么是 CDC?二、CDC 应用场景三、什么是 Flink CDC?四、Flink CDC 优点五、Flink CDC 入门案例总结声明参考文献附:前言在 Flink CDC 诞生之前,说起数据同步工具,大家可能最熟悉 Canal、MaxWell 等工具。自_database snapshot phase can't perform checkpoint, acquired checkpoint lock.

计算机器的基本使用_练计算机器-程序员宅基地

文章浏览阅读121次。如何使用cmd命令使用win+R打开运行管理输入cmd 按回车进入编辑界面进入命令界面切换盘符输入 d: 切换到d盘。输入dir命令查看盘符里面的文件新建文件夹使用md 文件名(eg:新建haha文件)在新的文件夹中添加新的文本文档.txt格式的,先切换到文件夹名下使用cd.>1.txt在文本文档中编辑内容使用(echo 内容>文本文档名称)*以上编辑内容属于个人所有,如有雷同纯属巧合。..._练计算机器

链表的使用_在哪里用过链表-程序员宅基地

文章浏览阅读336次。对链表的操作与其他存储结构类似,无非也就是“增删改查”。在这里插入代码片_在哪里用过链表

String类型与Number类型互相转化_string转为number-程序员宅基地

文章浏览阅读2.5w次,点赞2次,收藏4次。Integer类的valueOf方法可以将String转成Number。(非原创,转帖!)下面是代码示例:String numString = “1000″;int id=Integer.valueOf(numString).intValue(); [java] package com.test; public class StringtoInteger { public s..._string转为number

cesium中级(二)获取地形高度_cesium.when-程序员宅基地

文章浏览阅读8.4k次,点赞4次,收藏21次。sampleTerrainMostDetailedsampleTerrainMostDetailed(terrainProvider, positions) → Promise.<Array.<Cartographic>>terrainProvider的类型是TerrainProvider,positions是一个位置的数组,返回的是一个promise,是一个位置数组..._cesium.when

随便推点

9. OD-PEID的入门及BASIC(VB)开发的程序破解_od和peid-程序员宅基地

文章浏览阅读712次。使用peid可以快速查看PE程序信息,比如连接器12.0,表示vs2003,基址为入口点,偏移地址为文件偏移等基本信息。Ctrl+n ,打开输入输出表输入查找vbaVarTstEq下断点记下注册码,一般注册码都长这样子。注册成功。..._od和peid

服务器扫盲篇-程序员宅基地

文章浏览阅读9.2k次。1, 服务器之CPU篇http://bbs.ccidnet.com/read.php?tid=2410021、多线程 同时多线程Simultaneous multithreading,简称SMT。SMT可通过复制处理器上的结构状态,让同一个处理器上的多个线程同步执行并共享处理器的执行资源,可最大限度地实现宽发射、乱序的超标量处理,提高处理器运算部件的利用率,缓和由于数据相关或Cache未命中带来的

FPGA 20个例程篇:9.DDR3内存颗粒初始化写入并通过RS232读取(下)-程序员宅基地

文章浏览阅读4k次,点赞6次,收藏30次。2.对于写数据操作,和读写地址操作相类似,也是四个信号app_wdf_data、app_wdf_rdy、app_wdf_wren、app_wdf_end一定要对齐,一样的其中app_wdf_rdy是由MIGIP核所产生的输出信号,另外三个信号均由用户端产生并输出到MIGIP核,当MIGIP核默认突发长度为8时,app_wdf_end和app_wdf_wren相同,在app_wdf_rdy为高时去拉高app_wdf_wren,则此时app_wdf_data数据有效输入到MIGIP核;.........

error while loading shared libraries: libcudnn.so.5: cannot open shared object file: No such file or_pmemd.cuda: error while loading shared libraries: -程序员宅基地

文章浏览阅读513次。sudo cp /usr/local/cuda/lib64/libcudnn.so.5 /usr/local/lib/libcudnn.so.5 sudo ldconfig_pmemd.cuda: error while loading shared libraries: libgfortran.so.5: cannot o

使用Keras和Tensorflow设置和安装Mask RCNN_通过keras和tensorflow搭建mask r-cnn-程序员宅基地

文章浏览阅读6.9k次,点赞2次,收藏8次。参考:Github slide: https://github.com/markjay4k/Mask-RCN…Mask RCNN Repo: https://github.com/matterport/Mask_RCNNrequirements.txt: https://github.com/markjay4k/Mask-RCN…Mask RCNN paper: https://arx..._通过keras和tensorflow搭建mask r-cnn

php ab webbance,Apache的ab工具实例详解-程序员宅基地

文章浏览阅读62次。本文主要和大家分享使用Apache的ab工具实例详解,希望能帮助到大家。ab命令原理Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx、lighthttp、IIS等其它Web服务器的压力。Apache附带的ab工具(使用的PHP环境是WAMP集成环境,ab工具位于D:\wamp\bin\apache\Apache2.2.21\bin)非常容易使用。ab命令对发出负载..._phpab

推荐文章

热门文章

相关标签