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

CAN总线通信实现CAN报文带ID标识教程

CAN总线通信的应用领域中,很多客户需要将CANID 放在CAN报文中,这样更方便接入不同的设备,有利于用户通过模块更方便组建自己的网络,使用自定的应用协议。但是要实现这样的应用,用户往往需要不停地去修改参数,而亿佰特研发的ECAN-401所具备的透明带标识功能则很好地处理这个问题。该方式把串行帧中的ID 信息自动转换成CAN总线的帧ID。只要在配置中告诉模块该ID信息在串行帧的起始位置和长度,模块在转换时提取出这个帧ID填充在CAN报文的帧ID域里,作为该串行帧的转发时的CAN报文的ID。在CAN报文转换成串行帧的时候也把CAN报文的ID转换在串行帧的相应位置。

CAN报文转换方式

1串行帧转 CAN 报文

串行帧中所带有的CAN报文的“帧 ID”在串行帧中的起始地址和长度可由配置设定。起始地址的范围是07,长度范围分别是12(标准帧)或14(扩展帧)。转换时根据事先的配置将串行帧中的CAN报文“帧 ID”对应全部转换到CAN报文的帧ID域中(如果所带帧ID个数少于CAN报文的帧ID 数,那么在CAN报文中帧ID的高字节补0。),其它的数据依序转换,如果一帧CAN报文未将串行帧数据转换完,则仍然用相同的ID作为CAN报文的帧ID继续转换直到将串行帧转换完成。

注意:如果将ID长度大于2,设备发送的帧类别会设置为扩展帧。此时用户配置的帧ID和帧类别无效,由串行帧里边的数据决定。标准帧的帧ID范围为:0x000-0x7ff,分别表示为帧ID1、帧ID0,其中帧ID1 为高字节,扩展帧的帧ID 范围为:0x00000000-0x1fffffff,分别表示为帧ID3、帧ID2、帧ID1、帧ID0,其中帧ID3 为高字节。

1串行帧转换成 CAN 报文
串行帧转换成 CAN 报文(透传带标识

CAN报文转换示例

串行帧转CAN报文(透明带标识)。

该示例配置的CAN配置参数。转换模式:透明带标识转换,起始地址2,长度3帧类型:扩展帧,帧ID:无需配置,转换方向:双向。则转换前后数据如下。

2串行转CAN报文
串行帧转 CAN 报文示例(透传带标识转换)

2CAN 报文转串行帧

对于CAN报文,收到一帧就立即转发一帧,每次转发的时候也是根据事先配置的CANID在串行帧中的位置和长度把接收到的CAN报文中的ID相应的转换。其它数据依序转发。值得注意的是,无论是串行帧还是CAN报文在应用的时候其帧格式(标准帧还是扩展帧)应该符合事先配置的帧格式要求,否则可能致使通讯不成功。

3CAN报文转串行帧
CAN报文转换成串行帧

CAN报文转换示例

该示例配置的CAN配置参数。转换模式:透明带标识转换,起始地址2,长度3帧类型:扩展帧帧类型:数据帧。转换方向:双向。发送标识符:0x00000123则转换前后数据如下。

4CAN报文转串行帧
CAN 报文转串行帧示例(透明带信息转换)

在了解了ECAN-401透明带标识功能后,我们可以开始实际操作,准备以下设备:ECAN-401一台、CAN分析仪ECAN-U01一台,XCOM串口助手。这里我们使用ECAN-401做数据转换工具,ECAN-U01发送和接收CAN报文,XCOM串口助手软件模拟串行设备发送串行数据。将ECAN-401ECAN-U01CAN_LCAN_H连接,ECAN-401RS485接口通过485USB转换器连接到电脑,如下图所示:

ECAN-401-CAN转设备

通过ECAN-401的上位机,将设备通讯模式切换为透明带标识模式,CAN波特率1000KID长度2ID位置2参数配置如下图:

can转设备2

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

can转分析仪

这里可以看到ECAN-U01已经成功接收到ECAN-401转化出来的数据,帧ID03 44,数据域:11 22 55 66 77 88 99 00

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

can分析仪数据传输

串口端也是按照透明带标识来组包,这样就成功实现了CAN协议按照透明带标识来收发数据。

查看技术文章和免费咨询技术问题可以访问亿佰特官网及各官方平台:

微信号:cdebyte

今日头条:亿佰特

新浪微博:成都亿佰特

成都亿佰特--物联网应用专家,随时在身边,时刻准备为您服务!

https://www.wjx.cn/jq/84863372.aspx