黃其培,匡 彪,李興武
(昆明船舶設備研究中心 云南 昆明 650051)
而今互聯網時代,隨著社會經濟的不斷發展,新技術不斷涌現,電力已經成為人們的必需品,變電站的數字化已成為變電站發展的趨勢。數字化變電站采用IEC61850標準進行建模,在IEC61850標準的統一規約下,站內設備間傳送的信息必須按該標準所規定的相關協議進行編解碼[1]。由此可知,依據IEC61850標準對站內流動信息的編解碼在數字變電站建設中有著不可替代的地位。研究編解碼的快速實現方法具有較高應用、學術價值。
目前國內數字站數據采集與傳輸中,IEC61850-9-1、9-2都有一定的應用,由9-1幀格式固定,編解碼方面軟硬件都有實現,對于9-2幀結構的不確定性,其編解碼實現較為復雜,目前主要是采用軟件形式實現。隨著網絡管理功能,交換機技術的迅速發展和其成本的降低,9-2相對于9-1在安裝靈活、便于實現跨間隔保護及光纖連接簡潔等方面的優勢越發突出,勢必9-2將得到更多的應用,當前關于9-2的研究,主要是通過ARM芯片和軟件來實現,由于該方法處理速度較慢,當隨著采樣率的提高,其性能未能改善,不能很好的滿足系統實時性要求,不利于系統工作的穩定性,因此,對一種更快速的實現方法的研究迫在眉睫。
基于速度、實時性的考慮,本文提出了采用FPGA實現9-2數據幀快速解碼的設計方案,通過軟件仿真和在線數據測試,滿足了設計要求,為后期的進一步數據處理提供了可靠保證。
IEC61850-9-2標準采用以太網模式,面向任意間隔,通信通道的采樣數據傳輸形式可任意組合,便于實現跨間隔的二次功能的采樣值的數據傳送[2]。9-2采樣值應用協議數據單元(APDU)采用與基本編碼規則(BER)相關的ASN.1語法對通過ISO/IEC8802-3傳輸的采樣值信息進行編碼,則基于IEC61850-9-2標準的APDU幀格式如圖1所示[3]。
本文設計主要分為數據解碼和網絡傳輸兩個部分實現,實現過程采用模塊化設計,其功能模塊包括存儲器、解碼模塊、網絡傳輸模塊。其中解碼模塊中設有寄存器,CPU可以通過訪問相應的寄存器實現對解碼模塊的設置和狀態信息的讀取。功能模塊框圖如圖2所示。
由圖可知,當系統開始工作時,CPU通過Avalon總線接口對存儲器、解碼模塊和以太控制器進行初始化設置,解碼模塊與網絡傳輸模塊之間采用流控制模式傳輸,使得解碼模塊可以在不受CPU干預的情況下進行解碼[4]。在解碼過程中,解碼模塊從網絡上獲取數據,進行實時解碼,以實現幀結構數據類分離,并對數據進行分類存儲,用戶可以隨時訪問解碼模塊寄存器和存儲器,以獲取自己關心的信息內容(如解碼狀態、APDU配置信息、采樣速率、采樣值序列等)。

圖1 基于IEC61850-9-2的APDU幀格式Fig.1 The form of APDU of IEC61850-9-2

圖2 系統功能框圖Fig.2 Function diagram of system
研究工作的實現分兩個階段:1)針對具體的9-2數據幀的結構特點進行了解碼模塊設計和仿真,解碼模塊仿真采用離線形式,即仿真時所解碼的數據幀源于FPGA片上RAM(由CPU初始化)。通過對解碼模塊的仿真,驗證了其功能上的正確性。2)在實現解碼功能的基礎上,對解碼模塊進行了連網測試,驗證了整個解碼系統的正確性和實用性。
解碼模塊運用Verilog HDL進行代碼編寫,其設計的重、難點在于Decode_FSM和TLV_FSM狀態機的編寫。狀態機采用Mealy型設計;對于狀態常量,Decode_FSM采用獨熱碼,TLV_FSM采用二進制編碼[5]。
Decode_FSM狀態機由14個狀態常量構成,其狀態轉移圖如圖3所示。其中IDLE狀態是狀態機處于等待解碼狀態;READ狀態是狀態機使能Avalon主端口讀操作狀態;在WAIT_READ狀態,狀態機將從Avalon總線捕獲讀返回的數據,并對數據進行過濾條件的判斷;在TLV_TAG狀態,主要實現對APDU中所包含的數據類型進行解碼,并對APDU完整性進行判斷,有誤則終止解碼,同時轉入IDLE狀態;DATA_CLASSIFICATION狀態下,依據Flag_gen輸出標志位來完成下一個狀態的轉移;WRITE_ETH和WAIT_WRITE_ETH狀態用于實現以太配置信息的存儲;WRITE_APDU和WAIT_WRITE_APDU用于實現APDU配置信息的存儲;WRITE_ASDU和WAIT_WRITE_ASDU狀態用于實現ASDU配置信息的存儲;WRITE_SAMPDATA和WAIT_WRITE_SAMPDATA用于實現采樣值序列的存儲;當完成一幀數據的解碼,進入DONE。
TLV_FSM狀態機共包括5個狀態常量,其狀態轉移圖如圖4所示。TLV_IDLE狀態是等待TLV編碼的長度域(L域)解碼,沒有進行解碼將一直處于該狀態;TLV_STRUCT_LENGTH狀態主要是對APDU中結構類型數據的L域進行解碼;TLV_N_STRUCT_LENGTH_JUDGE狀態用于實現對基本類型數據的L域編碼進行類型判斷;TLV_N_STRUCT_DEFINITE_LONG用于實現基本類型數據的L域編碼為長定長型的解碼;TLV_INDEFINITE用于實現L域編碼為非定長型的解析。
通過SOPC builder[6]構建Nios系統,對解碼模塊進行軟件仿真,軟件仿真流程如圖5所示。圖6為存放于RAM中用于仿真的待解碼的一幀數據,仿真結果如圖7。通過兩圖對比可知,解碼模塊很好的實現了數據幀的分離解析,表明了解碼的正確性,并在CPU工作頻率為50 MHz時,解碼一幀557 Bytes的9-2數據幀所花費的時間約為54 μs。
運用SOPC builder構建了網絡傳輸模塊,解碼模塊與網絡模塊采用Avalon-ST接口連接,在LOOPBACK模式下,對解碼模塊進行了連網測試,測試數據流向圖如圖8所示。仿真測試數據源來自FPGA片上RAM,其中包括完整的且符合過濾條件的數據幀(下面稱為正確的數據幀)、不完整的數據幀以及不符合過濾條件的數據幀。圖9為RAM中用于仿真測試的數據源。在測試過程中,為了對解碼模塊在數據過濾和解碼方面的性能進行測試,這里采用具有不同過濾條件的20幀數據用于測試,軟件測試流程圖如圖10所示。
在測試過程中,從數據發送情況看,這里利用MMS Ethernet抓包軟件在PC機端對發送的數據進行抓包,抓包結果如圖11所示。由抓包結果表明了網絡模塊成功發送了20幀數據。

圖3 Decode_FSM狀態機狀態轉移圖Fig.3 Status tranfer diagram of Decode_FSM

圖4 TLV_FSM狀態機狀態轉移圖Fig.4 Status tranfer diagram of TLV_FSM

圖5 解碼模塊的軟件驗證流程圖Fig.5 Flow chart of software checking of decoding module
在loopback模式下,發送的數據從網絡(dp83848網絡芯片)環回到網絡模塊接收端,同時解碼模塊將對接收到得數據進行檢測分析。解碼測試結果通過在Nios II IDE中查看變量值,清楚的反應了整個解碼過程。測試結果如圖12所示。

圖6 待解碼9-2數據幀Fig.6 Encoded data of 9-2 frame
從變量查看結果可知,網絡接收端收到了來自網絡的20幀數據,并傳送給了解碼模塊進行檢測,其中有8幀正確的數據幀、2幀非9-2數據幀及10幀錯誤的數據幀。這里對非9-2數據幀不做分析且丟棄;對于錯誤的數據幀(1幀MAC地址不符合過濾條件、1幀不符合APPID過濾條件、1幀APDU配置信息有誤以及7幀ASDU出錯)分析后,也選擇丟棄;而對于正確的數據,給出了每一幀數據解碼情況,變量數組中每一個組元對應一個數據幀,其中包括:幀長度、一幀數據所含ASDU數、各字段數據存放的基地址以及各字段數據的長度值。
最后,對解碼模塊進行了589815幀數據的測試,測試結果如圖13,從結果可知,解碼系統能夠穩定可靠的工作,并能給出正確的結果,滿足設計要求。

圖7 9-2數據幀解碼信息Fig.7 Decoding data of 9-2 frame

圖8 Loopback測試數據流向圖Fig.8 The direction diagram of shift tested data under loopback mode

圖9 數據發送區待解碼的數據幀Fig.9 Encoding data frame in sending area of storage

圖10 解碼系統驗證流程Fig.10 Flow chart of checking of decoding system

圖11 發送數據抓包結果Fig.11 The case of intercpeting frame for sending data

圖12 20幀數據解碼結果Fig.12 The decoding result of 20 frame

圖13 在線測試結果Fig.13 The decoding result of online data
基于IEC6150-9-2數據幀解碼實時性考慮,本設計采用FPGA實現了快速解碼。通過解碼模塊嵌入Nios II的SOPC系統,對模塊進行了軟件仿真和在線數據測試,驗證了方案的正確性和實用性,很好的實現了對9-2數據幀的篩選檢測與幀結構數據類分離存儲,為后期進一步數據處理提供可靠保證,滿足了實時性的要求,并在系統工作時鐘為50 MHz,測得解碼一幀557 Bytes的9-2數據幀的時間約為54 μs。本設計所研究的IEC61850-9-2數據幀解碼模塊,主要是為了能夠很方便的集成在數字化變電站的IED中,成為其設備的一部分,以此實現設備間實時通信。
[1]劉東,張沛超,李曉露.面向對象的電力系統自動化[M].北京:中國電力出版社,2009.
[2]IEC.Communication networks and systems in substations,Part 9-2:Specific Communication Service Mapping(SCSM)Sample values over ISO/IEC 8802-3 link[S].2006.
[3]朱超,黃燦,梅軍,等.基于FPGA與ARM的智能合并單元設計[J].電網技術,2011(6):13.ZHU Chao,HUANG Can,MEI Jun,et al.Design of smart merging unit based on FPGA and ARM[J].Power System Technology,2011(6):13.
[4]徐欣,于紅旗,易凡,等.基于FPGA的嵌入式系統設計[M].北京:機械工業出版社,2004.
[5]夏宇聞.Verilog數字信號系統設計教程[M].北京:北京航空航天大學出版社,2003.
[6]Altera Corporation.Nios II Software Developer’s Handbook[EB/OL].[2013-11-08].http://wenku.baidu.com/link?url=519 Qb6uLjyOmo-MlVkrqIYzVqsjy2b0uR-KJp7JwErW_ycQG pbpSI8pjYmFUWDmkD5rhSE4x4VeuyHYtV-wbj89erko_0Kt_wTg4zrPpKmS.