基于fpga的過程層報文過濾及帶寬控制方法
【專利摘要】本發(fā)明涉及智能變電站過程層網(wǎng)絡(luò)控制領(lǐng)域,具體公開一種基于FPGA的過程層報文過濾及帶寬控制方法,能夠在接收側(cè)識別過程層網(wǎng)絡(luò)上報文的類型,對組播報文進(jìn)行過濾和帶寬控制,濾除對接受側(cè)無用的組播報文。本方法根據(jù)報文中的目的地址、報文類型、CRC校驗值、帶寬以及設(shè)置的不同信息條件(ID)濾除不需要的報文或濾出需要的報文。本發(fā)明具有以下優(yōu)點:不依賴交換機;不依賴常規(guī)的流控方式;集成度高,不增加硬件開銷;功能靈活,可設(shè)置多種過濾條件。
【專利說明】基于FPGA的過程層報文過濾及帶寬控制方法
[0001]
【技術(shù)領(lǐng)域】
[0002] 本發(fā)明涉及智能變電站過程層網(wǎng)絡(luò)控制領(lǐng)域,具體公開一種基于FPGA的過程層 報文過濾及帶寬控制方法。
[0003]
【背景技術(shù)】
[0004] 隨著智能變電站過程層網(wǎng)絡(luò)的引入,保護和測控的輸入和輸出均依靠網(wǎng)絡(luò)通信, 增加了因網(wǎng)絡(luò)不穩(wěn)定或帶寬不足而引起保護動作不正確或其他不希望的影響的可能性,因 此過程層網(wǎng)絡(luò)的穩(wěn)定性和可靠性變得非常必要,其中最為重要的手段之一就是加強過程層 網(wǎng)絡(luò)的流量管理。
[0005] 過程層的SV網(wǎng)和GOOSE網(wǎng)可共網(wǎng)或單獨組網(wǎng);如果站內(nèi)采用IEEE1588時鐘同步 時,SV網(wǎng)、GOOSE網(wǎng)和IEEE1588網(wǎng)通常會采用三網(wǎng)合一的結(jié)構(gòu),網(wǎng)絡(luò)上會有這三種報文傳 輸。過程層采用"訂閱/發(fā)布"機制,三種報文都以組播方式傳輸,實現(xiàn)一發(fā)多收,并能控制 轉(zhuǎn)發(fā)范圍。
[0006] 在過程層組網(wǎng)網(wǎng)絡(luò)上,由于SV報文的引入,使得過程層網(wǎng)絡(luò)流量大大增加,可達(dá) 常規(guī)綜自站或智能變電站站控層的網(wǎng)絡(luò)流量的數(shù)十倍。而且遇到變電站事件集中發(fā)生時, 過程層網(wǎng)絡(luò)需承受較大的突發(fā)流量,以及過程層上某裝置異常時突發(fā)大量報文或外來大量 擾動報文,都會對過程層網(wǎng)絡(luò)造成沖擊,甚至導(dǎo)致網(wǎng)絡(luò)上的裝置癱瘓。
[0007] 本發(fā)明針對這些問題,在過程層裝置中采用基于FPGA實現(xiàn)的報文帶寬控制技術(shù), 在MAC上實現(xiàn)對過程層網(wǎng)絡(luò)報文的管理,擇取其中"訂閱"的報文。
[0008]
【發(fā)明內(nèi)容】
[0009] 針對上述問題,本發(fā)明的目的是提供一種基于FPGA的過程層報文過濾及帶寬控 制方法,其嵌入在網(wǎng)絡(luò)MAC功能中實現(xiàn)。通過這項技術(shù),對輸入的報文進(jìn)行識別和處理,根 據(jù)設(shè)置的條件對以太網(wǎng)上的報文進(jìn)行有選擇的過濾,只接收需要的報文,其他報文直接丟 棄,并設(shè)置不同報文的帶寬,大大減少主處理器對無關(guān)報文的處理工作量,保證系統(tǒng)的穩(wěn)定 性和可靠性。
[0010] 為了實現(xiàn)上述目的,本發(fā)明所采取的技術(shù)方案是:基于FPGA的過程層報文過濾及 帶寬控制方法,其特征在于,包括如下步驟: 1) 由報文過濾模塊接收目標(biāo)設(shè)備發(fā)送的待過濾報文,找出待過濾報文的目的地址,將 待過濾報文的目的地址與預(yù)設(shè)的報文參數(shù)配置表比較,若目的地址在配置表中,則進(jìn)入步 驟2),反之丟棄報文; 2) 判斷待過濾報文的類型,若判斷后的報文類型在預(yù)設(shè)的報文參數(shù)配置表中,則進(jìn)入 步驟3),反之丟棄報文; 3) 判斷待過濾報文的ID,若判斷后的ID在預(yù)設(shè)的報文參數(shù)配置表中,則進(jìn)入步驟4), 反之丟棄報文; 4) 判斷待過濾報文的CRC值,若待過濾的報文的CRC值與CRC寄存器預(yù)存的CRC值相 同,則丟棄報文;若不相同,則保存報文至數(shù)據(jù)緩沖區(qū)內(nèi),同時帶寬計數(shù)器加1,統(tǒng)計單位時 間片內(nèi)實際接收到的報文數(shù)。
[0011] 其中,所述的報文參數(shù)配置表預(yù)設(shè)允許接收的報文的目的地址、報文類型及ID。
[0012] 前述的基于FPGA的過程層報文過濾及帶寬控制方法,在步驟4)中,若待過濾的報 文的CRC值與CRC寄存器預(yù)存的CRC值相比是新的,則將新的CRC值存入CRC寄存器中。
[0013] 前述的基于FPGA的過程層報文過濾及帶寬控制方法,在步驟4)中,對一定時間內(nèi) 的連續(xù)且相同的報文,第一幀報文的CRC值與CRC寄存器預(yù)存的CRC值不同,報文過濾和帶 寬控制模塊接收第一幀報文,并用第一幀報文的CRC值更新CRC寄存器;之后的相同的報文 具有與CRC寄存器相同的CRC值,被報文過濾和帶寬控制模塊濾除。同時通過定時器記錄 連續(xù)相同報文的持續(xù)時間,當(dāng)持續(xù)時間達(dá)到預(yù)設(shè)時間后,清零CRC寄存器。相同報文是指報 文的類型、ID、CRC、地址均一致的報文。
[0014] 前述的基于FPGA的過程層報文過濾及帶寬控制方法,由過程層的處理器接收并 處理報文前,還包括以下步驟: 5) 預(yù)設(shè)各種可接收報文允許的帶寬,在指定時間內(nèi)用帶寬計數(shù)器記錄過程層的處理器 接收某一類報文的數(shù)量,達(dá)到指定數(shù)量時,剩余時間內(nèi)停止某一類報文的接收,直至下一個 時間片重新開放接收;若某一類報文的數(shù)量累加后仍未達(dá)到指定數(shù)量,則在剩余的時間內(nèi) 仍可持續(xù)接收報文。某一類報文指的是報文類型、ID、地址相同的連續(xù)報文,CRC可能不一 致。
[0015] 前述的基于FPGA的過程層報文過濾及帶寬控制方法,所述的ID為指定的字符串 或?qū)闹付ㄎ灰莆恢瞄_始的指定長度的字符串的計算結(jié)果。
[0016] 前述的基于FPGA的過程層報文過濾及帶寬控制方法,通過帶寬定時器對某一類 報文的接收數(shù)量進(jìn)行限定,控制在限定時間內(nèi)允許接收的某一類報文的數(shù)量。
[0017] 前述的基于FPGA的過程層報文過濾及帶寬控制方法,對優(yōu)先級高的報文設(shè)置的 帶寬比優(yōu)先級低的報文設(shè)置的帶寬大。
[0018] 本發(fā)明由于采取以上技術(shù)方案,其具有以下優(yōu)點: (1)不依賴交換機。現(xiàn)有的方式大多通過在交換機上劃分VLAN的方式,控制報文的轉(zhuǎn) 發(fā)范圍,減少交換機上的傳輸負(fù)荷。本發(fā)明不依賴交換機,所有功能在網(wǎng)卡上實現(xiàn)。
[0019] (2)不依賴常規(guī)的流控方式,即PAUSE幀方式。從而使發(fā)送端不受接收端的影響, 而接收端仍能從大量的報文中選擇接收正確的報文。
[0020] (3)集成度高,不增加硬件開銷。MAC基本功能以及報文帶寬控制功能都在一片 FPGA內(nèi)完成,而且在一片F(xiàn)PGA上同時可集成多個MAC,實現(xiàn)多網(wǎng)口。
[0021] (4)功能靈活,可設(shè)置多種過濾條件。FPGA內(nèi)設(shè)置有多種寄存器,針對需要濾除的 報文的不同特征,設(shè)置不同的過濾條件,就可以實現(xiàn)不同過濾條件的組合,適應(yīng)多種報文類 型,甚至定制的業(yè)務(wù)報文。
[0022]
【專利附圖】
【附圖說明】
[0023] 圖1為基于FPGA的過程層報文過濾及帶寬控制方法原理圖。
[0024] 圖2為基于FPGA的過程層報文過濾及帶寬控制方法寄存器配置圖。
[0025] 圖3為基于FPGA的過程層報文過濾及帶寬控制方法流程圖。
[0026]
【具體實施方式】
[0027] 下面結(jié)合附圖對本發(fā)明作進(jìn)一步描述。以下實施例僅用于更加清楚地說明本發(fā)明 的技術(shù)方案,而不能以此來限制本發(fā)明的保護范圍。
[0028] 根據(jù)圖1,針對過程層網(wǎng)絡(luò)建立后,上網(wǎng)的報文組播地址相對穩(wěn)定,對指定的組播 地址進(jìn)行過濾,降低處理器實際需要處理的報文數(shù)量。根據(jù)IEEE 802. 3協(xié)議,以太網(wǎng)報文 在起始符后固定是6個字節(jié)的目的地址。從報文中找出目的地址后以查表方式與設(shè)置的允 許接收的目的地址比較,在表中可以找到的地址為可接收報文,否則丟棄。具有相同目的地 址的報文,其中只有1種是可接收的,設(shè)置報文類型過濾,只有指定類型的報文可以接收。 某些報文與實際需要的報文相似度很高,具有相同的目的地址、相同的類型信息時,采用ID 識別技術(shù)剔除這些報文。這些報文與需要的報文可能只有細(xì)微差別,以這些細(xì)微差別作為 ID,丟棄含有這些ID信息的報文。ID的識別可以是指定的字符串、也可是對從指定偏移位 置開始的指定長度的字符串的計算結(jié)果。
[0029] 大量有效報文涌入時,對一定時間內(nèi)的連續(xù)、相同的報文,只取第一巾貞有效報文, 其后的相同報文濾除。相同的報文具有相同的FCS段,即有相同的CRC校驗值。當(dāng)收到的 報文CRC與保存的CRC值不同時,說明是新報文,接收新報文,并用新報文的CRC更新保存 的CRC。當(dāng)收到的報文CRC與保存的CRC值相同時,說明是一樣的報文,丟棄。但是相同報 文如果持續(xù)時間較長,則每隔一段時間開放一次,將保存的CRC清除,以保證處理器對有效 報文的及時響應(yīng); 大量有效報文涌入時,對其中占用帶寬過多的報文進(jìn)行過濾,保證其他優(yōu)先級更高的 報文通過;事先設(shè)置各個報文允許的帶寬,在指定時間片內(nèi)對接收的報文數(shù)進(jìn)行統(tǒng)計,達(dá)到 指定數(shù)量時,這種報文不能繼續(xù)接收,直到下一個時間片重新開放。
[0030] 具體過程如下,根據(jù)圖3,基于FPGA的過程層報文過濾及帶寬控制方法,其特征在 于,包括如下步驟: 1) 由報文過濾模塊接收目標(biāo)設(shè)備(帶網(wǎng)絡(luò)接口的智能變電站相關(guān)設(shè)備)發(fā)送的待過濾 報文,找出待過濾報文的目的地址,將待過濾報文的目的地址與預(yù)設(shè)的報文參數(shù)配置表比 較,若目的地址在配置表中,則進(jìn)入步驟2),反之丟棄報文; 2) 判斷待過濾報文的類型,若判斷后的報文類型在預(yù)設(shè)的報文參數(shù)配置表中,則進(jìn)入 步驟3),反之丟棄報文; 3) 判斷待過濾報文的ID,若判斷后的ID在預(yù)設(shè)的報文參數(shù)配置表中,則進(jìn)入步驟4), 反之丟棄報文; 4) 判斷待過濾報文的CRC值,若待過濾的報文的CRC值與CRC寄存器預(yù)存的CRC值相 同,則丟棄報文;若不相同,則由報文過濾模塊將報文保存在數(shù)據(jù)緩沖區(qū)內(nèi),通知CPU系統(tǒng) 讀取并處理該報文; 其中,所述的報文參數(shù)配置表預(yù)設(shè)允許接收的報文的目的地址、報文類型及ID (圖2)。
[0031] 若待過濾的報文的CRC值與CRC寄存器預(yù)存的CRC值相比是新的,則將新的CRC 值存入CRC寄存器中。
[0032] 在步驟4)中,對一定時間內(nèi)的連續(xù)且相同的報文,第一幀報文的CRC值與CRC寄 存器預(yù)存的CRC值不同,報文過濾模塊接收第一幀報文;之后的相同的報文具有相同的CRC 值,被報文過濾模塊濾除,通過定時器記錄連續(xù)相同報文的持續(xù)時間,當(dāng)持續(xù)時間達(dá)到預(yù)設(shè) 時間后,清零CRC寄存器。CRC寄存器的存儲內(nèi)容在報文參數(shù)配置表中可找到。
[0033] 基于FPGA的過程層報文過濾及帶寬控制方法,由過程層的處理器接收并處理報 文前,還包括以下步驟: 5)預(yù)設(shè)各種可接收報文允許的帶寬,在指定時間內(nèi)在FPGA內(nèi)用帶寬計數(shù)器記錄報文 過濾模塊接收的某一類報文的數(shù)量,達(dá)到指定數(shù)量時,停止該類報文的接收;若某一類報文 的數(shù)量累加后仍未達(dá)到指定數(shù)量,則報文過濾模塊持續(xù)接收報文。通過帶寬定時器對某一 類報文的接收數(shù)量進(jìn)行限定,達(dá)到限定數(shù)量后剩余的時間內(nèi)停止接收該類報文。
[0034] 經(jīng)過報文過濾模塊的上述處理后,過程層裝置的主處理器需要處理的報文數(shù)量大 大減少,并能保證優(yōu)先級高的報文在流量大的時候也能接收。
[0035] 以上顯示和描述了本發(fā)明的基本原理、主要特征及優(yōu)點。本行業(yè)的技術(shù)人員應(yīng)該 了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原 理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進(jìn),這些變化和改進(jìn) 都落入要求保護的本發(fā)明范圍內(nèi)。本發(fā)明要求保護范圍由所附的權(quán)利要求書及其等效物界 定。
【權(quán)利要求】
1. 基于FPGA的過程層報文過濾及帶寬控制方法,其特征在于,包括如下步驟: 報文過濾模塊對鏈路層上的報文解析,找出待過濾報文中包含的目的地址,將待過濾 報文的目的地址與預(yù)設(shè)的報文參數(shù)配置表比較,若目的地址在配置表中,則進(jìn)入步驟2),反 之丟棄報文; 判斷待過濾報文的類型,若判斷后的報文類型在預(yù)設(shè)的報文參數(shù)配置表中,則進(jìn)入步 驟3),反之丟棄報文; 判斷待過濾報文的ID,若判斷后的ID在預(yù)設(shè)的報文參數(shù)配置表中,則進(jìn)入步驟4),反 之丟棄報文; 判斷待過濾報文的CRC值,若待過濾的報文的CRC值與CRC寄存器預(yù)存的CRC值相同, 則丟棄報文;若不相同,則保存報文至數(shù)據(jù)緩沖區(qū)內(nèi),同時帶寬計數(shù)器加1,統(tǒng)計單位時間 片內(nèi)實際接收的報文數(shù),過程層的處理器從數(shù)據(jù)緩沖區(qū)內(nèi)讀取并處理該報文; 其中,所述的報文參數(shù)配置表預(yù)設(shè)允許接收的報文的目的地址、報文類型及ID。
2. 根據(jù)權(quán)利要求1所述的基于FPGA的過程層報文過濾及帶寬控制方法,其特征在于: 在步驟4)中,若待過濾的報文的CRC值與CRC寄存器預(yù)存的CRC值相比是新的,則將新的 CRC值存入CRC寄存器中。
3. 根據(jù)權(quán)利要求1所述的基于FPGA的過程層報文過濾及帶寬控制方法,其特征在于, 在步驟4)中,對一定時間內(nèi)的連續(xù)且相同的報文,第一幀報文的CRC值與CRC寄存器預(yù)存 的CRC值不同,報文過濾和帶寬控制模塊接收第一幀報文,保存到數(shù)據(jù)緩沖區(qū)內(nèi)供處理器 處理,并用第一幀報文的CRC值更新CRC寄存器;之后的相同的報文具有與CRC寄存器相同 的CRC值,被報文過濾和帶寬控制模塊濾除,同時通過定時器記錄連續(xù)相同報文的持續(xù)時 間,當(dāng)持續(xù)時間達(dá)到預(yù)設(shè)時間后,清零CRC寄存器。
4. 根據(jù)權(quán)利要求1或2或3所述的基于FPGA的過程層報文過濾及帶寬控制方法,其特 征在于,由過程層的處理器接收并處理報文前,還包括以下步驟: 預(yù)設(shè)各種可接收報文允許的帶寬,在指定時間內(nèi)用帶寬計數(shù)器記錄報文過濾模塊接收 的某一類報文的數(shù)量,達(dá)到指定數(shù)量時,停止這類報文的接收,直至下一個時間片;若某一 類報文的數(shù)量累加后仍未達(dá)到指定數(shù)量,則報文過濾模塊持續(xù)接收報文。
5. 根據(jù)權(quán)利要求1所述的基于FPGA的過程層報文過濾及帶寬控制方法,其特征在于, 所述的ID為指定的字符串或?qū)闹付ㄎ灰莆恢瞄_始的指定長度的字符串的計算結(jié)果。
6. 根據(jù)權(quán)利要求4所述的基于FPGA的過程層報文過濾及帶寬控制方法,其特征在于, 通過帶寬定時器對某一類報文的單位時間片內(nèi)的接收數(shù)量進(jìn)行限定,達(dá)到接收數(shù)量后,單 位時間片的剩余時間內(nèi)對該類報文拒收,在下一個時間片重新開放接收報文。
7. 根據(jù)權(quán)利要求4所述的基于FPGA的過程層報文過濾及帶寬控制方法,其特征在于, 對優(yōu)先級高的報文設(shè)置的帶寬可以比優(yōu)先級低的報文設(shè)置的帶寬大。
【文檔編號】H04L12/913GK104158762SQ201410415650
【公開日】2014年11月19日 申請日期:2014年8月21日 優(yōu)先權(quán)日:2014年8月21日
【發(fā)明者】周華良, 姚吉文, 謝黎, 姜雷, 吳海, 梅德冬, 楊志宏 申請人:國電南瑞科技股份有限公司, 國電南瑞南京控制系統(tǒng)有限公司