当前位置: 首页 >应用方案 >技术应用 >

利用ECAN-401实现CAN报文自定义协议转发教程

一、CAN转设备ECAN-401功能介绍

首先,在开始实例演示前,我们需要了解ECAN-401设备自定义协议转发的规则:由于CAN帧格式是基于报文的,串行帧格式是基于字节传输的。必须是完整的符合自定义协议规定的串行帧格式,要包含用户所配置模式下的串行帧所有内容,除数据域外若其他字节内容若有误,此帧将不能成功发送。

串行帧包含的内容:帧头、帧长度、帧信息、帧ID、数据域、帧尾。

注意:使用自定义协议转发用户配置的帧ID和帧类别无效,将根据串行帧里边的格式进行数据转发。

因此为了让用户方便使用CAN-Bus接口,将串行帧格式向CAN帧格式靠拢,在串行帧中规定了一帧的起始及结束,即AT命令中的“帧头”和“帧尾”,用户可自行配置。

帧长度指的是从帧信息开始到最后一个数据结束的长度,不包括串行帧尾。

帧信息分为扩展帧和标准帧,标准帧固定表示为0x00,扩展帧固定表示为0x80自定义协议转换中,无论每帧数据域包含的数据长度为多少,其帧信息内容都固定不变。

当帧类型为标准帧(0x00)时,帧类型后两个字节表示帧ID,其中高位在前;当帧信息为扩展帧(0x80)时,帧类型后4个字节表示帧ID,其中高位在前。

注意:自定义协议转换中,无论每帧数据域包含的数据长度为多少,其帧信息内容都固定不变。固定为标准帧(0x00)或者扩展帧(0x80)。帧ID需要符合ID范围,否则ID可能出错。

can报文串行针1

CAN总线报文收到一帧即转发一帧,模块会将CAN报文数据域中的数据依次转换,同时会向串行帧添加帧头、帧长度、帧信息等数据,实际为串行帧转CAN报文的逆向形式。

can报文串行针2

二、CAN转设备ECAN-401操作演示

准备工具

在了解了ECAN-401的自定义协议功能后,我们可以开始实际操作,准备以下设备:

ECAN-401一台;

CAN分析仪ECAN-U01一台;

XCOM串口助手。

这里我们使用ECAN-401做数据转换工具,ECAN-U01发送和接收CAN报文,XCOM串口助手软件模拟串行设备发送串行数据。将ECAN-401ECAN-U01CAN_LCAN_H连接,ECAN-401的RS485接口通过485USB转换器连接到电脑,如下图所示:

can总线数转换器链接示意图


通过ECAN-401的上位机,将设备通讯模式切换为自定义协议模式,CAN波特率1000K,帧头AA,帧尾FF参数配置如下图:

can转协议通信设备上位机配置

打开CAN分析仪ECAN-U01以及XCOM软件,使用XCOM软件模拟出一串行设备,通过ECAN-401RS485串口发送串行数据(需符合自定义协议格式):

首先使用标准帧发送两包数据:AA 09 00 07 FF 11 22 33 44 55 66 2.AA 0B 00 00 01 11 22 33 44 55 66 77 88 FF,这里可以看到ECAN-U01设备已经接收到了ECAN-401所转换出来的数据:

can分析仪1

第一帧数据为帧头:帧头:AA,帧长度:09,帧信息:00(标准帧),帧ID07 FF,数据域:11 22 33 44 55 66,帧尾:FF。第二帧数据为:AA,帧长度:0B,帧信息:00(标准帧),帧ID00 01,数据域:11 22 33 44 55 66 77 88,帧尾:FF

再使用扩展帧发送两包数据:1.AA 0B 80 00 01 11 22 33 44 55 66 77 88 FF 2.AA 0D 80 00 01 11 22 33 44 55 66 77 88 99 11 FF,这里可以看到ECAN-U01设备已经接收到了ECAN-401所转换出来的数据:

can分析仪2

第一帧数据为帧头:AA,帧长度:0B,帧信息:80(扩展帧),帧ID00 01 11 22 ,数据域:33 44 55 66 77 88,帧尾:FF。第二帧数据为:帧头:AA,帧长度:0D,帧信息:80(扩展帧),帧ID00 01 11 22,数据域:33 44 55 66 77 88 99 11,帧尾:FF

再从CAN分析仪端发送数据到串行端口,如下图所示:

can分析仪3

串口端也是按照自定义协议模式来组包,这样就成功实现了CAN协议按照自定义格式来发送,同时客户也能够通过此协议来快速区分数据帧。

查看技术文章和免费咨询技术问题可以访问成都亿佰特电子科技有限公司官网及各官方平台:

微信号:cdebyte

今日头条:亿佰特

新浪微博:成都亿佰特


https://www.wjx.cn/jq/84863372.aspx