交換芯片在智能電網(wǎng)錄波及網(wǎng)絡(luò)記錄裝置中的應(yīng)用
摘要:智能變電站改變了數(shù)據(jù)采集的方式,一次設(shè)備集成的采集器負責(zé)數(shù)據(jù)采樣,然后通過光以太網(wǎng)將采樣數(shù)據(jù)以網(wǎng)絡(luò)報文的形式發(fā)送給二次設(shè)備。介紹采用以太網(wǎng)交換芯片擴展網(wǎng)絡(luò)接口在錄波和網(wǎng)絡(luò)記錄裝置數(shù)據(jù)采集中的應(yīng)用研究,介紹實踐中遇到的問題及解決方法,并分析存在的問題和其適用的范圍。
引言
智能變電站改變了數(shù)據(jù)采集的方式,一次設(shè)備集成的采集器負責(zé)數(shù)據(jù)采樣,然后通過光以太網(wǎng)將采樣數(shù)據(jù)以網(wǎng)絡(luò)報文的形式發(fā)送給二次設(shè)備。二次設(shè)備需要多個網(wǎng)口接收采樣數(shù)據(jù)報文,尤其是集中式錄波裝置和網(wǎng)絡(luò)記錄裝置一般需要8個左右的光以太網(wǎng)采集口,而在GOOSE報文點對點接入方式下需要的光以太網(wǎng)就更多了。以往嵌入式CPU沒有這么多網(wǎng)口,于是采用交換芯片擴展以太網(wǎng)接口就成為首選方案。
1 設(shè)計方案及平臺介紹
1.1 設(shè)計平臺基礎(chǔ)
硬件采用POWERPC為核心,主頻為800 MHz,支持兩個RGMII接口;軟件采用嵌入式Linux,內(nèi)核版本為2.6. 25。
1.2 設(shè)計方案
系統(tǒng)硬件以PowerPC CPU為核心,外圍模塊包括內(nèi)存、SATA硬盤、LED指示燈、NORFlash、擴展網(wǎng)口的交換模塊、JTAG調(diào)試口、串口控制臺、獨立的千兆以太網(wǎng)口。
系統(tǒng)框圖如圖1所示。主要功能如下:
①其中大容量內(nèi)存用于Linux系統(tǒng)及應(yīng)用程序運行,以及網(wǎng)絡(luò)報文數(shù)據(jù)和錄波數(shù)據(jù)緩沖;
②SATA硬盤用于報文數(shù)據(jù)和錄波數(shù)據(jù)記錄存儲、Linux根文件系統(tǒng)存儲;
③LED指示燈用于指示程序運行狀態(tài);
④Nor Flash用于Linux內(nèi)核和U-boot存儲;
⑤交換模塊對外負責(zé)接入8個百兆光以太網(wǎng)口,CPU通過RGMII數(shù)字接口相連,將8個百兆光以太網(wǎng)口采集的數(shù)據(jù)匯集到CPU;
⑥JTAG調(diào)試口用于硬件調(diào)試;
⑦串口控制臺,用于程序及驅(qū)動調(diào)試;
⑧獨立的千兆以太網(wǎng)口負責(zé)和后臺通信。
2 基本驅(qū)動程序設(shè)計
交換芯片廠家提供交換芯片的驅(qū)動、SDK源碼、例子,但是沒有針對本平臺的解決方案,基本驅(qū)動需要實現(xiàn)上層函數(shù)對交換芯片進行配置操作,實際網(wǎng)絡(luò)驅(qū)動只需要把相應(yīng)端口配置好,在Linux設(shè)備樹文件中定義好,就可以使用Linux通用網(wǎng)絡(luò)驅(qū)動進行網(wǎng)絡(luò)通信。
2.1 mii_read/mii_write接口函數(shù)實現(xiàn)
mii_read/mii_write是上層函數(shù)對交換芯片配置操作的函數(shù),通過RGMII硬件接口實現(xiàn)。在Linux系統(tǒng)中對硬件操作不能有上層函數(shù)直接訪問,需要通過驅(qū)動接口實現(xiàn)上層函數(shù)對底層硬件的訪問,本方案通過設(shè)備屬性文件的讀寫實現(xiàn)對底層硬件端口的配置讀寫。具體步驟如下:
①在內(nèi)核層,利用Linux的device_attr(),在文件系統(tǒng)中增加設(shè)備屬性。內(nèi)核代碼需要修改的文件為Gianfar_mii.c。
◆定義sysfs_reg_io函數(shù)實現(xiàn)硬件直接讀寫,本處文件讀寫傳遞參數(shù)為字符串,故需要相應(yīng)轉(zhuǎn)換。
◆綁定設(shè)備屬性文件reg_io,對其讀寫實際執(zhí)行的是sysfs_reg_io。
static DEVICE_ATTR(reg_io,S_IWUSR | S_IRUSR,sysfs_reg_io,sysfs_reg_io);
◆在int gfar_mdio_probe(struct devrice*dev)添力口以下代碼中的實現(xiàn)設(shè)備屬性文件到系統(tǒng)。
dev_set_drvdata(dev,new_bus);
device_create_file(dev,&dev_attr_reg_io);
②在用戶層需要修改mii_read/mii_write函數(shù)的具體實現(xiàn),示例代碼采用的是硬件直接訪問,本處需要使用對reg_io文件的讀寫實現(xiàn),注意傳入?yún)?shù)需要和sysfs_reg_io函數(shù)的處理一致。具體修改哪個文件,在不破壞SDK接口的情況下查找相應(yīng)函數(shù)名修改,修改后代碼如下:
③多地址配置。
交換芯片的各個端口和PHY的配置端口的訪問分為兩種模式:單地址模式和多地址模式。單地址模式還是多地址模式通過交換芯片的硬件跳線選擇,單地址模式指交換芯片的各個端口和PHY分別占用MDIO的設(shè)備地址空間,而多地址只占用一個MDIO設(shè)備的地址空間,這個設(shè)備地址空間的特殊寄存器實現(xiàn)各個端口和PHY的多地址復(fù)用訪問。
在實際使用中,如果交換芯片使用單地址模式,交換芯片占用了所有的MDIO設(shè)備地址空間,和另一個獨立的千兆網(wǎng)口的MDIO設(shè)備地址沖突,故本方案采用多地址模式。多地址模式除了需要硬件配置外,還需要在SDK中相應(yīng)配置。
本系統(tǒng)需要宏定義:#ifdef MULTI_ADDR_MODE。有了這個宏定義,實際訪問交換芯片的函數(shù)為MultiAddrRead/MultiAddrRead,通過交換芯片的命令寄存器和數(shù)據(jù)寄存器訪問。配置efg.mode.baseAddr=0x10為交換芯片地址(和交換芯片地址跳線相關(guān));配置cfg.cpu Port Num=10為交換芯片和CPU相連的端口地址,本例中為10口。
3 CPU和以太網(wǎng)RGMII連接驅(qū)動配置
由于CPU是通過RGMII數(shù)字接口和交換芯片直接相連,中間沒有PHY,故需要在設(shè)備樹中直接定義連接配置為固定波特率模式。有PHY的配置,例如phy—handle=<&phy2>,實際波特率配置需要配置相應(yīng)PHY的寄存器或者自適應(yīng);固定波特率模式配置,例如fixed—link=<1 1 1000 0 0>,表示全雙工1000 Mbps(nopause and no asym_pause)。
4 數(shù)據(jù)匯集以及互相隔離設(shè)計
智能變電站中,過程層交換機為了控制流量,一般采用劃分VLAN的方式隔離應(yīng)用無關(guān)以太網(wǎng)端口,而不同以太網(wǎng)端口可能都要接入同一個錄波裝置或網(wǎng)絡(luò)報文記錄儀設(shè)備。
實際應(yīng)用中出現(xiàn)過錄波裝置內(nèi)部不同網(wǎng)口之間有交換功能,導(dǎo)致網(wǎng)絡(luò)回環(huán)、網(wǎng)絡(luò)癱瘓的情況,這就要求裝置的數(shù)據(jù)接入口之間必須要隔離。采用劃分VLAN的方式現(xiàn)場維護困難,實際應(yīng)用中采用端口見物理隔離的方法。
實現(xiàn)方案如下:交換芯片用于數(shù)據(jù)采集的0~7號端口、8號端口(實現(xiàn)1588對時)、9號端口(用于和口頭通信)之間互相隔離。0~9號端口都和10號端口通信(10號端口和CPU相連匯集0~7口的數(shù)據(jù))。
通過配置交換芯片所有端口的0x06控制寄存器可實現(xiàn)該功能,該寄存器名為端口級VLAN映射(PORT Based VLAN MAP)。其中的10:0位指示VLANTable,其中每一位對應(yīng)一個端口,置1表示該端口輸入的數(shù)據(jù)會發(fā)到相應(yīng)端口(如5端口的VLANTable=0x003表示5端口的數(shù)據(jù)會轉(zhuǎn)發(fā)給0端口和1端口)。實際配置0~9端口讀取寄存器內(nèi)容,和0x400按位“與”之后回寫。10端口讀取寄存器內(nèi)容和0x300按位“與”之后回寫。
結(jié)語
由于交換芯片造成的延時具有不確定性,且所有端口數(shù)據(jù)匯集到千兆口由CPU負責(zé)接收會造成排隊現(xiàn)象,本方案不適合對時間精度要求較高(μs)的SV報文記錄,但是由于本方案端口多,帶寬大適合作為GOOSE及MMS報文的記錄,及時GOOSE和MMS突發(fā)性報文較多本方案也能輕松記錄。實際測試本方案可記錄600~800 Mbps的流量(視報文大小不同)。
基于交換芯片的嵌入式智能電網(wǎng)錄波及網(wǎng)絡(luò)記錄裝置數(shù)據(jù)采集方案,有效解決了GOOSE及MMS大容量、突發(fā)性報文記錄的問題,性價比較高。在實際應(yīng)用中,由于錄波和網(wǎng)絡(luò)記錄裝置采集端口多,甚至可以減少智能變電站過程層網(wǎng)絡(luò)交換機需求。