1. 介绍
CAN 只定义物理层和数据链路层, 没有规定应用层,本身并不完整,需要一个高层协议来定义CAN 报文中的 11/29 位标识符、8 字节数据的使用。而且,基于 CAN 总线的工业自动化应用中, 越来越需要一个开放的、标准化的高层协议:这个协议支持各种 CAN 厂商设备的互用性、互换性,能够实现在CAN网络中提供标准的、统一的系统通讯模式,提供设备功能描述方式,执行网络管理功能。
2. 对象字典(OD)
对象字典是一个有序的对象组,每一个对象组采用一个16位的索引和一个8位的子索引来寻址。
the Object Dictionary serves as an interface between the communication and the application.
对象字典中索引的分类
3. NMT状态机
服务 | 预操作(Pre-Operational) | 操作 (Operational) | 停止 (Stopped) |
过程数据对象(PDO) | 否 | 是 | 否 |
服务数据对象(SDO) | 是 | 是 | 否 |
同步报文(SYNC) | 是 | 是 | 否 |
紧急报文(EMCY) | 是 | 是 | 否 |
网络管理(NMT) | 是 | 是 | 是 |
1.
2.
3.
3.1. 心跳报文(Heartbeat)
一个节点可以被配置为心跳报文的生产者,Heartbeat的消费者一般是主站
3.2. NMT Boot-up
NMT-Slave发布Boot up 报文通知NMT 主节点它已经从initialising状态进入pre-operational状态
3.3. 节点保护/寿命保护
NMT主节点发送远程帧
NMT从节点响应远程帧
数据部分包括一个触发位(bit7),触发位必须在每次节点保护应答中交替置“0”或者“1”。触发位在第一次节点保护请求时置为“0”。位 0 到位 6(bits0~6)表示节点状态,可为下表中的数值。
带*号的只有在支持Bootup的节点才提供,状态0不在节点保护应答中出现,因为节点在此状态下不应答节点保护报文。
4. 周期性过程数据(PDO)
传输方式
1、 事件驱动
当输入值发生变化时,数据立即被发送出去
2、 远程请求
PDO由远程帧触发,大部分设备不支持远程帧,且CIA组织不推荐使用。
3、 同步传输
RPDO:先接收到数据,但不更新到设备,只有接收到同步帧出发后,才更新,通过这种方式实现同步。
TPDO:可以设置接收到多少个同步帧后才发送TPDO。
5. 非周期性服务数据(SDO)
建立在客户端与服务器这样一种模型之上。
操作可分为下载和上传。
1.
2.
3.
4.
5.
5.1. 加速传输
5.2. 分段传输
主要用于传输超过32位的数据。
5.3. 块传输
与分段传输的主要区别是其将数据划分成几个单一的包,在连续的请求或者应答中逐块的的传输这些包。可以在最后一段中发送CRC校验和。
6. 同步数据(SYNC)
7. 紧急报文(EMCY)
COB-ID:0x080+Node_ID
1003h中存放了错误的记录。
8. 设备描述文件(EDS)
以电子表格的形式呈现
¥29.8
¥9.9
¥59.8