【转】CANOPEN总线的相关问题点整理分享*****

CANopen 是一个基于 CAN(控制局域网)串行总线系统和 CAL(CAN 应用层)的高层协议。CANopen 通讯协议 CiA DS-301 包括周期和事件驱动型通讯,不仅能够将总线负载减少到最低限度,而且还能确保极短的反应时间。它可以在较低的波特率下实现较高的通讯性能,从而减少了电磁兼容性问题,并降低了电缆成本。

CANopen 所用的物理介质是符合 ISO 11898 标准,采用分驱动机制和公共反馈的双线总线。总线的最大长度取决于通讯速度,具体规定如下:

 

从理论上来说,最多可以有 127 个节点。不过,在实际应用中,最大节点数量取决于所用 CAN 收发器的性能。CAN 总线线路必须用在 CAN-L 和 CAN-H 线之间每端连接的 120 欧姆(1%,1/4W)电阻来终接,如下所示。

 

总线电缆选用有两对双绞线的带屏蔽层电缆:一对双绞线分别接 CAN-L 和 CAN-H,另外一对双绞线直接接GND。

CANopen 的核心概念是设备对象字典(OD:Object Dictionary),在其它现场总线(Profibus,Interbus-S)系统中也使用这种设备描述形式。CANopen 通讯通过对象字典(OD)能够访问设备的所有参数。

CAN 标识符分配表

 

注意:

1、 PDO/SDO 的发送/接受是由(slave)CAN 节点观察的。

2、 一般的器件的 CANopen 支持 4 个发送 PDO,4 个接受 PDO。

服务数据对象SDO

SDO 用来访问一个设备的对象字典。访问者被称作客户 (client),对象字典被访问且提供所请求服务的 CANopen 设备被称作服务器(server)。客户的 CAN 报文和服务器的应答 CAN 报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)。一个客户的请求一定有来自服务器的应答。

过程数据对象 PDO

PDO 用来传输实时数据, 数据从一个生产者传到一个或多个消费者。数据传送限制在 1 到 8 个字节。PDO 通讯没有协议约束(意味着数据内容已预先定义),因此消费者可以在很短的时间内处理完接受到的数据。PDO 数据内容只由它的CAN ID 定义,假定生产者和消费者知道这个 PDO 的数据内容。

PDO 消息的内容是预定义的(或者在网络启动时配置的),映射应用对象到 PDO 中是在设备对象字典中描述的。如果设备(生产者和消费者)支持动态映射,那么使用 SDO 报文可以配置 PDO 映射参数。PDO映射必须遵守以下 2 个规则:

1、 每个 PDO 最多可映射 4 个对象;

2、 每个 PDO 的长度必须不超过 64 位。

PDO 映射流程:

1、 设置 PDO 对应映射参数(如 1600 h或 1A00 h)子索引 0 的内容为 0;

2、 修改 PDO 对应映射参数(如 1600 h或 1A00 h)子索引 1~4 的内容,映射数据;

3、 设置 PDO 对应映射参数(如 1600 h或 1A00 h)子索引 0 的内容为合法的数字(该 PDO 映射的对象数)。

4、 PDO 映射完成。

SYNC 报文

同步对象用于控制数据在网络设备间的同步传输,例如同步启动多个轴。同步报文的传输是基于生产者—消费者模型的,所有支持同步 PDO 的节点都可以作为消费者(同时)接收到此报文,并使用该对象与其他节点进行同步。

一般应用方式为 SYNC 主节点定时发送 SYNC 对象,SYNC 从节点收到后同步执行任务。

CANopen建议用一个最高优先级的COB-ID以保证同步信号正常传送。SYNC报文可以不传送数据以使报文尽可能短。

Emergency 报文

设备发生报警时,CANopen 会启动一条 Emergency 报文,告知消费者当前设备类型以及错误代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WinCE系统字体的设置

作者:ARM-WinCE 确实很久没有写Blog了,感觉有些对不住曾经看我blog的朋友。刚从美国回来,由于项目原因,春节都在美国工作,现在有点时间,先写一篇简单的,介绍一下WinCE字体的设置。 WinCE系统字体…

js脚本点击按钮显示文字_JSBOX脚本聊天神器

聊天神器是一个基于JSBox的脚本JSBox 是一个可以用来运行 JavaScript 脚本的 iOS 应用,你可以通过他来执行标准的 JavaScript 脚本 这种执行不是指跑在浏览器上,而是执行在一个完全原生的环境,效率很高。并且我们提供了很多 iOS 原生的接口&a…

轻松实现无刷新三级联动菜单[VS2005与AjaxPro]

最近做一些网站程序,经常要用到多个下拉菜单选择,看了介绍开始用AjaxPro这个控件,感觉效果不错。以前使用过MagicAjax,很久不用了忘记了,最麻烦的就是在虚拟目录的时候比较麻烦,呵呵,在网上也有…

【转】为什么博士叫PhD?

作者:李青影 链接:https://www.zhihu.com/question/20950602/answer/1028008012 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 在填学历的时候遇到过这个问题,明明毕业证书上写…

dnf服务器合并信息,卤蛋带你看韩服!全体服务器合并改版信息互通

‍各位好久不见啊!我是卤蛋 本期为各位介绍韩服合区后的全部改动~在韩服合并服务器之前 一共有八个服务器:但是在合区之后大区依然存在,不过服务器是互通的在哪个大区创建角色基本上没什么区别 这样做避免了角色混乱的问题如何切换频道呢&…

java 无法执行export 命令_模块中的export、import以及复合模式的使用方法

export:规定模块对外接口①默认导出:export default Test(导入时可指定模块任意名称,无需知晓内部真实名称)②单独导出:export const name "Bruce"③按需导出:export { age, name, sex }(推荐)④改名导出&a…

【转】在ASP.NET Web API 2中使用Owin基于Token令牌的身份验证

基于令牌的身份验证 基于令牌的身份验证主要区别于以前常用的基于cookie的身份验证,基于cookie的身份验证在B/S架构中使用比较多,但是在Web Api中因其特殊性,基于cookie的身份验证已经不适合了,因为并不是每一个调用api的客户端都…

number 限制最长数字_Java源码阅读-Number

抽象类Number是BigDecimal, BigInteger,Byte,Double,Float,Integer, Long, Short类的父类,实现了java.io.Serializable接口,这个接口以后再说。其中的抽象方法主要是基本数据类型的转换,这些方法都可能涉及到四舍五入和截断Integer类实现了父…

(JavaScript)实现在客户端动态改变Treeview节点的选中状态

Asp.net 2.0 中的 Treeview 非常好用,而且轻便。但在使用过程中,往往会发现一些不够人性化的地方。例如您要设计一棵树,里面放置了一些收藏的网址。在这棵树中,节点的 SelectAction 只有 Expand 和 NavigateUrl 状态,也…

【转】Castle中AdditionalInterfaces用法介绍

首先见下图(图一),其中FooController是一个没有实现任何Interface的空类。需要实现的效果是:通过FooController对象调用FooService的Do方法。设置这一不常见的场景主要是为了说明Castle中AdditionalInterfaces的用法。 这个场景诡…

ffmpeg添加到环境变量_Windows + MSVC环境编译ffmpeg

实测成功环境: WIN7 VS2013 FFmpeg4.3 和 WIN10 VS2019 FFmpeg4.3(N-98819-ge2589ac)源码下载FFmpeg源码依赖工具MSYS2​YASM下载安装MSYS2; 下载YASM,将文件名改为yasm.exe,将它所在的目录加入到环境变量中。配置头文件和库搜索路径以下几种方法任选一种1.使用…

【转】阿里技术专家详解 DDD 系列 第一讲- Domain Primitive

导读 对于一个架构师来说,在软件开发中如何降低系统复杂度是一个永恒的挑战,无论是 94 年 GoF 的 Design Patterns , 99 年的 Martin Fowler 的 Refactoring , 02 年的 P of EAA ,还是 03 年的 Enterprise Integratio…

wince编译报错

新建了工程,加入之前完整的BSP,怎么也编译不过,提示: [01:0000009403:ERRORE] NMAKE : U1073: dont know how to make C:\WINCE600\OSDesigns\xyjhht30\xyjhht30\Wince600\SMDK6410_ARMV4I\cesysgen\sdk\lib\ARMV4I\retail\ddraw.…

服务器怎么把信息发送给用户,java中怎么用tcp/ip将服务器的消息发送给多个用户...

java中怎么用tcp/ip将服务器的消息发送给多个用户关注:253 答案:2 mip版解决时间 2021-01-31 01:26提问者╬═掵中注定2021-01-30 20:03java中怎么用tcp/ip将服务器的消息发送给多个用户最佳答案二级知识专家往事叫我剪短发2021-01-30 20:09你服务器accept方法后是不是会得到…

VS2005 .vs. Orcas

这两天正在开发自己的一套信息管理系统,开发环境采用 VS2005 C# XP。由于习惯用Dreamweaver 布局,这可好,在DW中布局完成之后,在VS中就完全走形了。郁闷!刚好龙卷风版 Vista 有了,那就装一个试试IIS7和 Orcas。Good&…

解析NK.BIN

最近做NBOOT,EBOOT,对TOC参数不是很明白,老大说得先熟悉一下NK.bin。故找到以下好文,对NK.bin有了一个深入的了解。感谢作者。 study NK.bin format The information from WINCE500\PRIVATE\WINCEOS\COREOS\NK\TOOLS\ROMIMAGE\VI…

查询链接服务器信息,SQL Server链接服务器

SQL Server提供链接到另一个服务器的选项。这通常被用来连接到其他SQL Server数据库,但它也可以被用来连接到一个Microsoft Access数据库。这是通过链接服务器节点成为可能。链接服务器节点可以连接到另一个数据库,通常/通常在不同的机器上运行&#xff…

【转】阿里技术专家详解DDD系列 第二讲 - 应用架构

填坑。谢谢大家对这个系列的期待,持续更新,欢迎关注此账号。 第一篇内容附地址: 阿里巴巴淘系技术:阿里技术专家详解 DDD 系列 第一讲- Domain Primitive​zhuanlan.zhihu.com 架构这个词源于英文里的“Architecture“&#xff…

【转】应用架构之道:分离业务逻辑和技术细节

架构 什么是架构? 关于架构这个概念很难给出一个明确的定义,也没有一个标准的定义。 硬是要给一个概述,我认为架构就是对系统中的实体以及实体之间的关系所进行的抽象描述。 架构始于建筑,是因为人类发展(原始人自…

ARM9之NAND FLASH总结

/*author----->Armking*/ /*data----->2008年9月2*/ /*ps:本人总结,备于日后查阅,如若转载,请注明出处*/ /*QQ:382750150*/ 写于篇头: 终于又开始接着学习了,只是不知道为什么JTAG又连不上目标板了,如…