空燃比分析仪,horiba尾气分析仪,CAN总线分析仪,CAN数据记录仪

广州智维电子科技有限公司

Guangzhou Triv Electronic Technologies Co.LTD

技术服务
SUPPORT

目前位置: 首页 > 技术服务 > 技术资讯

2024-04-26

MACH网关 SENT-ETH数据读取与控制(CAN通讯)

作者:Triv    点击:203


Mach SAE J2716 SENT 网关模块厂家的软件只支持了canlib32.dll,但是网关开放的通讯协议可以让其他CAN卡通过CAN报文顺利地使用它。

配置网关CAN通道

如果使用厂家软件,可以通过Kvaser进行连接,需要注意的是记住配置的连接参数,如CAN连接,需知道通道是CAN还是CANFD,波特率,TXRXID等;亦或者用USB连接,需要知道串口的波特率。

Ethernet连接就简单很多,在浏览器输入设置的IP即可(前提是PC网口需与网关设置IP在同一网段)。

当然本文的重点不是用软件如何使用该工具,使用软件可以快捷的去修改设备EEROM中的CAN通道设置,如果是SENT-CAN型号或者没有Kvaser就只能根据通讯协议用CAN报文修改相关参数了。如果配置CAN后忘记参数,就只能用利用设备上的RESET按键了。



厂家推荐CAN设备(CAN接收报文讲解)

用厂家软件配置好后,通过SENT仿真功能发送SENT,然后断开与软件连接,使用CANKing查看CAN报文(网关不具备终端电阻,如果有错误帧试着并个120Ω电阻),注意四通道SENT-ETH使用CAN接收SENT数据就不能用USB连接PC(通过Vin供电),否则仅有串口数据。

根据通讯协议可知,byte0 = 0x95是网关接收端的数据;byte0 = 0x99是网关发送端的数据(这里收发都使用的SENT-ETH网关模拟)。

byte1 = 0x01代表SENT20x02代表SENT3,也就是SENT3作为发送端,SENT2作为接收端。

byte2 = 0x60中的67-4bit)是数据长度(即6个半字节),0x0代表状态。

当不勾选,即Swap fast data nibbles = 0

60代表status=0DataNibbleCount=6

22CRC=2CRCCalculated=2

注意:Swap fast data nibbles = 0(上图中CANbtye3-5数据由此方法解读)

21(十六进制)代表DATANibble0 = 1DATA1Nibble1 = 2

43(十六进制)代表DATANibble2 = 3DATANibble3 = 4

65(十六进制)代表DATANibble4 = 5DATANibble5 = 6

21 43 65SENT的数据,正确读取顺序为0~5 ==> 1 2 3 4 5 6(从左到右数据字节升高)

当勾选,即Swap fast data nibbles = 1

60代表status=0DataNibbleCount=6

22CRC=2CRCCalculated=2

注意:Swap fast data nibbles = 1

21(十六进制)代表DATANibble0 = 2DATA1Nibble1 = 1

43(十六进制)代表DATANibble2 = 4DATANibble3 = 3

65(十六进制)代表DATANibble4 = 6DATANibble5 = 5

21 43 65SENT的数据,正确读取顺序为0~5 ==> 2 1 4 3 6 5(从左到右数据字节升高)

其他CAN设备(发送CAN报文讲解)

如果使用其他CAN卡,仅能使用通讯协议进行设备控制。这里偷个懒,将非官方推荐的CAN卡并在网关与Kvaser之间监控厂家软件的控制指令。可以看到厂家软件中的各种实现也都是根据通讯协议实现。下面以发送SENT数据的控制报文进行讲解。

由于MessageId占用一个字节,所以发送数据的CAN控制报文中,ID=CANID_RX(可进行配置);byte0 = 0x90

byte1=0x02即控制通道SENT3SENT10x00),若设置的SENT通道CRC不是SW模式就可忽略该参数,其余参数解释同上节。

最后得出

RequestID=0x123Data={0x90 0x02 0x60 0xA1 0x00 0x00 0x00}
RespondID=0x321Data={0x90 0x02}
然后SENT3将持续发送数据,从CAN监控就是

ID=0x321Data={0x99 0x02 0x60 0xA1 0x00 0x00 0x88}

返回列表