一种基于PCIE采集板卡的SDH协议信号分析平台的制作方法

文档序号:17860372发布日期:2019-06-11 22:49阅读:342来源:国知局
一种基于PCIE采集板卡的SDH协议信号分析平台的制作方法

本发明涉及一种基于pcie采集板卡的sdh协议信号分析平台,用于对接入的sdh光纤信号进行信号帧结构分析和对信号内容进行解封装获取光纤信号中的以太网数据,进行相应的sdh光纤信号侦察分析。



背景技术:

早期sdh多用来传输语音和电路业务,随着互联网的不断发展,数据业务流量迅速增长,采用eos技术数据业务中的ip以太网可以承载到sdh信号中进行长距离传输,对于承载着以太网信息的sdh信号接收端需要具备对sdh的帧结构以及封装格式和解封装逻辑分析功能,才能得到真实的数据业务的信息,分析网络行为,当前在sdh协议解析技术领域中多为基于fpga开发环境实现的单一封装结构的解封装方案,如基于fpga开发环境的gfp的封装和解封装模块设计,fpga接收sdh光信号识别出gfp封装之后,截取其中承载的gfp封装的payload负载,根据gfp封装协议解出其中承载的以太网信息。如基于fpga开发环境的pos的解封装实现方案,同样是在sdh信号中识别出pos信号后根据pos的封装协议进行解封装获取以太网信息。对承载以太网的sdh信号的分析多停留在对单一封装结构的分析且鲜少有结合软件的实现方案。以往的sdh信号分析中fpga只做单一封装解封装,对复杂分析逻辑具备设计缺陷,即fpga不适合做复杂逻辑分析如sdh帧拓扑结构的全面分析得到每个节点的封装类型。



技术实现要素:

鉴于现有技术的状况及存在的不足,本发明从sdh信号内部帧结构的全面分析入手,通过fpga和应用层软件结合,将sdh帧结构分析得到封装类型,软件实现了不同封装类型的解封装逻辑。fpga和应用层软件之间通过pcie作为数据通道的媒介,使得整个发明设备具备sdh帧结构分析和多种封装结构的解封装能力,本发明结合了fpga的实时并行处理的优势和应用层软件实现复杂分析和解封装的优势,通过pcie板卡的数据通道,使fpga和应用层软件进行协同工作,完成了对sdh信号的帧拓扑结构的全面分析及相应封装类型的解封装工作,这些功能即能fpga和应用层进行切分协同完成,又可以让fpga只作为数据通道传输者输送数据给应用层软件,让应用层软件完成所有信号分析功能进行离线分析。本发明的全面性和使用灵活性使得sdh协议解析不单单停留在单一封装的分析上,而是只要输入一个sdh光纤信号,通过本发明设备即可得到信号帧拓扑结构和以太网数据内容,呈现了一个综合性的sdh信号协议解析设备。

本发明采用的技术方案是:一种基于pcie采集板卡的sdh协议信号分析平台,其特征在于:本sdh信号协议分析平台包括一个便携式主机,便携式主机中安装了centos操作系统,并带有支持pciex8的插槽,pcie板卡插入主机的pcie插槽中,pcie板卡上带有4个sfp+万兆光纤接口,通过插入光模块并接上光纤输入sdh光纤信号,板上带有一个fpga,fpga的型号为kintexxc7k325t-2ffg900i,用来管理输入的光纤数据,以及与pc的4个传输通道,四个传输通道包括两个fpga芯片数据发送通道c2h0和c2h1及fpga芯片数据接收通道h2c0和h2c1,板上还包含jtag烧写模块,ddr3存储模块,pwr电源模块;

pc主机中部署了pcie驱动层程序以及应用层算法程序,通过与fpga进行开销模式及数据传输模式的配置,使fpga将从光纤上接入的sdh数据进行开销提取模块或数据采集上传模块将数据通过c2h通道传输到pc软件应用层,通过应用层的开销分析算法或解封装算法模块进行sdh信号分析,输出sdh的帧结构拓扑图或以太网数据信息的pcap存储文件,完成对sdh信号的全面分析;

其中各个模块的实现流程及算法步骤如下:

1.pcie驱动层对fpga的模式配置及传输通道实现,pcie驱动层软件模块为实现对fpga的不同模式的配置与fpga定义协议接口,通过pcie的用户空间寄存器的配置来实现开销模式或数据传输模式的配置,若配置为开销模式则通过c2h通道利用pcie驱动层接收数据接口接收开销数据到应用层内存空间并落盘存储数据文件,若配置为数据传输模式,则fpga直接将数据通过c2h通道传输到应用层内存空间并落盘存储数据文件;

2.python应用层软件对sdh的帧结构分析算法,当fpga配置为开销模式,fpga将sdh的poh开销分别打上标签,标识出该开销类型和所属高低阶时隙,开销数据通过c2h通道传输到应用层内存空间,python应用层软件解析开销数据,通过分析poh开销中的信号标签c2值,若c2值不为0x02,则根据高阶封装信号标签对应表来识别不同封装类型,当c2值为0x1b时,则为gfp封装,当c2值为0x16则为pos封装;若c2值为0x02,则分析vc-3的帧结构中poh开销获取c2值,若c2值不为0x02,则识别vc-3的封装类型,若c2值为0x02,则分析低阶vc-12的开销,识别低阶vc-12的封装类型,最后将各级识别的封装类型显示在应用软件的界面上,展示sdh信号的帧结构的拓扑图;

其中sdh帧结构分析算法的高阶和低阶开销分析模块实现方法如下:

1)高阶vc-4开销分析,高阶vc-4开销分析需要对sdh信号数据进行解间插复用,将各时隙数据提取出来,求取vc-4级别的指针值,根据指针值情况进行9*261的stm-1的数据提取,并根据指针值的正负调整对数据进行相应剔除和扣取,得到调整后的各时隙的stm-1的数据,分别提取第一列数据即为poh开销,取第一列的第3行数据即为c2值,同时获取h4及j1等开销数据;

2)高阶vc-3开销分析,高阶vc-3开销分析,由于一个stm-1的数据是由3个vc-3的数据间插复用来组成,解间插复用之后获取指针值,并根据指针值对数据进行指针调整获取poh开销,获取c2值;

3)低阶vc-12开销分析,低阶vc-12开销分析,由于一个stm-1的数据是由63个vc-12的数据间插复用组成,解间插复用之后得到一个vc-12数据,获取低阶开销指针值,获取k4/v5/j2开销,其中根据多帧的k4值分析复帧结构,根据同步bit位来获取32bit的复帧信息bit位,抠取信号类型标签,根据信号类型标签对照表来识别不同封装类型;

3.python应用层软件对sdh的gfp解封装算法,针对抠取出的gfp数据流,开始逐4字节进行crc16校验,前两字节净荷长度指示符算出的crc16校验值与后两字节的核心hec字段值进行对比,若相等,则定帧,根据净荷长度指示符pti来获取该gfp帧的数据长度,获取一帧gfp数据,对该gfp数据出去核心包头之外的数据字节进行1+x^43自同步解扰,解扰后获取净荷报头,对净荷报头中的净荷字段进行解析,判断出净荷类型识别pti是否等于0及用户净荷识别符upi是否等于1,若同时满足两个条件,则gfp封装中承载的是以太网信息,抠取以太网信息,并判断链路类型linktype,存储成pcap以太网包文件;

4.python应用层软件对sdh的pos解封装算法,针对sdh的pos封装,由于其在sdh中的表现形式是相邻级联,所以将判断为pos封装的级联时隙的数据整体进行1+x^43自同步解扰操作,还原出pos封装的原始数据,针对pos封装协议,有效以太网数据包含在固定标识字段0x7e之间,以0x7e起始和结束,但0x7e之间也可能为无效的0x7e来填充,所以设计了状态机算法来获取真正意义的0x7e的起始和结束位置,从获取的第一个0x7e起始位置开始设为状态1,当状态1下从0x7e数据进入第一个非0x7e数据标识则进入状态2,当当前是状态2情况下,从非0x7e数据进入第一个0x7e数据则认为当前0x7e结束位置和开始位置之间的数据为以太网数据,截取以太网数据,并存储为pcap包,同时恢复到状态1进行下一次搜索。

本发明的有益效果是:

本发明在基于pcie采集板卡上充分结合了fpga逻辑设计与应用层软件的算法实现,在该sdh协议信号分析平台,不但兼具pcie采集板卡采集和回放sdh协议信号的基础功能,同时具备通过上层应用程序配置开销采集模式,开销分析算法获取输入sdh光纤信号的帧结构的拓扑图,可识别光纤中的数据封装结构,方便找出用户关注的某种封装结构的信号;同时也具备通过上层应用程序配置数据采集模式,结合上层解封装算法识别gfp封装或pos封装中携带的以太网信息,并能将信息剥离出来离线存储,方便后续对以太网内容进行更详细的内容分析和信息获取。本发明结合了fpga和应用层软件开发语言python的模块设计优势,将算法在软件层面实现,并首次用python实现了gfp的解封装和pos的解封装,在sdh信号分析领域里能轮询实现对sdh光纤信号的帧结构分析及封装分析,让用户通过本分析平台获取光纤中的信号的封装类型,并能针对特定关注的封装类型如gfp或pos进行进一步的内容分析,为了能获取sdh光纤信号中承载的数据内容,利用本平台进行解封装获取以太网数据文件,满足了用户对sdh光纤信号的内容的分析需求。

本发明针对sdh协议解析的综合分析能力的技术应用需求,灵活运用pcie采集板卡的采集记录等功能,不但实现了对sdh光纤信号的帧结构中封装类型分析,还深入到sdh信号中承载的以太网信息的解封装分析,使该平台成为一个集成的sdh信号协议分析综合平台,能够识别sdh中帧结构及深入到协议内容分析,突破了fpga+驱动层+应用层设计架构的难点,摆脱了单纯依靠fpga来做逻辑分析的固有方案,充分利用软件及上层语言python的灵活性和丰富的库接口实现了解封装算法,解封装算法创新性地使用当下在大数据处理及具有矩阵运算及跨平台等优势的python语言实现,该实现方法也是目前鲜少有的一种实现方法,弥补了fpga在做复杂逻辑及算法上的不足,充分做到了利用软件和fpga的设计优势合理划分功能模块,综合实现sdh信号的协议解析功能,及sdh信号的分析从封装识别到及帧结构封装识别和解封装内容分析于一体的综合分析平台。

本发明利用pcie采集板卡的采集回放功能,针对sdh光纤信号分析侦查需求,实现了fpga采集数据和分析开销通过pcie数据通道传输到应用层软件,应用层软件通过开销分析算法得到sdh帧结构的拓扑图以及各级封装类型,并通过pos解封装算法和gfp的解封装算法得到sdh中承载的以太网数据内容,并将数据落盘存储成pcap格式。本发明解决了对sdh光纤信号的完整帧结构的扫描,识别出封装类型,并对指定封装进行解封装的过程,实现了对sdh光纤信号的一站式全解析流程,并且首次利用python实现解析算法,结合fpga数据采集和并行处理能力,交互实现一站式sdh协议解析平台,给用户呈现sdh帧结构信息及解封装的以太网数据信息。

附图说明

图1为本发明的硬件结构框图;

图2为本发明的sdh信号帧结构分析流程图;

图3为本发明的gfp解封装流程图;

图4为本发明的pos解封装流程。

具体实施方式

本发明的外观是一个装配由pcie板卡的便携式计算机,在pcie对外的光口上插入光模块,将需要进行分析的sdh光纤插入pcie上的光模块的输入口,应用层软件进行操作配置模式界面,配置当前为开销提取模式,pcie采集板卡的板上fpga开始进行开销提取模式,并将开销数据通过pcie的上传通道到达应用层软件,应用层软件通过开销分析算法得到sdh信号的帧结构,并向用户展示该条光纤中sdh的帧结构中的封装组成结果,对不同封装类型会显示关键开销信息,如信号来源设备标识等,用户根据分析结果获取该根光纤中的sdh信号中是否包含需要分析的目标封装类型,如需要分析gfp或pos封装,则通过应用层软件配置当前为数据采集模式,pcie采集板卡的板上fpga开始进行数据采集模式,将数据通过上传模块上传到应用层软件,应用层软件针对gfp或pos封装,通过解gfp封装算法或解pos封装算法获取sdh光纤中承载的以太网信息,并离线保存为网络数据包pcap文件格式,该pcap文件可使用wireshark工具打开查看,可看见该sdh光纤信号中承载的以太网信息中包含的如tcp/udp等上层协议的数据,可查看其中包含的如用户上网/发邮件等所有个人网络行为的信息内容。

如图1至图4所示,一种基于pcie采集板卡的sdh协议信号分析平台,包括一个便携式主机,该主机中安装了centos操作系统,并带有支持pciex8的插槽,pcie板卡插入主机的pcie插槽中,pcie板卡上带有4个sfp+万兆光纤接口,通过插入光模块并接上光纤可输入sdh光纤信号,板上带有一个fpga(fpgakintexxc7k325t-2ffg900i),用来管理输入的光纤数据,以及与pc的4个传输通道(c2h0,c2h1,h2c0,h2c1),板上还包含jtag烧写模块,ddr3存储模块,pwr电源模块等。

pc主机中部署了pcie驱动层程序以及应用层算法程序,通过与fpga进行开销模式及数据传输模式的配置,使fpga将从光纤上接入的sdh数据进行开销提取模块或数据采集上传模块将数据通过c2h通道传输到pc软件应用层,通过应用层的开销分析算法或解封装算法模块进行sdh信号分析,输出sdh的帧结构拓扑图或以太网数据信息的pcap存储文件,完成对sdh信号的全面分析。

其中各个模块的实现流程及算法步骤将进行详细说明:

1.pcie驱动层对fpga的模式配置及传输通道实现,该功能模块为实现对fpga的不同模式的配置,与fpga定义协议接口,通过pcie的用户空间寄存器的配置来实现开销模式或数据传输模式的配置。若配置为开销模式则通过c2h通道利用pcie驱动层接收数据接口接收开销数据到应用层内存空间并落盘存储数据文件;若配置为数据传输模式,则fpga直接将数据通过c2h通道传输到应用层内存空间并落盘存储数据文件。

2.python应用层软件对sdh的帧结构分析算法,当fpga配置为开销模式,fpga将sdh的poh开销分别打上标签,标识出该开销类型和所属高低阶时隙,开销数据通过c2h通道传输到应用层内存空间,python应用层软件解析开销数据,通过分析poh开销中的信号标签c2值,若c2值不为0x02,则根据高阶封装信号标签对应表来识别不同封装类型,当c2值为0x1b时,则为gfp封装,当c2值为0x16则为pos封装;若c2值为0x02,则分析vc-3的帧结构中poh开销获取c2值,若c2值不为0x02,则识别vc-3的封装类型,若c2值为0x02,则分析低阶vc-12的开销,识别低阶vc-12的封装类型。最后将各级识别的封装类型显示在应用软件的界面上,展示sdh信号的帧结构的拓扑图。

其中关键的实现模块实现方法如下:

1)高阶vc-4开销分析,高阶vc-4开销分析需要对sdh信号数据进行解间插复用,将各时隙数据提取出来,求取vc-4级别的指针值,根据指针值情况进行9*261的stm-1的数据提取,并根据指针值的正负调整对数据进行相应剔除和扣取,得到调整后的各时隙的stm-1的数据,分别提取第一列数据即为poh开销,取第一列的第3行数据即为c2值,同时获取h4及j1等开销数据。

2)高阶vc-3开销分析,高阶vc-3开销分析,由于一个stm-1的数据是由3个vc-3的数据间插复用来组成,解间插复用之后获取指针值,并根据指针值对数据进行指针调整获取poh开销,获取c2值。

3)低阶vc-12开销分析,低阶vc-12开销分析,由于一个stm-1的数据是由63个vc-12的数据间插复用组成,解间插复用之后得到一个vc-12数据,获取低阶开销指针值,获取k4/v5/j2开销。其中根据多帧的k4值分析复帧结构,根据同步bit位来获取32bit的复帧信息bit位,抠取信号类型标签,根据信号类型标签对照表来识别不同封装类型。

3.python应用层软件对sdh的gfp解封装算法,针对抠取出的gfp数据流,开始逐4字节进行crc16校验,前两字节净荷长度指示符算出的crc16校验值与后两字节的核心hec字段值进行对比,若相等,则定帧,根据净荷长度指示符pti来获取该gfp帧的数据长度,获取一帧gfp数据,对该gfp数据出去核心包头之外的数据字节进行1+x^43自同步解扰,解扰后获取净荷报头,对净荷报头中的净荷字段进行解析,判断出净荷类型识别pti是否等于0及用户净荷识别符upi是否等于1,若同时满足两个条件,则gfp封装中承载的是以太网信息,抠取以太网信息,并判断链路类型linktype,存储成pcap以太网包文件。

4.python应用层软件对sdh的pos解封装算法,针对sdh的pos封装,由于其在sdh中的表现形式是相邻级联,所以将判断为pos封装的级联时隙的数据整体进行1+x^43自同步解扰操作,还原出pos封装的原始数据,针对pos封装协议,有效以太网数据包含在固定标识字段0x7e之间,以0x7e起始和结束,但0x7e之间也可能为无效的0x7e来填充,所以设计了状态机算法来获取真正意义的0x7e的起始和结束位置,从获取的第一个0x7e起始位置开始设为状态1,当状态1下从0x7e数据进入第一个非0x7e数据标识则进入状态2,当当前是状态2情况下,从非0x7e数据进入第一个0x7e数据则认为当前0x7e结束位置和开始位置之间的数据为以太网数据,截取以太网数据,并存储为pcap包,同时恢复到状态1进行下一次搜索。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1