首先,在开始实例演示前,我们需要了解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的RS485接口通过485换USB转换器连接到电脑,如下图所示:
通过ECAN-401的上位机,将设备通讯模式切换为自定义协议模式,CAN波特率1000K,帧头AA,帧尾FF参数配置如下图:
打开CAN分析仪ECAN-U01以及XCOM软件,使用XCOM软件模拟出一串行设备,通过ECAN-401的RS485串口发送串行数据(需符合自定义协议格式):
首先使用标准帧发送两包数据: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协议按照自定义格式来发送,同时客户也能够通过此协议来快速区分数据帧。
查看技术文章和免费咨询技术问题可以访问成都亿佰特电子科技有限公司官网及各官方平台:
微信号:cdebyte
今日头条:亿佰特
新浪微博:成都亿佰特
7 X 24 销售服务热线
4000-330-990深圳办事处柯经理:18218726658 杭州办事处戴经理:17512568697
常州办事处崔经理:15906110783 南京办事处葛经理:17626012283
业务邮箱:support@cdebyte.com
全国销售投诉电话:19934352316
地址:四川省成都市高新西区西区大道199号B5栋(前台座机:028-61543675)
©© 成都亿佰特电子科技有限公司【版权所有】 蜀ICP备13019384号-3