SENT协议译码的深入探讨

SENT协议译码的深入探讨作者:Ben在工作期间,我有机会仔细地研究现代车辆上的一些最新传感器技术。虽然这些特殊的传感器已经存在一段时间了,但是SENT技术越来越多地出现在车辆中。在汽车论坛中,我发现有关使用这些传感器的问题和讨论有所增加。这些现象促使我去研究如何利用虹科Pico示波器从这些传感器中获得尽可能多的信息。我不会在SENT协议上花费太多时间,因为网络上有很多关于该协议如何工作的资料。但是,我会简单介绍一下这个网络。SENT代表单边半字节传输,并遵循J2716标准。它是低成本且单向的(仅一个方向),这意味着传

大家好,又见面了,我是你们的朋友全栈君。

作者:Ben

在工作期间,我有机会仔细地研究现代车辆上的一些最新传感器技术。虽然这些特殊的传感器已经存在一段时间了, 但是SENT技术越来越多地出现在车辆中。在汽车论坛中,我发现有关使用这些传感器的问题和讨论有所增加。这些现象促使我去研究如何利用虹科Pico示波器从这些传感器中获得尽可能多的信息。

我不会在SENT协议上花费太多时间,因为网络上有很多关于该协议如何工作的资料。但是,我会简单介绍一下这个网络。

SENT代表单边半字节传输,并遵循J2716标准。它是低成本且单向的(仅一个方向),这意味着传感器只能发送数据。SENT传感器与其他传感器的不同之处在于,可以通过一根导线“发送”多个数据。例如,一个SENT传感器可以使用一根导线同时发送压力和温度测量值。这使其成本低廉,并减少了布线需求,而这正是制造商一直想要做的。这意味着您很可能会看到MAF传感器只有三根线,当需要测量时,会有一个5V电源线,一个GND和一个信号线。

如上所述,SENT可以传输多个数据,它可以通过从FAST消息中取出的“半字节”创建SLOW消息来实现此目的。要建立一条SLOW消息,它需要多条FAST消息。这里重要的一点是,可以使用PicoScope 6 Automotive软件中的串行译码功能对这两个消息进行译码。

那么,SENT数据包是什么样子的呢?

SENT协议译码的深入探讨
图1

如图1所示,SENT数据包很容易被误认为是一个脉宽调制信号(PWM),这是因为它的电压为0-5V,工作周期在不断变化。在本文中您可能还注意到,SENT似乎还存在反转信号。这不是故意的,这只是发送协议的另一个特征,信号的极性可以改变,但数据保持不变。

SENT协议译码的深入探讨
图2

我将介绍如何设置译码器的参数,但是为了让大家都能看到SLOW信号是如何构成的,我已经在提前设置好了译码器。由图2可见,组成一个SLOW消息需要几个FAST数据包。请注意这一点,因为SLOW消息包含与传感器相关非常有用的信息。但是请注意,为了确保您采集到所有数据,通常需要花足够长的时间捕获信号波形如果我们继续使用上面的波形,最实际的做法是先从SLOW译码器开始。

SENT协议译码的深入探讨
图3

单击工具>串行译码>创建> SENT Slow

我建议您首先从SLOW消息开始的原因是,通常您可以在此数据中找到有关传感器的信息,这是设置SENT Fast译码器所必需的,比如传感器的类型。为了完成译码,软件将根据所选通道自动设置阈值和滞后量。您会注意到该信号并不是“完美的”信号,存在一些干扰。您可以使用通道选项中的低通滤波器来“清除”干扰信号我发现300 kHz的过滤效果很好。您也可以自定义设置电压阈值以及滞后量,下面的设置是在低通滤波器被激活后完成的,可以将电压阈值设置为3 V,滞后最小设置为40mv(图4)。完成后,单击“确定”并确保在再次单击“确定”之前勾选中译码器(图5)。在波形的底部将生成一些可读的数据。不幸的是,我们仍然缺少一些其他传感器信息。如果在屏幕上捕获更多的时间,我们就可以获得有关传感器的更多信息,这也意味着我们可以更准确地创建SENT Fast译码器。

SENT协议译码的深入探讨
图4
SENT协议译码的深入探讨
图5

我们本可以继续进行此捕获并猜测传感器的类型,但是需要更长的捕获时间才能将其与其他信息一起译码。如图6所示,我对捕获到的波形应用了Slow译码器,该传感器是EGR冷却器中的压力传感器,捕获发动机启动时快速WOT测试的信号。

SENT协议译码的深入探讨
图6

数据包越多,我们就越有机会找到在SLOW信号中传输的一些其他信息。图6中第8个数据包是我们感兴趣的数据包,如您所见,它为我们提供了有关传感器类型的信息。在设置FAST译码器时,有一点很重要,我们可以看到在传感器类型中可以选择压力/安全传感器(图8)。但是其他数据也同样重要,尤其是制造商代码(图7)。消息ID可用于确定是哪个制造商制造的传感器,可以在Internet上进行快速搜索,下面列出了我到目前为止发现的,仅供参考:

SENT协议译码的深入探讨
图7

让我们回到PicoScope 6软件,图8中A通道蓝色波形是在油轨高压传感器信号线测得的,该传感器通过SENT向ECU发送信号。在串行译码中,我们从列表中选择SENT FAST,然后配置参数(图8)。

SENT协议译码的深入探讨
图8

您会发现知道传感器类型对我们很重要,可以从列表中选择特定的传感器类型(图8),在这里我们从较早时就知道它是压力/安全传感器。对于这个我不做过多介绍,因为这不是本文的目的,重要的是数据字段的格式会根据传感器类型而变化。PicoScope允许您从标准J2716列表中选择所需的格式类型。

SENT协议译码的深入探讨
图9

如图9所示,译码表中同时包含 Slow data和 Fast data。要在两者之间切换,请单击屏幕底部每个表的选项卡,其中显示了SENT Slow和SENT Fast的标签。为了更好地了解传感器的功能,下一步是使用PicoScope中的导出功能。 在译码表中,确保已选中“SENT Fast ”选项卡,并且仅查看当前缓冲区的译码数据,然后单击“导出”(图10)。然后将文件保存在易于查找的位置,找到已保存的文件,并在Excel中打开它。

SENT协议译码的深入探讨
图10

图11导出的是EGR冷却器中的压力传感器SENT Fast译码后的数据,您将看到PicoScope的译码表,但仍需进一步处理数据。

SENT协议译码的深入探讨
图11

这么多的数据看起来有点复杂,但是我们将以熟悉的方式做一些非常简单的操作来可视化传感器的工作情况。SENT消息的数据包会根据传感器的类型进行拆分,分别标记为通道1和通道2。图12是一个示例,对此进行了更详细的说明。   

SENT协议译码的深入探讨
图12

 在PicoScope中应用SENT Fast串行译码器时,会告诉软件如何分割数据。在图12中,将数据字段进行了常见的偶数拆分,拆分为通道1的12位和通道2的12位。我们知道在PicoScope中查看的传感器类型是压力/安全传感器。根据J2716标准,可知通道1上存储的是压力数据。返回Excel工作表时,我们可以通过创建图表来可视化数据,选择通道ch1列D(图13)。

SENT协议译码的深入探讨
图13

选择数据后,单击“插入”并找到“折线图”选项,如图14和图15。

SENT协议译码的深入探讨
图14
SENT协议译码的深入探讨
图15

现在我们有了从SENT传感器捕获的数据的图形化图像。我们可以放大图形,选择数据源并修改范围能够将图形集中在我们想重点分析的数据区域上。在图16和图17中,我选择查看D5625和D12140之间的数据。

SENT协议译码的深入探讨
图16
SENT协议译码的深入探讨
图17

在图18中,我将数据范围修改为D5625和D6625之间,图像有点类似于排气脉动波形。

SENT协议译码的深入探讨
图18

图19是对MAF传感器SENT Fast译码后的数据做了相同的处理,MAF这个SENT传感器发送气流和温度信号。我使用PicoScope捕获了数据,将其译码并导出。然后,我根据通道1上的数据创建了一个图表。在WOT快速测试之前,我还在发动机怠速时进行了类似的测试。

SENT协议译码的深入探讨
图19

图20是我们通过修改范围得到的曲线图。

SENT协议译码的深入探讨
图20

但是到目前为止,我遇到了一个小问题。我无法正确解释通道1或2的值,并将其转换为我们可以关联的度量单位,比如压力单位和温度单位。传感器转换数据的方式和SENT Slow消息中的特征相关,我还没有成功地关联测量值。话虽如此,但我觉得这是一种以前所未有的方法,可以帮我们可视化传感器信号。对于排气压力传感器和MAF传感器,我发现最好把时基设置为1s/div至2s/div之间以进行长时间捕获,同时保持较高的采样率(目标是10MS),以确保可以正确译码。否则译码后会出现一个黄色警告三角形,提示“采样率可能太低”,除此之外,在译码方面还没有任何其他问题。您可以通过添加一个触发器来避免数据丢失,但是您必须准备好执行快速测试,我们也将继续研究触发器的功能,因为这是我在捕获时遇到的一个比较棘手的问题。

希望本文中的内容对您有所帮助,并请您提供任何相关的建议,如果我后续有其他想法,会继续进行更新。

本文的灵感来自有关论坛上的一个案例研究,链接如下:例研究:大众V8 高压燃油传感器未接地(SENT信号)

本文用到的一些文件分享给大家,欢迎点击这里下载学习!

更多修车案例、教学视频请关注官微

SENT协议译码的深入探讨

 

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149180.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • spring beanutils.copyproperties_bean property

    spring beanutils.copyproperties_bean property背景最近项目中在和第三方进行联调一个接口,我们这边发送http请求给对方,然后接收对方的回应,代码都是老代码。根据注释,对方的SDK中写好的Request类有一个无法序列化的bug,所以这边重新写了一个Request类,基本属性都是相同的,但是重点是有一个属性是静态内部类,还有两个是list属性,类似于下面这样:privateListorders;privateAddRequest.Tick…

  • name ‘reload‘ is not defined解决方法

    name ‘reload‘ is not defined解决方法一段python2.7的代码,里面有如下代码:reload(sys)sys.setdefaultencoding("utf-8")重新加载sys模块,并设置默认编码utf-8在Python3.x中运行提示:name‘reload’isnotdefinedpython3.x下应该改为如下方式:importimportlibimportlib.reload(sys)最后一句sys.set…

    2022年10月22日
  • 通过和resnet18和resnet50理解PyTorch的ResNet模块

    通过和resnet18和resnet50理解PyTorch的ResNet模块文章目录模型介绍resnet18模型流程总结resnet50总结resnet和resnext的框架基本相同的,这里先学习下resnet的构建,感觉高度模块化,很方便。本文算是对PyTorch源码解读之torchvision.modelsResNet代码的详细理解,另外,强烈推荐这位大神的PyTorch的教程!模型介绍resnet的模型可以直接通过torchvision导入,可以通过pretr…

  • 简述struts2拦截器的作用_springmvc登录拦截器

    简述struts2拦截器的作用_springmvc登录拦截器转自:http://developer.51cto.com/art/200906/126894.htm对struts2的连接器的解释还是挺不错的,分享一下:一、理解Struts2拦截器1.Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现.2.拦截器栈(Int

  • VB学习的总体总结一

    VB学习的总体总结一经过对VB20天左右的学习,对其有了一定的了解。我觉得VB这种工具就是通过程序设计,做出软件。那么,可不可以用这种思想理解,VB的程序设计是怎么一步步进行的,给了我们一天主线。而在每一步中我们需要掌握什么,需要注意什么,思考怎么把每一步做的更好。然后就可以享受成果。 我对VB的整体总结为   VB工具就是一颗种子,设计步骤就是树干,步骤中的细节就是树叶,关键在于我们怎么让其枝繁

  • A4988驱动步进电机「建议收藏」

    A4988驱动步进电机「建议收藏」A4988一般用arduino来驱动,我是用STM32F103驱动的。首先推一个网页,https://www.pololu.com/product/1182,上面有比较详细和专业的说明,还有一个关于限制电流使细分更精确的视频讲解,总之,专业。然后推一个datasheet,https://www.pololu.com/file/0J450/a4988_DMOS_microstepping_driver

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号