CANopen的相关学习

CANopen是一种架构在控制局域网路(Controller Area Network, CAN)上的高层通讯协定,包括通讯子协定及设备子协定常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。

由于CAN总线只定义了物理层和数据链路层,并没有定义应用层,因此需要CANopen通信协议来统一度量,把各种设备标准化。CANopen 实现了OSI模型中的网络层以上(包括网络层)的协定。

标准的 CANopen 页框:

CANopen 将 CANbus 的 11 位元 ID 称为通讯对象 ID (COB-ID)。分为 4 位元的功能码及 7 位元的 CANopen 节点 ID。

7 位元的 ID 共有 128 种不同的组合,其中 ID 0 不使用,因此一个 CANopen 网络上最多允许 127 台设备。

应用CANopen时,需要传递的配置信息和应用信息都放在过程数据对象PDO(Process data object)和服务数据对象SDO(Service data object)

过程数据对象(PDO)服务

PDO分为TPDO和RPDO

PDO属于过程数据,单向传输,无需接收节点回应CAN报文来确认,属于“生产消费”模型

一个节点分别有 4 个 TPDO 及 4 个 RPDO 。

PDO的触发方式:

  • 事件触发Event:

当数据变化时,立刻发送出去,不需要等待主机轮训才发送,所以实时性好,而且避免重复数据占用大量总线占用资源,就像数据压缩了一样。事件驱动类型的RPDO可立即处理收到的数据。

  • 远程请求或轮询RTR:

此方式就像485通信一样,主控主动远程请求或者轮询,子设备才发送PDO。因为市面上有一些不支持远程帧的CAN控制器,不建议使用。

  • 同步传输SYNC:

CAN总线上有一个设备作为SYNC信号的生产者,其他设备作为消费者。生产者和消费者都又SYNC计数功能,消费者计数到一定时(1~240),自动发送PDO。

  • if(同步传输&&事件触发):

顾名思义,不仅满足定时还满足事件触发,才发送PDO。

服务数据对象SDO

服务数据对象用于读写节点的对象字典,现只实现SDO下载和上传的全速模式,不支持正常模式也不支持块下载和上传,因为数据量不大,实现的功能足够用,SDO全速下载和上传采用应答式服务,由监控终端向节点发送服务请求,由节点返回应答。

SDO属于服务数据,“服务器客户端”模型,轮询式

SDO传送机制:

加速传送(Expedited transfer):最多传输4字节数据

分段传送(Segmented transfer):传输数据长度大于4字节

块传送(Block transfer):当传送数据长度大于4字节时,多个分段只由一个确认报文应答以增加总线吞吐量

对象字典OD

CANopen 设备都需要具备对象字典(Obiect Dictionary),用来设定设备组态及进行非即时的通讯。

是一个有序的对象组,每个对象采用一个16位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8位的子索引。

原文地址:https://www.cnblogs.com/shinedaisiki/p/9818182.html

时间: 2024-08-01 13:54:06

CANopen的相关学习的相关文章

php相关学习资源

相关书籍资源: 1:PHP和MySQL Web开发 经典书籍 博客资源: Ubuntu下的PHP开发环境架设http://www.cnblogs.com/wenanry/archive/2012/11/13/2767779.html Ubuntu 搭建PHP开发环境 http://blog.csdn.net/nicolase/article/details/7000355 php相关学习资源

MRCP协议相关学习及语音识别、合成

MRCP,媒体资源控制协议,其学习中,涉及到SIP.RTP等协议,常涉及语音识别语音合成等相关知识. 推荐其学习网站:http://www.ctiforum.com/html/special/mrcp2018/forum/type-488.html MRCP协议具体内容见下面网站:https://tools.ietf.org/html/rfc6787#section-9 MRCP协议相关学习及语音识别.合成 原文地址:https://www.cnblogs.com/zhangxingcomeon

SVG相关学习(一)SVG基础

SVG 相关学习 SVG SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG viewBox <svg width="500" height="300"></svg>viewport svg 实际大小 viewBox="x, y, width, height" // x:左上角横坐标,y:左上角纵坐标,width:宽度,height:高度 视区盒子:以视区盒子大小选中元素然后缩放至vie

tiny210(S5PV210)LCD控制器RGB配置相关学习记录

最近在弄210LCD的配置,在这里记录下一些学习的东西,有错恳请指正,互相学习. datasheet里面有好多名词,先记录一下一些名词的大概意思: alpha blending:本来采用R.G.B三通道来表示颜色,但是显示控制器分为5个图层,故图层混合时需要按照一定的比例因子来混合以实现图层的透明度,而不至于将背景图层完全覆盖掉,现在增加alpha通道来作为那个颜色混合时的调节因子,配置相关的设置后,透过调节alpha值则可以实现图层间透明度的控制,而所谓的透明度,相当于是两图层的按照不同的合成

Yii2的相关学习记录,安装Yii2(一)

原先学习过Yii1的相关知识,但是也是半懂不懂的,但稍微的结构是了解的.现在利用晚上的时间学习下Yii2的使用,这里记录下,以免自己以后忘记. 目前已看一部分Yii2的权威指南,虽然Yiiframework中文网站的权威,跟英文版本比较有些章节缺失内容,但也能大体了解,用的某功能时再仔细看.顺便看了慕课网上的“与Yii框架不得不说的故事”,讲的也不错的. 还有比较重要的是需要FQ用google,毕竟是国外的框架,中文的内容比较少,大部分解答都能在谷歌中搜索到,这里可以用XX-Net,具体的如何用

Oracle OCI操作UDT相关学习

1.Oracle数据类型 Oracle的数据类型如下 字符串类型 char nchar varchar2 nvarchar2 数值类型 int number integer smallint 日期类型 date timestamp 自定义类型 create type 这里UDT表示的就是oracle自定义类型,语法如下 CREATE TYPE xxx as object (字段1 类型1, 字段2 类型2, ...); 如下创建了一个自定义类型 addr_type 该类型可以应用到表的某个列,创

ios开发Base64编码以及加密相关学习

一:.Base64补充 ```objc 1.Base64简单说明 描述:Base64可以成为密码学的基石,非常重要. 特点:可以将任意的二进制数据进行Base64编码 结果:所有的数据都能被编码为并只用65个字符就能表示的文本文件. 65字符:A~Z a~z 0~9 + / = 对文件进行base64编码后文件数据的变化:编码后的数据~=编码前数据的4/3,会大1/3左右. 2.命令行进行Base64编码和解码 编码:base64 123.png -o 123.txt 解码:base64 123

iOS 开发常用框架以及相关学习资料集合--不断更新

整理了一些开发时常用的一些框架的缩写,方便学习与记忆 有些资料可能时间比较久远了,我尽量挑选的都是最近两年的,里面有的是OC的,有Swift的,都是文章,语言的影响不大. 感谢以下各位博主的分享,如果有侵权的地方可以私信我删除,这是我的微博 http://weibo.com/lfbWb 不定时更新中 前缀 全称 对应库 简单解释 学习资料的链接 NS NextStep or NeXTSTEP Foundation.framework UI User Interface UIKit.framewo

【VUE】VUE相关学习和知识备份

一.学习资料参考 1.1.Vue.js 官网:Vue.js https://cn.vuejs.org/ 官方文档:介绍 - Vue.js https://cn.vuejs.org/v2/guide/ API 参考:API - Vue.js https://cn.vuejs.org/v2/api/ 附:vue.js(1.0版本) https://v1-cn.vuejs.org/ (教程和API自行寻找) 1.2.Vue Router 学习和理解: 官方文档:介绍 | Vue Router http