CAN笔记(22) 特殊协议
CAN笔记(22) 特殊协议
- 1. 同步协议
- 2. 时间戳协议
- 3. 紧急报文协议
1. 同步协议
同步(SYNC), 该报文对象主要实现整个网络的同步传输
就像阅兵分列式上的方阵, 所有士兵迈着整齐的步伐行进
每个节点都以该同步报文作为 PDO 触发参数
因此该同步报文的 COB-ID 具有比较高的优先级以及最短的传输时间
一般选用 80h 作为同步报文的 CAN-ID
一般同步报文由 NMT 主机发出, CAN 报文的数据为 0 字节
但如果一个网络内有 2 个同步机制, 就需要设置不同的同步节拍
比如某些节点按 1 个同步帧发送 1 次 PDO, 其他的节点收到2个同步帧才发送1此PDO
所以这里PDO参数中的同步起始值就起了作用
在同步协议中, 有 2 个约束条件:
- 同步窗口时间:
索引 1007h 约束了同步帧发送后, 从节点发送 PDO 的时效
即在这个时间内发送的 PDO 才有效, 超过时间的 PDO 将被丢弃 - 通讯循环周期:
索引 1006h 规定了同步帧的循环周期
2. 时间戳协议
时间标记对象(Time Stamp), NMT 主机发送自身的时钟
为网络各个节点提供公共的时间参考, 即网络对时
这在故障诊断中非常需要
比如列车中火灾报警, 检修人员需要准确获知报警的时刻
然后关联查看其它设备在这个时刻的工作状态
时间戳协议采用广播方式, 无需节点应答, CAN-ID 为 100h, 数据长度为 6
数据为当前时刻与 1984 年 1 月 1 日 0 时的时间差
节点将此时间存储在对象字典 1012h 的索引中
由于时间换算起来非常费劲, 所以会有专门的换算函数
3. 紧急报文协议
紧急事件对象(Emergency):当设备内部发生错误, 触发该对象, 发送设备内部错误代码, 提示 NMT主站
紧急报文属于诊断性报文, 一般不会影响 CANopen 通讯
其 CAN-ID存储在 1014h 的索引中, 一般会定义为 080h + node-ID, 数据包含 8 个字节
其中包括:
EEC: 紧急时间错误代码, ER: 错误寄存器, MEF: 厂商自定义的错误代码
当然这些都需要查表才能获知, 进行诊断:
与 PDO 的生产禁止时间类似, 紧急报文也有生产禁止时间
存储在对象字典的 1015h 中, 为了限制节点不断发送紧急报文, 导致总线负载过大
参考:
《CANopen 轻松入门》
相关推荐:
CAN笔记(21) 服务数据对象
CAN笔记(20) 过程数据对象
CAN笔记(19) 网络管理
CAN笔记(18) 对象字典
CAN笔记(17) 预定义报文ID
谢谢!
CAN笔记(22) 特殊协议相关推荐
- 网络安全笔记1——Internet协议的安全性
网络安全笔记1--Internet协议的安全性 参考课程:中国大学MOOC<网络安全>--北京航空航天大学 文章目录 网络安全笔记1--Internet协议的安全性 <font co ...
- 网络协议学习笔记-IGMP协议
网络协议学习笔记-IGMP协议 http://hi.baidu.com/clxye/item/3db870336d86c0c11a969614 IGMP协议(Internet Group Man ...
- Ext.Net学习笔记22:Ext.Net Tree 用法详解
上面的图片是一个简单的树,使用Ext.Net来创建这样的树结构非常简单,代码如下: <ext:TreePanel runat="server"><Root> ...
- JAVA自学笔记22
JAVA自学笔记22 1.操作基本数据类型的流 DataInputStream DataOutputStream 数据输出流允许应用程序以适当方式将基本的Java数据类型写入输出流中.然后,应用程序可 ...
- IOS之学习笔记十五(协议和委托的使用)
1.协议和委托的使用 1).协议可以看下我的这篇博客 IOS之学习笔记十四(协议的定义和实现) https://blog.csdn.net/u011068702/article/details/809 ...
- 【转】:TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute
TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute 分类: TCP/IP详解学习笔记计算机网络2006-04-20 18:147970人阅读评论(1)收 ...
- 网络协议 22 - RPC 协议(下)- 二进制类 RPC 协议
网络协议 22 - RPC 协议(下)- 二进制类 RPC 协议 原文:网络协议 22 - RPC 协议(下)- 二进制类 RPC 协议 前面我们认识了两个常用文本类的 RPC 协议,对于陌生 ...
- Java学习笔记22:并发(2)
Java学习笔记22:并发(2) 图源:PHP中文网 终止任务 终止线程有一种非常简单的方式:设置一个多线程共享的标记位,子线程用轮询的方式检查这个标记位,如果该标记位显示取消状态,就让子线程退出执行 ...
- [编译原理学习笔记2-2] 程序语言的语法描述
[编译原理学习笔记2-2] 程序语言的语法描述 文章目录 [编译原理学习笔记2-2] 程序语言的语法描述 [2.3.1] 上下文无关文法 [2.3.2] 语法分析树与二义性 [2.3.3] 形式语言鸟 ...
- 【嵌入式硬件芯片开发笔记】HART协议调制解调芯片AD5700配置流程
[嵌入式硬件芯片开发笔记]HART协议调制解调芯片AD5700配置流程 XTAL_EN接地,CLK_CFG的两个引脚由同一个GPIO控制 初始时HART_CLK_CFG输出低电平 由RTS引脚控制调制 ...
最新文章
- 包邮送 36 本书,已全部打包好!
- 贝叶斯分类器_python机器学习API介绍10:多项式贝叶斯分类器
- 量子纠缠背后的故事(三):维格纳的朋友 精选
- 妙啊,小米11保护壳先小米11一步上市了...
- git commit之后后面的操作步骤
- springboot使用Freemarker继承
- 二十年前的电脑配置单,大家见过吗?
- ubuntu15.04源失效问题修复
- 函数参数约定、传递顺序、传递方式
- php获取时间(系统时间和网络时间)
- 通过关键词采集百度网址脚本
- 《Lost》大结局最权威最彻底解读
- 别做被大公司毁掉的年轻人
- 国庆中秋福利篇:视频资料免费大派送,总有你想要的那款
- 格式工厂——难得一见的强大免费格式转换工具
- IBM SPSS Statistics 26.0 for Linux Ubuntu 英/中文安装教程
- Java栈——操作数栈
- PDF转换成Word后乱码怎么办?
- 虚拟机运行一段时间后 自动挂起解决方法
- 普遍化的混合云架构,为何再一次被行业“重点关注”?