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)
blank

相关推荐

  • python中pygame怎么安_Python中pygame安装方法图文详解

    python中pygame怎么安_Python中pygame安装方法图文详解本文实例讲述了Python中pygame安装方法。分享给大家供大家参考,具体如下:这里主要描述一下我们怎样来安装pygame可能很多人像我一样,发现了pygame是个好东东,但是就是不知道怎样使用,或者怎样安装,在百度/google上面搜索了一番后,发现没有一篇详细描述pygame的安装过程的文章。如果你是其中的一员,那么这篇教程可能会帮助到你。当然,在学习pygame的时候,需要你要有一定的py…

  • TIME_WAIT过多的解决办法

    TIME_WAIT过多的解决办法执行主动关闭的那端经历了这个状态,并停留MSL(最长分节生命期)的2倍,即2MSL。TIME_WAIT存在的两个理由:1可靠的实现TCP全双工连接的终止2允许老的重复的分节在网络上的消逝第一个:如果客户端不维持TIME_WAIT状态,那么将响应给服务端一个RST,该分节被服务器解释成一个错误。如果TCP打算执行所有必要的工作以彻底终止某个连接上两个方向的数据流,那么必须正确的处…

  • java读取xml(当xml放在包里时)

    java读取xml(当xml放在包里时)

  • 解决linux下sudo更改文件权限报错xxxis not in the sudoers file. This incident will be reported.

    解决linux下sudo更改文件权限报错xxxis not in the sudoers file. This incident will be reported.本文转自Linux社区作者为z-sm的文章原文链接http://www.linuxidc.com/Linux/2016-07/133066.htmLinux中普通用户用sudo执行命令时报”xxxisnotinthesudoersfile.Thisincidentwillbereported”错误,解决方法就是在/etc/sudoers文件里给该用户添加权限。如下:1.切换到

  • mysql数据库优化总结

    mysql数据库优化总结

    2021年10月15日
  • 什么是404页面,如何正确设置制作404页面

    什么是404页面,如何正确设置制作404页面
    什么是404页面?
      404网页是用户尝试访问网站不存在的网页(由于用户点击了损坏的链接、网页已被删除或用户输入了错误的网址)时看到的页面。之所以称为404网页,是因为针对丢失网页的请求,网络服务器会返回404HTTP状态代码,表明该网页未找到。
    404页面的目的是:告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面而不是关闭窗口离开。
    404对搜索引擎优化seo的影响
      搜索引擎通过HTTP状态码来识别网页的状态。当

发表回复

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

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