本技术实施方式涉及车辆诊断,特别是涉及一种can通信协议的类型识别方法、通信设备及存储介质。
背景技术:
1、在使用车辆诊断设备诊断车辆的过程中,车辆诊断设备需要和车辆建立通信连接。当二者采用控制器局域网络(controller area network,can)通信协议时,通常会采用can2.0通信协议,然而由于can2.0通信协议具有三种类型:高速can协议、单线can协议和低速容错can协议,而且在一些情况下车辆诊断设备无法确定电子控制单元(electroniccontrol unit,ecu)采用的通信协议,或者,由于同一车型的车辆在实际使用过程可能对应不同类型的can通信协议,导致车辆诊断设备对于某些ecu采用的通信协议类型判断错误,因此,需要确定车辆实际采用的can通信协议的类型。
2、目前,通过车辆诊断设备依次尝试用不同类型的can通信协议与车辆建立通信连接,然而,由于不同类型的can通信协议对应不同的电平,采用这种方式会使得车辆出现错误码,降低车辆诊断设备和车辆的通信成功率。
技术实现思路
1、本技术实施例提供一种can通信协议的类型识别方法、通信设备及存储介质,以确定车辆采用的can通信协议的具体类型,从而提高通信设备和车辆的通信成功率。
2、本技术实施例提供以下技术方案:
3、第一方面,本技术实施例提供一种can通信协议的类型识别方法,该can通信协议的类型识别方法应用于通信设备,通信设备与车辆的obd接口通信连接,该can通信协议的类型识别方法包括:
4、在第一管脚为目标管脚的情况下,读取第一管脚的电压,其中,第一管脚为通信设备与车辆的obd接口连接的管脚中的can高线管脚;
5、确定在读取电压时车辆的汽车总线的状态,其中,汽车总线为can总线,汽车总线的状态包括空闲状态或繁忙状态;
6、根据汽车总线的状态和不同类型的can通信协议的电平参数,确定can通信协议的类型。
7、在上述的实现过程中,通过读取管脚的电压时can总线的状态和不同类型的can通信协议的电平特性,确定can通信协议的类型,本技术能够准确确定车辆实际采用的can通信协议的具体类型,从而使得通信设备可以根据相应类型的can通信协议建立与车辆的通信链路,从而提高通信设备和车辆的通信成功率。
8、在一些实施例中,确定在读取电压时车辆的汽车总线的状态,包括:
9、根据当前的采样次数、预设采样次数,确定第一有效电压次数;
10、若第一有效电压次数大于预设有效次数,则确定在读取电压时汽车总线的状态为空闲状态;
11、若第一有效电压次数小于或等于预设有效次数,则确定在读取电压时汽车总线的状态为繁忙状态。
12、在上述的实现过程中,通过比较第一有效电压次数与预设有效次数,能够准确确定读取第一管脚的电压时汽车总线的状态。
13、在一些实施例中,根据当前的采样次数、预设采样次数,确定第一有效电压次数,包括:
14、将电压存储至第一管脚电压值数组,并更新采样次数;
15、若当前的采样次数小于预设采样次数,则继续读取第一管脚的电压,直至当前的采样次数等于预设采样次数;
16、若当前的采样次数等于预设采样次数,则计算若干个电压的平均值,并统计第一有效电压次数。
17、在上述的实现过程中,采样完成后统计第一有效电压次数,能够便于后续在读取第一管脚的电压时汽车总线的状态为空闲状态的情况下,计算有效电压的平均值,从而根据有效电压的平均值等,确定can通信协议的类型。
18、在一些实施例中,统计第一有效电压次数包括:
19、若读取到的电压位于第一有效电压区间,则确定读取到的电压为有效电压,统计有效电压的次数,将统计到的次数记为第一有效电压次数,其中,第一有效电压区间为以平均值为中心、以第一预设电压为半径的上下区间。
20、在上述的实现过程中,通过将读取到的位于第一有效电压区间的电压作为有效电压,并统计读取到有效电压的次数,能够便于后续根据第一有效电压次数与预设有效次数的大小关系,准确确定读取第一管脚的电压时汽车总线的状态。
21、在一些实施例中,can通信协议的类型包括高速can协议或非高速can协议,不同类型的can通信协议的电平参数包括第二预设电压和第三预设电压,第二预设电压小于第三预设电压;
22、方法还包括:
23、在当前的采样次数等于预设采样次数时,统计第一有效电压总和,其中,第一有效电压总和为读取到的有效电压之和;
24、在上述的实现过程中,采样完成后统计第一有效电压总和,能够便于后续在读取第一管脚的电压时汽车总线的状态为空闲状态的情况下,计算有效电压的平均值,从而根据有效电压的平均值等,确定can通信协议的类型。
25、在一些实施例中,根据汽车总线的状态和不同类型的can通信协议的电平参数,确定can通信协议的类型,包括:
26、若汽车总线的状态为空闲状态,则计算有效电压的平均值,其中,有效电压的平均值为第一有效电压总和与第一有效电压次数之比;
27、若有效电压的平均值大于第二预设电压,且有效电压的平均值小于第三预设电压,则确定can通信协议的类型为高速can协议;
28、若有效电压的平均值小于或等于第二预设电压,或者,有效电压的平均值大于或等于第三预设电压,则确定can通信协议的类型为非高速can协议。
29、在上述的实现过程中,通过比较有效电压的平均值与第二预设电压和第三预设电压的大小关系,本技术能够确定在汽车总线的状态为空闲状态时车辆实际采用的can通信协议的类型为高速can协议还是非高速can协议。
30、在一些实施例中,不同类型的can通信协议的电平参数还包括第四预设电压;
31、根据汽车总线的状态和不同类型的can通信协议的电平参数,确定can通信协议的类型,还包括:
32、若汽车总线的状态为繁忙状态,则计算第一波谷平均电压和第一波峰平均电压;
33、若第一波峰平均电压与第一波谷平均电压之差小于第四预设电压,则确定can通信协议的类型为高速can协议;
34、若第一波峰平均电压与第一波谷平均电压之差大于或等于第四预设电压,则确定can通信协议的类型为非高速can协议。
35、在上述的实现过程中,通过比较第一波峰平均电压与第一波谷平均电压之差与第四预设电压的大小关系,本技术能够确定在汽车总线的状态为繁忙状态时车辆实际采用的can通信协议的类型为高速can协议还是非高速can协议。
36、在一些实施例中,非高速can协议包括单线can协议或低速容错can协议;
37、根据汽车总线的状态和不同类型的can通信协议的电平参数,确定can通信协议的类型,还包括:
38、若can通信协议的类型为非高速can协议,则在第二管脚为目标管脚的情况下,读取第二管脚的电压,其中,第二管脚为通信设备与车辆的obd接口连接的管脚中的can低线管脚;
39、根据读取第二管脚的电压时汽车总线的状态、单线can协议和低速容错can协议的电平参数,确定can通信协议的类型为单线can协议或低速容错can协议。
40、在上述的实现过程中,通过在根据第一管脚的电压确定can通信协议的类型为非高速can协议后,检测第二管脚,本技术能够准确地确定can通信协议的类型为单线can协议或低速容错can协议。
41、在一些实施例中,单线can协议和低速容错can协议的电平参数包括第五预设电压;
42、在读取第二管脚的电压之后,方法还包括:
43、在当前的第二管脚的采样次数等于预设采样次数,统计第二有效电压次数、第二有效电压总和,其中,第二有效电压次数为读取到第二管脚的有效电压的次数,第二有效电压总和为读取到的第二管脚的有效电压之和。
44、在上述的实现过程中,采样完成后统计第二有效电压次数、第二有效电压总和,能够便于后续计算第二管脚的有效电压的平均值,从而根据第二管脚的有效电压的平均值,进一步确定can通信协议的类型。
45、在一些实施例中,根据读取第二管脚的电压时汽车总线的状态、单线can协议和低速容错can协议的电平参数,确定can通信协议的类型为单线can协议或低速容错can协议,包括:
46、若在读取第二管脚的电压时汽车总线的状态为空闲状态,则计算第二管脚的有效电压的平均值,其中,第二管脚的有效电压的平均值为第二有效电压总和与第二有效电压次数之比;
47、若第二管脚的有效电压的平均值小于第五预设电压,则确定can通信协议的类型为单线can协议;
48、若第二管脚的有效电压的平均值大于或等于第五预设电压,则确定can通信协议的类型为低速容错can协议。
49、在上述的实现过程中,通过比较第二管脚的有效电压的平均值与第五预设电压的大小关系,本技术能够在排除can通信协议的类型为高速can协议的基础上,进一步确定在读取第二管脚的电压时汽车总线的状态为空闲状态时,can通信协议的类型为单线can协议或低速容错can协议。
50、在一些实施例中,单线can协议和低速容错can协议的电平参数还包括第六预设电压;
51、根据读取第二管脚的电压时汽车总线的状态、单线can协议和低速容错can协议的电平参数,确定can通信协议的类型为单线can协议或低速容错can协议,还包括:
52、若在读取第二管脚的电压时汽车总线的状态为繁忙状态,则计算第二波谷平均电压和第二波峰平均电压;
53、若第二波峰平均电压与第二波谷平均电压之差小于第六预设电压,则确定can通信协议的类型为单线can协议;
54、若第二波峰平均电压与第二波谷平均电压之差大于或等于第六预设电压,则确定can通信协议的类型为低速容错can协议。
55、在上述的实现过程中,通过比较第二波峰平均电压与第二波谷平均电压之差和第六预设电压的大小关系,本技术能够在排除can通信协议的类型为高速can协议的基础上,进一步确定在读取第二管脚的电压时汽车总线的状态为繁忙状态时,can通信协议的类型为单线can协议或低速容错can协议。
56、在一些实施例中,在读取第一管脚的电压之前,方法还包括:
57、判断通信设备与车辆的obd接口连接的任一管脚是否为目标管脚;
58、若任一管脚为can协议管脚,则确定该管脚为目标管脚;
59、若任一管脚不为can协议管脚,则确定该管脚为非目标管脚。
60、在上述的实现过程中,通过判断通信设备与车辆的obd接口连接的管脚是否为目标管脚,本技术能够在确定该管脚为非目标管脚时停止算法执行,防止出现因管脚参数错误导致执行后续算法生成错误结果的情况。
61、第二方面,本技术实施例提供一种通信设备,包括:
62、存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如第一方面的can通信协议的类型识别方法。
63、第三方面,本技术实施例提供一种非易失性计算机可读存储介质,非易失性计算机可读存储介质存储有计算机可执行指令,当计算机可执行指令被处理器所执行时,使处理器执行如第一方面的can通信协议的类型识别方法。
64、本技术实施方式的有益效果是:区别于现有技术的情况,本技术实施方式提供一种can通信协议的类型识别方法,该can通信协议的类型识别方法应用于通信设备,通信设备与车辆的obd接口通信连接,该can通信协议的类型识别方法包括:在第一管脚为目标管脚的情况下,读取第一管脚的电压,其中,第一管脚为通信设备与车辆的obd接口连接的管脚中的can高线管脚;确定在读取电压时车辆的汽车总线的状态,其中,汽车总线为can总线,汽车总线的状态包括空闲状态或繁忙状态;根据汽车总线的状态和不同类型的can通信协议的电平参数,确定can通信协议的类型。
65、通过读取管脚的电压时can总线的状态和不同类型的can通信协议的电平参数,确定can通信协议的类型,本技术能够准确确定车辆实际采用的can通信协议的具体类型,从而使得通信设备可以根据相应类型的can通信协议建立与车辆的通信链路,从而提高通信设备和车辆的通信成功率。