掌桥专利:专业的专利平台
掌桥专利
首页

总线波特率获取方法、装置、诊断设备、系统及介质

文献发布时间:2024-04-18 20:01:23


总线波特率获取方法、装置、诊断设备、系统及介质

技术领域

本申请涉及车辆诊断技术领域,特别涉及一种总线波特率获取方法、装置、诊断设备、系统及介质。

背景技术

车辆诊断设备对CAN(即Controller Area Network,控制局域网络)总线设备(即车辆ECU(即Electronic Control Unit,电子控制单元))诊断前,需要先知道其总线波特率,不同车辆厂商可能会使用不同CAN总线通讯引脚与不同的波特率,并且需要诊断设备自动获取CAN总线波特率,但同类产品会干扰CAN总线,导致总线波特率识别失败,甚至造成车辆故障,如何在获取CAN总线波特率时,降低对CAN总线的干扰,避免总线波特率识别失败以及造成车辆故障,是目前亟待解决的问题。

发明内容

有鉴于此,本申请的目的在于提供一种总线波特率获取方法、装置、诊断设备、系统及介质,能够在获取CAN总线波特率时,降低对CAN总线的干扰,从而避免总线波特率获取失败以及造成车辆故障的问题。其具体方案如下:

第一方面,本申请公开了一种总线波特率获取方法,应用于诊断设备,包括:

将CAN控制器设置为静默模式;其中,所述静默模式为在监听到CAN报文后不向CAN总线应答的模式;

从波特率集中选取波特率以得到目标波特率;

将所述CAN控制器的波特率设置为所述目标波特率;

当在预设超时间内未接收到CAN报文,则向所述CAN总线发送一次CAN报文,若CAN报文发送成功,则将所述目标波特率确定为所述CAN总线的波特率。

可选的,还包括:

当在所述预设超时间内接收到CAN报文,则将所述目标波特率确定为所述CAN总线的波特率。

可选的,还包括:

若CAN报文发送失败,则从所述波特率集中选取新的波特率以得到新的目标波特率,并将所述CAN控制器的波特率设置为新的目标波特率。

可选的,在将所述CAN控制器的波特率设置为所述目标波特率之前,还包括:

将CAN报文过滤器配置为全通过模式;其中,所述全通过模式为接收所述CAN总线所有报文的模式。

可选的,所述向CAN总线发送一次CAN报文,包括:

将CAN报文的报文标识设置为最低优先级,向CAN总线发送一次该CAN报文。

可选的,在所述将CAN控制器设置为静默模式之前,还包括:

接收诊断平台下发的波特率获取指令;

基于所述波特率获取指令接通CAN高位线以及CAN低位线对应的引脚,并在两个引脚之间配置终端电阻。

第二方面,本申请公开了一种总线波特率获取装置,应用于诊断设备,包括:

模式设置模块,用于将CAN控制器设置为静默模式;其中,所述静默模式为在监听到CAN报文后不向CAN总线应答的模式;

波特率选取模块,用于从波特率集中选取波特率以得到目标波特率;

波特率设置模块,用于将所述CAN控制器的波特率设置为所述目标波特率;

报文发送模块,用于当在预设超时间内未接收到所述CAN报文,则向CAN总线发送一次CAN报文,若CAN报文发送成功,则将所述目标波特率确定为所述CAN总线的波特率。

第三方面,本申请公开了一种诊断设备,包括存储器和处理器,其中:

所述存储器,用于保存计算机程序;

所述处理器,用于执行所述计算机程序,以实现前述的总线波特率获取方法。

第四方面,本申请公开了一种诊断系统,包括诊断设备以及诊断平台,所述诊断平台用于向所述诊断设备下发波特率获取指令,以使所述诊断设备实现前述的总线波特率获取方法。

第五方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述的总线波特率获取方法。

可见,本申请先将CAN控制器设置为静默模式,所述静默模式为在监听到CAN报文后不向CAN总线应答的模式,之后从波特率集中选取波特率以得到目标波特率,将所述CAN控制器的波特率设置为所述目标波特率,当在预设超时间内未接收到CAN报文,则向所述CAN总线发送一次CAN报文,若CAN报文发送成功,则将所述目标波特率确定为所述CAN总线的波特率。也即,本申请中先将CAN控制器设置为静默模式,并将CAN控制器的波特率设置为从波特率集中选取的目标波特率进行被动探测,不应答CAN总线,如果没有被动探测到总线波特率,再进行主动探测,并发送一次该目标波特率的报文,不进行重传,这样,能够在获取CAN总线波特率时,降低对CAN总线的干扰,从而避免总线波特率获取失败以及造成车辆故障的问题。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例公开的一种总线波特率获取方法流程图;

图2为本申请实施例公开的一种具体的总线波特率获取方法流程图;

图3为本申请实施例公开的一种总线波特率获取装置结构示意图;

图4为本申请实施例公开的一种诊断设备结构图;

图5为本申请实施例公开的一种诊断系统示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

随着社会的进步,汽车的普及,对于汽车维修保养的服务需求也呈现出高速增长。对车辆诊断设备要求也越来越高,车辆诊断设备对CAN总线设备诊断前,需要先知道其总线波特率,不同车辆厂商可能会使用不同CAN总线通讯引脚与不同的波特率,并且需要诊断设备自动获取CAN总线波特率,但同类产品会干扰CAN总线,导致总线波特率识别失败,甚至造成车辆故障,如何在获取CAN总线波特率时,降低对CAN总线的干扰,避免总线波特率识别失败以及造成车辆故障,是目前亟待解决的问题。为此,本申请提供了一种总线波特率获取方法,能够在获取CAN总线波特率时,降低对CAN总线的干扰,从而避免总线波特率获取失败以及造成车辆故障的问题。

参见图1所示,本申请实施例公开了一种总线波特率获取方法,应用于诊断设备,包括:

步骤S11:将CAN控制器设置为静默模式;其中,所述静默模式为在监听到CAN报文后不向CAN总线应答的模式。

本申请实施例中,可以接收诊断平台下发的波特率获取指令;基于所述波特率获取指令接通CAN高位线以及CAN低位线对应的引脚,并在两个引脚之间配置终端电阻。

并且,本申请实施例在接收诊断平台下发的波特率获取指令之后,还接通CAN控制器的电源。需要指出的是,CAN总线为差分两线通讯,本申请实施例中,所述波特率获取指令中携带待接通的CAN高位线以及CAN低位线的引脚信息,可以基于该引脚信息接通CAN高位线以及CAN低位线对应的引脚,以便在指定CAN引脚上自动获取波特率,并且配置CAN总线终端电阻等参数,终端电阻作用包括:提高CAN总线抗干扰能力、确保总线快速进入隐性状态、以及提高信号质量,放置在总线的两端,让反射能量降低。可以理解的是,用户可以通过诊断平台向诊断设备下发波特率获取指令。

可以理解的是,本申请实例将CAN控制器设置为静默模式,监听CAN报文,但不应答CAN总线,能够降低对CAN总线干扰。而现有的CAN终端设备收到CAN报文后通常会自动应答ACK(即Acknowledge,确认)。

进一步的,将CAN报文过滤器配置为全通过模式;其中,所述全通过模式为接收所述CAN总线所有报文的模式。

步骤S12:从波特率集中选取波特率以得到目标波特率。

其中,波特率集中包含所有可能使用的波特率,本申请实施例可以将波特率集设置在波特率表中,对于CAN2.0协议,可以从波特率集中选取一个波特率以得到目标波特率,对于CANFd(即CAN with Flexible Data rate,具有灵活数据速率的CAN)协议,可以从波特率集中选取两个波特率以得到目标波特率。需要指出的是,CAN2.0协议的CAN报文只有一个波特率:即CANId(即Can报文标识部分,标准Id:11bits,扩展Id:29bits)与CANData(即Can报文数据部分,CAN2.0:0~8bytes,CanFd:0~64bytes)波特率相同,而CANFd有两个波特率:CANId与CANData比特率可以不同。因此,本身实施例可以兼容不同的CAN协议,对于CAN2.0协议,每次选取一个波特率进行CAN报文监听,对于CANFd协议,每次选取两个波特率,进行CAN报文监听。

步骤S13:将所述CAN控制器的波特率设置为所述目标波特率。

也即,本申请实施例从波特率集中选取波特率进行CAN控制器的波特率设置,以进行CAN报文监听。本申请实施例中,当在所述预设超时间内接收到CAN报文,则将所述目标波特率确定为所述CAN总线的波特率。并且,将该波特率上报给诊断平台。比如,超时时间为100ms。

步骤S14:当在预设超时间内未接收到CAN报文,则向所述CAN总线发送一次CAN报文,若CAN报文发送成功,则将所述目标波特率确定为所述CAN总线的波特率。

本申请实施例中,可以将CAN报文的报文标识设置为最低优先级,向CAN总线发送一次该CAN报文。并且,该CAN报文的数据部分长度为1个字节。也即,本申请实施例取消了报文重传,当在预设超时间内未接收到CAN报文,则向所述CAN总线发送一次CAN报文,不进行报文重传。为使不干扰CAN总线,将报文优先级设置为最低,具体可以为0X7FF,并且数据长度为1,一帧报文所占用总线时间最短,若发送成功后回复当前波特率到诊断平台,若CAN报文发送失败,则从所述波特率集中选取新的波特率以得到新的目标波特率,并将所述CAN控制器的波特率设置为新的目标波特率。进一步的,本申请实施例中,当遍历完波特率集中所有的波特率依然没有接收到CAN报文以及成功发送出CAN报文,则上报诊断平台,总线波特率获取失败。

需要指出的是,因为CAN总线是抢占式总线,总线上存在多个终端,终端设备同时发送报文容易造成发送失败,现有技术中,CAN终端设备通常配置成自动重传模式即:发送失败重发,例如:最大重发100次,本申请实施例向CAN总线发送报文时,取消自动重传模式。

可见,本申请实施例先将CAN控制器设置为静默模式,所述静默模式为在监听到CAN报文后不向CAN总线应答的模式,之后从波特率集中选取波特率以得到目标波特率,将所述CAN控制器的波特率设置为所述目标波特率,当在预设超时间内未接收到CAN报文,则向所述CAN总线发送一次CAN报文,若CAN报文发送成功,则将所述目标波特率确定为所述CAN总线的波特率。也即,本申请实施例中先将CAN控制器设置为静默模式,并将CAN控制器的波特率设置为从波特率集中选取的目标波特率进行被动探测,不应答CAN总线,如果没有被动探测到总线波特率,再进行主动探测,并发送一次该目标波特率的报文,不进行重传,这样,能够在获取CAN总线波特率时,降低对CAN总线的干扰,从而避免总线波特率获取失败以及造成车辆故障的问题。

进一步的,参见图2所示,图2为本申请实施例公开的一种具体的总线波特率获取方法流程图。在汽车诊断中,有些ECU的CAN总线的引脚与波特率未知,需要根据OBD(即OnBoard Diagnostics,车载自动诊断系统)引脚(CAN高/CAN低)识别CAN总线信号,又不能对总线产生干扰,本申请实施例提供的总线波特率获取方法具体可以包括以下步骤:

一、接收诊断平台下发的指令:在指定CAN总线引脚(CAN高/CAN低)上自动获取CAN总线波特率,诊断设备软件启动一个线程,在线程中完成自动获取波特率。

二、接通硬件,包括:CAN控制器电源,并根据用户指令中的CAN高/CAN低接通引脚,并配置CAN总线终端电阻等参数。

三、诊断设备初始化CAN控制器:配置CAN控制器为接收的静默模式,监听can报文,不应答ACK应答信号。取消自动重传,CAN总线是抢占式总线,一般汽车CAN总线上会有很多杂报文,需要在发送失败情况下自动重传,本申请实例是先静默接收。配置CAN报文过滤器为全通过,接收CAN总线所有报文。

四、从波特率表格中获取一个或两个波特率,表格中所有可能使用的波特率,其中,CAN2.0报文只有一个波特率:即CANId与CANData波特率相同;CANFd有两个波特率:CANId与CANData比特率可以不同,直到遍历完所有波特率后未识别CAN总线波特率时回复获取CAN总线波特率失败到诊断平台。

五、被动探测:基于从表格中获取的波特率设置CAN控制器波特率,并接收CAN总线报文,超时100ms,在超时时间内收到报文回复当前设置的波特率到诊断平台。

六、主动探测:100ms超时未收到CAN报文后,向CAN总线发送CAN报文,CANId=0X7FF、Data长度为1,CAN报文的CANId决定抢占优先级,为使不破坏CAN总线,发送报文优先级最低(0X7FF),数据长度为1,一帧报文所占用总线时间最短,发送成功后回复当前波特率到诊断平台,发送失败则回到第三步完成余下的波特率探测.

这样,配置CAN控制器的接收为静默模式,不应答ACK,取消自动发送重传,先被动探测,超时没有接收到CAN报文,再主动探测,且只发送一次,数据长度为1个字节,CAN报文抢占优先级最低,因为CAN终端设备都有重发机制,一次干扰不会影响总线,通过判断是否发送成功来确定当前总线波特率。这样,能够在获取CAN总线波特率时,降低对CAN总线的干扰,从而避免总线波特率获取失败以及造成车辆故障的问题。

参见图3所示,本申请实施例公开了一种总线波特率获取装置,应用于诊断设备,包括:

模式设置模块11,用于将CAN控制器设置为静默模式;其中,所述静默模式为在监听到CAN报文后不向CAN总线应答的模式;

波特率选取模块12,用于从波特率集中选取波特率以得到目标波特率;

波特率设置模块13,用于将所述CAN控制器的波特率设置为所述目标波特率;

报文发送模块14,用于当在预设超时间内未接收到所述CAN报文,则向CAN总线发送一次CAN报文,若CAN报文发送成功,则将所述目标波特率确定为所述CAN总线的波特率。

可见,本申请实施例先将CAN控制器设置为静默模式,所述静默模式为在监听到CAN报文后不向CAN总线应答的模式,之后从波特率集中选取波特率以得到目标波特率,将所述CAN控制器的波特率设置为所述目标波特率,当在预设超时间内未接收到CAN报文,则向所述CAN总线发送一次CAN报文,若CAN报文发送成功,则将所述目标波特率确定为所述CAN总线的波特率。也即,本申请实施例中先将CAN控制器设置为静默模式,并将CAN控制器的波特率设置为从波特率集中选取的目标波特率进行被动探测,不应答CAN总线,如果没有被动探测到总线波特率,再进行主动探测,并发送一次该目标波特率的报文,不进行重传,这样,能够在获取CAN总线波特率时,降低对CAN总线的干扰,从而避免总线波特率获取失败以及造成车辆故障的问题。

其中,所述装置,还包括:

报文接收模块,用于接收CAN报文;

波特率确定模块,用于当报文接收模块在所述预设超时间内接收到CAN报文,则将所述目标波特率确定为所述CAN总线的波特率。

波特率选取模块12,还用于:若CAN报文发送失败,则从所述波特率集中选取新的波特率以得到新的目标波特率,相应的,波特率设置模块13,还用于将所述CAN控制器的波特率设置为新的目标波特率。

进一步的,所述装置还包括报文过滤器配置模块,用于将CAN报文过滤器配置为全通过模式;其中,所述全通过模式为接收所述CAN总线所有报文的模式。

进一步的,报文发送模块14,具体用于将CAN报文的报文标识设置为最低优先级,向CAN总线发送一次该CAN报文。

并且,所述装置还用于:在所述将CAN控制器设置为静默模式之前,接收诊断平台下发的波特率获取指令;基于所述波特率获取指令接通CAN高位线以及CAN低位线对应的引脚,并在两个引脚之间配置终端电阻。

参见图4所示,本申请实施例公开了一种诊断设备20,包括处理器21和存储器22;其中,所述存储器22,用于保存计算机程序;所述处理器21,用于执行所述计算机程序,前述实施例公开的总线波特率获取方法。

关于上述总线波特率获取方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

并且,所述存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,存储方式可以是短暂存储或者永久存储。

另外,所述诊断设备20还包括电源23、通信接口24、输入输出接口25和通信总线26;其中,所述电源23用于为所述电子设备20上的各硬件设备提供工作电压;所述通信接口24能够为所述电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;所述输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。

进一步的,参见图5所示,本申请公开了一种诊断系统,包括诊断设备31以及诊断平台32,所述诊断平台用于向所述诊断设备下发波特率获取指令,以使所述诊断设备实现前述实施例公开的总线波特率获取方法。关于上述总线波特率获取方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的总线波特率获取方法。

关于上述总线波特率获取方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的总线波特率获取方法、装置、诊断设备、系统及介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 具有抑制海洋无脊椎动物幼体附着的强效能力的防污化合物BOC-丁烯羟酸内酯
  • 2-丁烯羟酸内酯乙酰胺类化合物及其制备方法和应用
技术分类

06120116550720