全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

如何确保通讯协议的可靠性

时间:2022-07-11 13:26

人气:

作者:admin

标签: 同步协议  寄存器  CANopen  CAN 

导读:如何确保通讯协议的可靠性-同步窗口时间:索引1007h约束了同步帧发送后,从节点发送PDO的时效,即在这个时间内发送的PDO才有效,超过时间的PDO将被丢弃。...

  特殊协议(Special protocols)

  为了方便CANopen主站对从站管理。在CANopen协议中,已经为特殊的功能预定义了COB-ID,其主要有以下几种特殊报文。

  同步协议(Sync protocol)

  同步(SYNC),该报文对象主要实现整个网络的同步传输,如图 1所示,就像阅兵分列式上的方阵,所有士兵迈着整齐的步伐行进。

  每个节点都以该同步报文作为PDO触发参数,因此该同步报文的COB-ID 具有比较高的优先级以及最短的传输时间。 一般选用80h作为同步报文的CAN-ID,如图所示。

 

poYBAGLLs8CAKqd2AAGWYqGHpSg107.png

 

  同步报文

  一般同步报文由NMT主机发出,CAN报文的数据为0字节。但如果一个网络内有2个同步机制,就需要设置不同的同步节拍,比如某些节点按1个同步帧发送1次PDO,其他的节点收到2个同步帧才发送1此PDO,所以这里PDO参数中的同步起始值就起了作用。

  在同步协议中,有2个约束条件:

  同步窗口时间:索引1007h约束了同步帧发送后,从节点发送PDO的时效,即在这个时间内发送的PDO才有效,超过时间的PDO将被丢弃;

  通讯循环周期:索引1006h规定了同步帧的循环周期。

  时间戳协议(Time-stamp protocol)

  时间标记对象(Time Stamp),NMT主机发送自身的时钟,为网络各个节点提供公共的时间参考,即网络对时,如图3所示。这在故障诊断中非常需要,比如列车中火灾报警,检修人员需要准确获知报警的时刻,然后关联查看其它设备在这个时刻的工作状态。

  时间戳协议采用广播方式,无需节点应答,CAN-ID为100h,数据长度为6,数据为当前时刻与1984年1月1日0时的时间差。如图 4所示。节点将此时间存储在对象字典1012h的索引中。

 

pYYBAGLLs8iAXOylAAHHT9ScwJY300.png

 

  时间戳协议

  由于时间换算起来非常费劲,这里特地准备好了换算函数,方便读者使用。

  紧急报文协议(Emergency protocol)

  紧急事件对象(Emergency),是当设备内部发生错误,触发该对象,发送设备内部错误代码,提示NMT主站。紧急报文属于诊断性报文,一般不会影响CANopen通讯,其CAN-ID存储在1014h的索引中,一般会定义为080h +node-ID,数据包含8个字节,如图5所示。

 

pYYBAGLLs9aAMAYpAAIFaV-O0pU984.png

 

  紧急报文

  其中包括EEC:紧急时间错误代码,ER:错误寄存器,MEF:厂商自定义的错误代码。当然这些都需要查表才能获知,进行诊断。

  表1 Emergency error codes(紧急报文错误代码)

 

poYBAGLLs-GACN8MAAULT9yNrI8057.png

 

  与PDO的生产禁止时间类似,紧急报文也有生产禁止时间,存储在对象字典的1015h中,为了限制节点不断发送紧急报文,导致总线负载过大。

  USBCAN-E-P与PCI-5010-P主站卡可为PC机拓展出CANOpen通讯接口,实现CANOpen协议的数据通信。作为CANOpen网络的管理者,实现全部的CANOpen网络管理(NMT)功能。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信