基于fpga的过程层报文过滤及带宽控制方法

文档序号:7812036阅读:166来源:国知局
基于fpga的过程层报文过滤及带宽控制方法
【专利摘要】本发明涉及智能变电站过程层网络控制领域,具体公开一种基于FPGA的过程层报文过滤及带宽控制方法,能够在接收侧识别过程层网络上报文的类型,对组播报文进行过滤和带宽控制,滤除对接受侧无用的组播报文。本方法根据报文中的目的地址、报文类型、CRC校验值、带宽以及设置的不同信息条件(ID)滤除不需要的报文或滤出需要的报文。本发明具有以下优点:不依赖交换机;不依赖常规的流控方式;集成度高,不增加硬件开销;功能灵活,可设置多种过滤条件。
【专利说明】基于FPGA的过程层报文过滤及带宽控制方法
[0001]

【技术领域】
[0002] 本发明涉及智能变电站过程层网络控制领域,具体公开一种基于FPGA的过程层 报文过滤及带宽控制方法。
[0003]

【背景技术】
[0004] 随着智能变电站过程层网络的引入,保护和测控的输入和输出均依靠网络通信, 增加了因网络不稳定或带宽不足而引起保护动作不正确或其他不希望的影响的可能性,因 此过程层网络的稳定性和可靠性变得非常必要,其中最为重要的手段之一就是加强过程层 网络的流量管理。
[0005] 过程层的SV网和GOOSE网可共网或单独组网;如果站内采用IEEE1588时钟同步 时,SV网、GOOSE网和IEEE1588网通常会采用三网合一的结构,网络上会有这三种报文传 输。过程层采用"订阅/发布"机制,三种报文都以组播方式传输,实现一发多收,并能控制 转发范围。
[0006] 在过程层组网网络上,由于SV报文的引入,使得过程层网络流量大大增加,可达 常规综自站或智能变电站站控层的网络流量的数十倍。而且遇到变电站事件集中发生时, 过程层网络需承受较大的突发流量,以及过程层上某装置异常时突发大量报文或外来大量 扰动报文,都会对过程层网络造成冲击,甚至导致网络上的装置瘫痪。
[0007] 本发明针对这些问题,在过程层装置中采用基于FPGA实现的报文带宽控制技术, 在MAC上实现对过程层网络报文的管理,择取其中"订阅"的报文。
[0008]


【发明内容】

[0009] 针对上述问题,本发明的目的是提供一种基于FPGA的过程层报文过滤及带宽控 制方法,其嵌入在网络MAC功能中实现。通过这项技术,对输入的报文进行识别和处理,根 据设置的条件对以太网上的报文进行有选择的过滤,只接收需要的报文,其他报文直接丢 弃,并设置不同报文的带宽,大大减少主处理器对无关报文的处理工作量,保证系统的稳定 性和可靠性。
[0010] 为了实现上述目的,本发明所采取的技术方案是:基于FPGA的过程层报文过滤及 带宽控制方法,其特征在于,包括如下步骤: 1) 由报文过滤模块接收目标设备发送的待过滤报文,找出待过滤报文的目的地址,将 待过滤报文的目的地址与预设的报文参数配置表比较,若目的地址在配置表中,则进入步 骤2),反之丢弃报文; 2) 判断待过滤报文的类型,若判断后的报文类型在预设的报文参数配置表中,则进入 步骤3),反之丢弃报文; 3) 判断待过滤报文的ID,若判断后的ID在预设的报文参数配置表中,则进入步骤4), 反之丢弃报文; 4) 判断待过滤报文的CRC值,若待过滤的报文的CRC值与CRC寄存器预存的CRC值相 同,则丢弃报文;若不相同,则保存报文至数据缓冲区内,同时带宽计数器加1,统计单位时 间片内实际接收到的报文数。
[0011] 其中,所述的报文参数配置表预设允许接收的报文的目的地址、报文类型及ID。
[0012] 前述的基于FPGA的过程层报文过滤及带宽控制方法,在步骤4)中,若待过滤的报 文的CRC值与CRC寄存器预存的CRC值相比是新的,则将新的CRC值存入CRC寄存器中。
[0013] 前述的基于FPGA的过程层报文过滤及带宽控制方法,在步骤4)中,对一定时间内 的连续且相同的报文,第一帧报文的CRC值与CRC寄存器预存的CRC值不同,报文过滤和带 宽控制模块接收第一帧报文,并用第一帧报文的CRC值更新CRC寄存器;之后的相同的报文 具有与CRC寄存器相同的CRC值,被报文过滤和带宽控制模块滤除。同时通过定时器记录 连续相同报文的持续时间,当持续时间达到预设时间后,清零CRC寄存器。相同报文是指报 文的类型、ID、CRC、地址均一致的报文。
[0014] 前述的基于FPGA的过程层报文过滤及带宽控制方法,由过程层的处理器接收并 处理报文前,还包括以下步骤: 5) 预设各种可接收报文允许的带宽,在指定时间内用带宽计数器记录过程层的处理器 接收某一类报文的数量,达到指定数量时,剩余时间内停止某一类报文的接收,直至下一个 时间片重新开放接收;若某一类报文的数量累加后仍未达到指定数量,则在剩余的时间内 仍可持续接收报文。某一类报文指的是报文类型、ID、地址相同的连续报文,CRC可能不一 致。
[0015] 前述的基于FPGA的过程层报文过滤及带宽控制方法,所述的ID为指定的字符串 或对从指定位移位置开始的指定长度的字符串的计算结果。
[0016] 前述的基于FPGA的过程层报文过滤及带宽控制方法,通过带宽定时器对某一类 报文的接收数量进行限定,控制在限定时间内允许接收的某一类报文的数量。
[0017] 前述的基于FPGA的过程层报文过滤及带宽控制方法,对优先级高的报文设置的 带宽比优先级低的报文设置的带宽大。
[0018] 本发明由于采取以上技术方案,其具有以下优点: (1)不依赖交换机。现有的方式大多通过在交换机上划分VLAN的方式,控制报文的转 发范围,减少交换机上的传输负荷。本发明不依赖交换机,所有功能在网卡上实现。
[0019] (2)不依赖常规的流控方式,即PAUSE帧方式。从而使发送端不受接收端的影响, 而接收端仍能从大量的报文中选择接收正确的报文。
[0020] (3)集成度高,不增加硬件开销。MAC基本功能以及报文带宽控制功能都在一片 FPGA内完成,而且在一片FPGA上同时可集成多个MAC,实现多网口。
[0021] (4)功能灵活,可设置多种过滤条件。FPGA内设置有多种寄存器,针对需要滤除的 报文的不同特征,设置不同的过滤条件,就可以实现不同过滤条件的组合,适应多种报文类 型,甚至定制的业务报文。
[0022]

【专利附图】

【附图说明】
[0023] 图1为基于FPGA的过程层报文过滤及带宽控制方法原理图。
[0024] 图2为基于FPGA的过程层报文过滤及带宽控制方法寄存器配置图。
[0025] 图3为基于FPGA的过程层报文过滤及带宽控制方法流程图。
[0026]

【具体实施方式】
[0027] 下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明 的技术方案,而不能以此来限制本发明的保护范围。
[0028] 根据图1,针对过程层网络建立后,上网的报文组播地址相对稳定,对指定的组播 地址进行过滤,降低处理器实际需要处理的报文数量。根据IEEE 802. 3协议,以太网报文 在起始符后固定是6个字节的目的地址。从报文中找出目的地址后以查表方式与设置的允 许接收的目的地址比较,在表中可以找到的地址为可接收报文,否则丢弃。具有相同目的地 址的报文,其中只有1种是可接收的,设置报文类型过滤,只有指定类型的报文可以接收。 某些报文与实际需要的报文相似度很高,具有相同的目的地址、相同的类型信息时,采用ID 识别技术剔除这些报文。这些报文与需要的报文可能只有细微差别,以这些细微差别作为 ID,丢弃含有这些ID信息的报文。ID的识别可以是指定的字符串、也可是对从指定偏移位 置开始的指定长度的字符串的计算结果。
[0029] 大量有效报文涌入时,对一定时间内的连续、相同的报文,只取第一巾贞有效报文, 其后的相同报文滤除。相同的报文具有相同的FCS段,即有相同的CRC校验值。当收到的 报文CRC与保存的CRC值不同时,说明是新报文,接收新报文,并用新报文的CRC更新保存 的CRC。当收到的报文CRC与保存的CRC值相同时,说明是一样的报文,丢弃。但是相同报 文如果持续时间较长,则每隔一段时间开放一次,将保存的CRC清除,以保证处理器对有效 报文的及时响应; 大量有效报文涌入时,对其中占用带宽过多的报文进行过滤,保证其他优先级更高的 报文通过;事先设置各个报文允许的带宽,在指定时间片内对接收的报文数进行统计,达到 指定数量时,这种报文不能继续接收,直到下一个时间片重新开放。
[0030] 具体过程如下,根据图3,基于FPGA的过程层报文过滤及带宽控制方法,其特征在 于,包括如下步骤: 1) 由报文过滤模块接收目标设备(带网络接口的智能变电站相关设备)发送的待过滤 报文,找出待过滤报文的目的地址,将待过滤报文的目的地址与预设的报文参数配置表比 较,若目的地址在配置表中,则进入步骤2),反之丢弃报文; 2) 判断待过滤报文的类型,若判断后的报文类型在预设的报文参数配置表中,则进入 步骤3),反之丢弃报文; 3) 判断待过滤报文的ID,若判断后的ID在预设的报文参数配置表中,则进入步骤4), 反之丢弃报文; 4) 判断待过滤报文的CRC值,若待过滤的报文的CRC值与CRC寄存器预存的CRC值相 同,则丢弃报文;若不相同,则由报文过滤模块将报文保存在数据缓冲区内,通知CPU系统 读取并处理该报文; 其中,所述的报文参数配置表预设允许接收的报文的目的地址、报文类型及ID (图2)。
[0031] 若待过滤的报文的CRC值与CRC寄存器预存的CRC值相比是新的,则将新的CRC 值存入CRC寄存器中。
[0032] 在步骤4)中,对一定时间内的连续且相同的报文,第一帧报文的CRC值与CRC寄 存器预存的CRC值不同,报文过滤模块接收第一帧报文;之后的相同的报文具有相同的CRC 值,被报文过滤模块滤除,通过定时器记录连续相同报文的持续时间,当持续时间达到预设 时间后,清零CRC寄存器。CRC寄存器的存储内容在报文参数配置表中可找到。
[0033] 基于FPGA的过程层报文过滤及带宽控制方法,由过程层的处理器接收并处理报 文前,还包括以下步骤: 5)预设各种可接收报文允许的带宽,在指定时间内在FPGA内用带宽计数器记录报文 过滤模块接收的某一类报文的数量,达到指定数量时,停止该类报文的接收;若某一类报文 的数量累加后仍未达到指定数量,则报文过滤模块持续接收报文。通过带宽定时器对某一 类报文的接收数量进行限定,达到限定数量后剩余的时间内停止接收该类报文。
[0034] 经过报文过滤模块的上述处理后,过程层装置的主处理器需要处理的报文数量大 大减少,并能保证优先级高的报文在流量大的时候也能接收。
[0035] 以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该 了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原 理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进 都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界 定。
【权利要求】
1. 基于FPGA的过程层报文过滤及带宽控制方法,其特征在于,包括如下步骤: 报文过滤模块对链路层上的报文解析,找出待过滤报文中包含的目的地址,将待过滤 报文的目的地址与预设的报文参数配置表比较,若目的地址在配置表中,则进入步骤2),反 之丢弃报文; 判断待过滤报文的类型,若判断后的报文类型在预设的报文参数配置表中,则进入步 骤3),反之丢弃报文; 判断待过滤报文的ID,若判断后的ID在预设的报文参数配置表中,则进入步骤4),反 之丢弃报文; 判断待过滤报文的CRC值,若待过滤的报文的CRC值与CRC寄存器预存的CRC值相同, 则丢弃报文;若不相同,则保存报文至数据缓冲区内,同时带宽计数器加1,统计单位时间 片内实际接收的报文数,过程层的处理器从数据缓冲区内读取并处理该报文; 其中,所述的报文参数配置表预设允许接收的报文的目的地址、报文类型及ID。
2. 根据权利要求1所述的基于FPGA的过程层报文过滤及带宽控制方法,其特征在于: 在步骤4)中,若待过滤的报文的CRC值与CRC寄存器预存的CRC值相比是新的,则将新的 CRC值存入CRC寄存器中。
3. 根据权利要求1所述的基于FPGA的过程层报文过滤及带宽控制方法,其特征在于, 在步骤4)中,对一定时间内的连续且相同的报文,第一帧报文的CRC值与CRC寄存器预存 的CRC值不同,报文过滤和带宽控制模块接收第一帧报文,保存到数据缓冲区内供处理器 处理,并用第一帧报文的CRC值更新CRC寄存器;之后的相同的报文具有与CRC寄存器相同 的CRC值,被报文过滤和带宽控制模块滤除,同时通过定时器记录连续相同报文的持续时 间,当持续时间达到预设时间后,清零CRC寄存器。
4. 根据权利要求1或2或3所述的基于FPGA的过程层报文过滤及带宽控制方法,其特 征在于,由过程层的处理器接收并处理报文前,还包括以下步骤: 预设各种可接收报文允许的带宽,在指定时间内用带宽计数器记录报文过滤模块接收 的某一类报文的数量,达到指定数量时,停止这类报文的接收,直至下一个时间片;若某一 类报文的数量累加后仍未达到指定数量,则报文过滤模块持续接收报文。
5. 根据权利要求1所述的基于FPGA的过程层报文过滤及带宽控制方法,其特征在于, 所述的ID为指定的字符串或对从指定位移位置开始的指定长度的字符串的计算结果。
6. 根据权利要求4所述的基于FPGA的过程层报文过滤及带宽控制方法,其特征在于, 通过带宽定时器对某一类报文的单位时间片内的接收数量进行限定,达到接收数量后,单 位时间片的剩余时间内对该类报文拒收,在下一个时间片重新开放接收报文。
7. 根据权利要求4所述的基于FPGA的过程层报文过滤及带宽控制方法,其特征在于, 对优先级高的报文设置的带宽可以比优先级低的报文设置的带宽大。
【文档编号】H04L12/913GK104158762SQ201410415650
【公开日】2014年11月19日 申请日期:2014年8月21日 优先权日:2014年8月21日
【发明者】周华良, 姚吉文, 谢黎, 姜雷, 吴海, 梅德冬, 杨志宏 申请人:国电南瑞科技股份有限公司, 国电南瑞南京控制系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1