发明内容
本发明的目的是提供一种总线信号协议解码方法,可以使得测量分析仪器能够在未知总线协议种类和属性参数的情况下,对总线数据进行解码,同时解决协议解析模块移植困难的问题。
为解决上述技术问题,本发明提供了如下技术方案:
一种总线信号协议解码方法,包括:
预先构建信号时序处理模型库和协议处理模型库;
获取待解码的电气信号;
提取所述电气信号的原始数据的时序特征点;
根据所述电气信号的各所述时序特征点,匹配所述信号时序处理模型库中的对应信号时序处理模型;
根据所述信号时序处理模型将所述电气信号转化为对应的低层协议帧包数据;
提取所述低层协议帧包数据的数据特征点;
根据所述低层协议帧包数据的数据特征点,匹配所述协议处理模型库中的对应协议处理模型;
根据所述协议处理模型将所述低层协议帧包数据转化为对应的高层协议帧数据。
优选地,所述预先构建信号时序处理模型库和协议处理模型库,包括:
预先构建信号时序识别模型库和信号时序解析模型库,并根据所述信号时序识别模型库和信号时序解析模型库构建信号时序处理模型库;
预先构建高层协议识别模型库和高层协议解析模型库,并根据所述高层协议识别模型库和高层协议解析模型库构建协议处理模型库。
优选地,所述预先构建信号时序识别模型库和信号时序解析模型库,并根据所述信号时序识别模型库和信号时序解析模型库构建信号时序处理模型库,包括:
预先获取样本信号的第一协议分类标识和第一协议解析标识,其中,所述第一协议分类标识包括该样本信号的协议类型和协议属性,所述第一协议解析标识包括该样本信号的帧包格式信息和协议语义信息;
提取所述样本信号的时序特征点;
建立所述时序特征点和所述第一协议分类标识的映射,构建信号时序识别模型,根据各所述信号时序识别模型构建信号时序识别模型库;
建立所述时序特征点和所述第一协议解析标识的映射,构建信号时序解析模型,根据各所述信号时序解析模型构建信号时序解析模型库;
根据所述信号时序识别模型库和所述信号时序解析模型库构建信号时序处理模型库。
优选地,所述预先构建高层协议识别模型库和高层协议解析模型库,并根据所述高层协议识别模型库和高层协议解析模型库构建协议处理模型库,包括:
预先获取低层样本协议数据以及该低层样本协议数据对应的高层协议的第二协议分类标识和第二协议解析标识,其中,所述低层样本协议数据包括低层样本协议帧包数据、该低层协议的协议类型和协议属性参数,所述高层协议的第二协议分类标识包括该高层协议的协议类型和协议属性参数,所述高层协议的第二协议解析标识包括该高层协议的帧包格式信号和协议语义信息;
提取所述低层样本协议数据的数据特征点;
建立所述数据特征点和所述第二协议分类标识的映射,构建高层协议识别模型,根据各所述高层协议识别模型构建高层协议识别模型库;
建立所述数据特征点和所述第二协议解析标识的映射,构建高层协议解析模型,根据各所述高层协议解析模型构建高层协议解析模型库;
根据所述高层协议识别模型库和所述高层协议解析模型库构建协议处理模型库。
优选地,所述根据所述电气信号的各所述时序特征点,匹配所述信号时序处理模型库中的对应信号时序处理模型,包括:
将提取的所述电气信号的时序特征点和所述信号时序处理模型库中的各所述信号时序处理模型的时序特征点进行匹配;
判断所述信号时序处理模型库中是否有与所述电气信号匹配成功的信号时序处理模型;
若是,则将所有匹配成功的信号时序处理模型加入到集合M1;
若否,则判定无法识别当前的电气信号,并停止对该电气信号的协议解码。
优选地,所述根据所述信号时序处理模型将所述电气信号转化为对应的低层协议帧包数据,包括:
根据所述集合M1中的各信号时序处理模型,分别对所述电气信号进行时序分析和帧包格式解析,获取对应的协议包;
建立与所述集合M1中的各所述信号时序处理模型对应的协议包列表集合;
将各所述信号时序处理模型对应处理获取的协议包加入到该信号时序处理模型对应的协议包列表集合中。
优选地,所述提取所述低层协议帧包数据的数据特征点,包括:
提取各所述协议包列表集合的数据特征点。
优选地,所述根据所述低层协议帧包数据的数据特征点,匹配所述协议处理模型库中的对应协议处理模型,包括:
将各所述协议包列表集合的数据特征点分别和所述协议处理模型库中的各协议处理模型的数据特征点进行匹配;
判断所述协议处理模型库中是否存在与当前协议包列表集合匹配成功的协议处理模型;
若是,则将与当前协议包列表集合匹配成功的所有协议处理模型加入到集合M2.i中,其中,i表示当前被匹配的协议包列表集合的身份代码;
若否,则判定无法识别当前协议包列表集合的高层协议。
优选地,所述根据所述协议处理模型将所述低层协议帧包数据转化为对应的高层协议帧数据,包括:
根据所述集合M2.i中的各协议处理模型,分别对对应的协议包列表集合进行解析运算,获取该协议包列表集合的上一层级的协议包列表对象;
建立高层协议解析输出结果集和临时输出结果集;
将获取的各所述协议包列表集合的上一层级的协议包列表对象分别加入到所述输出结果集和所述临时输出结果集;
对所述临时输出结果集中的协议包列表对象进行逐次更上一层级的协议解析处理,直至协议语义解析执行完毕。
与现有技术相比,上述技术方案具有以下优点:
本发明实施例所提供的一种总线信号协议解码方法,可以预先建立信号时序处理模型库和协议处理模型库,当获取一个总线上的电气信号时,只需提取该电气信号的对应特征点,以匹配对应的信号时序处理模型,由该信号时序处理模型来对该电气信号进行初步识别和解析处理,将其转化为对应的低层协议帧包数据,然后匹配对应的协议处理模型,通过该协议处理模型对该低层协议帧包数据进行更高层级的识别解析,以进一步地获取该电气信号的更为高级的协议语义。在未知总线协议种类和属性参数的情况下,即可对总线上的电气信号进行识别和解析,完成协议解码,由于建立了识别分析数据库,所有协议的特性以数据的形式存在,极大地简化了不同产品间协议分析功能的移植工作。
具体实施方式
本发明的核心是提供一种总线信号协议解码方法,可以使得测量分析仪器能够在未知总线协议种类和属性参数的情况下,对总线数据进行解码,同时解决协议解析模块移植困难的问题。
为了使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式的限制。
请参考图1,图1为本发明一种具体实施方式所提供的总线信号协议解码方法流程图。
本发明的一种具体实施方式提供了一种总线信号协议解码方法,包括:
S11:预先构建信号时序处理模型库和协议处理模型库。
在本实施方式中,可以对测量分析仪进行学习训练,建立大量不同协议对应的信号时序处理模型和协议处理模型,从而构建信号时序处理模型库和协议处理模型库。
S12:获取待解码的电气信号。
采集总线上的电气信号,该电气信号可以是模拟信号也可以是数字信号。
S13:提取电气信号的原始数据的时序特征点。
S14:根据电气信号的各时序特征点,匹配信号时序处理模型库中的对应信号时序处理模型。
由于当前获取的待解码的电气信号所属的协议类型和协议属性参数可能是未知的。因此,为了实现对电气信号的解码,首先找出可以对电气信号进行解码处理的模型。提取电气信号的时序特征点以找寻出和该电气信号具有匹配特性的信号时序处理模型。
S15:根据信号时序处理模型将电气信号转化为对应的低层协议帧包数据。
通过匹配出的信号时序处理模型对电气信号进行低层级的协议识别和解析,得到一系列符合解析出的当前低层级的协议规范的协议包,即低层协议帧包数据。
S16:提取低层协议帧包数据的数据特征点。
由于通常情况下,在实际环境中,使用的往往是高层的应用协议,只是解析出处于底层的低层协议帧包数据无法满足人们的分析需求,很多的协议都具有更高层的应用协议,因此,为了准确判断采集到的电气信号所属的协议类型,还需要继续向上层进行解析。而想要实现更高层级的解析,就需要采用符合更高级协议的协议处理模型来进行处理分析。因此,在本实施方式中还需要提取低层协议帧包数据的数据特征点。
S17:根据低层协议帧包数据的数据特征点,匹配协议处理模型库中的对应协议处理模型。
由于当前低层协议帧包数据所属的更高层级的协议的协议类型和协议属性参数也是未知的。因此,根据提取出的低层协议帧包数据的数据特征点以找寻出和该低层协议帧包数据具有匹配特性的协议处理模型。
S18:根据协议处理模型将低层协议帧包数据转化为对应的高层协议帧数据。
通过匹配出的协议处理模型对对应的低层协议帧包数据进行更高层级的协议的识别和解析,得到对应的高层协议帧数据。
在本实施方式中,可以预先建立信号时序处理模型库和协议处理模型库,当获取一个总线上的电气信号时,只需提取该电气信号的对应特征点,以匹配对应的信号时序处理模型,由该信号时序处理模型来对该电气信号进行初步识别和解析处理,将其转化为对应的低层协议帧包数据,然后匹配对应的协议处理模型,通过该协议处理模型对该低层协议帧包数据进行更高层级的识别解析,以进一步地获取该电气信号的更为高级的协议语义。在未知总线协议种类和属性参数的情况下,即可对总线上的电气信号进行识别和解析,完成协议解码,由于建立了识别分析数据库,所有协议的特性以数据的形式存在,极大地简化了不同产品间协议分析功能的移植工作。
在本发明的一种实施方式中,预先构建信号时序处理模型库和协议处理模型库。其中,预先构建信号时序处理模型库包括:预先构建信号时序识别模型库和信号时序解析模型库,并根据信号时序识别模型库和信号时序解析模型库构建信号时序处理模型库。
在本实施方式中,构建信号时序处理模型库的过程即信号时序处理学习的过程。该过程包括:
预先获取学习用的样本信号,预先获取该样本信号的第一协议分类标识和第一协议解析标识,其中,第一协议分类标识包括该样本信号的协议类型和协议属性参数等信息,第一协议解析标识包括该样本信号的帧包格式信息和协议语义信息等。
对样本信号的电平信号数据进行运算,以提取样本信号的时序特征点。
建立时序特征点和第一协议分类标识的关联映射,构建信号时序识别模型,根据不同的样本信号即可构建不同的信号时序识别模型。
根据各信号时序识别模型构建信号时序识别模型库。
建立时序特征点和第一协议解析标识的关联映射,构建信号时序解析模型,同样的,根据不同的样本信号即可构建不同的信号时序解析模型。
根据各信号时序解析模型构建信号时序解析模型库。
根据信号时序识别模型库和信号时序解析模型库构建信号时序处理模型库,其中,同一样本信号建立了相互关联的对应信号时序识别模型和信号时序解析模型,在建立信号时序处理模型库时即将同一样本信号的信号时序识别模型和信号时序解析模型进行关联,构建信号时序处理模型,即一个信号时序处理模型包括该信号时序处理模型对应的样本信号的信号时序识别模型和信号时序解析模型。
上述过程可以全部采用“机器学习”中的“有监督学习”策略,使用大量的样本信号来进行训练,建立一套描述精准、鲁棒性强的信号时序处理模型库。
进一步地,预先构建协议处理模型库包括:预先构建高层协议识别模型库和高层协议解析模型库,并根据高层协议识别模型库和高层协议解析模型库构建协议处理模型库。
在本实施方式中,构建协议处理模型库的过程即高层协议处理学习的过程。该过程包括:
预先获取低层样本协议数据以及该低层样本协议数据对应的高层协议的第二协议分类标识和第二协议解析标识,其中,低层样本协议数据包括低层样本协议帧包数据、该低层协议的协议类型和协议属性参数,高层协议的第二协议分类标识包括该高层协议的协议类型和协议属性参数等信息,高层协议的第二协议解析标识包括该高层协议的帧包格式信号和协议语义信息等。
通过对低层样本协议数据进行运算,提取低层样本协议数据的数据特征点。
建立数据特征点和第二协议分类标识的关联映射,构建高层协议识别模型,根据各高层协议识别模型构建高层协议识别模型库。
建立数据特征点和第二协议解析标识的关联映射,构建高层协议解析模型,根据各高层协议解析模型构建高层协议解析模型库。
根据高层协议识别模型库和高层协议解析模型库构建协议处理模型库,该协议处理模型库中包括与各低层样本协议数据一一对应的协议处理模型,而各协议处理模型包括与自身对应的低层样本协议数据对应的高层协议识别模型和高层协议解析模型。
上述过程可以全部采用“机器学习”中的“有监督学习”策略,使用大量的低层样本协议数据来进行训练,建立一套描述精准、鲁棒性强的协议处理模型库。
需要说明的是,在本文中,所谓的低层协议和高层协议是相对而言的,高层协议相对于低层协议的层级高。
在本发明的一种实施方式中,对电气信号的时序处理工作过程进行了详细说明。
根据电气信号的各时序特征点,匹配信号时序处理模型库中的对应信号时序处理模型,包括:将提取的电气信号的时序特征点和信号时序处理模型库中的各信号时序处理模型的时序特征点进行匹配;判断信号时序处理模型库中是否有与电气信号匹配成功的信号时序处理模型;若是,则将所有匹配成功的信号时序处理模型加入到集合M1;若否,则判定无法识别当前的电气信号,并停止对该电气信号的协议解码,即若未找到匹配成功的信号时序处理模型,即集合M1为空时,表面此时无法识别电气信号,直接跳出解析流程,不再进行后续处理。
根据信号时序处理模型将电气信号转化为对应的低层协议帧包数据,包括:根据集合M1中的各信号时序处理模型,分别对电气信号进行时序分析和帧包格式解析,获取对应的协议包;建立与集合M1中的各信号时序处理模型对应的协议包列表集合;将各信号时序处理模型对应处理获取的协议包加入到该信号时序处理模型对应的协议包列表集合中。
在实际应用中,从集合M1中取出一个信号时序处理模型TSMi(i∈[1,k],k为集合M1包含的元素个数),使用TSMi对输入的电气信号进行时序分析与帧包解析,以得到一系列的符合协议规则的协议包,将当前TSMi处理获得的所有协议包加入到该TSMi对应的协议包列表集合中。包(Packet,表示为Pkt)是一种数据结构,由一系列的帧(Frame,表示为F)构成,“帧”是协议中最小的结构单位,由一段数据位构成,即Pkt={F1,F2,……,Fn},表示一个包包括n个帧。则协议包列表集合用P表示,则电气信号按照一个信号时序处理模型得到的协议包列表集合P={Pkt1,Pkt2,……,Pktn’},其中n’代表电气信号数据解析后得到的协议包(Pkt)总数。重复上述操作,从集合M1中选取其他信号时序处理模型对电气信号进行处理,直至M1中的所有元素取完,此时信号时序处理操作完成,将各协议包列表集合加入到列表总集合R1中,则有R1={P1,P2,……,Pk},k为M1中包含元素的个数。
在实际工作中,一些协议具有相同的信号时序特征,但是帧包格式与协议语义完全不同,以应用在音频领域的协议I2S和TDM为例,他们的电气信号时序就十分的相似,在某些情况下甚至是完全一样,此时无法单纯的依据电气信号的时序特征判断出该信号所属的协议类型。因此,输入一个电气信号会得到多个输出结果,将所有可能选项同时返回给用户,由用户评判所使用的协议类型。
进一步地,本发明一种实施方式对电气信号的高层协议处理工作过程进行了详细说明。
在获取了电气信号的低层协议帧包数据后,提取低层协议帧包数据的数据特征点,包括:提取各协议包列表集合的数据特征点。
其中,根据低层协议帧包数据的数据特征点,匹配协议处理模型库中的对应协议处理模型,包括:将各协议包列表集合的数据特征点分别和协议处理模型库中的各协议处理模型的数据特征点进行匹配;判断协议处理模型库中是否存在与当前协议包列表集合匹配成功的协议处理模型;若是,则将与当前协议包列表集合匹配成功的所有协议处理模型加入到集合M2.i中,其中,i表示当前被匹配的协议包列表集合的身份代码,即当前被匹配的协议包列表集合在列表总集合R1中的索引值;若否,则判定无法识别当前协议包列表集合的高层协议。
根据协议处理模型将低层协议帧包数据转化为对应的高层协议帧数据,包括:根据集合M2.i中的各协议处理模型,分别对对应的协议包列表集合进行解析运算,获取该协议包列表集合的上一层级的协议包列表对象;建立高层协议解析输出结果集和临时输出结果集;将获取的各协议包列表集合的上一层级的协议包列表对象分别加入到输出结果集和临时输出结果集;对临时输出结果集中的协议包列表对象进行逐次更上一层级的协议解析处理,直至协议语义解析执行完毕。
具体的高层协议处理工作流程如下:
步骤1:上述实施方式以列表总集合R1的方式获取了电气信号的低层协议帧包数据。从上述的列表总集合R1中取出一个协议包列表集合对象Pi(i∈[1,k],k为集合R1包含的元素个数)。
步骤2:提取该协议列表集合Pi的数据特征点,根据该数据特征点来匹配和该协议列表集合Pi匹配的协议处理模型,将所有匹配到的协议处理模型加入到集合M2.i中。若未找到与当前Pi匹配成功的协议处理模型,即集合M2.i为空时,表示识别不到当前Pi的高层协议,直接跳至步骤5。
步骤3:从匹配成功的集合M2.i中,取出一个协议处理模型HPMj(j∈[1,k’],k’为集合M2.i包含的元素个数),使用HPMj对对应的低层协议帧包列表对象进行运算,得到该低层协议帧包列表的上一层级的协议帧包列表。将解析出的该上一层级的协议帧包列表加入到输出结果集R2和临时输出结果集R2’,其中,R2’中保存的协议帧包列表将用于更高一层级的协议解析。
步骤4:从集合M2.i中取出下一个HPM,重新执行步骤3的操作,直至集合M2.i中的元素被取完。
步骤5:从集合R1中取出下一个协议包列表集合对象,针对该协议包列表集合对象执行步骤2至步骤5的操作。期间解析出的所有高层协议帧包列表都被加入到输出结果集R2和临时输出结果集R2’中,直至集合R1中的元素被取完。
步骤6:若此时集合R2’为空,则执行步骤7。否则,清空集合R1,将R2’中保存的之前解析出的高层协议包列表对象全部移动至R1中,并清空R2’,再重新执行步骤1至步骤5。
步骤7:此时高层协议语义解析操作已执行完毕。如果输出结果集R2非空则直接将R2输出,否则,直接输出R1。
在本实施方式中,通过上述的各步骤,可以解析出电气信号的所属协议的最高层协议,但是考虑到用户可能同时需要分析中间层的应用协议,因此,可以将解析出的所有有效中间结果同时进行输出,以供用户查看调用。
需要说明的是,在本文中既可以如上述实施方式中采用先调取一个HPM进行分析处理,然后逐次调取其他的HPM进行分析处理的方式;也可以采用同时调取全部的HPM对对应的低层协议帧包数据进行分析处理的方式,只是后者需要更高的计算处理性能的硬件。
综上所述,本发明所提供的总线信号协议解码方法,可以通过学习的方式预先建立信号时序处理模型库和协议处理模型库,当获取一个总线上的电气信号时,提取该电气信号的对应特征点,以匹配对应的信号时序处理模型,由该信号时序处理模型来对该电气信号进行初步识别和解析处理,将其转化为对应的低层协议帧包数据,然后匹配对应的协议处理模型,通过该协议处理模型对该低层协议帧包数据进行更高层级的识别解析,以进一步地获取该电气信号的更为高级的协议语义。
此外,可以根据实际需要进行阶段性训练,不断完善上述的信号时序处理模型库和协议处理模型库,逐步增加支持协议的数目。
在未知总线协议种类和属性参数的情况下,即可对总线上的电气信号进行识别和解析,完成协议解码,由于建立了识别分析数据库,所有协议的特性以数据的形式存在,极大地简化了不同产品间协议分析功能的移植工作。
以上对本发明所提供的一种总线信号协议解码方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。