2019 年 11 月 21 日,在 SPS 2019 庆祝 30 周年展会上,CiA 组织通过两个网桥连接的网络展示了从经典 CANopen 到 CANopen FD 的移植。那么 CANopen FD 的出现带来哪些变化?这里重点介绍一下 CANopen FD 的特性。

 

自 1991 年颁布了 CAN 2.0 技术规范起,CiA 便一直致力于 CAN 协议的推广,其中包括 CAN 底层(CAN 数据链路层、CAN 物理层)设计及 CAN 的应用层(CANopen)。CANopen 协议在 CiA 301 中明确规定其 PDO、SDO、NMT 网络管理等协议的规范,并使用经典 CAN 数据链路层,而在 SPS 展会中 CiA 展示了 CiA 1301 中指定的 CANopen FD 协议。相比 CANopen 使用经典 CAN 数据链路层,数据段提供 8 字节有效负载,CANopen FD 是基于 CAN FD,数据段有效负载提升到 64 字节,解决了某些应用中出现数据段不够用的问题。

 

一、CANopen 协议升级到 CANopen FD 的相同之处

1.    NMT 网络管理协议

网络管理系统(NMT)负责启动网络和监控设备。工程师将 CANopen FD 网络管理系统设计成一种主 / 从系统。在 CANopen FD 网络中只允许存在一个活动的 NMT 主机,所有 CANopen FD 设备都具有 NMT 从机功能,并且由 NMT 主机来启动、监控、重启,同时分配给唯一的节点 ID。

 

为了方便管理设备,所有设备都内置一个内部状态机,状态之间的转变由内部事件或者主机外部触发。

 

NMT 从站状态机由初始化状态,预操作状态,操作状态和停止状态组成,其状态转换方式如图 1 所示 。

 

图  1  NMT 网络管理示意图

 

控制设备状态的 NMT 指令,通过具有最高优先级的 CAN 标识符来发送。CANopen FD 设备一旦接收到控制设备状态的 NMT 指令,则必须进行转换。如图 2 所示,NMT 协议映射到具有两个字节数据长度的单个 CAN FD 数据帧。第一个字节确定要发出去的指令,即指令说明符;第二个字节指定 CANopen FD 设备的节点 ID。 

 

图 2  NMT 协议示意图

 

2.    错误控制协议

在 CANopen FD 网络中通过错误控制协议(如图 3 启动协议、如图 4 心跳协议)可以监视 CANopen FD 设备是否仍在网络中,并且处于预期的 NMT FSA 状态,同时也可以检测到新加入网络的 CANopen FD 设备。所有的 CANopen FD 设备都是基于相同的 CAN FD 信息,并具有 CANopen FD 设备的 CAN-ID700H+节点 ID。

 

注意:CANopen FD 不支持 CAN 远程框架,因此不支持 CANopen 节点 / 生命防​​护。

 

图  3  启动协议示意图

 

图  4  心跳协议示意图

 

3.    紧急通讯对象协议(EMCY)

当 CANopen FD 设备内部发生错误时,会由紧急错误生产者发送 EMCY,从而触发中断报警。每次发生错误事件只会发送一次 EMCY,并且以广播的方式发送给所有支持 EMCY 功能的设备上,进而针对错误进行调整。没有新错误发生时,将不再发送 EMCY 报文如图 5 所示。

 

图  5  紧急通讯对象协议 EMCY 示意图

 

4.    SYNC 同步协议

与 CANopen 相同,CANopen FD 设备中,SYNC 同步协议是由生产者定期发送,用于网络同步。所有 CANopenFD 设备都可以作为 SYNC 的生产者。通常情况下,SYNC 协议用作总线负载管理。SYNC 报文提供 1 字节的 SYNC 计数器值。每次发送 SYNC,对应计数器就会加 1。同时,SYNC 的传输周期是可以配置的,计数器初值为 1,最大值可在数据对象同步计数器溢出寄存器(1019H)进行配置,如图 6 所示。

 

图  6  SYNC 同步协议示意图

 

5.    时间戳协议

时间戳协议可以使 CANopen FD 系统调整到唯一的网络时间。由 CANopen FD 主站设备发出,用于同步所有从站的内部时钟。时间戳被映射到一个 6 字节长度的 CAN 单帧。如图 7 所示,默认情况下,该 CAN 帧具有标识符 100h。这六字节长度的数据提供“时间“”信息,该信息是以午夜之后的毫秒数和自 1984 年 1 月 1 日以来的天数。

 

图  7  时间戳协议示意图

 

二、CANopen 到 CANopen FD 的改变之处

1.    USDO 协议

 

USDO 用于 CANopen FD 系统中的配置和诊断任务。但是,过程数据也可以通过 USDO 服务进行传输。USDO 具有以下特性:

 

    USDO 服务可以在单个或多个 USDO 服务器之间确认通信;

 

    USDO 客户端可以访问 CANopen FD 设备中所有的对象字典条目;

 

     USDO 可以提供 USDO 服务器对象字典中一个或几个子索引的读写访问权限;

 

    USDO 具有路由功能,可以实现 CANopen FD 网络边界上的数据传输; 

 

    USDO 客户端和 USDO 服务器可以连接到不同的 CAN 物理层;

 

    USDO 客户端和 USDO 服务器之间可以传输任意长度的数据内容。

 

如图 8 所示,是 USDO 已确认的单播、广播通信。

 

图  8  USDO 单播、广播通信

 

USDO 协议“目的地地址”确定 USDO 是以点对点连接还是以多路或广播方式进行通信。命令说明符决定 USDO 传输的类型。会话 ID 用作交易编号,使客户端能够区分对同一 USDO 服务器的 USDO 访问。与传统的 CANopen SDO 中一样,索引和子索引标识在 USDO 服务器的对象字典中访问的数据元素。除了经典的 SDO,USDO 还按大小和数据类型描述要传输的数据,这使数据接收者能够执行一致性检查。如图 9 所示,为加速 USDO 协议传输。

 

图  9  加速 USDO 协议传输

 

对于较长的数据对象,如类型为域的数据,超过了 7 字节,加速 USDO 传输方式效率并不是很高。类似于 CANopen 协议,CANopen FD 协议中为了提高 USDO 传输的效率,引入一种扩展 USDO 传输方式:即块传输。这种 USDO 传输方式效率更高、速度更快。这种块传输的基本原理就是将数据划分为几个单一的包,在连续的请求或者应答中逐块传输这些包。如图 10 所示,是 USDO 块传输方式。

 

图 10  USDO 块传输方式

 

USDO 客户端告知 USDO 服务器目标索引和子索引以及预期的数据类型和长度。USDO 服务器确认其请求后,给出其可以处理的最大块的大小(连续块消息的数量)。USDO 客户端就会发出第一块的各个分段,知道服务器确认接收结束。

 

2.    PDO 协议

过程数据对象(PDO)在 CANopen FD 中用于广播高优先级控制和状态信息。一个 PDO 由一个 CAN 数据帧组成,并可以通信多达 64 个字节的数据。但是,CAN FD 数据帧的数据长度从 8 字节之后呈非线性规律。因此,当 PDO 生产者使用填充字节将 PDO 填充到下一个支持的 CAN FD 帧长度时,PDO 的消费者可能会收到比预期更多的数据。如图 11 所示。

 

图  11  PDO 协议示意图

 

三、CANopen FD 与嵌入式网络、工业物联网

现如今,工业物联网在逐步发展崛起,慢慢走向成熟。嵌入式也在向云应运程序中集成发展,大数据时代需要更多的数据来进行更准确更安全的算法分析。CANopen FD 底层基于 CAN FD 提供了长达 64 字节的有效负载,能够更好的满足大数据时代的安全性能要求。

 

CANopen FD 能够更好的满足未来工业互联网的发展需求,其中重要的原因还是归功于新的 USDO 协议的出现。由于 USDO 特性灵活,CANopen FD/IOT 网关可以轻松的访问网络中的任何数据,并且通过路由功能可以进行远程网络 CANopen FD 设备连接和访问。

 

CANopen FD 减轻了开发人员处理 CAN 硬件特定细节的负担,例如位时序和验收过滤。CANopen FD 提供了标准化的通信对象 COB,用来配置及网络管理数据。

 

四、CANFDSM-100——串口转 CANFD 转换模块

在实际应用中,工程师经常会使用串口来收发数据或进行调试。这样,对于 CANopen FD 设备的问题,我们会需要实现串口转 CANFD,帮助我们更好的实现数据的传输和转换。如图 12 所示, 是广州致远电子研发 的一款串口转 CAN(FD)模块 CANFDSM-100,内置微处理器。该模块支持透明转换、透明带标识符转换、格式转换、Modbus 转换四种模式。同时,该模块集成 1 路 CANFD 接口和 1 路 UART 接口。在 CAN 通讯方面,可以在 40Kbps~1Mbps 之间任意可编程;在 CANFD 通讯方面,可以在 1Mbps~5Mbps 之间任意可编程。满足工业级要求,支持在线固件升级等。

 

图 12  CANFDSM-100 示意图

 

五、USBCANFD 系列 CAN FD 接口卡

在 CANopen FD 设备的使用过程中,经常会通过抓取底层的 CAN FD 报文来进行数据分析或者故障排除等。如图 13 所示是广州致远电子有限公司开发的高性能 CANFD 接口卡,集成 1-2 路 CANFD 接口,每个接口具备独立的 2500VDC 电气隔离保护电路,使接口卡避免由于地环流的损坏,增强系统在恶劣环境中使用的可靠性。PC 通过 USB2.0 端口连接 USBCANFD 接口卡,从而能与 CAN(FD)网络进行数据收发,构成 CAN(FD)-bus 控制节点。

 

图 13  USBCANFD-200U 接口卡示意图