

在工业自动化领域,不同设备之间的通信协议差异常常成为数据传输的障碍。成都亿佰特电子科技有限公司自主研发的EID091-A701-S系列CANFD转串口模块和EID091-A701-SC系列CANFD转串口模块测试套件,凭借卓越的性能、丰富的功能和广泛的兼容性,成为解决工业通信难题的理想选择。本文将深入介绍EID091-A701-S和EID091-A701-SC系列CANFD转串口模块的透明转换模式、透明带标识转换模式、协议模式、Modbus协议转换模式、自定义协议转换模式等工作模式转换说明。
透明转换:转换器将一种格式的总线数据原样转换成另一种总线的数据格式,不附加数据也不对数据做修改。这样既实现了数据格式的交换又没有改变数据内容,对于两端的总线来说转换器如同“透明”的一样,故为透明转换。
串行帧的全部数据依序填充到CAN(FD)报文帧的数据域里。模块检测到串行总线上有数据后就立即接收并转换。转换成的CAN(FD)报文帧信息(帧类型部分)和帧ID来自用户事先的配置,并且在转换过程中帧类型和帧ID一直保持不变。
转换时将CAN(FD)报文数据域中的数据依序全部转换到串行帧中。如果在配置的时候,勾选“使能帧信息”,那么模块会将CAN(FD)报文的“帧信息”字节直接填充至串行帧。如果勾选“使能帧ID”,那么也将CAN(FD)报文的“帧ID”字节全部填充至串行帧。
注意:如果要在串行接口收到CAN(FD)的帧信息或者帧ID 需要使能对应的功能。才可收到对应的信息。
协议转换格式如下:
串行帧转换成CAN报文(透明转换模式):

CAN报文转换成串行帧(透明转换模式):

串行帧转换成CANFD报文(透明转换模式):

CANFD报文转换成串行帧(透明转换模式):

透明带标识转换是透明转换的特殊用法,在串行帧中带CAN(FD)报文的ID信 息,可以根据需要发送不同ID的CAN(FD)报文。有利于用户通过模块更方便的组建自己的网络,使用自定的应用协议。该方式把串行帧中的 ID 信息自动转换成CAN(FD)总线的帧ID。只要在配置中告诉模块该ID信息在串行帧的起始位置和长度,模块在转换时提取出这个帧ID填充在CAN(FD)报文的帧ID域里,作为该串行帧的转发时的CAN(FD)报文的ID。在CAN报文转换成串行帧的时候也把CAN(FD)报文的ID转换在串行帧的相应位置。
串行帧中所带有的CAN(FD)报文的“帧 ID”在串行帧中的起始地址和长度可由配置设定。起始地址的范围是0~7,长度范围分别是1~2(标准帧)或1~4(扩展帧)。转换时根据事先的配置将串行帧中的 CAN(FD)报文“帧 ID”对应全部转换到CAN(FD)报文的帧ID域中(如果所带帧ID个数少于CAN(FD)报文的帧 ID 数,那么在CAN(FD)报文中帧ID的高字节补0。),其它的数据依序转换,如果一帧CAN(FD)报文未将串行帧数据转换完,则仍然用相同的ID作为CAN(FD)报文的帧ID继续转换直到将串行帧转换完成。
注意:如果将ID长度大于2,设备发送的帧类别会设置为扩展帧。此时用户配置的帧ID和帧类别无效,由串行帧里边的数据决定。标准帧的帧ID范围为:0x000-0x7ff,分别表示为帧 ID1、帧 ID0,其中帧 ID1 为高字节,扩展帧的帧 ID 范围为:0x00000000-0x1fffffff,分别表示为帧 ID3、帧 ID2、帧 ID1、帧 ID0,其中帧 ID3 为高字节。
对于CAN(FD)报文,收到一帧就立即转发一帧,每次转发的时候也是根据事先配置的 CAN(FD)帧ID在串行帧中的位置和长度把接收到的CAN(FD)报文中的ID作相应的转换。其它数据依序转发。值得注意的是,无论是串行帧还是CAN(FD)报文在应用的时候其帧格式(标准帧还是扩展帧)应该符合事先配置的帧格式要求,否则可能致使通讯不成功。
协议转换格式如下:
串行帧转换成CAN报文(透明带标识转换模式):

CAN报文转换成串行帧(透明带标识转换模式):

串行帧转换成CANFD报文(透明带标识转换模式):

CANFD报文转换成串行帧(透明带标识转换模式):

协议模式根据设置的CAN 协议模式,分CAN格式转换和 CANFD格式转换两种情况,区别是对应的格式固定的字节数不同。
CAN格式转换固定13字节表示一个CAN帧数据,13个字节内容包括CAN 帧信息+帧ID +帧数据。在该转换模式下,设置的CAN ID无效,因为此时发送的标识符(帧 ID)由上述的格式串行帧中的帧ID数据填充。配置的帧类型也无效,由格式串行帧中的帧信息来决定帧类型。格式如下:

CANFD格式转换固定69字节表示一个CANFD帧数据,69个字节内容包括CAN 帧信息+帧ID +帧数据。在该转换模式下,设置的CANFD ID无效,因为此时发送的标识符(帧 ID)由上述的格式串行帧中的帧ID数据填充。配置的帧类型也无效,由格式串行帧中的帧信息来决定帧类型。格式如下:

帧信息如下表:

u FF:标准帧和扩展帧的标识,0为标准帧,1为扩展帧;
u RTR:远程帧和数据帧的标识,0为数据帧,1为远程帧,CANFD 时只能为0;
u EDL:CAN和CANFD 标识,0为CAN,1为CANFD;
u BRS:波特率切换使能标识,0为不转换速率,1为转换可变速率,仅CANFD 时有效,CAN 时此位应该为0;
u DLC3~DLC0:标识该 CAN(CANFD)报文数据长度。
帧ID的长度为4字节,标准帧有效位是11位,扩展帧有效位是29位。

在串行帧转CAN(FD)报文的过程中,以固定字节对齐的串行数据帧中,某段固定字节的数据格式不标准,将会不对固定字节长度进行转换,接着转换后面的数据。如果转换后发现少了某些CAN(FD) 报文,请检查对应报文的固定字节长度串行数据格式是否不符合标准格式。
此模式下要注意严格按照固定字节的格式串行数据格式才能转换成功,有效数据不足固定长度时,需要补0到固定长度。转换时首先要确保帧信息无误,数据长度表示无误,否则不会进行转换。
Modbus协议是一种标准的应用层协议,广泛应用于各种工控场合。该协议开放, 实时性强,通讯验证机制好,非常适用于通信可靠性要求较高的场合。
模块在串口侧使用的是标准Modbus RTU协议格式,所以模块不仅支持用户使用Modbus RTU协议,模块也可以直接和其它支持Modbus RTU协议的设备相接口。在CAN(FD)侧,制定了一个简单易用的分段通讯格式来实现Modbus的通 讯。模块在其中扮演的角色仍然是作协议验证和转发,支持Modbus协议的传输,而不是Modbus的主机或者从机,用户按照Modbus协议通讯即可。
注意:在该转换模式下,设置的CAN(FD) ID无效,因为此时发送的标识符(帧ID)由 Modbus RTU 串行帧中的地址域填充。
串行接口采用的是标准的Modbus RTU 协议,所以用户帧符合此协议即可。如果传输的帧不符合 Modbus RTU 格式,那么模块会将接收到的帧丢弃,而不予转换。一个长度大于一个CAN(FD)报文最大数据长度的信息进行分段以及重组的方法,按照分段协议继续转换,直到转换完成。

l 分段报文标记:表明该报文是否是分段报文。该位为0 表示单独报文,为 1 表示 属于被分段报文中的一帧。
l 分段类型:表明是第一段、中间段的还是最后段。

l 分段计数器:每一个段的标志,表示该段在整个报文中的序号,如果是第几个段,计数器的值就是几。这样在接收时就能够验证是否有分段被遗失。共使用5Bit,范围为 0~31。
CAN报文时,分段报文格式如下:

CANFD报文时,分段报文格式如下:

对于CAN(FD)总线上的Modbus协议数据,无需做循环冗余校验(CRC16),模块按照分段协议接收,接收完一帧解析后自动加上循环冗余校验(CRC16),转换成Modbus RTU 帧发送至串行总线。如果接收到的数据不符合分段协议,则将该组数据丢弃不予转换。
CAN模式转换格式:

CANFD模式转换格式:

必须是完整的符合自定义协议规定的串行帧格式,要包含用户所配置模式下的串行帧所有内容,除数据域外若其他字节内容若有误此帧将不能成功发送。串行帧包含的内容:帧头、帧长度、帧信息、帧ID、数据域、帧尾。
注意:此模式下用户配置的帧ID和帧类别无效,将根据串行帧里边的格式进行数据转发。
串行帧格式必须符合规定的帧格式,由于CAN(FD)帧格式是基于报文的,串行帧格式是基于字节传输的。因此为了让用户方便使用,将串行帧格式向CAN(FD)帧格式靠拢,在串行帧中规定了一帧的起始及结束,即AT命令中的“帧头”和“帧尾”,用户可自行配置。帧长度指的是从帧信息开始到最后一个数据结束的长度,不包括串行帧尾。帧信息分为扩展帧和标准帧,标准帧固定表示为0x00,扩展帧固定表示为0x80,与透明转换和透明带标识转换不同,自定义协议转换中,无论每帧数据域包含的数据长度为多少,其帧信息内容都固定不变。当帧类型为标准帧(0x00)时,帧类型后两个字节表示帧 ID,其中高位在前;当帧信息为扩展帧(0x80)时,帧类型后4个字节表示帧ID,其中高位在前。
注意:自定义协议转换中,无论每帧数据域包含的数据长度为多少,其帧信息内容都固定不变。帧ID需要符合ID范围,否则ID可能出错。
CAN(FD)总线报文收到一帧即转发一帧,模块会将CAN(FD)报文数据域中的数据依次转换,同时会向串行帧添加帧头、帧长度、帧信息等数据,实际为串行帧转CAN(FD)报文的逆向形式。
协议转换格式如下:
串行帧转换成CAN报文(自定义协议转换模式):

CAN报文转换成串行帧(自定义协议转换模式):

串行帧转换成CANFD报文(自定义协议转换模式):

CANFD报文转换成串行帧(自定义协议转换模式):

今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多CANFD总线协议模组产品的更多资料,感兴趣的小伙伴可以登录我们的亿佰特官网进行了解,也可以直接拨打400电话咨询技术专员!
相关阅读: