<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 交換芯片在智能電網(wǎng)錄波及網(wǎng)絡(luò )記錄裝置中的應用

交換芯片在智能電網(wǎng)錄波及網(wǎng)絡(luò )記錄裝置中的應用

作者: 時(shí)間:2016-10-15 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:智能變電站改變了的方式,一次設備集成的采集器負責數據采樣,然后通過(guò)光以太網(wǎng)將采樣數據以網(wǎng)絡(luò )報文的形式發(fā)送給二次設備。介紹采用以太網(wǎng)交換芯片擴展網(wǎng)絡(luò )接口在裝置中的應用研究,介紹實(shí)踐中遇到的問(wèn)題及解決方法,并分析存在的問(wèn)題和其適用的范圍。

本文引用地址:http://dyxdggzs.com/article/201610/306811.htm

引言

智能變電站改變了的方式,一次設備集成的采集器負責數據采樣,然后通過(guò)光以太網(wǎng)將采樣數據以網(wǎng)絡(luò )報文的形式發(fā)送給二次設備。二次設備需要多個(gè)網(wǎng)口接收采樣數據報文,尤其是集中式裝置和裝置一般需要8個(gè)左右的光以太網(wǎng)采集口,而在GOOSE報文點(diǎn)對點(diǎn)接入方式下需要的光以太網(wǎng)就更多了。以往嵌入式CPU沒(méi)有這么多網(wǎng)口,于是采用交換芯片擴展以太網(wǎng)接口就成為首選方案。

1 設計方案及平臺介紹

1.1 設計平臺基礎

硬件采用POWERPC為核心,主頻為800 MHz,支持兩個(gè)RGMII接口;軟件采用嵌入式Linux,內核版本為2.6. 25。

1.2 設計方案

系統硬件以PowerPC CPU為核心,外圍模塊包括內存、SATA硬盤(pán)、LED指示燈、NORFlash、擴展網(wǎng)口的交換模塊、JTAG調試口、串口控制臺、獨立的千兆以太網(wǎng)口。

系統框圖如圖1所示。主要功能如下:

①其中大容量?jì)却嬗糜贚inux系統及應用程序運行,以及網(wǎng)絡(luò )報文數據和數據緩沖;

②SATA硬盤(pán)用于報文數據和錄波數據記錄存儲、Linux根文件系統存儲;

③LED指示燈用于指示程序運行狀態(tài);

④Nor Flash用于Linux內核和U-boot存儲;

⑤交換模塊對外負責接入8個(gè)百兆光以太網(wǎng)口,CPU通過(guò)RGMII數字接口相連,將8個(gè)百兆光以太網(wǎng)口采集的數據匯集到CPU;

⑥JTAG調試口用于硬件調試;

⑦串口控制臺,用于程序及驅動(dòng)調試;

⑧獨立的千兆以太網(wǎng)口負責和后臺通信。

交換芯片在智能電網(wǎng)錄波及網(wǎng)絡(luò )記錄裝置中的應用

2 基本驅動(dòng)程序設計

交換芯片廠(chǎng)家提供交換芯片的驅動(dòng)、SDK源碼、例子,但是沒(méi)有針對本平臺的解決方案,基本驅動(dòng)需要實(shí)現上層函數對交換芯片進(jìn)行配置操作,實(shí)際網(wǎng)絡(luò )驅動(dòng)只需要把相應端口配置好,在Linux設備樹(shù)文件中定義好,就可以使用Linux通用網(wǎng)絡(luò )驅動(dòng)進(jìn)行網(wǎng)絡(luò )通信。

2.1 mii_read/mii_write接口函數實(shí)現

mii_read/mii_write是上層函數對交換芯片配置操作的函數,通過(guò)RGMII硬件接口實(shí)現。在Linux系統中對硬件操作不能有上層函數直接訪(fǎng)問(wèn),需要通過(guò)驅動(dòng)接口實(shí)現上層函數對底層硬件的訪(fǎng)問(wèn),本方案通過(guò)設備屬性文件的讀寫(xiě)實(shí)現對底層硬件端口的配置讀寫(xiě)。具體步驟如下:

①在內核層,利用Linux的device_attr(),在文件系統中增加設備屬性。內核代碼需要修改的文件為Gianfar_mii.c。

◆定義sysfs_reg_io函數實(shí)現硬件直接讀寫(xiě),本處文件讀寫(xiě)傳遞參數為字符串,故需要相應轉換。

交換芯片在智能電網(wǎng)錄波及網(wǎng)絡(luò )記錄裝置中的應用
交換芯片在智能電網(wǎng)錄波及網(wǎng)絡(luò )記錄裝置中的應用

◆綁定設備屬性文件reg_io,對其讀寫(xiě)實(shí)際執行的是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)添力口以下代碼中的實(shí)現設備屬性文件到系統。

dev_set_drvdata(dev,new_bus);

device_create_file(dev,dev_attr_reg_io);

②在用戶(hù)層需要修改mii_read/mii_write函數的具體實(shí)現,示例代碼采用的是硬件直接訪(fǎng)問(wèn),本處需要使用對reg_io文件的讀寫(xiě)實(shí)現,注意傳入參數需要和sysfs_reg_io函數的處理一致。具體修改哪個(gè)文件,在不破壞SDK接口的情況下查找相應函數名修改,修改后代碼如下:

交換芯片在智能電網(wǎng)錄波及網(wǎng)絡(luò )記錄裝置中的應用
交換芯片在智能電網(wǎng)錄波及網(wǎng)絡(luò )記錄裝置中的應用

③多地址配置。

交換芯片的各個(gè)端口和PHY的配置端口的訪(fǎng)問(wèn)分為兩種模式:?jiǎn)蔚刂纺J胶投嗟刂纺J?。單地址模式還是多地址模式通過(guò)交換芯片的硬件跳線(xiàn)選擇,單地址模式指交換芯片的各個(gè)端口和PHY分別占用MDIO的設備地址空間,而多地址只占用一個(gè)MDIO設備的地址空間,這個(gè)設備地址空間的特殊寄存器實(shí)現各個(gè)端口和PHY的多地址復用訪(fǎng)問(wèn)。

在實(shí)際使用中,如果交換芯片使用單地址模式,交換芯片占用了所有的MDIO設備地址空間,和另一個(gè)獨立的千兆網(wǎng)口的MDIO設備地址沖突,故本方案采用多地址模式。多地址模式除了需要硬件配置外,還需要在SDK中相應配置。

本系統需要宏定義:#ifdef MULTI_ADDR_MODE。有了這個(gè)宏定義,實(shí)際訪(fǎng)問(wèn)交換芯片的函數為MultiAddrRead/MultiAddrRead,通過(guò)交換芯片的命令寄存器和數據寄存器訪(fǎng)問(wèn)。配置efg.mode.baseAddr=0x10為交換芯片地址(和交換芯片地址跳線(xiàn)相關(guān));配置cfg.cpu Port Num=10為交換芯片和CPU相連的端口地址,本例中為10口。

3 CPU和以太網(wǎng)RGMII連接驅動(dòng)配置

由于CPU是通過(guò)RGMII數字接口和交換芯片直接相連,中間沒(méi)有PHY,故需要在設備樹(shù)中直接定義連接配置為固定波特率模式。有PHY的配置,例如phy—handle=phy2>,實(shí)際波特率配置需要配置相應PHY的寄存器或者自適應;固定波特率模式配置,例如fixed—link=1 1 1000 0 0>,表示全雙工1000 Mbps(nopause and no asym_pause)。

4 數據匯集以及互相隔離設計

智能變電站中,過(guò)程層交換機為了控制流量,一般采用劃分VLAN的方式隔離應用無(wú)關(guān)以太網(wǎng)端口,而不同以太網(wǎng)端口可能都要接入同一個(gè)錄波裝置或網(wǎng)絡(luò )報文記錄儀設備。

實(shí)際應用中出現過(guò)錄波裝置內部不同網(wǎng)口之間有交換功能,導致網(wǎng)絡(luò )回環(huán)、網(wǎng)絡(luò )癱瘓的情況,這就要求裝置的數據接入口之間必須要隔離。采用劃分VLAN的方式現場(chǎng)維護困難,實(shí)際應用中采用端口見(jiàn)物理隔離的方法。

實(shí)現方案如下:交換芯片用于數據采集的0~7號端口、8號端口(實(shí)現1588對時(shí))、9號端口(用于和口頭通信)之間互相隔離。0~9號端口都和10號端口通信(10號端口和CPU相連匯集0~7口的數據)。

通過(guò)配置交換芯片所有端口的0x06控制寄存器可實(shí)現該功能,該寄存器名為端口級VLAN映射(PORT Based VLAN MAP)。其中的10:0位指示VLANTable,其中每一位對應一個(gè)端口,置1表示該端口輸入的數據會(huì )發(fā)到相應端口(如5端口的VLANTable=0x003表示5端口的數據會(huì )轉發(fā)給0端口和1端口)。實(shí)際配置0~9端口讀取寄存器內容,和0x400按位“與”之后回寫(xiě)。10端口讀取寄存器內容和0x300按位“與”之后回寫(xiě)。

結語(yǔ)

由于交換芯片造成的延時(shí)具有不確定性,且所有端口數據匯集到千兆口由CPU負責接收會(huì )造成排隊現象,本方案不適合對時(shí)間精度要求較高(μs)的SV報文記錄,但是由于本方案端口多,帶寬大適合作為GOOSE及MMS報文的記錄,及時(shí)GOOSE和MMS突發(fā)性報文較多本方案也能輕松記錄。實(shí)際測試本方案可記錄600~800 Mbps的流量(視報文大小不同)。

基于交換芯片的嵌入式智能電網(wǎng)錄波及裝置數據采集方案,有效解決了GOOSE及MMS大容量、突發(fā)性報文記錄的問(wèn)題,性?xún)r(jià)比較高。在實(shí)際應用中,由于錄波和網(wǎng)絡(luò )記錄裝置采集端口多,甚至可以減少智能變電站過(guò)程層網(wǎng)絡(luò )交換機需求。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>