一种嵌入式系统高速互联规范协议解析方法及系统的利记博彩app

文档序号:7987451阅读:238来源:国知局
一种嵌入式系统高速互联规范协议解析方法及系统的利记博彩app
【专利摘要】本发明公开了一种嵌入式系统高速互联规范协议解析方法及系统,克服目前完全通过软件解析RapidIO原始报文效率低下的不足,该方法包括:对串行RapidIO采集接口卡采集到的原始报文以及接口卡附加信息进行封装,获得封装报文并传递给应用程序;在应用程序收到封装报文后,为封装报文分配一个数据结构记录原始报文以及接口卡附加信息;根据接口卡附加信息解析出原始报文的时间及顺序信息;根据接口卡附加信息解析出原始报文的协议字段;根据接口卡附加信息及原始报文中字段值判断原始报文是否包含载荷数据,并在判断出所述原始报文包含载荷数据时解析出载荷数据。本发明可快速高效地解析种类繁多、长度可变的RapidIO报文。
【专利说明】一种嵌入式系统高速互联规范协议解析方法及系统
【技术领域】
[0001]本发明涉及嵌入式系统高速互联规范(RapidIO)技术,尤其涉及一种嵌入式系统高速互联规范协议解析方法及系统。
【背景技术】
[0002]嵌入式系统高速互联规范(RapidIO)主要应用于嵌入式系统芯片和板间互联,具有协议灵活高效、便于硬件处理、打包效率高、支持多种拓扑结构和传输模式、支持极高传输速率等优点。但其报文种类繁多、长度可变,不同种类报文具有不同的协议字段,完全通过软件解析原始报文是一件极其复杂和困难的事,耗时长,效率低下。

【发明内容】

[0003]本发明所要解决的技术问题是克服目前完全通过软件解析RapidIO原始报文效率低下的不足。
[0004]为了解决上述技术问题,本申请提供了一种嵌入式系统高速互联规范(RapidIO)协议解析方法,包括:
[0005]对串行RapidIO采集接口卡采集到的原始报文以及接口卡附加信息进行封装,获得封装报文并传递给应用程序;所述接口卡附加信息包括所述原始报文的报文类型、输入端口信息、错误信息以及封装所述原始报文时的时间戳;
[0006]在所述应用程序收到所述封装报文后,为所述封装报文分配一个数据结构记录所述原始报文以及所述接口卡附加信息;
[0007]根据所述接口卡附加信息解析出所述原始报文的时间及顺序信息;
[0008]根据所述接口卡附加信息解析出所述原始报文的协议字段;
[0009]根据所述接口卡附加信息以及所述原始报文中字段值判断所述原始报文是否包含载荷数据,并在判断出所述原始报文包含所述载荷数据时解析出所述载荷数据。
[0010]优选地,对串行RapidIO采集接口卡采集到的原始报文以及接口卡附加信息进行封装,获得封装报文,包括:
[0011]对于控制报文,所述封转报文总长为16字节,所述封转报文的第I字节为所述报文类型,第2字节为所述错误信息,第3字节为所述输入端口信息,第4-7字节为原始报文内容,第8-15字节为所述时间戳;
[0012]对于数据报文,所述封转报文的第I字节为所述报文类型,第2字节为所述错误信息,第3字节为所述输入端口信息,第6个、第7个字节为报文总长度信息,第8-15字节为所述时间戳,从第32字节开始为原始报文内容。
[0013]优选地,根据所述接口卡附加信息解析出所述原始报文的时间及顺序信息,包括:
[0014]根据所述时间戳解析出所述原始报文与本次采集第一个原始报文的相对时间、与本次采集上一个原始报文的相对时间、参照所述应用程序本地时间的绝对时间,以及所述应用程序记录的从本次采集开始递增的报文序号。
[0015]优选地,根据所述接口卡附加信息解析出所述原始报文的协议字段,包括:
[0016]根据所述原始报文的报文类型以及所述原始报文的标识位宽字段值解析出所述原始报文的协议字段。
[0017]优选地,根据所述接口卡附加信息以及所述原始报文中字段值判断所述原始报文是否包含载荷数据以及在包含所述载荷数据时解析出所述载荷数据,包括:
[0018]根据所述原始报文的文件类型以及事务类型字段的值,判断出所述原始报文是否包含所述载荷数据;在所述原始报文包含所述载荷数据时,将所述协议字段及循环冗余校验码之间的内容解析为所述载荷数据。
[0019]本申请还提供了一种嵌入式系统高速互联规范(RapidIO)协议解析系统,包括:
[0020]封装模块,设置为对串行RapidIO采集接口卡采集到的原始报文以及接口卡附加信息进行封装,获得封装报文并传递给应用程序;所述接口卡附加信息包括所述原始报文的报文类型、输入端口信息、错误信息以及封装所述原始报文时的时间戳;
[0021]分配模块,设置为在所述应用程序收到所述封装报文后,为所述封装报文分配一个数据结构记录所述原始报文以及所述接口卡附加信息;
[0022]第一解析模块,设置为根据所述接口卡附加信息解析出所述原始报文的时间及顺
序信息;
[0023]第二解析模块,设置为根据所述接口卡附加信息解析出所述原始报文的协议字段;
[0024]第三解析模块,设置为根据所述接口卡附加信息以及所述原始报文中字段值判断所述原始报文是否包含载荷数据,并在判断出原始报文包含所述载荷数据时解析出所述载荷数据。
[0025]优选地,所述封装模块配置为对于控制报文,所述封转报文总长为16字节,所述封转报文的第I字节为所述报文类型,第2字节为所述错误信息,第3字节为所述输入端口信息,第4-7字节为原始报文内容,第8-15字节为所述时间戳;并配置为对于数据报文,所述封转报文的第I字节为所述报文类型,第2字节为所述错误信息,第3字节为所述输入端口信息,第6个、第7个字节为报文总长度信息,第8-15字节为所述时间戳,从第32字节开始为原始报文内容。
[0026]优选地,所述第一解析模块配置为根据所述时间戳解析出所述原始报文与本次采集第一个原始报文的相对时间、与本次采集上一个原始报文的相对时间、参照所述应用程序本地时间的绝对时间,以及所述应用程序记录的从本次采集开始递增的报文序号。
[0027]优选地,所述第二解析模块配置为根据所述原始报文的报文类型以及所述原始报文的标识位宽字段值解析出所述原始报文的协议字段。
[0028]优选地,所述第三解析模块包括第一判断单元、第二判断单元以及解析单元,其中:
[0029]所述第一判断单元配置为根据所述原始报文的报文类型判断所述原始报文是否为数据报文;
[0030]所述第二判断单元配置为在所述第一判断单元判断出所述原始报文为数据报文时,根据所述原始报文的文件类型以及事务类型字段的值,判断所述原始报文是否包含所述载荷数据;
[0031]所述解析单元配置为在所述判断单元判断出所述原始报文包含所述载荷数据时,将所述协议字段及循环冗余校验码之间的内容解析为所述载荷数据。
[0032]与现有技术相比,本申请的实施例可以快速高效地解析种类繁多、长度可变的RapidIO报文,克服了目前完全通过软件解析RapidIO原始报文效率低下的不足。
[0033]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
【专利附图】

【附图说明】
[0034]附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
[0035]图1为RapidIO数据报文结构示意图。
[0036]图2为控制报文除头部特殊编码字节外另外3字节的定义示意图。
[0037]图3为本申请实施例的嵌入式系统高速互联规范协议解析方法的流程示意图。
[0038]图4为本申请实施例Ftype为5的报文确定载荷数据位置的示意图。
[0039]图5为本申请实施例的嵌入式系统高速互联规范协议解析系统的流程示意图。
【具体实施方式】
[0040]以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。本发明实施例以及实施例中的各个特征在不相冲突前提下的相互结合,均在本发明的保护范围之内。
[0041]另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0042]与OSI互联模型类似,RapidIO也采用分层定义。
[0043]RapidIO协议分为三层:逻辑层、传输层和物理层。逻辑层定义了操作协议和包格式,传输层定义了包交换、路由和寻址机制,物理层定义了电气特性、链路控制和纠错重传
坐寸ο
[0044]像以太网一样,RapidIO也是基于包交换的互连技术。不同于以太网的是,其报文分为数据报文和控制报文,各种类型数据报文长度不定,而控制报文固定为4个字节,其可位于数据报文头部、尾部以及中间(称为带内),也可独立存在(称为带外)。
[0045]如图1所示,RapidIO数据报文主要由包头、可选的载荷数据和16位循环冗余校验码(CRC)组成。包头的长度因为报文类型不同可能是十几到二十几个字节。每个数据报文的载荷数据长度不超过256字节,这有利于减少传输时延,简化硬件实现。图中的结构加上头部、尾部各4字节的带内控制报文,组成了一个完整的链路传输帧结构。
[0046]控制报文也称为系统控制符号,其首个接收的字节以特殊编码(lc、7c)表示,用于标识数据包的开始、结束及用于流控、表示链路状态等。[0047]图2显示了控制报文除头部特殊编码字节外另外3字节的定义,其接收位顺序自左向右,依次分为 stypeO、parameterO、parameterl、stypel、cmd 以及 CRC 字段。
[0048]数据报文物理层、传输层以及逻辑层,每层都包括若干协议字段。有些报文类型还包括应用数据。数据报文整个帧结构还包括帧头、帧尾各4字节的标识(均属于一种带内控制报文)。鉴于几方面原因,数据报文长度不固定,部分协议字段及应用数据在整个报文中的位置也可变。
[0049]对于物理层:从报文头部开始依次为响应ID(AckID)、保留位(Reserved)、关键请求流(CRF)以及优先权(Priority)字段,这些字段在报文中位置固定。CRC为校验字段,位于报文尾部,在报文中位置不固定。
[0050]对于传输层:tt字段在报文中位置固定,其值为O或1,指示目标器件ID (destinationID)、源器件ID (sourceID)在报文中各占8位或16位,由此决定了destinationID、sourceID字段在报文中宽度、位置可变。
[0051]对于逻辑层=Ftype字段指示事务格式类型,其在报文中位置固定。Ftype字段是数据报文逻辑层包括的一种字段,所有数据报文都有,其在所有数据报文中位置相同,均占用整个帧结构按接收顺序第6个字节低4位(接收首个字节为第I个字节)。因tt字段的影响,位于destinationID、sourceID字段后面的逻辑层其他所有字段在报文中位置可变。除Ftype外,逻辑层所有其他字段只在一部分Ftype类型报文中存在,如Ftype等于2、5、13、8的报文才有事务类型(Ttype)字段,而其中Ftype等于2、5的报文才有事务数据长度编码(rd/wrsize)、源事务 ID(srcTID)、扩展地址(extended addr)、基地址(Address)、字指针(wdptr)、扩展地址最高位(xamsbs)字段。而extended addr字段视现场情况可能为O或16或32位宽,由此决定了位于其后的Address、wdptr、xamsbs字段位置的变化。
[0052]如图3所示,本申请实施例的嵌入式系统高速互联规范(RapidIO)协议解析方法,主要包括如下内容。
[0053]S310,在串行Rap i d IO采集接口卡与应用程序之间,对串行Rap i d IO采集接口卡采集到的原始报文以及接口卡附加信息进行封装,获得封装报文传递给应用程序。其中接口卡附加信息包括原始报文的报文类型、输入端口信息、错误信息以及封装原始报文时的时间戮等等。
[0054]S320,在应用程序收到封装报文后,为封装报文分配一个数据结构。
[0055]S330,利用数据结构记录原始报文以及接口卡附加信息。
[0056]S340,根据接口卡附加信息解析出原始报文的时间及顺序信息并记录到数据结构中。
[0057]S350,根据接口卡附加信息解析出原始报文的协议字段。
[0058]S360,根据接口卡附加信息以及原始报文中字段值判断原始报文是否包含载荷数据,并在判断出原始报文包含载荷数据时解析出载荷数据。
[0059]本申请的实施例中,原始报文的时间及顺序信息主要包括根据时间戳解析得到的S310中所封装的原始报文与本次采集第一个原始报文的相对时间、与本次采集上一个原始报文的相对时间、参照应用程序本地时间的绝对时间,以及应用程序记录的原始报文从本次采集开始递增的报文序号。
[0060]本申请的实施例中,根据原始报文的报文类型及原始报文中的标识(id)位宽字段值解析出原始报文的协议字段。
[0061]本申请的实施例中,根据原始报文的报文类型判断原始报文是否为数据报文;在判断出原始报文为数据报文时,根据原始报文的文件类型以及事务类型字段的值,确定原始报文是否包含载荷数据;在原始报文包含载荷数据时,将协议字段及循环冗余校验码之间的内容解析为载荷数据。
[0062]RapidIO协议解析可应用在在线分析、协议测试、故障注入等一系列应用系统中,这些系统硬件上均要求至少一块串行RapidIO采集接口卡。该接口卡可提供2个以上RapidIO串行链路接口,采用输入端口信息来进行区分,用于连接被测RapidIO设备,其可以检测到任一输入链路上的RapidIO报文,并通过定义好的接口将报文发送给应用程序,协议解析即可对其进行进一步处理。
[0063]报文类型、错误信息由采集接口卡解析原始报文得到,输入端口信息标识报文由接口卡哪个端口输入。其中,时间戳为相对值,可取开机以来某个时钟连续计数。
[0064]对数据报文,包括包头各协议层、可能包含的载荷数据、CRC校验及头、尾各4字节带内控制结构。对独立的带外控制报文,包括头部的“1C”字节共4字节。
[0065]该内部接口要求接口卡在收到报文后经由驱动程序向应用程序发送前再进行如下形式的封装。
[0066]控制报文
【权利要求】
1.一种嵌入式系统高速互联规范(RapidIO)协议解析方法,包括: 对串行RapidIO采集接口卡采集到的原始报文以及接口卡附加信息进行封装,获得封装报文并传递给应用程序;所述接口卡附加信息包括所述原始报文的报文类型、输入端口信息、错误信息以及封装所述原始报文时的时间戳; 在所述应用程序收到所述封装报文后,为所述封装报文分配一个数据结构记录所述原始报文以及所述接口卡附加信息; 根据所述接口卡附加信息解析出所述原始报文的时间及顺序信息; 根据所述接口卡附加信息解析出所述原始报文的协议字段; 根据所述接口卡附加信息以及所述原始报文中字段值判断所述原始报文是否包含载荷数据,并在判断出所述原始报文包含所述载荷数据时解析出所述载荷数据。
2.根据权利要求1所述的方法,其中,对串行RapidIO采集接口卡采集到的原始报文以及接口卡附加信息进行封装,获得封装报文,包括: 对于控制报文,所述封转报文总长为16字节,所述封转报文的第I字节为所述报文类型,第2字节为所述错误信息,第3字节为所述输入端口信息,第4-7字节为原始报文内容,第8-15字节为所述时间戳; 对于数据报文,所述封转报文的第I字节为所述报文类型,第2字节为所述错误信息,第3字节为所述输入端口信息,第6个、第7个字节为报文总长度信息,第8-15字节为所述时间戳,从第32字节开始为原始报文内容。
3.根据权利要求1所述的方法,其中,根据所述接口卡附加信息解析出所述原始报文的时间及顺序信息,包括:` 根据所述时间戳解析出所述原始报文与本次采集第一个原始报文的相对时间、与本次采集上一个原始报文的相对时间、参照所述应用程序本地时间的绝对时间,以及所述应用程序记录的从本次采集开始递增的报文序号。
4.根据权利要求1所述的方法,其中,根据所述接口卡附加信息解析出所述原始报文的协议字段,包括: 根据所述原始报文的报文类型以及所述原始报文的标识位宽字段值解析出所述原始报文的协议字段。
5.根据权利要求1所述的方法,其中,根据所述接口卡附加信息以及所述原始报文中字段值判断所述原始报文是否包含载荷数据,并在判断出所述原始报文包含所述载荷数据时解析出所述载荷数据,包括: 根据所述原始报文的报文类型判断所述原始报文是否为数据报文; 在所述原始报文为数据报文时,根据所述原始报文的文件类型以及事务类型字段的值,判断出所述原始报文是否包含所述载荷数据; 在所述原始报文包含所述载荷数据时,将所述协议字段及循环冗余校验码之间的内容解析为所述载荷数据。
6.一种嵌入式系统高速互联规范(RapidIO)协议解析系统,包括: 封装模块,设置为对串行RapidIO采集接口卡采集到的原始报文以及接口卡附加信息进行封装,获得封装报文并传递给应用程序;所述接口卡附加信息包括所述原始报文的报文类型、输入端口信息、错误信息以及封装所述原始报文时的时间戳;分配模块,设置为在所述应用程序收到所述封装报文后,为所述封装报文分配一个数据结构记录所述原始报文以及所述接口卡附加信息; 第一解析模块,设置为根据所述接口卡附加信息解析出所述原始报文的时间及顺序信息; 第二解析模块,设置为根据所述接口卡附加信息解析出所述原始报文的协议字段; 第三解析模块,设置为根据所述接口卡附加信息以及所述原始报文中字段值判断所述原始报文是否包含载荷数据,并在判断出所述原始报文包含所述载荷数据时解析出所述载荷数据。
7.根据权利要求6所述的系统,其中: 所述封装模块配置为对于控制报文,所述封转报文总长为16字节,所述封转报文的第I字节为所述报文类型,第2字节为所述错误信息,第3字节为所述输入端口信息,第4-7字节为原始报文内容,第8-15字节为所述时间戳;并配置为对于数据报文,所述封转报文的第I字节为所述报文类型,第2字节为所述错误信息,第3字节为所述输入端口信息,第6个、第7个字节为报文总长度信息,第8-15字节为所述时间戳,从第32字节开始为原始报文内容。
8.根据权利要求6所述的系统,其中: 所述第一解析模块配置为根据所述时间戳解析出所述原始报文与本次采集第一个原始报文的相对时间、与本次采集上一个原始报文的相对时间、参照所述应用程序本地时间的绝对时间,以及所述应用程序记录的从本次采集开始递增的报文序号。
9.根据权利要求6所述的系统,其中: 所述第二解析模块配置为根据所`述原始报文的报文类型以及所述原始报文的标识位宽字段值解析出所述原始报文的协议字段。
10.根据权利要求6所述的系统,其中,所述第三解析模块包括第一判断单元、第二判断单元以及解析单元,其中: 所述第一判断单元配置为根据所述原始报文的报文类型判断所述原始报文是否为数据报文; 所述第二判断单元配置为在所述第一判断单元判断出所述原始报文为数据报文时,根据所述原始报文的文件类型以及事务类型字段的值,判断所述原始报文是否包含所述载荷数据; 所述解析单元配置为在所述第二判断单元判断出所述原始报文包含所述载荷数据时,将所述协议字段及循环冗余校验码之间的内容解析为所述载荷数据。
【文档编号】H04L29/06GK103873448SQ201210548196
【公开日】2014年6月18日 申请日期:2012年12月17日 优先权日:2012年12月17日
【发明者】霍晨生, 杨水华, 杨继伟, 李超, 李世鹏 申请人:北京旋极信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1