一、功能介绍
首先,在开始实例演示前,我们需要了解ECAN-401设备自定义协议转发的规则:由于CAN帧格式是基于报文的,串行帧格式是基于字节传输的。必须是完整的符合自定义协议规定的串行帧格式,要包含用户所配置模式下的串行帧所有内容,除数据域外若其他字节内容若有误,此帧将不能成功发送。
串行帧包含的内容:帧头、帧长度、帧信息、帧ID、数据域、帧尾。
注意:使用自定义协议转发用户配置的帧ID和帧类别无效,将根据串行帧里边的格式进行数据转发。
因此为了让用户方便使用CAN-Bus,将串行帧格式向CAN帧格式靠拢,在串行帧中规定了一帧的起始及结束,即AT命令中的“帧头”和“帧尾”,用户可自行配置。
帧长度
指的是从帧信息开始到最后一个数据结束的长度,不包括串行帧尾。
帧信息
分为扩展帧和标准帧,标准帧固定表示为0x00,扩展帧固定表示为0x80,在自定义协议转换中,无论每帧数据域包含的数据长度为多少,其帧信息内容都固定不变。
当帧类型为标准帧(0x00)时,帧类型后两个字节表示帧 ID,其中高位在前;当帧信息为扩展帧(0x80)时,帧类型后4个字节表示帧ID,其中高位在前。
注意:自定义协议转换中,无论每帧数据域包含的数据长度为多少,其帧信息内容都固定不变。固定为标准帧(0x00)或者扩展帧(0x80)。帧ID需要符合ID范围,否则ID可能出错。
CAN总线报文收到一帧即转发一帧,模块会将CAN报文数据域中的数据依次转换,同时会向串行帧添加帧头、帧长度、帧信息等数据,实际为串行帧转CAN报文的逆向形式。
二、操作演示
在了解了ECAN-401的自定义协议功能后,我们可以开始实际操作,准备以下设备:
ECAN-401一台;
CAN分析仪ECAN-U01一台;
XCOM串口助手。
这里我们使用ECAN-401做数据转换工具,ECAN-U01发送和接收CAN报文,XCOM串口助手软件模拟串行设备发送串行数据。将ECAN-401与ECAN-U01的CAN_L和CAN_H连接,ECAN-401的485接口通过485换USB转换器连接到电脑,如下图所示:
通过ECAN-401的上位机,将设备通讯模式切换为自定义协议模式,CAN波特率1000K,帧头AA,帧尾FF参数配置如下图:
打开CAN分析仪ECAN-U01以及XCOM软件,使用XCOM软件模拟出一串行设备,通过ECAN-401的485串口发送串行数据(需符合自定义协议格式):
首先使用标准帧发送两包数据: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所转换出来的数据:
第一帧数据为帧头:帧头: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所转换出来的数据:
第一帧数据为帧头: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协议按照自定义格式来发送,同时客户也能够通过此协议来快速区分数据帧。
返回搜狐,查看更多
责任编辑:
平台声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 (
)