标签:快速 网络 配置 文档 局域网 缺省 分拆 分类 通过
1.CANopen协议总述
CANopen 是一个基于 CAN 串行总线的网络传输系统的应用层协议,遵循 ISO/OSI 标准模型。
网络中不同的设备通过对象字典或者对象来相互交换数据,其中,主节点可以通过过程数据对象 (PDO) 或者服务数据对象 (SDO) 来获取或者修改其它节点对象字典列表中的数据。
CANopen协议主要内容分为三大块,如下图CANopen 的设备模型。
推荐书籍:周立功的《CANopen轻松入门》,建议详细拜读,可以带大家入门。
2.通讯接口
入门之后若要深入理解,我建议参看官网的《CANOpen CiA 301》标准这本文档
CiA(CAN in Automation) 301也是大家所说的DS301,为CANopen 基础协议。
我们还常看到类似CiA 401 402这些协议,其实它们是在CiA 301 之上,对各个行业不断推出设备子协议。
所谓的子协议,就是针对不同行业的应用对象,对 CANopen 内部的数据含义进行重新定义,或者添加新的控制逻辑。
按照CANOpen CiA 301协议文档,提取了通信接口的主要内容,如下图:
2.1 网络管理(NMT),包括 Boot-up(上线) 消息, Heartbeat(心跳) 协议及 NMT 消息,基于主从通信模式,
NMT 用于管理和监控网络中的各个节点,主要实现三种功能:节点状态控制、错误控制和节点启动。
CANOpen网络一般是一个主站,多个从站的局域网络;
NMT节点具有6种状态:初始化、应用层复位、通讯复位、预操作状态、操作状态、停止状态。可以自己切换状态,也可主站切换状态;
任何一个 CANopen 从站上线后发出节点上线报文(boot-up)。
2.2 过程数据对象 PDO
每个 CANopen 设备包含 8 个缺省的 PDO 通道, 4 个发送 PDO 通道和 4 个接收 PDO 通道。
PDO用来传输实时数据,包括接收 PDO(RPDO) 和发送 PDO(TPDO),数据从一个创建者传到一个或多个接收者,属于“生产消费”模型,数据传送限制在 1 到 8 个字节。
COB-ID( CAN Object Identifier,CANID是其一部分,NodeID是CANID的低7位) 定义只是预定义。
PDO 的两种传输方式:同步传输和异步传输,由该 PDO 对应的通信参数决定。
PDO 的通信参数可通过对象字典工具配置。
PDO 消息的内容是预定义的,由该 PDO 对应的映射参数决定。PDO 的映射参数是一个相对难理解的参数,请结合《CANopen 轻松入门》图文理解。
2.3 服务数据对象 SDO
包括接收 SDO(R-SDO) 和发送 SDO(T-SDO)。
通过使用索引和子索引, SDO 使客户机能够访问设备对象字典中的项。
SDO 通过 CAL 中多元域的 CMS 对象来实现,允许传送任何长度的数据,当数据超过 4 个字节时分拆成几个报文。
协议是确认服务类型,为每个消息生成一个应答。 SDO 请求和应答报文总是包含 8 个字节。
SDO为请求应答方式;
发送方(客户端)、接收方(服务器) ;
通常从节点为 SDO 服务器,主节点为客户端;
两种协议:快速、普通 SDO 协议;
CS命令符含义需熟记(查表);
2.4 特殊协议
2.4.1.常见的就是罗列出来的3种:
同步协议,包含同步对象,同步对象是由 CANopen 主站周期性地广播到 CAN 总线的报文,用来实现基本的网络时钟信号,
每个设备可以根据自己的配置,决定是否使用该事件来跟其它网络设备进行同步通信。
时间戳协议。
紧急报文协议,设备内部通信故障或者应用故障错误时发送的报文。
2.4.2.特殊协议CAN-ID定义(查表);
2.4.3.紧急报文错误代码分类及含义;
3.对象字典
CANopen设备最重要的一个部分就是对象字典。对象字典本质上是一种被预先安排的对象序列,可通过网络访问。字典里面的每一对象均可使用一个16-bit主索引和8-bit子索引寻址到。
对象字典下面主要包含:数据类型、通信对象、应用对象。
3.1 通信子协议区,如上图1000h 到 1FFFh这个区域。也就是通信接口(或通信对象)协议区。
关于创建对象字典,可以使用Canfestival工具,详见:http://www.elecfans.com/d/1153555.html
标签:快速 网络 配置 文档 局域网 缺省 分拆 分类 通过
原文地址:https://www.cnblogs.com/merlinzjl/p/12907790.html