一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种报文解码方法及装置、计算机可读存储介质与流程

2022-06-02 16:12:43 来源:中国专利 TAG:


1.本公开涉及但不限于计算机技术领域,尤其涉及一种报文解码方法及装置、计算机可读存储介质。


背景技术:

2.应答器信息传输单元(balise transmission module,btm)是在地面应答器与列车自动防护(automatic train protection,atp)车载设备之间传输安全相关信息的安全传输系统,btm通过天线下发27.095mhz的能量信号,激活地面应答器,地面应答器发送中心频率为4.234mhz的频移键控(frequency-shift keying,fsk)调制信号给btm进一步解调解码,将应答器发送的1023bits加密报文解码成830bits用户报文,从而将地面信息准确传递给车载控制系统。只要天线发送的激活能量不消失,应答器就会向btm循环发送报文,报文的格式包括长报文(1023bits)和短报文(341bits)。
3.btm天线安装在列车车底,周围存在大量的大功率电气设备,在列车升弓上电后,各种电气设备经常会在btm的工作频率范围内(2.5mhz~6mhz)产生较强的随机干扰信号,当列车经过应答器时,若此时产生随机干扰信号,真实的应答器信号和干扰信号同时通过天线进入到btm主机进行解调和解码处理。由于这种随机干扰信号与应答器信号的频率非常接近,属于带内信号,无法通过常规的屏蔽、接地和滤波的方法,在btm设备侧予以有效抑制去除,因此这种带内干扰信号往往会对应答器信号的解调造成位错误/位插入/位丢失等错误,进而破坏应答器报文数据的完整性,导致无法成功解码而丢失应答器,对列车的运行造成一定影响。
4.针对此类问题,一般的处理方式是通过在干扰源设备的输出端增加滤波/屏蔽措施,抑制这种带内干扰信号的强度,进而使btm天线接收到的干扰信号尽可能的小,从而减少了带内干扰信号对真实应答器信号的影响,减少了因干扰造成的位错误/位插入/位丢失的现象,在一定程度上降低了解码失败的概率。但车底大功率设备种类众多,金属结构/接地/分相区供电方式改变等都会影响干扰信号抑制的整体效果,尤其是对于车辆而言,分相区造成的干扰影响,目前还没有有效的抑制手段。


技术实现要素:

5.本公开实施例提供了一种报文解码方法及装置、计算机可读存储介质,能够提高干扰条件下的btm解码性能。
6.本公开实施例的技术方案是这样实现的:
7.本公开实施例提供了一种报文解码方法,包括:
8.接收数据位流,所述数据位流包含多包相同或大致相同的数据报文,其中,多包大致相同的数据报文为多包相同的数据报文中的至少一包数据报文存在错位、多位或少位中的至少一种传输错误导致;
9.对接收的数据位流进行分段,每段数据位流的范围为n
±
n位,n为发送端发送的每
包数据报文的位数,n为预设查找阈值,n为大于0的整数;
10.对每段数据位流进行分组,对多段数据位流中的对应组数据和所述对应组数据的下一组数据逐个进行比较,根据比较结果对所述对应组数据进行修正并对所述对应组数据的后续组数据进行处理。
11.可选的,所述对多段数据位流中的对应组数据和所述对应组数据的下一组数据逐个进行比较,根据比较结果对所述对应组数据进行修正并对所述对应组数据的后续组数据进行处理,包括:
12.当三段数据位流中的对应组数据两两相同时,则所述对应组数据无需修正;
13.当三段数据位流中的对应组数据只存在两组相同、另一组与该两组不同时,则确定该两组数据中的一组为参考分组,与该两组不同的另一组为待修正分组,确定所述待修正分组与参考分组的不同位数和不同位置以及所述待修正分组与参考分组的下一组数据的不同位数,根据确定的不同位数和不同位置以及下一组数据的不同位数,确定所述待修正分组的修正类型,根据所述修正类型对所述对应组数据进行修正并对所述对应组数据的后续组数据进行处理;
14.当三段数据位流中的对应组数据两两均不相同时,则根据所述对应组数据的两两不同的位数以及所述对应组数据的下一组数据的两两不同的位数,对所述对应组数据进行修正并对所述对应组数据的后续组数据进行处理。
15.可选的,所述根据确定的不同位数和不同位置以及下一组数据的不同位数,确定所述待修正分组的修正类型,包括:
16.当所述待修正分组与参考分组的不同位数小于或等于x时,确定所述修正类型为错位,x为大于0的自然数;
17.当所述待修正分组与参考分组的不同位数大于x且所述待修正分组的下一组数据与所述参考分组的下一组数据相同时,确定所述修正类型为错位;
18.当所述待修正分组与参考分组的不同位数大于x且所述待修正分组的下一组数据与所述参考分组的下一组数据不同时,在所述待修正分组中与所述参考分组的第一个不同位置处补充1比特数据或删除1比特数据,并重新确定所述待修正分组与所述参考分组的不同位数,当重新确定的不同位数小于或等于x时,确定所述修正类型为少位1比特数据或多位1比特数据;当重新确定的不同位数大于x时,在所述待修正分组中与所述参考分组的第一个不同位置处补充2比特数据或删除2比特数据,并再次重新确定所述待修正分组与所述参考分组的不同位数,当再次重新确定的不同位数小于或等于x时,确定所述修正类型为少位2比特数据或多位2比特数据。
19.可选的,x可以为2。然而,x也可以为1或3等其他自然数,本公开实施例对此不作限制。
20.可选的,所述根据所述修正类型对所述对应组数据进行修正并对所述对应组数据的后续组数据进行处理,包括:
21.当所述修正类型为错位时,将所述待修正分组数据修正为所述参考分组数据;
22.当所述修正类型为多位时,将所述待修正分组数据修正为所述参考分组数据,并将所述待修正分组的后续组数据前移多位对应的位数;
23.当所述修正类型为少位时,将所述待修正分组数据修正为所述参考分组数据,并
将所述待修正分组的后续组数据后移少位对应的位数。
24.可选的,所述根据所述对应组数据的两两不同的位数以及所述对应组数据的下一组数据的两两不同的位数,对所述对应组数据进行修正并对所述对应组数据的后续组数据进行处理,包括:
25.当所述对应组数据的下一组数据的两两不同的位数小于或等于x时,对三段数据位流中的对应组数据逐位比较并通过三取二表决后输出;
26.当所述对应组数据的下一组数据的两两不同的位数大于x且所述对应组数据两两不同的位数小于或等于x时,对三段数据位流中的对应组数据逐位比较并通过三取二表决后输出;
27.当所述对应组数据的下一组数据的两两不同的位数大于x且所述对应组数据两两不同的位数有至少一组大于x时,确定多位或少位的位置以及错位的位置,对多位或少位的位置进行删位或补位处理,对错位的位置进行三取二表决处理,将所述对应组数据的后续组数据后移或前移对应的位数。
28.可选的,所述确定多位或少位的位置以及错位的位置,对多位或少位的位置进行删位或补位处理,对错位的位置进行三取二表决处理,包括:
29.当所述多位或少位的位置在所述错位的位置之前时,先对所述多位或少位的位置进行删位或补位处理,再对所述错位的位置进行三取二表决处理;
30.当所述多位或少位的位置在所述错位的位置之后时,先对所述错位的位置进行三取二表决处理,再对所述多位或少位的位置进行删位或补位处理,然后再进行三取二表决处理。
31.可选的,所述接收的数据位流大于三段。
32.可选的,所述对接收的数据位流进行分段,包括:
33.获取所述数据位流中的第i 1位至第i x位数据,i为数据位流的分段起始位置,x为比较位数;
34.对位流查找范围j从0至n,逐个检测所述数据位流中的第i 1位至第i x位数据与所述数据位流中的第i 1 n
±
j位至第i x n
±
j位数据是否相等;
35.当从0至n内至少存在一个j使得所述数据位流中的第i 1位至第i x位数据与所述数据位流中的第i 1 n
±
j位至第i x n
±
j位数据相等时,将所述数据位流中的第i 1位至第i n
±
j位数据设为一段数据,并对后续的数据位流进行分段;
36.当从0至n内不存在一个j使得所述数据位流中的第i 1位至第i x位数据与所述数据位流中的第i 1 n
±
j位至第i x n
±
j位数据相等时,更新i,并循环执行获取所述数据位流中的第i 1位至第i x位数据的操作。
37.可选的,预设查找阈值n为11,每包数据报文的位数n为1023位,比较位数x为33位。
38.可选的,每包数据报文的位数n为1023位,每组数据报文为33位。
39.本公开实施例还提供了一种报文解码装置,包括处理器及存储器,其中:
40.所述处理器用于执行存储器中存储的程序,以实现如以上所述的报文解码方法的步骤。
41.本公开实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以
上所述的报文解码方法的步骤。
42.本公开实施例的技术方案,具有如下有益效果:
43.本公开实施例提供的报文解码方法及装置、计算机可读存储介质,通过对接收的数据位流进行分段,再对每段数据位流进行分组,对多段数据位流中的对应组数据和所述对应组数据的下一组数据逐个进行比较,根据比较结果对所述对应组数据进行修正并对所述对应组数据的后续组数据进行处理,大大提高了干扰条件下的btm解码性能,减少了丢失应答器的概率。此外,本公开实施例的报文解码方法,是基于现场实际运营数据提出的软件优化方案,完全不必更改现有硬件设计,改造成本低。相关参数可根据实际的故障数据进行调整,以提高软件的性能。由于本方案是根据现场运营故障数据的统计规律提出的,现场故障数据规模越大,该方案所涉及的可调整参数越可被有效优化,所得到的有效性预测越准确。
附图说明
44.此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
45.图1为本公开实施例的一种报文解码方法的流程示意图;
46.图2为本公开实施例的一种对接收的数据原始位流进行分段的流程示意图;
47.图3为本公开实施例的一种分组修正的总体流程示意图;
48.图4为本公开实施例中,当3包数据中有2包数据相同、另外1包数据不同时的修正流程示意图;
49.图5为本公开示例性实施例的一种分组比较过程示意图;
50.图6为本公开示例性实施例的一种分组修正过程示意图;
51.图7为本公开实施例中,当3包数据两两均不相同时的修正流程示意图;
52.图8为本公开实施例的一种报文解码装置的结构示意图。
具体实施方式
53.为使本公开的目的、技术方案和优点更加清楚明白,下文中将结合附图对本公开的实施例进行详细说明。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互任意组合。
54.除非另外定义,本公开实施例公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出该词前面的元件或物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
55.经过对因带内干扰丢失的应答器所记录的原始应答器信号位流进行分析发现,应答器信号位流存在若干位取反1-2bit/插入1-2bit/缺少1-2bit等情况,针对这种情况,结合大量的现场数据分析结果,本公开提出了一种针对带内干扰情况下的抗干扰解码优化方案,用以提高解码成功率,减少丢失应答器的现象,通过软件仿真,使用现场原始数据模拟解码过程,发现本公开提供的报文解码方法对现场无法解码的原始应答器信号位流的解码
成功率可达85%左右,大大提高了干扰条件下的btm解码性能,减少了丢失应答器的概率。
56.如图1所示,根据本公开实施例的一种报文解码方法,包括:
57.步骤101、接收数据位流,数据位流包含多包相同或大致相同的数据报文,多包大致相同的数据报文为其中至少一包数据报文存在错位、多位或少位中的至少一种传输错误导致;
58.在一些示例性实施例中,进入该方法的条件至少包括以下两点:(1)当前应答器信号消失,且解码结果为解码失败;(2)当前应答器信号持续时间超过3包报文信号持续时间。
59.在一些示例性实施例中,退出该方法的条件可以包括以下任意之一:(1)方法运行过程中,出现无需继续进行的条件,例如,无需继续进行的条件包括输出异常、输出解码后的报文等;(2)接收到新的应答器信号。
60.在一些示例性实施方式中,当前应答器信号持续时间不得短于5.5ms(约为3包长报文信号持续时间)。在执行本公开实施例的报文解码方法时,可以开辟4*1024bits存储空间,用于暂存接收到的前4包数据,不足的以0补齐。
61.本公开实施例的报文解码方法主要基于现场丢失应答器的数据被干扰的程度不严重,被影响的比特位在前三包数据中分布于报文的相对不同位置处,且多位/少位的现象不严重,每包数据中多位/少位不超过一定数目,基于前后包的相同偏移位置附近处的一小段数据对比有明显的特征做参照,从而可以进行微观调整,将数据逐段修正,最终还原成连续正确的1023bits的报文数据,之后对其进行解码即可。
62.本公开实施例的核心依据和条件是,1包数据发送错误时,在相对相同的位置附近一定范围内,另外2包数据无错,以此为参照,在微观层面可以有效区分错误包数据的错误类型(错位、少位、多位),并且能够找到少位、多位位置,并补删正确的数据,进而可以通过三取二比较,成功得到正确数据。
63.步骤102、对接收的数据位流进行分段,每段数据位流的范围为n
±
n位,n为每包数据报文的位数,n为预设查找阈值,n为大于0的整数;
64.在一些示例性实施方式中,每包数据报文的位数n为1023位。当然,每包数据报文的位数n也可以根据实际情况设置为其他位数,本公开对此不作限制。
65.在一些示例性实施方式中,预设查找阈值n为11。当然,预设查找阈值n也可以设置为其他位数,本公开对此不作限制。
66.在一些示例性实施方式中,接收的数据位流大于三段(即,接收的数据位流包括3包以上的数据报文)。
67.在一些示例性实施方式中,对接收的数据位流进行分段,包括:
68.获取数据位流中的第i 1位至第i x位数据,i为数据位流的分段起始位置,x为比较位数;
69.对位流查找范围j从0至n,逐个检测数据位流中的第i 1位至第i x位数据与数据位流中的第i 1 n
±
j位至第i x n
±
j位数据是否相等;
70.当从0至n内至少存在一个j使得数据位流中的第i 1位至第i x位数据与数据位流中的第i 1 n
±
j位至第i x n
±
j位数据相等时,将数据位流中的第i 1位至第i n
±
j位数据设为一段数据,并对后续的数据位流继续进行分段;
71.当从0至n内不存在一个j使得数据位流中的第i 1位至第i x位数据与数据位流中
的第i 1 n
±
j位至第i x n
±
j位数据相等时,更新i,并循环执行获取数据位流中的第i 1位至第i x位数据的操作。
72.在一些示例性实施方式中,比较位数x为33位。当然,比较位数x也可以设置为其他任意的位数,本公开对此不作限制。
73.在一些示例性实施方式中,如图2所示,将接收的应答器报文的前4096bits数据(4包应答器报文)进行规整分段,其过程如下。
74.输入包括:1、4包应答器数据原始位流;
75.2、比较位数设定:x(可选为33,可根据实际数据进行调整);
76.3、规整移动位数阈值:m(可选为100,可根据实际数据进行调整);
77.4、每包规整查找范围设定:暂定为当前位置偏移1023
±
11。
78.输出包括:1、规整结果标识(正常、异常两种结果);
79.2、每包规整后的位数,共4包(主要关注前3包,第4包只用来扩展用)。
80.在一些示例性实施方式中,如图2所示,步骤102包括:
81.步骤1021、检测规整移动位数是否小于或等于预设的规整移动位数阈值m(规整移动位数的初始值可以设置为0),如果规整移动位数小于或等于m,则转入步骤1022;否则转入步骤10210;
82.步骤1022、设置段号i1的初始值为0,设置当前位置i为0;
83.步骤1023、设置位流查找范围j为0;
84.步骤1024、提取当前数据位流中以i为起始位置的前xbits(x为预设的比较位数),并与以i 1013 j为起始位置的xbits比较是否相等,如果相等,则转入步骤1026;如果不等,则转入步骤1025;
85.步骤1025、j自增1,检测j是否大于23,如果j大于23,则规整移动位数自增1,原数据位流循环左移1bit,并转入步骤1021;如果j小于或等于23,则转入步骤1024;
86.步骤1026、将当前位置i的值更新为i 1013 j,并记录当前位置i为本段规整位数;
87.步骤1027、段号i1自增1,检测段号i1是否小于3,如果小于3,则转入步骤1023;如果大于或等于3,则转入步骤1028;
88.步骤1028、设置第4段规整位数=4096-前三段规整位数之和;
89.步骤1029、输出正常标志,同时输出4段规整位数。
90.步骤10210、输出异常标志。
91.本实施例中,步骤1029表示结果正常,输出正常标志,同时输出4段规整位数,每段规整位数的范围均在1023
±
11bits,表示本次应答器位流被影响的位数可接受,可以进一步处理。步骤10210表示结果异常,输出异常标志,该异常标志表示接收解码失败,不再进行后续处理。
92.步骤103、对每段数据位流进行分组,对多段数据位流中的对应组数据和对应组数据的下一组数据逐个进行比较,根据比较结果对对应组数据进行修正并对对应组数据的后续组数据进行处理。
93.在一些示例性实施方式中,每组数据报文可以设置为33位。由于每包应答器报文的长度为1023位,将每组数据报文设置为33位,则分组比较的次数为1023/33=31次。当然,每组数据报文的长度也可以设置为其他任意的位数,本公开对此不作限制。
94.在一些示例性实施方式中,对多段数据位流中的对应组数据和对应组数据的下一组数据逐个进行比较,根据比较结果对对应组数据进行修正并对对应组数据的后续组数据进行处理,包括:
95.如果三段数据位流中的对应组数据两两相同,则对应组数据无需修正;
96.如果三段数据位流中的对应组数据只存在两组相同、另一组与该两组不同,则确定该两组相同数据中的一组为参考分组,与该两组不同的另一组为待修正分组,确定所述待修正分组与参考分组的不同位数和不同位置以及待修正分组与参考分组的下一组数据的不同位数,根据确定的不同位数和不同位置以及下一组数据的不同位数,确定待修正分组的修正类型,根据修正类型对对应组数据进行修正并对对应组数据的后续组数据进行处理;
97.如果三段数据位流中的对应组数据两两均不相同,则根据对应组数据的两两不同的位数以及对应组数据的下一组数据的两两不同的位数,对对应组数据进行修正并对对应组数据的后续组数据进行处理。
98.本步骤对分组小范围顺序修正,示例性的,分组位数可以设定为33bits,分组位数扩展设定为33bits(即当前分组 后紧邻33bits),适用于当前分组比较结果不确定时,扩展2倍位流进一步观察结果。
99.输入:规整分段后的4包数据,每包数据的位数在1012位至1033(含)位之间。
100.输出:修正后分组数据。
101.如图3所示,每包当前分组两两之间进行比较,比较结果共有以下5种:
102.(1)三包数据该分组均相等,则无需修正;
103.(2)三包数据,第1包与第2包该分组相同,第3包与之不同,则第3包的该分组需修正;
104.(3)三包数据,第1包与第3包该分组相同,第2包与之不同,则第2包的该分组需修正;
105.(4)三包数据,第2包与第3包该分组相同,第1包与之不同,则第1包的该分组需修正;
106.(5)三包数据,该分组均不同,则按照后续方法进行修正处理。
107.若出现其他结果,均视为程序异常,该方法终止执行。
108.以上5种情况,分为3大类:
109.第一类:3包数据该分组两两均相同;
110.第二类:有2包该分组数据相同,另外1包不同。
111.第三类:3包数据互不相同。
112.针对上述不同类别给出不同的处理方式。
113.在第一类中,3包数据该分组均相等,则无需修正,针对这种类型该组的输出结果是保持不变,输出修正类型为0,此修正类型也意味着后续位流不做调整。存在以下算法无效场景:若3包数据发生相同的错误或者任意2包发生同样的错误,则算法无效。这样也会导致有一些情况本可以修正过来,但因算法局限,导致无法给出正确结果,比如有2包在相同位置均少1bit,另外一包正确,则此种情况便给出错误结果。其他场景为算法有效场景。
114.在第二类中,有2包该分组数据相同,另外1包不同。总体程序处理流程如图4所示,
根据比较结果,会形成1个待修正分组,1个参考分组(认为是正确的)。利用参考分组与待修正分组的不同的特点,结合扩展位流分组的某些特征,得出修正类型和修正结果。分组修正的关键点有两个,一个是对每个分组单元进行识别,得出修正结果和修正类型。另一个是根据修正类型,对后续位流分别进行处理。
115.本公开针对此种类型设计了2个过程,第1个过程为分组比较过程,利用参考分组与待修正分组进行逐位比较,记录不同总位数以及不同的位置。第2个过程为分组修正过程,根据比较结果对待修正分组进行修正,并给出修正类型。
116.在一些示例性实施例中,图5为本公开示例性实施例的一种分组比较过程示意图,其中,输入包括:1、待比较字符串1;2、待比较字符串2;3、不同位数统计k;4、不同位置记录{}。输出包括:1、不同位数统计k;2、不同位置记录{}(数组);3、或程序异常。本实施例中,将每个分组的内容看成一串字符串,其中,待比较字符串1可以为参考分组,待比较字符串2可以为待修正分组;或者,待比较字符串1可以为待修正分组,待比较字符串2可以为参考分组。
117.如图5所示,分组比较过程包括:
118.步骤501:获取字符串1字符数n1,获取字符串2字符数n2,设置不同位数统计k初始值为0,不同位置记录数组元素j初始值为0,设置循环次数i2初始值为0;
119.步骤502、检测n1是否等于n2,如果n1不等于n2,则程序异常退出;如果n1等于n2,则转入步骤503;
120.步骤503、检测i2是否小于n1,如果i2小于n1,则转入步骤504;如果i2等于n1,则转入步骤506;
121.步骤504、检测字符串1的第i2个字符与字符串2的第i2个字符是否相等;如果相等,i2自增1,并转入步骤503;如果不等,则转入步骤505;
122.步骤505、k自增1,并记录当前的不同位置,j自增1,转入步骤503;
123.步骤506、输出不同位数统计k和不同位置记录{}(数组)。
124.在一些示例性实施方式中,根据确定的不同位数和不同位置以及下一组数据的不同位数,确定待修正分组的修正类型,包括:
125.当待修正分组与参考分组的不同位数小于或等于x时,确定修正类型为错位,x为大于0的自然数;
126.当待修正分组与参考分组的不同位数大于x且待修正分组的下一组数据与参考分组的下一组数据相同时,确定修正类型为错位;
127.当待修正分组与参考分组的不同位数大于x且待修正分组的下一组数据与参考分组的下一组数据不同时,在待修正分组中与参考分组的第一个不同位置处补充1比特数据或删除1比特数据,并重新确定待修正分组与参考分组的不同位数,当重新确定的不同位数小于或等于x时,确定修正类型为少位1比特数据或多位1比特数据;当重新确定的不同位数大于x时,在待修正分组中与参考分组的第一个不同位置处补充2比特数据或删除2比特数据,并再次重新确定待修正分组与所述参考分组的不同位数,当再次重新确定的不同位数小于或等于x时,确定修正类型为少位2比特数据或多位2比特数据。
128.在一些示例性实施方式中,x=2。然而,x也可以为1或3等其他自然数,本公开实施例对此不作限制。
129.在一些示例性实施方式中,根据修正类型对对应组数据进行修正并对对应组数据的后续组数据进行处理,包括:
130.当修正类型为错位时,将待修正分组数据修正为参考分组数据;
131.当修正类型为多位时,将待修正分组数据修正为参考分组数据,并将待修正分组的后续组数据前移多位对应的位数;
132.当修正类型为少位时,将待修正分组数据修正为参考分组数据,并将待修正分组的后续组数据后移少位对应的位数。
133.在一些示例性实施例中,图6为本公开示例性实施例的一种分组修正过程示意图,其中,输入包括:1、两固定位数字符串的不同位数;2、两固定位数字符串的不同位置(数组);3、两固定位数字符串:待修正字符串(即待修正分组)与参考字符串(即参考分组);4、两固定位数扩展字符串:待修正扩展字符串与参考扩展字符串。输出包括:1、修正后固定位数字符串;2、修正类型。
134.如图6所示,分组修正过程包括:
135.步骤601、检测不同位数统计k是否小于或等于2,如果k小于或等于2,则输出修正类型为0(错位),修正结果为参考字符串;如果k大于2,则转入步骤602;
136.步骤602、检测待修正扩展字符串的后33位与参考扩展字符串的后33位是否相等,如果待修正扩展字符串的后33位与参考扩展字符串的后33位相等,则输出修正类型为0(错位),修正结果为参考字符串;如果不等,则转入步骤603;
137.步骤603、在待修正字符串与参考字符串的第1个不同位置处,用参考字符串的该位置上1bit补到待修正字符串上,并重新比较待修正字符串与参考字符串的不一致总位数是否小于或等于2;如果小于或等于2,则记录a为1,否则记录a为0;
138.步骤604、在待修正字符串与参考字符串的第1个不同位置处,删除待修正字符串的1bit数据,并重新比较待修正字符串与参考字符串的不一致总位数是否小于或等于2;如果小于或等于2,则记录b为1,否则记录b为0;
139.步骤605、当ab=00时,转入步骤606;当ab=01时,输出修正类型为-1(多1位),修正结果为参考字符串;当ab=10时,输出修正类型为1(少1位),修正结果为参考字符串;当ab=11时,输出修正类型为7(视为错位),修正结果为参考字符串;
140.步骤606、在待修正字符串与参考字符串的第1个不同位置处,用参考字符串的该位置上2bit补到待修正字符串上,并重新比较待修正字符串与参考字符串的不一致总位数是否小于或等于2;如果小于或等于2,则记录c为1,否则记录c为0;
141.步骤607、在待修正字符串与参考字符串的第1个不同位置处,删除待修正字符串的2bit数据,并重新比较待修正字符串与参考字符串的不一致总位数是否小于或等于2;如果小于或等于2,则记录d为1,否则记录d为0;
142.步骤608、当cd=00时,输出修正类型为9(视为错位),修正结果为参考字符串;当cd=01时,输出修正类型为-2(多2位),修正结果为参考字符串;当cd=10时,输出修正类型为2(少2位),修正结果为参考字符串;当cd=11时,输出修正类型为8(视为错位),修正结果为参考字符串。
143.本实施例中,在第二类中(即有2包该分组数据相同,另外1包不同),算法有效场景包括:
144.(1)该分组处只有1包有错误(含错位、多位、少位)
145.(2)错误包,仅有错位不超过2bit
146.(3)错误包,仅有少位不超过2bit,且紧邻的33bit仅有错位不超过2bit,无少或多位。
147.(4)错误包,仅有多位不超过2bit,且紧邻的33bit仅有错位不超过2bit,无少或多位。
148.(5)有2包在1023bit范围内,均相同,则另外一包无论错误多少,或者错误形式是什么,均可正确输出。
149.(6)只要在每个微观比较范围内,均有两包相同,且不出现“分组3包数据两两均相同”中的无效场景,均可正确输出。
150.本实施例中,在第二类中(即有2包该分组数据相同,另外1包不同),算法无效场景包括:
151.(1)错误包,仅有错位但超过2bit(在33bits范围内错位超过2bit的则视为少位或多位,而无法修正正常。但其后的33bit若均为其他算法有效情况,则仍有效)
152.(2)错误包,仅有少位不超过2bit,但紧邻的33bit有少位或者多位,或者错位超过2位(但其后的33bit若均为其他算法有效情况,则仍有效))
153.(3)错误包,仅有多位不超过2bit,但紧邻的33bit有少位或者多位,或者错位超过2位(但其后的33bit若均为其他算法有效情况,则仍有效)
154.(4)错误包,既有多位,也有少位(但其后的33bit若均为其他算法有效情况,则仍有效)
155.(5)上述任何错误情况出现在相同位置处,均无效。
156.本公开实施例的报文解码方法,针对上述算法有效场景的处理正确率较高。
157.在第三类中,3包数据中的该分组互不相同。此种情况最为复杂,涉及到情况众多,且有很多情况下会没有正确结果,本公开实施例的报文解码方法只针对其中有明显数据特征的进行修正。
158.在一些示例性实施方式中,根据对应组数据的两两不同的位数以及对应组数据的下一组数据的两两不同的位数,对对应组数据进行修正并对对应组数据的后续组数据进行处理,包括:
159.当对应组数据的下一组数据的两两不同的位数小于或等于x时,对三段数据位流中的对应组数据逐位比较并通过三取二表决后输出;
160.当对应组数据的下一组数据的两两不同的位数大于x且对应组数据两两不同的位数小于或等于x时,对三段数据位流中的对应组数据逐位比较并通过三取二表决后输出;
161.当对应组数据的下一组数据的两两不同的位数大于x且对应组数据两两不同的位数有至少一组大于x时,确定多位或少位的位置以及错位的位置,对多位或少位的位置进行删位或补位处理,对错位的位置进行三取二表决处理,将对应组数据的后续组数据前移或后移对应的位数。
162.在一些示例性实施方式中,确定多位或少位的位置以及错位的位置,对多位或少位的位置进行删位或补位处理,对错位的位置进行三取二表决处理,包括:
163.当多位或少位的位置在错位的位置之前时,先对多位或少位的位置进行删位或补
位处理,再对错位的位置进行三取二表决处理;
164.当多位或少位的位置在所述错位的位置之后时,先对错位的位置进行三取二表决处理,再对多位或少位的位置进行删位或补位处理,然后再进行三取二表决处理。
165.在一些示例性实施例中,当3包数据中的该分组互不相同时,如图7所示,这种情况的程序处理流程如下。
166.其中,输入包括:1、4包应答器数据原始位流;2、4包33bits分组数据位流;3、4包扩展66bits分组数据位流;4、当前修正偏移量;5、是否最后一个分组。
167.输出:1、被修正后的4包原始位流(含本分组数据及其后数据);2、输出错误类型(调试用)。
168.如图7所示,当3包数据中的该分组互不相同时,修正过程包括:
169.步骤701、检测3包数据中的扩展分组的后33bits两两比较,不同之处是否均小于或等于2,如果不同之处均小于或等于2,则转入步骤703;如果有至少一对的不同之处大于2,则转入步骤702;
170.步骤702、检测3包数据中的该分组的33bits两两比较,不同之处是否均小于或等于2,如果不同之处均小于或等于2,则转入步骤703;如果只有一对的不同之处小于或等于2、另两对的不同之处大于2,则转入步骤704;如果有两对的不同之处小于或等于2、另一对的不同之处大于2,则转入步骤707;如果三对的不同之处均大于2,则转入步骤709;
171.步骤703、对三包数据中的该分组数据逐位比较并通过三取二表决后输出,且其后续组数据不做变化进入后续处理环节;
172.步骤704、检测少位或多位是否发生在错位之前,如果少位或多位是否发生在错位之前,则转入步骤705,如果少位或多位发生在错位之后,则转入步骤706;
173.步骤705、对少位或多位的位置进行补位或删位处理,再对三包数据中的该分组数据逐位比较并通过三取二表决后输出,同时对后续组数据进行相应的补位或者删位操作;
174.步骤706、先对错位的位置进行三取二表决处理,再对少位或多位的位置进行补位或删位处理,然后再对三包数据中的该分组数据逐位比较并通过三取二表决后输出,同时对后续组数据进行相应的补位或者删位操作;
175.步骤707、根据3包数据中的扩展分组的后33bits两两比较的结果确定是否仅有1包存在多位或少位现象,如果仅有1包存在多位或少位现象,则转入步骤705;如果有2包或3包存在多位或少位现象,则转入步骤708;
176.步骤708、对三包数据中的该分组数据逐位比较并通过三取二表决后输出,且其后续组数据不做变化进入后续处理环节;
177.步骤709、根据3包数据中的扩展分组的后33bits两两比较的结果确定是否仅有1包存在多位或少位现象,如果仅有1包存在多位或少位现象,则转入步骤710;如果有2包或3包存在多位或少位现象,则转入步骤711;
178.步骤710、检测少位或多位是否发生在错位之前,如果少位或多位是否发生在错位之前,则转入步骤705;如果少位或多位发生在错位之后,则输出异常,不再继续处理;
179.步骤711、检测3包数据是否只有1包数据的总位数为1023,如果只有1包数据的总位数为1023,则转入步骤705;如果有2包或3包数据的总位数为1023,则输出异常,不再继续处理。
180.本公开实施例中,当3包数据中的该分组互不相同时,优先结合扩展该组紧邻的后33bits的三包数据对比情况而定,如果紧邻的后33bits每两组之间不同之处《=2,则将该组进行三取二,进入下一轮处理。如果紧邻的后33bits每两组之间不同之处不满足《=2,则按照下述步骤进行。
181.(a)如果任意2包该分组数据不同之处不超过2处,则将该分组3包数据直接进行三取二作为修正结果输出,后续位流不做调整。
182.(b)如果有2包不同之处《=2,另外1包与这2包不同之处均》2,可视为:有2包仅为错位(总体不超过2bit),另外一包少1bit或者多1bit(程序的入口判决为,有2包不同之处《=2,有1包与另外两包的不同之处》2)。此时,包括以下几种情况:
183.(1)仅有错位的2包,不同之处为1,另外一包少位/多位发生在错位2包的首个不同之处之前
184.(2)仅有错位的2包,不同之处为1,另外一包少位/多位发生在错位2包的首个不同之处之后
185.(3)仅有错位的2包,不同之处为2,另外一包少位/多位发生在错位2包的首个不同之处之前
186.(4)仅有错位的2包,不同之处为2,另外一包少位/多位发生在错位2包的首个不同之处之后,第2个不同之处之前(转换成第1种情况)
187.(5)仅有错位的2包,不同之处为2,另外一包少位/多位发生在错位2包的第2个不同之处之后(转换成第2种情况)
188.上述几种情况处理的方法如下:
189.为方便描述,假定第1包和第2包的不同之处《=2,第3包与第1包和第2包的不同之处均》2。
190.(i)当第3包与该第2包(也可以是第1包)首个不同位置在第1、2包的首个不同位置前,可先对第3包进行增减1bit,观察第3包与第2包(也可以是第1包)的不同之处是否《=2,若是,第3包增减处理,进行3取2处理。若否,则强制3取2输出(此种大概率输出错误结果)。
191.(ii)当第3包与该第2包(也可以是第1包)首个不同位置在第1、2包的首个不同位置后,则先对第1、2包的首个不同之处,3包进行3取2处理,转换为情况i处理。
192.(c)如果有两对的不同之处均《=2,只有一对的不同之处》2,这种情况多属于少位多位发生于本分组靠后的位置,且该位置处多位连续0或者1等。这种情况需要根据紧邻其后的3包33bits的对比情况,识别出多位少位所在包,转换成前述情况(b)(即有2包不同之处《=2,另外1包与这2包不同之处均》2)进行处理。
193.(d)任意2包该分组数据的不同之处均超过2处的,可以处理的情况有如下几种:
194.(1)三者均错位,无多位少位现象(进入本组的优先处理环节,只要错误位置不相同,则可修正为正确的)
195.(2)只有1包为多位或者少位不超过1bit,另两包仅为错位,且错位超过2处,多位或者少位位置在错位之前的情况(需要根据紧邻其后33bits的不同情况,识别多位或者少位包,按照前述情况(b)进行处理,有较大概率处理不成功,错误位数多,则处理后满足不同之处《=2的概率会低)
196.(3)1包无错误,另外2包有多位或少位不超过1bit(根据该分组所在整包的数据位
数,将所在整包数据位数为1023的该分组视为无错误的分组,作为另外两包增减位进行比较的依据)。
197.本实施例中,在第三类中(当3包数据中的该分组互不相同),算法有效场景包括:
198.1、3包数据该分组处仅有错位,3包错位均不在相同位置处,且紧邻其后33bits无少位/多位,可以有错位,但总体不超过2bits。
199.2、任意2包该分组数据不同之处不超过2处,且不存在多位/少位,错位位置互不相同。
200.3、有2包不同之处《=2,另外1包与这2包不同之处均》2,不同之处《=2的2包,均只存在错位,不存在多位少位,且另外1包仅存在1处少位或者多位,且少位多位位置与错位位置不同。
201.4、3包数据的当前分组33bits,满足有两种组合对比不同之处《=2,只有1种组合对比不同》2,这种情况是因为少位多位发生于本分组靠后的位置,且该位置处多位连续0或者1等,易造成补删位置识别错误,存在一定概率修正结果是错误的。
202.5、任意2包不同之处》2,这种情况下,只有1包存在多位或者少位不超过1bit且能根据紧邻其后的33bits识别出来该包;或者有1包正确,另外2包仅存在1bit多位/少位;或者满足场景1的情况,才能一定概率成功
203.本实施例中,在第三类中(当3包数据中的该分组互不相同),算法无效场景包括:
204.(a)针对上述算法有效场景中的第1条,(1)若该分组同时存在多位/少位且个数相同,则无效;(2)紧邻其后的33bits虽满足任意两包不同之处<=2,但其实存在多位/少位(比如在33bits的末端)(3)该分组错误存在相同位置的情况。
205.(b)针对上述算法有效场景中的第1条,(1)任意2包虽满足不同之处《=2,但其实存在多位/少位(比如在33bits的末端有少位/多位);(2)该分组错误存在相同位置的情况。
206.(c)针对上述算法有效场景中的第3条,(1)2包虽满足不同之处《=2,但其实存在多位/少位(比如在33bits的末端有少位/多位)(2)多位/少位不止1bit;(3)多位/少位虽只有bit,但位置与错位位置相同;(4)当错位、少位、多位均发生在当前分组33bits的末端位置时,容易出错。
207.本公开实施例的报文解码方法,针对上述算法有效场景的处理正确率较高。
208.通过使用labview软件对本公开实施例的报文解码方法进行仿真,仿真结果表明,对于现场大量被干扰的无法成功解码的应答器报文位流数据,采用本公开实施例的报文解码方法后,成功解码的概率在85%以上,这表明,本公开的报文解码方法,可有效提高干扰条件下应答器报文被成功解码的概率,减少应答器丢失的故障发生,有利于保证车辆的正常运行。
209.本公开实施例的报文解码方法,是基于现场实际运营数据提出的软件优化方案,完全不必更改现有硬件设计,改造成本低。相关参数可根据实际的故障数据进行调整,以提高软件的性能。由于本方案是根据现场运营故障数据的统计规律提出的,现场故障数据规模越大,该方案所涉及的可调整参数越可被有效优化,所得到的有效性预测越准确。
210.本公开实施例还提供了一种报文解码装置,包括存储器;和连接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如前任一项所述的报文解码方法的步骤。
211.如图8所示,在一个示例中,报文解码装置可包括:处理器810、存储器820、总线系统830和收发器840,其中,该处理器810、该存储器820和该收发器840通过该总线系统830相连,该存储器820用于存储指令,该处理器810用于执行该存储器820存储的指令,以控制该收发器840接收数据位流。具体地,收发器840可在处理器810的控制下接收数据位流,所述数据位流包含多包相同或大致相同的数据报文,所述多包大致相同的数据报文为其中至少一包数据报文存在错位、多位或少位中的至少一种传输错误导致,处理器810对接收的数据位流进行分段,每段数据位流的范围为n
±
n位,n为每包数据报文的位数,n为预设查找阈值,n为大于0的整数;处理器810对每段数据位流进行分组,对多段数据位流中的对应组数据和所述对应组数据的下一组数据逐个进行比较,根据比较结果对所述对应组数据进行修正并对所述对应组数据的后续组数据进行处理。
212.应理解,处理器810可以是中央处理单元(central processing unit,cpu),处理器810还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
213.存储器820可以包括只读存储器和随机存取存储器,并向处理器810提供指令和数据。存储器820的一部分还可以包括非易失性随机存取存储器。例如,存储器820还可以存储设备类型的信息。
214.总线系统830除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图8中将各种总线都标为总线系统830。
215.在实现过程中,处理设备所执行的处理可以通过处理器810中的硬件的集成逻辑电路或者软件形式的指令完成。即本公开实施例的方法步骤可以体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等存储介质中。该存储介质位于存储器820,处理器810读取存储器820中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
216.本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有可执行指令,该可执行指令被处理器执行时可以实现本公开上述任一实施例提供的报文解码方法,该报文解码方法可以接收数据位流,所述数据位流包含多包相同或大致相同的数据报文,所述多包大致相同的数据报文为其中至少一包数据报文存在错位、多位或少位中的至少一种传输错误导致;对接收的数据位流进行分段,每段数据位流的范围为n
±
n位,n为每包数据报文的位数,n为预设查找阈值,n为大于0的整数;对每段数据位流进行分组,对多段数据位流中的对应组数据和所述对应组数据的下一组数据逐个进行比较,根据比较结果对所述对应组数据进行修正并对所述对应组数据的后续组数据进行处理,从而大大提高了干扰条件下的应答器信息传输单元的解码性能,减少了丢失应答器的概率控。通过执行可执行指令驱动报文解码装置进行报文解码的方法与本公开上述实施例提供的报文解码方法基本相同,在此不做赘述。
217.本公开实施例提供的报文解码方法及装置、计算机可读存储介质,通过对接收的数据位流进行分段,再对每段数据位流进行分组,对多段数据位流中的对应组数据和所述对应组数据的下一组数据逐个进行比较,根据比较结果对所述对应组数据进行修正并对所
述对应组数据的后续组数据进行处理,大大提高了干扰条件下的btm解码性能,减少了丢失应答器的概率。
218.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
219.虽然本公开所揭露的实施方式如上,但所述的内容仅为便于理解本公开而采用的实施方式,并非用以限定本公开。任何本公开所属领域内的技术人员,在不脱离本公开所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本公开的保护范围,仍须以所附的权利要求书所界定的范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献