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