一种车载CAN总线的分析装置及方法与流程

文档序号:17556015发布日期:2019-04-30 18:37阅读:286来源:国知局
一种车载CAN总线的分析装置及方法与流程

本发明涉及车载系统研发领域,特别涉及一种车载CAN总线分析装置及方法。



背景技术:

随着车载CAN总线技术的发展成熟,目前已经广泛应用在汽车上。总线的功能越来越多样化,越来越复杂。这对于汽车后装市场想通过应用总线功能提高产品的市场竞争力,无疑是一个巨大的挑战;目前已有一些公司开发了些总线分析工具,如Vector,Intrepidcs已经研发出一些总线工具及上位机软件,它们具有一定的逆向分析总线功能的能力。但它们的硬件、上位软件的购买成本高、软件升级成本高、新旧版本不兼容导致维护困难、操作复杂、功能复杂、不支持自动识别总线类型及适配总线波特率的缺点。



技术实现要素:

本发明的目的是为了克服上述背景技术的缺陷,提供一种车载CAN总线分析装置及方法。

一种车载CAN总线分析方法,包括:

S10. 车载CAN总线类型的识别;

S20. 根据车载CAN总线的类型判断车载CAN总线波特率;

S30. 根据车载CAN总线的类型和波特率对车载CAN总线功能点逆向分析。

进一步的,车载CAN总线类型的识别步骤如下:

S101. 通过模数转换获取预设时间内车载CAN总线电压的极端值;

S102. 根据所述极端值进行车载CAN总线类型的预判断;

S103. 根据预判断结果验证总线类型的信号特征,得出结果。

进一步的,所述步骤S103具体包括如下子步骤:

S1031. 获取并记录第一预设时间段内的车载总线外中断时的系统时间;

S1032. 验证数据有效性,判断是否满足单线CAN信号的信号特征,若是则识别车载CAN总线为单线CAN总线,若否则执行步骤S1033;

S1033. 判断车载CAN总线信号是否满足差分信号标准,若是确认并返回预判断结果,否则提示识别未成功。

进一步的,所述波特率判断步骤包括:

S201. 捕捉并记录车载CAN总线信号的上升沿和下降沿之间的宽度;

S202. 根据所记录的宽度数据分成若干量级的数据集,其中较大量级数据集约为最小量级数据集的整数倍;

S203. 获取最小量级数据集,去除该数据集中的最大值和最小值后计算出该数据集的平均值;

S204. 通过该平均值计算出比特率;

S205. 对该比特率进行验证,若正确则返回该比特率,否则返回捕捉失败。

进一步的,所述步骤S30具体包括如下子步骤:

S301. 屏蔽与待分析数据无关的数据;

S302. 根据操作设备的指令捕捉目标变量;

S303. 记录并保存目标变量。

进一步的,所述步骤S301包括如下子步骤:

S3011. 创建接收数据的储存空间;

S3012. 多次接收具有同一标识符的数据,并进行对比,计算数据中变化的位置;

S3013. 将该数据的变化位置及次数记录到储存空间中;

S3014. 记录第二预设时间段后,根据数据中变化位置及次数形成屏蔽数据表,并在后续接收具有该标识符的信息时忽略屏蔽数据表中的记录的位置变化。

另外,本发明还公开一种车载CAN总线分析装置,包括用于供电的电源模块、CAN收发模块、电路逻辑模块以及处理器模块,所述处理器模块通过所述CAN收发模块与车载CAN总线连接,所述处理器模块包括:

模数转换模块,读取并转换车载CAN总线的电压值;

外中断模块,用于判断车载CAN总线的是否为差分信号;

捕捉模块,用于捕捉脉冲信号的上升沿或下降沿;以及

中央处理器,用于根据上述模块获取的数据进行分析;

所述电路逻辑模块包括用于获取车载CAN总线信号变化时间点的耦合电路;

所述中央处理器通过所述模数转换模块和所述外中断模块进行车载CAN总线类型的识别,通过所述捕捉模块进行波特率的判断,以及通过CAN收发模块对车载CAN总线进行逆向分析。

进一步的,还包括一用于连接外部分析装置的USB模块。

本发明基于汽车总线功能设计特点、总线数据帧结构特点和汽车后装市场的需求特点,设计提供了一种车载总线分析装置和方法,可以实现:

1、总线类型的自动识别;

2、总线波特率判断,并自动适配;

3、提交简单有效的总线功能点分析的方案及操作方法。

具有成本低、易维护、操作简单、能够很好的识别总线类型、自动适配总波特率等特点,有效的降低总线功能点的分析、开发的成本以及提高效率。

附图说明

图1为本发明的车载CAN总线分析装置的系统架构图。

图2为本发明的车载CAN总线分析方法的步骤流程图。

图3为本发明的车载CAN总线类型识别的步骤流程图。

图4为本发明的车载CAN总线的帧格式图。

图5为本发明的车载CAN总线波特率识别的步骤流程图。

图6为本发明的车载CAN总线功能点逆向分析步骤流程图。

具体实施方式

下面将结合附图对本发明的一种车载CAN总线的总线分析方法和装置作进一步的描述。

一种车载CAN总线分析装置,可实现对车载CAN总线类型和波特率的自动识别,同时实现对车载CAN总线进行分析,如图1所示,具体包括用于供电的电源模块1、CAN收发模块2、电路逻辑模块以及处理器模块4。其中处理器模块4通过CAN收发模块2与车载CAN总线连接,同时在获取到车载CAN总线的数据后通过USB模块45连接到外部分析装置,在本实施例中,该外部分析装置为PC端5。与此同时PC端5可以通过USB模块45向分析装置发送各种指令,完成所需数据的获取。

具体的,处理器模块4包括:模数转换模块41、外中断模块42、捕捉模块43以及中央处理器44。其中模数转换模块41用于读取并转换车载CAN总线的电压值;外中断模块42用于判断车载CAN总线的是否为差分信号;捕捉模块43用于捕捉脉冲信号的上升沿或下降沿;而中央处理器44则用于根据上述模块获取的数据进行分析。

另外,电路逻辑模块包括用于获取车载CAN总线信号变化时间点的耦合电路3;

在分析装置工作时,车载CAN总线同时连接到模数转换模块41、CAN收发模块2以及耦合电路3上,另外耦合电路3的输出端还连接到外中断模块42和捕捉模块43。中央处理器44通过模数转换模块41获取车载CAN总线电压范围从而初步判断车载总线类型,并通过外中断模块42判断车载CAN总线信号是否为差分信号,从而识别车载CAN总线的类型。中央处理器44还通过捕捉模块43捕捉最小宽度的脉冲,用于进行波特率的判断,具体为捕捉模块43将捕捉到车载CAN总线信号每次脉冲的变化,从而获得最小宽度的脉冲,再经过计算和得出波特率。而中央处理器44通过CAN收发模块2对车载CAN总线相关数据的变化进行采集,配合PC端5进行逆向分析。

另外,本发明还提供一种基于上述车载CAN总线分析装置的分析方法,如图2所示,包括:

S10. 车载CAN总线类型的识别。目前车载CAN总线分为单线车载CAN总线,高速车载CAN总线以及低速车载CAN总线,而每个类型的总线信号均有其特征,可根据其信号特征识别总线类型。

S20. 根据车载CAN总线的类型判断车载CAN总线波特率。总线波特率是指车载CAN总线通信通路上一秒钟内最大允许的码元数据流的数目,即1秒钟内可以成功传输的比特数,也是逆向分析总线数据的重要一个环节。可通过运用捕捉模块的功能捕捉最小宽度的脉冲,实现总线波特率的正确判断。

S30. 根据车载CAN总线的类型和波特率对车载CAN总线功能点逆向分析。具体为先确认待分析数据的地址,并根据对总线的操作来捕捉操作变化的数据位置,从而配合PC端对变化的数据进行逆向分析。

具体的,车载CAN总线类型的识别如图3所示,步骤如下:

S101. 通常车载CAN总线会包含高位数据线以及低位数据线,为了方便描述,下文称高位数据线为CAN_H,地位数据线为CAN_L,需要注意的是单线CAN总线只有一条CAN_H。通过模数转换获取预设时间内车载CAN总线电压的最大值和最小值,本实施例中以周期1毫秒检测CAN_H和CAN_L上的电压,10秒钟后,处理所检测的电压数据,分别算出CAN_H和CAN_L的最大电压和最小电压;

S102. 根据获得的极端值进行车载CAN总线类型的预判断,由于不同类型总线的电压极端值都会有区别,具体如下:

S103. 在判断了根据预判断结果验证总线类型的信号特征,得出结果,具体包括如下子步骤:

S1031. 获取并按序记录第一预设时间段内,CAN_H和CAN_L外中断时的系统时间。本实施例的第一预设时间段为1秒钟。

S1032. 首先验证数据有效性,本实施例的依据是采集的被记录的系统时间个数是否超过100个。判断是否满足单线CAN信号的信号特征,由于单线CAN总线没有CAN_L,因此其并没有CAN_L的信号,若是则识别车载CAN总线为单线CAN总线,若否则执行步骤S1033;

S1033. 判断车载CAN总线信号是否满足差分信号标准,即判断获取的系统时间中,所有处于同一时序的CAN_H减去CAN_L所得差值是否大致相同,若是确认其满足差分信号标准,并返回预判断结果,否则提示识别未成功。

而波特率判断方面,车载CAN总线的帧格式如图4所示,包括帧起始、仲裁场、控制场、数据场、CRC序列、应答场和帧结束共七大部分。其中应答场为1比特宽度的脉冲,也即是总线帧格式中,宽度最小的脉冲。只要准确获取得总线上这个脉冲宽度,就可以判断总线的波特率。具体步骤如图5所示,包括:

S201. 捕捉并记录车载CAN总线信号的上升沿和下降沿之间的宽度;

S202. 在S201步骤所获得的宽度包括了上述七大部分帧格式的宽度,虽然其宽度不一致,但是宽度都大致为最小宽度的整数倍,因此可以将所记录的宽度数据分成多个量级的数据集;

S203. 获取最小量级数据集,去除该数据集中的最大值和最小值后计算出该数据集的平均值tbit;

S204. 根据公式bps = 1/tbit(1比特脉冲宽度),将平均值tbit代入计算出比特率;

S205. 对该比特率进行验证,即通过是否正常接收到总线数据来判断波特判断是否正确,若正确则返回该比特率,否则返回捕捉失败。

对于总线功能点逆向分析方面,通常对于车载CAN总线信号而言,每个功能点都会包含至少一个具有固定标识符的数据,因此我们分别在对不同功能点进行逆向分析通过该标识符来对待分析功能点数据进行监控。如图6所示,步骤S30具体包括如下子步骤:

S301. 屏蔽与待分析数据无关的数据,为了避免无关变量的影响,首先不对系统进行操作,同时监控此时还在变化的数据,然后对变化的数据进行屏蔽,具体步骤如下:

S3011. 创建接收数据的储存空间;

S3012. 多次接收具有同一标识符的数据,并进行对比,计算数据中变化的位置;

S3013. 将该数据的变化位置及次数记录到储存空间中;

S3014. 记录第二预设时间段后,根据数据中变化位置及次数形成屏蔽数据表,即在该预设时间段内有变化次数超过两次的位置,则将其记录入屏蔽数据表当中,并在后续接收信息中忽略屏蔽数据表中的数据变化。本实施例中,第二预设时间段为10秒钟。

S302.根据操作设备的指令捕捉目标变量,首先接收到总线数据后判断是否出现之前没有接收到的数据,即判断是否出现新的标识符。若有则将该总线数据保存并标记,若无则将该地址数据与之前接收的数据进行对比,标记并保存不处于屏蔽数据表中的数据位置。

S303. 最后将所有被标记的数据进行打包并保存,并开始分析下一个功能点。

上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1