《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于BF537的雙冗余以太網的設計
基于BF537的雙冗余以太網的設計
摘要: 本文提出了兩種基于BF537構建雙冗余以太網的方案,分別論述了其原理、器件選擇、連接方法,并做出軟件設計。最后經過測試,方案2的切換效果和時間非常理想,最終在實際項目中得到了應用。
Abstract:
Key words :

0 引言

  隨著信息技術的高速發展,網絡通信也顯得越發重要,以太網也成為了各種控制系統接口互聯的主要媒介。在金融機構、政府部門、軍事應用等特殊應用場合對網絡系統的穩定性要求非常高,為了提高系統的可靠性和抗毀性,常常采用雙冗余的設計方式。雙冗余網絡的實現是以故障檢測為基礎,通過軟件檢查、交換機及網絡節點的網卡協同處理共同完成的。冗余網絡的構建方式通常是在每個網絡節點采用雙網卡,中間用兩個HUB或交換機相連。這樣當某個節點的一塊網卡、網線或者HUB出現故障時,系統會馬上啟用另一塊冗余網卡使得系統仍能夠正常運行。本文基于BF537提出了兩種冗余網絡的構建方案和實現方法。

  1 BF537結構特點

  BF537是Blackfin家族的升級產品,其在標準Blackfin內核的基礎上擁有更加豐富的接口,并在內部集成了一個以太網MAC控制器。BF537的內部結構如圖1所示。

  Blackfin內核包含2個乘/累加器(MAC),2個40位的ALU,4個視頻專用8位ALU和1個40位移位器。運算單元處理來自寄存器組的8位、16位或者32位數據。每個MAC每周期可完成一個16位乘16位的乘法運算,并把結果累加到40位的累加器中,提供8位的精度擴展。ALU單元執行標準的算術和邏輯運算,由于2個ALU具備對16位或32位數據操作的能力,因此運算單元具備的靈活性可以滿足各種應用中信號處理的要求。每個32位的輸入寄存器可以作為2個16位的寄存器,因此每個ALU可以完成非常靈活的單16位算術運算。通過把寄存器當作2個16位的操作數使用,雙16位或單32位操作可以在1個周期中完成。更好地利用第二個ALU,四個16位操作可以簡單地完成,加速了每個周期的吞吐量。強大的40位移位器功能豐富,可以對數據進行移位、循環移位、歸一化、提取和存儲等操作。運算單元所使用的數據來自具有16個16位操作數或8個32位操作數的寄存器組。

  同時BF537把存儲器視為一個統一的4 GB的地址空間,使用32位地址并采用分級的存儲器結構。Level(L1)存儲器一般以全速運行,沒有或只有很少的延遲。Level 2(L2)/Level 3(L3)分布在片內或片外,對它的訪問會耗費多個處理器周期。在L1級,指令存儲器只存放指令,2個數據存儲器存放數據,一個專用的臨時數據存儲器存放堆棧和局部變量信息。在L2/L3級可以存放指令和數據。

  2 雙冗余以太網構建方案

  從硬件角度看,以太網接口電路主要由MAC控制器和物理層接口(PHY)兩大部分構成,本文從是否具備獨立的MAC控制器出發提出了兩種不同的構建雙冗余以太網的方案。

  2.1 基于獨立MAC控制器的設計方案

  上文中提到,BF537在內部集成了一個支持IEEE802.3 MAC控制層協議的MAC控制器,只需要在外部外接一個以太網接口芯片,便可以形成一個完整的以太網通道。因此本文選擇了SMSC公司的LAN8187,它提供了標準的MII總線接口,可以方便地與BF537相連接,連接方式如圖2所示。其中在MII總線上進行數據的收發,MDC和MDIO則用來完成對接口芯片LAN8187寄存器的讀寫。本文在下面稱由BF537的MAC控制器與物理層接口芯片LAN8187構成的以太網通道為主網絡通道。

  如果要求雙冗余網絡通道擁有獨立的MAC控制器,則需在BF537外部擴展一個以太網控制器,見圖2,選擇同樣來自于SMSC公司的LAN91C-111,通過BF537的外部總線與之相連。選擇LAN91C111的16位總線工作方式,其A0~A15與BF537的地址總線相連,DO~D15與BF537的數據總線相連,并由BF537的AMS信號控制LAN91C111的片選,外部PF管腳來響應來自LAN91C111的中斷請求。

  具有獨立MAC控制器的雙冗余以太網的設計方案如圖2所示。

  2.2 基于共用MAC控制器的設計方案

  從應用角度分析,即使系統擁有獨立的MAC控制器,在實際應用中也需要要求兩個MAC控制器擁有相同的物理地址,因為若MAC地址不同,冗余切換將引起協議層中ARP綁定表的變化,重新映射ARP表中物理地址和IP地址之間的關系將增加冗余切換的時間,影響到網絡通信實時性。

  因此本文提出了一套MAC控制器,兩個以太網接口芯片的方案。該設計方案通過一片CPLD將BF537的MII總線分別轉接到兩片LAN8187上,并由BF537來控制轉接的時機,如圖3所示。這樣形成了兩個以太網通信通道,大大簡化了設計,提高了冗余切換的實時性。

  3 冗余切換軟件設計

  3.1 網絡狀態監測

  冗余切換的實現首先在于對網絡實時在線監測,本文中檢測的方法基于LAN8187的寄存器。LAN8187寄存器定義如表1所示。其中,Basic Control Register為基本控制寄存器,通過配置其各位,可以完成芯片軟復位、lO/100 MHz選擇、全雙工/半雙工選擇、LookBack模式選擇、自協商等功能。Basic Status Register為基本狀態寄存器,對其查詢可以得到自協商結果、網絡物理連接狀態等網絡基本狀態。PHY IdenTIfier 1/PHY Identitier 2兩個寄存器標識了芯片的Chip ID。

  因此,對網絡狀態的實時監測實際上就是實時讀取Basic Status Register,并對結果做出判斷。

  3.2 程序設計

  可以通過操作BF537的寄存器EMAC_STAADD完成其對LAN8187寄存器的讀寫。

  對LAN8187寄存器讀寫的函數定義為:

  u16 RdPHYReg(u16 PHYAddr,u16 RegAddr);

  void WrPHYReg(u16 PHYAddr,u16 RegAddr,u32 Data);

  其中PHYAddr為芯片的物理地址,RegAddr為寄存器地址。

  對Basic Status Register的監測采用輪詢的機制,即設定一個信號量Link_status,其周期為2ms,因此每隔2 ms,Ether_moniter線程被觸發一次。在Ether_moniter中通過調用RdPHYReg()函數,讀取Basic Status Register的值,并判斷Link位。Ether-moniter線程流程圖如圖4所示。

  對于設計方案1來講,當檢測到需要進行網絡切換時,需要停用當前網卡初始化備用網絡LAN91C111并設定相同的lP地址以及MAC地址。對于方案2,則只需要通知CPLD將通道切換至備用的LAN8187接口。

  4 冗余切換測試

  用Visual C++6.O開發簡單的上位機測試程序,每隔1 ms發送一個UDP數據報,并給每個數據報編寫不同的序號。在BF537中編寫程序不斷接收上位機發來的數據報。然后制造網絡通信故障,本文構建的冗余網絡將會自動切換到備用通道繼續接收上位機的數據報。最后通過檢測接收到數據報的序號來確定冗余切換所消耗的時間。分別對兩種方案所構建的冗余網絡的切換進行測試,結果如表2所示。

  從實驗結果可以看出方案2具有快速切換的優點,丟包率低;方案1平均丟包數遠大于方案2,并且切換時間長。

  5 結語

  提出了兩種基于BF537構建雙冗余以太網的方案,分別論述了其原理、器件選擇、連接方法,并做出軟件設計。最后經過測試,方案2的切換效果和時間非常理想,最終在實際項目中得到了應用。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 欧美激情在线播放一区二区三区 | 性欧美高清另类videoso | 亚洲欧美午夜 | 九九99九九精彩网站 | 久久综合九色综合97_ 久久久 | 成人免费网址在线 | 亚洲狠狠婷婷综合久久久图片 | 性放荡的三级小说 | 欧美黄a| 国产成年人视频 | 午夜欧美激情 | 波多野结衣视频一区 | 亚洲欧美日韩综合一区久久 | 国产精品久久久久久搜索 | 中文字幕亚洲欧美 | 免费网站看v片在线成人国产系列 | 国产在线麻豆波多野结衣 | 中国一级片免费看 | 福利所第一导航 | 日批免费观看 | 日韩午夜大片 | 久久久午夜精品理论片 | 最近更新中文字幕第一页 | 国产精品合集一区二区 | 一级做a爰片久久毛片免费看 | 黄色一级片黄色一级片 | 波多野结衣在线一区 | 人人看人人鲁狠狠高清 | 日本特级黄录像片 | 成人在线免费小视频 | 天天看天天摸 | 99福利影院 | 黄色欧美在线观看 | 亚洲欧美人成人综合在线50p | 亚洲欧美日韩在线播放 | 波多野结衣在线免费观看视频 | 日本中文字幕精品理论在线 | 一区二区在线免费视频 | 欧美成在线 | 国产的一级毛片完整 | 一级毛片免费毛片一级毛片免费 |