首页 > 编程知识 正文

labview数据采集与存储,labview应用实例

时间:2023-05-03 07:39:56 阅读:9995 作者:3773

SENT协议多用于车载行程传感器,但具体协议规范在此不再赘述,陌生人可以查看别人的帖子。 本节介绍如何使用LabVIEW和NI硬件收集和分析SENT协议。

硬件采集方案

SENT协议的分析的物理本质是测量连续的lqdll信号的周期。

目前市场上常用的硬件方案有三种。

NI FPGA直接处理数字信号

NI AI收集并解码数字波形

NI CI用计数器测量脉冲周期并解码

这三种方案都可以进行SENT协议的硬件采集,本人强烈推荐使用CI方案。 理由如下。

1、FPGA虽然灵活,但太贵了。

2、AI采集要求AI采样率至少达到1MHz,且降低误码率要求采样率更高。 价格和CPU的处理效率都没有好处。

3、CI解决方案价格低廉,抗干扰能力差,但采用补偿译码算法将误码率降至0%。 这个“补偿解码算法”是本文的重点。

硬件选型

因为CI操作模式需要“CI脉冲时钟滴答”模式,所以不是所有NI采集卡的CI资源都支持该模式。

本人使用的机型是PCIe-6361,据我所知,倪多功能采集卡中的所有x系列卡都应该支持该模式。

SENT解码干扰

SENT信号的时间轴一般为3us,这样的频率的信号频率相对较高。 CI是数字信号,如果你的电压值满足其高低电平的阈值范围,就会触发其逻辑。 这种敏感性导致通信信号上的一些高频干扰错误地诱发CI的测量。

下图为实测的SENT数据组。 可知用圆圈包围的部分是高频干扰引起的误动作。

针对这种误动作,我列举几个错误的应对方法。 (都是我走过的弯路) ) ) )。

1、过滤

这个方案是不可能的。 由于SENT协议是在lqdll周期中表示数据的协议,滤波电路导致lqdll的上升沿发生变化,影响lqdll周期的测量,增大误码率。

2、使用NI CI拥有的数字滤波器的硬件功能实现

NI的CI资源具有数字滤波功能,可以在硬件上忽略小于设定时间的脉冲。 这个功能理论上可以解决这个问题,但是没有研究这个是怎么使用的。 也不知道是单纯地去除了小脉冲,还是对大脉冲补偿了小脉冲,如果是前者的话,会成为错误代码。

3、不处理,清除在CRC检查中检查失败的数据。

这种方式会带来很高的错误率。 由于SENT协议的CRC检查只有4位,因此即使数据错误,CRC检查也有可能通过。

4、直接删除这些高/低滴答明显较小的数据

不,因为这些数据也是有效数据周期的一部分,所以去除他们会影响SENT的周期测量。

解码算法

正确的方法是将这些高/低滴答数据明显较小的数据补偿到上一帧或下一帧。 下图是经过补偿算法分析的数据。 此数据后面的三个Nibble是累加器,表明所有数据都是连续的,并且没有错误代码。

另外,请注意,SENT协议的每帧第一个脉冲用于同步,固定56个时基。 这个时基理论上是3美元,但实际上上下变动。 为了实现100%的解码率,必须基于每帧的这56分钟获得实际时间,并且使用该时间分析后续数据。 不能使用常数。

经本人实测,该方法可达到100%的解密成功率。

程序层面

硬件初始化部分:

数据读取部分:

解码函数

解码函数很复杂,直接贴VI吧。 LabVIEW2020版本的。

SENT协议解码函数

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。