日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于BF537的雙冗余以太網(wǎng)的設計與實現(xiàn)

          基于BF537的雙冗余以太網(wǎng)的設計與實現(xiàn)

          作者: 時間:2010-09-08 來源:網(wǎng)絡 收藏


          表l中,Basic Control Register為基本控制寄存器,通過配置其各位,完成芯片軟復位、10 M/100 M選擇、全雙工/半雙工選擇、LookBack模式選擇、自協(xié)商等功能。Basic StatusRegister為基本狀態(tài)寄存器,對其查詢可以得到自協(xié)商結果、網(wǎng)絡物理連接狀態(tài)等網(wǎng)絡基本狀態(tài)。PHY Identifierl/PHYIdentifier 2寄存器標識了芯片的Chip ID。因此,對網(wǎng)絡狀態(tài)的實時監(jiān)測實際上就是實時讀取Basic Status Register,并對結果作出判斷。
          3.2 程序
          可以通過操作的寄存器EMAC_STAADD完成其對LAN8187寄存器的讀寫。對LAN8187寄存器讀寫的函數(shù)定義為:
          u16 RdPHYReg(u16 PHYAddr,u16 RegAddr);
          void WrPHYReg(u16 PHYAddr,u16 RegAddr,u32 Data);
          其中PHYAddr為芯片的物理地址,RegAddr為寄存器地址。
          對Basic Status Register的監(jiān)測采用輪詢的機制,即設定一個信號量Link_status,其周期為2 ms,因此每隔2 msEther moniter線程被觸發(fā)一次。在Ether_moniter中通過調用RdPHYReg()函數(shù),讀取Basic Status Register的值,并判斷Link位。Ether_moniter線程流程如圖3所示。


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

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


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

          5 結束語
          本文提出了兩種構建的方案,分別論述了其原理、器件選擇、連接方法,并做出軟件。最后經(jīng)過測試,方案2的切換效果和時間非常理想,最終在實際項目中得到了應用。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉