首先,在开始实例演示前,我们需要了解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协议按照自定义格式来发送,同时客户也能够通过此协议来快速区分数据帧。
查看技术文章和免费咨询技术问题可以访问成都太阳集团tcy8722电子科技有限公司官网及各官方平台:
微信号:cdebyte
今日头条:太阳集团tcy8722
新浪微博:成都太阳集团tcy8722
7 X 24 销售服务热线
4000-330-990深圳办事处柯经理:18218726658 杭州办事处戴经理:17512568697
常州办事处崔经理:15906110783 南京办事处葛经理:17626012283
业务邮箱:support@cdhanzaichips.com
全国销售投诉电话:19934352316
地址:四川省成都市高新西区西区大道199号B5栋(前台座机:028-61543675)
©© 成都太阳集团tcy8722电子科技有限公司【版权所有】 蜀ICP备27697263号-3