软件|【干货】CAN报文固定协议转发

软件|【干货】CAN报文固定协议转发

文章图片

软件|【干货】CAN报文固定协议转发

文章图片

软件|【干货】CAN报文固定协议转发

文章图片

软件|【干货】CAN报文固定协议转发

在CAN总线通信的应用领域中 , 很多客户需要将CANID 放在CAN报文中 , 这样更方便接入不同的设备 , 有利于用户通过模块更方便的组建自己的网络 , 使用自定的应用协议 。 但是要实现这样的应用 , 用户往往需要不停地去修改参数 , 而亿佰特的ECAN-401所具备的协议转发功能则很好地处理这个问题 。 首先我们要了解一下此设备的固定协议是怎么样的格式 。
CAN格式转换固定13字节表示一个CAN帧数据 , 13个字节内容包括CAN 帧信息+帧ID +帧数据 。 在该转换模式下 , 设置的CANID无效 , 因为此时发送的标识符(帧 ID)由上述的格式串行帧中的帧ID数据填充 。 配置的帧类型也无效 , 由格式串行帧中的帧信息来决定帧类型 。 格式如下:

帧 ID 的长度为 4 字节 , 标准帧有效位是 11 位 , 扩展帧有效位是 29 位 。

在串行帧转CAN报文的过程中 , 以固定字节(13字节)对齐的串行数据帧中 , 某段固定字节的数据格式不标准 , 将会不对固定字节长度进行转换 , 接着转换后面的数据 。 如果转换后发现少了某些 CAN 报文 , 请检查对应报文的固定字节长度串行数据格式是否不符合标准格式 。
帧数据在CAN格式转换时 , 长度固定为8字节 。 有效长度由DLC3~DLC0的值决定 , 有效数据不足固定长度时 , 需要补0到固定长度 。
此模式下 , 要注意严格按照固定字节的格式串行数据格式才能转换成功 , CAN 模式转换可参考示例(CAN 格式转换标准帧示例)所示 , 转换时首先要确保帧信息无误 , 数据长度表示无误 , 否则不会进行转换 。
转换示例:
串行帧转CAN报文(协议模式) 。
该示例配置的CAN配置参数 。
转换模式:协议模式;
帧类别:扩展帧;
转换方向:双向;
帧ID:无需配置;
则转换前后数据如下 。

在了解了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 , 参数配置如下图:

打开CAN分析仪ECAN-U01以及XCOM软件 , 使用XCOM软件模拟出一串行设备 , 通过ECAN-401的485串口发送串行数据:首先使用标准帧发送两包数据:88 01 23 45 67 11 22 33 44 55 66 77 88 , 这里可以看到ECAN-U01设备已经接收到了ECAN-401所转换出来的数据:

这里可以看到ECAN-U01已经成功接收到ECAN-401转化出来的数据 , 帧类型:扩展帧帧ID:1234567 , 数据域:11 22 33 44 55 66 77 88。 从ECAN-401的配置参数上看 , ECAN-401的设置的帧类型和帧ID是没生效的 , CAN分析仪接收的帧信息由串行帧给出 。
再试试串行帧发送08 00 00 01 23 88 77 66 55 44 33 22 11 , 如下图所示:

【软件|【干货】CAN报文固定协议转发】CAN分析仪正常接收到标准帧数据 , 这样就可以实现设备到CAN的协议转发 。