太阳集团tcy8722

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

利用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(标准帧),帧ID:07 FF,数据域:11 22 33 44 55 66,帧尾:FF。第二帧数据为:AA,帧长度:0B,帧信息:00(标准帧),帧ID:00 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(扩展帧),帧ID:00 01 11 22 ,数据域:33 44 55 66 77 88,帧尾:FF。第二帧数据为:帧头:AA,帧长度:0D,帧信息:80(扩展帧),帧ID:00 01 11 22,数据域:33 44 55 66 77 88 99 11,帧尾:FF。

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

can分析仪3

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

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

微信号:cdebyte

今日头条:太阳集团tcy8722

新浪微博:成都太阳集团tcy8722



太阳集团tcy8722