本发明属于电力系统中智能变电站通信技术领域,具体涉及一种协议解析方法、装置及包含协议解析装置的二层交换系统。
背景技术:
电网的高度智能化对电力通信系统提出了需求,全网信息数字化、通信平台网络化、信息平台共享化是其基本特征,大容量、快速、高安全、低成本是其发展方向。以太网技术是目前工业控制领域较为成熟可行的技术,现在以及未来都将是电网通信的主要技术。目前电网系统中局域网如智能变电站,采用以太网技术进行通信组网所用的网络通信设备主要是二层网络交换机。由于站内通常包含多种类型的数据业务报文,如MMS、GOOSE、SMV等,这些报文都有自己各自的特点,有的是突发报文、有的是定时报文、有的实时性要求高、有的是组播/广播报文、有的流量大等等,当这些不同特点的报文在同一个网络里用传统交换设备传输时,会带来相互影响和干扰,使得性能有所下降甚至不能达到预期的目的。
此时作为网络通信节点的以太网交换机如果具备报文解析和智能识别功能,便可根据不同类型的业务报文进行合适的控制,以满足带宽、实时性等方面的要求,同时也可提高通信的网络的安全系数。
技术实现要素:
为了实现上述目的,本发明提出一种具备速度快、精度高、易实现和低成本等优点且通过硬件实现的协议解析方法、装置及包含协议解析装置的二层交换系统;适用于智能变电站通信系统,通过智能识别、管理网络业务报文,有效提高网络安全性。
本发明的目的是采用下述技术方案实现的:
一种协议解析方法,所述方法包括:
获取经S3MII总线传输的业务报文信息;
封装为数据帧,采用FPGA算法快速解析每一帧数据。
优选的,所述经S3MII总线传输的业务报文信息的获取方法包括,实时监控经S3MII总线传输的业务报文信息,根据本地参考时钟和处理器的控制信号按比特逐位获取,并以字节为单位存储。
优选的,所述封装为数据帧包括:按字节分析帧头,定义帧格式,获取帧起始标志位其后携带的数据字段;
选择指定位置的帧标志,读取其对应的类型字段,通过与已知的数据类型进行比较识别业务报文类型后,放入缓存区以待确认;其中,所述已知的数据类型包括MMS、SMV和GOOSE;
根据自定义的安全优先级从缓冲区中选取待确认帧,执行CRC校验,若校验结果发生CRC错误,则将当前发生CRC错误的帧丢弃,通过并行总线发送信号告知处理器;否则,将CRC正确的帧封装;
将接收到的CRC正确的帧插入帧尾后四个字节进行封装,生成完整的数据帧,并遵循S3MII接口协议标准发送数据帧;
接收到数据帧后,根据预先的配置的目的地址将数据帧转发到指定端口。
进一步地,所述定义帧格式具体包括;定义长度为7个字节、数值为0X55的前导码,以及位于帧前导码后接长度为1个字节、数值为0XD5的开始符,以7个0X55和1个0XD5的位置作为帧起始标志位;
定义长度均为6个字节的目地址和源地址,分别表示各数据帧所到达的目的地址和源地址;
定义802.1q的字段长度为4个字节,用于配置数据帧的安全优先级和VLAN信息;
定义长度/类型字段长度为2个字节,用于表示该数据帧的总长度或者业务报文类型;
定义数据负荷区的长度为46-1500个字节,表示该数据帧携带的用户信息。
进一步地,所述将数据帧转发到指定端口之后还包括:以业务报文类型为依据,采用状态机快速识别每一帧数据所携带的业务报文信息;
结合现场实际工况按比例分配带宽或者设置固定带宽,实现流量控制,对于非法业务报文信息进行拦截或丢弃处理,并将处理结果转发到处理器,同步显示于用户端,提示用户排查非法来源。
一种协议解析装置,所述协议解析装置包括:
获取模块,用于获取经S3MII总线传输的业务报文信息;
封装模块,用于封装为数据帧;
解析模块,用于采用FPGA算法快速解析每一帧数据。
优选的,所述获取模块包括:
监控单元,用于实时监控经S3MII总线传输的业务报文信息,根据本地参考时钟和处理器的控制信号按比特逐位获取,并以字节为单位存储;
优选的,所述封装模块包括:分析单元,用于按字节分析帧头,定义帧格式,获取帧起始标志位其后携带的数据字段;
类型识别单元,用于选择指定位置的帧标志,读取其对应的类型字段,通过与已知的数据类型进行比较识别业务报文类型后,放入缓存区以待确认;其中,所述已知的数据类型包括MMS、SMV和GOOSE;
确认单元,用于根据自定义的安全优先级从缓冲区中选取待确认帧,执行CRC校验,若校验结果发生CRC错误,则将当前发生CRC错误的帧丢弃,通过并行总线发送信号告知处理器;否则,将CRC正确的帧封装;
生成单元,用于将接收到的CRC正确的帧插入帧尾后四个字节进行封装,生成完整的数据帧,并遵循S3MII接口协议标准发送数据帧;
转发单元,用于接收到数据帧后,根据预先的配置的目的地址将数据帧转发到指定端口。
进一步地,所述分析单元包括:
第一处理子单元,用于定义长度为7个字节、数值为0X55的前导码,以及位于帧前导码后接长度为1个字节、数值为0XD5的开始符,以7个0X55和1个0XD5的位置作为帧起始标志位;
第二处理子单元,用于定义长度均为6个字节的目地址和源地址,分别表示各数据帧所到达的目的地址和源地址;
第三处理子单元,用于定义802.1q的字段长度为4个字节,用于配置数据帧的安全优先级和VLAN信息;
第四处理子单元,用于定义长度/类型字段长度为2个字节,用于表示该数据帧的总长度或者业务报文类型;
第五处理子单元,用于定义数据负荷区的长度为46-1500个字节,表示该数据帧携带的用户信息。
优选的,所述解析模块包括:
信息识别单元,用于将数据帧转发到指定端口之后以业务报文类型为依据,采用状态机快速识别每一帧数据所携带的业务报文信息;
控制单元,用于结合现场实际工况按比例分配带宽或者设置固定带宽,实现流量控制,对于非法业务报文信息进行拦截或丢弃处理,并将处理结果转发到处理器,同步显示于用户端,提示用户排查非法来源。
一种二层交换系统,所述系统包括第一物理接口收发器、第二物理接口收发器、第一FPGA芯片、第二FPGA芯片、处理器模块、核心交换模块、本地时钟模块和供电模块;所述第一FPGA芯片和第二FPGA芯片均包括如权利要求6-10任意一项所述的协议解析装置;所述协议解析装置通过并行总线与处理器模块相连,以实现以太网数据帧的识别、解析和封装;
其中,所述处理器模块用于控制整个系统,具备协议解析功能,以实现对所述系统中各部分的配置管理;所述供电模块,用于为系统及系统下各部分提供不同等级的电压电源;所述本地时钟模块分别与第一物理接口收发器、第二物理接口收发器、第一FPGA芯片、第二FPGA芯片、处理器模块和核心交换模块单向连接,为其提供本地参考时钟;
设置于物理层与数据链路层之间的第一、第二物理接口收发器分别通过S3MII总线与设于数据链路层的第一、第二FPGA芯片双向连接;所述第一FPGA芯片和第二FPGA芯片通过独立的S3MII总线与核心交换模块双向连接,通过16位数据总线与处理器模块双向连接;所述核心交换模块与处理器模块之间通过PCIE总线双向连接。
优选的,所述第一物理接口收发器和第二至物理接口收发器分别设有第一光/电端口单元和第二光/电端口单元;所述第一、第二光/电端口单元分别通过S3MII总线与其对应的第一、第二FPGA芯片双向连接,以实现物理层和数据链路层之间的数据交互。
优选的,所述第一光/电端口单元和第二光/电端口单元分别包含8组顺次排列的光/电端口。
优选的,所述第一、第二物理接口收发器具备数据的串并联转换、编码/解码功能,用于接收/发送网络中的光/电物理量或者电信号,完成电信号与光/电物理量之间的相互转换,获取电信号中的业务报文信息。
优选的,所述本地时钟模块,为第一、第二物理接口收发器提供125M时钟;为第一、第二FPGA芯片提供125M时钟;为处理器模块提供50M时钟;
所述供电模块,为第一、第二物理接口收发器提供2.5V、1.2V电源;为一、第二FPGA芯片提供1.2V、2.5、3.3V电压;为处理器模块提供1V、2.5V、3.3V电压;为本地时钟模块提供3.3V电压;为核心交换模块提供2.5V、3.3V电压。
与最接近的现有技术相比,本发明达到的有益效果是:
本发明基于FPGA的硬件算法解析、识别数据帧,运算速度快、精度高且操作简单;可以准确快速分析业务报文类型,以实现网络报文的智能实时监控和网络业务流量的动态管理,有效提高了网络的安全性的同时确保通信网络更加稳固、流畅。本申请提出的装置及方法适用于智能变电站通信应用,为变电站的通信网络智能化的实现提供支撑,具有实际工程应用价值。
附图说明
图1为数据帧结构示意图;
图2为包含协议解析装置的二层交换系统结构示意图;
图3为数据帧封装和解析方法流程图;
具体实施方式
下面结合附图对本发明的具体实施方式做进一步的详细说明。
1、本实施例中提供一种协议解析方法,所述方法包括:
(1)获取经S3MII总线传输的业务报文信息;
经S3MII总线传输的业务报文信息的获取方法包括,实时监控经S3MII总线传输的业务报文信息,根据本地参考时钟和处理器的控制信号按比特逐位获取,并以字节为单位存储;
(2)封装为数据帧,采用FPGA算法快速解析每一帧数据。
封装为数据帧包括:按字节分析帧头,定义帧格式,获取帧起始标志位其后携带的数据字段;如图1所示。
选择指定位置的帧标志,读取其对应的类型字段,通过与已知的数据类型进行比较识别业务报文类型后,放入缓存区以待确认;其中,所述已知的数据类型包括MMS、SMV和GOOSE;
根据自定义的安全优先级从缓冲区中选取待确认帧,执行CRC校验,若校验结果发生CRC错误,则将当前发生CRC错误的帧丢弃,通过并行总线发送信号告知处理器;否则,将CRC正确的帧封装;
将接收到的CRC正确的帧插入帧尾后四个字节进行封装,生成完整的数据帧,并遵循S3MII接口协议标准发送数据帧;
接收到数据帧后,根据预先的配置的目的地址将数据帧转发到指定端口。
将数据帧转发到指定端口之后还包括:以业务报文类型为依据,采用状态机快速识别每一帧数据所携带的业务报文信息;
结合现场实际工况按比例分配带宽或者设置固定带宽,实现流量控制,对于非法业务报文信息进行拦截或丢弃处理,并将处理结果转发到处理器,同步显示于用户端,提示用户排查非法来源。
定义帧格式具体包括;定义长度为7个字节、数值为0X55的前导码,以及位于帧前导码后接长度为1个字节、数值为0XD5的开始符,以7个0X55和1个0XD5的位置作为帧起始标志位;定义长度均为6个字节的目地址和源地址,分别表示各数据帧所到达的目的地址和源地址;定义802.1q的字段长度为4个字节,用于配置数据帧的安全优先级和VLAN信息;定义长度/类型字段长度为2个字节,用于表示该数据帧的总长度或者业务报文类型;
定义数据负荷区的长度为46-1500个字节,表示该数据帧携带的用户信息。
2、本实施例中提供一种协议解析装置,所述协议解析装置包括:
获取模块,用于获取经S3MII总线传输的业务报文信息;
封装模块,用于封装为数据帧;
解析模块,用于采用FPGA算法快速解析每一帧数据。
获取模块包括:监控单元,用于实时监控经S3MII总线传输的业务报文信息,根据本地参考时钟和处理器的控制信号按比特逐位获取,并以字节为单位存储;
封装模块包括:分析单元,用于按字节分析帧头,定义帧格式,获取帧起始标志位其后携带的数据字段;如图1所示。
其中,分析单元包括:第一处理子单元,用于定义长度为7个字节、数值为0X55的前导码,以及位于帧前导码后接长度为1个字节、数值为0XD5的开始符,以7个0X55和1个0XD5的位置作为帧起始标志位;
第二处理子单元,用于定义长度均为6个字节的目地址和源地址,分别表示各数据帧所到达的目的地址和源地址;
第三处理子单元,用于定义802.1q的字段长度为4个字节,用于配置数据帧的安全优先级和VLAN信息;
第四处理子单元,用于定义长度/类型字段长度为2个字节,用于表示该数据帧的总长度或者业务报文类型;
第五处理子单元,用于定义数据负荷区的长度为46-1500个字节,表示该数据帧携带的用户信息。
类型识别单元,用于选择指定位置的帧标志,读取其对应的类型字段,通过与已知的数据类型进行比较识别业务报文类型后,放入缓存区以待确认;其中,所述已知的数据类型包括MMS、SMV和GOOSE;
确认单元,用于根据自定义的安全优先级从缓冲区中选取待确认帧,执行CRC校验,若校验结果发生CRC错误,则将当前发生CRC错误的帧丢弃,通过并行总线发送信号告知处理器;否则,将CRC正确的帧封装;
生成单元,用于将接收到的CRC正确的帧插入帧尾后四个字节进行封装,生成完整的数据帧,并遵循S3MII接口协议标准发送数据帧;
转发单元,用于接收到数据帧后,根据预先的配置的目的地址将数据帧转发到指定端口。
解析模块包括:信息识别单元,用于将数据帧转发到指定端口之后以业务报文类型为依据,采用状态机快速识别每一帧数据所携带的业务报文信息;
控制单元,用于结合现场实际工况按比例分配带宽或者设置固定带宽,实现流量控制,对于非法业务报文信息进行拦截或丢弃处理,并将处理结果转发到处理器,同步显示于用户端,提示用户排查非法来源。
3、如图2所示,本实施例中提供一种二层交换系统,所述系统包括第一物理接口收发器、第二物理接口收发器、第一FPGA芯片、第二FPGA芯片、处理器模块、核心交换模块、本地时钟模块和供电模块;所述第一FPGA芯片和第二FPGA芯片均包括上述的协议解析装置;所述协议解析装置通过并行总线与处理器模块相连,以实现以太网数据帧的识别、解析和封装;
其中,所述处理器模块用于控制整个系统,具备协议解析功能,以实现对所述系统中各部分的配置管理;所述供电模块,用于为系统及系统下各部分提供不同等级的电压电源;所述本地时钟模块分别与第一物理接口收发器、第二物理接口收发器、第一FPGA芯片、第二FPGA芯片、处理器模块和核心交换模块单向连接,为其提供本地参考时钟;
设置于物理层与数据链路层之间的第一、第二物理接口收发器分别通过S3MII总线与设于数据链路层的第一、第二FPGA芯片双向连接;所述第一FPGA芯片和第二FPGA芯片通过独立的S3MII总线与核心交换模块双向连接,通过16位数据总线与处理器模块双向连接;所述核心交换模块与处理器模块之间通过PCIE总线双向连接。
第一物理接口收发器和第二至物理接口收发器分别设有第一光/电端口单元和第二光/电端口单元;所述第一、第二光/电端口单元分别通过S3MII总线与其对应的第一、第二FPGA芯片双向连接,以实现物理层和数据链路层之间的数据交互。
第一光/电端口单元和第二光/电端口单元分别包含8组顺次排列的光/电端口。
第一、第二物理接口收发器具备数据的串并联转换、编码/解码功能,用于接收/发送网络中的光/电物理量或者电信号,完成电信号与光/电物理量之间的相互转换,获取电信号中的业务报文信息。
本地时钟模块,为第一、第二物理接口收发器提供125M时钟;为第一、第二FPGA芯片提供125M时钟;为处理器模块提供50M时钟;
所述供电模块,为第一、第二物理接口收发器提供2.5V、1.2V电源;为一、第二FPGA芯片提供1.2V、2.5、3.3V电压;为处理器模块提供1V、2.5V、3.3V电压;为本地时钟模块提供3.3V电压;为核心交换模块提供2.5V、3.3V电压。
第一、第二FPGA芯片均包括与核心交换模块双向连接的协议解析装置;所述协议解析装置通过并行总线与处理器模块相连,以实现以太网数据帧的识别、解析和封装;其中,所述核心交换模块,用于接收数据帧,根据预先的配置的目的地址将数据帧转发到指定端口。
基于FPGA的二层交换系统的业务报文解析方法,具体在交换装置的物理层和数据链路层之间加入FPGA(现场可编程阵列),以实现业务报文的传输和识别和网络交换节点的智能化;如图3所示,其方法包括:
(1)获取经S3MII总线传输的业务报文信息;
经S3MII总线传输的业务报文信息的获取方法包括,实时监控经S3MII总线传输的业务报文信息,根据本地参考时钟和处理器模块的控制信号按比特逐位获取,并以字节为单位存储。
(2)封装为数据帧,采用FPGA算法快速解析每一帧数据。具体包括:
按字节分析帧头,定义帧格式,获取帧起始标志位其后携带的数据字段;
选择指定位置的帧标志,读取其对应的类型字段,通过与已知的数据类型进行比较识别业务报文类型后,放入缓存区以待确认;其中,所述已知的数据类型包括MMS、SMV和GOOSE;
根据自定义的安全优先级从缓冲区中选取待确认帧,执行CRC校验,若校验结果发生CRC错误,则将当前发生CRC错误的帧丢弃,通过并行总线发送信号告知处理器;否则,将CRC正确的帧封装;
将接收到的CRC正确的帧插入帧尾后四个字节进行封装,生成完整的数据帧,并遵循S3MII接口协议标准发送数据帧;
接收到数据帧后,根据预先的配置的目的地址将数据帧转发到指定端口。
将数据帧转发到指定端口之后还包括:以业务报文类型为依据,采用状态机快速识别每一帧数据所携带的业务报文信息;
结合现场实际工况按比例分配带宽或者设置固定带宽,实现流量控制,对于非法业务报文信息进行拦截或丢弃处理,并将处理结果转发到处理器,同步显示于用户端,提示用户排查非法来源。
最后应当说明的是:以上实施例仅用以说明本申请的技术方案而非对其保护范围的限制,尽管参照上述实施例对本申请进行了详细的说明,所属领域的普通技术人员应当理解:本领域技术人员阅读本申请后依然可对申请的具体实施方式进行种种变更、修改或者等同替换,这些变更、修改或者等同替换,其均在其申请待批的权利要求范围之内。