前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NVH原始数据文件如何读取 Part3

NVH原始数据文件如何读取 Part3

作者头像
用户7573907
发布2020-07-21 11:29:59
9261
发布2020-07-21 11:29:59
举报

“前两篇文章介绍了NVH数采系统记录的原始文件如何读取,其内容是针对传感器采集到的振动或声音信号。在测试过程中,还有一种信号形式也会被记录下来,即CAN信号。本篇将简单介绍CAN信号的读取方法。”

00

前言

在NVH测试中,为了计算阶次,发动机或电机的转速一般都要和振动或声音信号同步记录下来。

发动机的转速,可以通过激光测速传感器来记录和计算,见之前的文章《基于传感器信号的转速计算》,但电机的转速一般不太容易用此方法。

所以用CAN来采集发动机或电机的转速和负荷等信息,是最经济省力的方法。

目前主流的NVH数采系统记录CAN信号时,有两种方法:

1)先导入dbc文件,直接提取关注的信号。

2)没有dbc文件,记录所有CAN数据,待有dbc文件后,再提取关注信号。

本篇,我们介绍第二种形式。

01

CAN报文

NVH测试中,含有转速或负荷的CAN报文一般是8个字节(64位)。习惯用十六进制呈现(二进制 bin;十进制 dec;十六进制 hex)。

图1,是一种习惯性写法。灰色背景代表bit序列从0~63,代表64位(即8个字节),红色代表二进制数据。

图1

下面将详细介绍如何在这64位CAN报文中提取所需要的信号数据。

02

dbc文件

在从CAN报文中提取需要的信号数据之前,首先要了解dbc文件。

dbc文件内容包括:CAN报文中,信号位置、信号读取方式、信号发送周期等信息。

本文不对dbc文件作详细解读,仅对NVH测试中需要的信号进行有针对性的解读。

图2中实线框内是dbc文件的部分内容,虚线框内是对相应内容的解释。

图2

图3中展示了dbc文件中定义的信号发送周期,实线框内是dbc文件的部分内容,虚线框内是对相应内容的解释。

图3

图2中有个很重要的信息:CAN报文中信号是Intel格式还是Motorola格式,下面将对这两种格式作详细举例说明。

03

Intel格式

先把CAN报文习惯性的写成报文矩阵形式。

Intel格式:从起始位开始,从右往左,从上往下数,最终将这些数据按逆序排列读取。如图4。

图4

图5用另一种方式来更直观地展示数据流。

图5

04

Motorola格式

先把CAN报文习惯性的写成报文矩阵形式。

Motorola格式:从起始位开始,从左往右,从上往下数,最终将这些数据按正序排列读取。如图6。

图6

图7用另一种方式来更直观地展示数据流。

图7

05

CAN报文定位

了解Intel和Motorola格式后,还需要正确定位CAN报文在整个文件中的位置。

需要说明的是:由于作者并不清楚CAN信息文件中各字节的数据定义,下面对CAN报文定位的举例,仅是针对某一测试结果规律总结,仅供参考。

图8是按照十六进制来读取原始CAN文件信号,CAN报文位置及信号位置定位过程如下:

1)搜索定位10 FF FF FF FF FF FF FF FF FF 01来找到CAN报文的位置及报文ID的位置。

2)对报文ID进行转换(移位转换,见图8左侧)。

3)报文ID同dbc中定义报文ID相同,则其后面的8位CAN报文即是要找的信号报文(见图1,图4中内容),如图8右侧,黄底红字部分。

图8

06

总结

从单独记录的CAN信息文件中提取关注的信号,总结步骤如下:

1)解读dbc文件,了解要提取信号的报文ID。

2)逐字节读取CAN信息文件,用十六进制显示。结合报文ID,在原始CAN信号文件中找到要提取信号的CAN报文位置。

3)结合dbc文件中Intel或Motorola格式对CAN报文内信号的位置及处理方式的定义,从 2)中已提取的CAN报文中再次提取所需信号。

4)结合dbc文件中定义的信号发送周期,可以得到时间轴,从而画出信号。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信号分析应用及算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档