1、CANopen协议通常分为用户应用层、对象字典及通信三个部分。其中最为核心的是对象字典,描述了应用对象和CANopen报文之间的关系。CANopen通信是关键部分,其定义了CANopen协议通信规则以及与CAN控制器驱动之间对应关系。
2、CANopen的预定义报文ID分类
※ 报文传输采用CAN标准帧格式(11bit ID域),以尽量减少传输时间。
※ 网络控制报文均采用最小字节数。比如心跳报文,只有1个字节数据。
PDO属于过程数据,即单向传输,无需接收节点来回应CAN报文来确认,从通讯属于上来说属于“生产消费”模型。
而SDO属于服务数据,有制定被接受节点的地址(Node-ID),并且需要制定的接收节点回应CAN报文来确认已经接收。这种通讯方式属于常见的“服务器客户端”的通讯模型,即我们通常所说的轮询式。
由于需要区分每个CANopen节点的输入和输出,PDO分为TPDO(发送PDO)和RPDO(接收PDO),发送和接收都是以CAN从节点作为参考。
5.对象字典OD
所谓的对象字典就是一个有序的对象组,描述了CANopen节点的所有参数,包括通讯数据的存放位置也列入其索引。
CANopen协议的核心描述子协议是DS301,其中包括了CANopen协议应用层及通信结构描述,其他的协议子协议都是对DS301协议秒速文本的补充与扩展。在不同的应用行业都会起草一份CANopen设备自协议,子协议编号一般是DS4xx。
6.网络管理NMT与CANopen主站
每个CANopen从节点的CANopen协议栈中,必须具备NMT管理的相应代码,这事节点具备CANopen协议的最基本的要素。
6.1 节点状态
初始化、应用层复位、预操作状态、操作状态、停止状态。
6.2 NMT节点上线报文
为了提示主站它已经加入网络(便于热插拔),或者避免与其他从站Node-ID冲突。
6.3 NMT节点状态与心跳报文
为了监控CANopen节点是否在线与目前的节点状态。
6.4 NMT节点守护
早期应用中,还有一种可以通过轮询模式见识从站状态的节点守护模式,它与心跳报文模式二者不能并存。
6.5 NMT 节点状态切换命令
NMT网络管理中,最核心的就是NMT节点状态切换命令,这是NMT主站所进行网络管理的“命令”报文。使用者必须牢记这些命令。
7.过程数据对象
7.1PDO的CAN-ID定义
TPDO和RPDO分别有4个数据对象,每种数据对象就是一条CAN报文封装,这些都是数据手法的容器。