从 CANopen 到 CANopen FD 的技术升级

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所示 。
 

从 CANopen 到 CANopen FD 的技术升级_第1张图片

图  1  NMT网络管理示意图
 

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

从 CANopen 到 CANopen FD 的技术升级_第2张图片

图 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节点/生命防​​护。
 

从 CANopen 到 CANopen FD 的技术升级_第3张图片

图  3  启动协议示意图
 

从 CANopen 到 CANopen FD 的技术升级_第4张图片

图  4  心跳协议示意图
 

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

从 CANopen 到 CANopen FD 的技术升级_第5张图片

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

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

从 CANopen 到 CANopen FD 的技术升级_第6张图片

图  6  SYNC同步协议示意图
 

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

从 CANopen 到 CANopen FD 的技术升级_第7张图片

图  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已确认的单播、广播通信。
 

从 CANopen 到 CANopen FD 的技术升级_第8张图片

图  8  USDO单播、广播通信
 

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

从 CANopen 到 CANopen FD 的技术升级_第9张图片

图  9  加速USDO协议传输
 

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

从 CANopen 到 CANopen FD 的技术升级_第10张图片

图 10  USDO块传输方式


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

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

从 CANopen 到 CANopen FD 的技术升级_第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,用来配置及网络管理数据。

 

依梦科技USB转CANFD分析仪,助力总线升级:

从 CANopen 到 CANopen FD 的技术升级_第12张图片

你可能感兴趣的:(软件开发)