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

2024-04-29 17:52

本文主要是介绍MACH网关 SENT-ETH数据读取与控制(CAN通讯协议网关),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

配置网关CAN通道
如果使用厂家软件,可以通过Kvaser进行连接,需要注意的是记住配置的连接参数,如CAN连接,需知道通道是CAN还是CANFD,波特率,TX和RXID等;亦或者用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代表SENT2,0x02代表SENT3,也就是SENT3作为发送端,SENT2作为接收端。

byte2 = 0x60中的6(7-4bit)是数据长度(即6个半字节),0x0代表状态。
在这里插入图片描述

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

在这里插入图片描述

60代表status=0,DataNibbleCount=6

22为CRC=2,CRCCalculated=2

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

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

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

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

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

当勾选,即Swap fast data nibbles = 1时
在这里插入图片描述

60代表status=0,DataNibbleCount=6

22为CRC=2,CRCCalculated=2

注意:Swap fast data nibbles = 1,

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

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

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

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

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

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

在这里插入图片描述

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

在这里插入图片描述

byte1=0x02即控制通道SENT3(SENT1为0x00),若设置的SENT通道CRC不是SW模式就可忽略该参数,其余参数解释同上节。
详询段工:13824417328

最后得出

Request:ID=0x123,Data={0x90 0x02 0x60 0xA1 0x00 0x00 0x00}
Respond:ID=0x321,Data={0x90 0x02}
然后SENT3将持续发送数据,从CAN监控就是
ID=0x321,Data={0x99 0x02 0x60 0xA1 0x00 0x00 0x88}
详询段工:13824417328

这篇关于MACH网关 SENT-ETH数据读取与控制(CAN通讯协议网关)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/946752

相关文章

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Spring Boot 整合 SSE的高级实践(Server-Sent Events)

《SpringBoot整合SSE的高级实践(Server-SentEvents)》SSE(Server-SentEvents)是一种基于HTTP协议的单向通信机制,允许服务器向浏览器持续发送实... 目录1、简述2、Spring Boot 中的SSE实现2.1 添加依赖2.2 实现后端接口2.3 配置超时时

Spring Boot读取配置文件的五种方式小结

《SpringBoot读取配置文件的五种方式小结》SpringBoot提供了灵活多样的方式来读取配置文件,这篇文章为大家介绍了5种常见的读取方式,文中的示例代码简洁易懂,大家可以根据自己的需要进... 目录1. 配置文件位置与加载顺序2. 读取配置文件的方式汇总方式一:使用 @Value 注解读取配置方式二

Spring 请求之传递 JSON 数据的操作方法

《Spring请求之传递JSON数据的操作方法》JSON就是一种数据格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,因此JSON本质是字符串,主要负责在不同的语言中数据传递和交换,这... 目录jsON 概念JSON 语法JSON 的语法JSON 的两种结构JSON 字符串和 Java 对象互转

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类