? Linux工控主板的一种环形菊花链网络方案--技术天地

Linux工控主板的一種環形菊花鏈網絡方案

 2016/9/7    

  環形菊花鏈網絡是工業常用網絡結構,每個交換節點可以方便的接入以太網設備,構成星形結構,而交換節點與節點之間相互連接,又構成環形結構。環形菊花鏈設備接入方便,減少了單純星形結構冗長的布線。同時,又能通過交換節點之間的環形結構達到鏈路冗余備份的功能,相對線性菊花鏈網絡成本更低。


  通常需要采用具有環網功能的交換機作為環形菊花鏈網絡中的交換節點,運行STP/RSTP/MSTP協議,以防止二層的廣播風暴。英創公司結合自身產品特點,以EM9287工控主板為核心,提出了一種小型、低成本的環形菊花鏈組網方案。


  英創公司采用Davicom公司的DM8606作為交換芯片(支持RSTP協議),開發了一個小型交換機環網擴展模塊ETA713。如圖1所示,ETA713具有5個以太網口,其中P0、P1作為環網接口,P2、P3作為普通網口,P4作為CPU port,與EM9287的eth0傳輸數據。同時,EM9287通過DM8606的SMI接口對其進行控制。將P0-P3在ETA713的評估底板上以RJ45的接口引出,可以組建如圖2所示的環形菊花鏈網絡。


環形菊花鏈網絡擴展模塊.gif

圖1 EM9287 & ETA713


未標題-1.gif

圖2 EM9287 & ETA713組建環形菊花鏈網絡


  為防止環形網絡可能造成的二層網絡風暴,我們移植了RSTP協議,作為后臺程序運行在EM9287上。RSTP為每個端口分配一個端口角色,包括:根端口(ROOT Port)、指定端口(DESIGNED Port)、替換端口(ALTERNATED Port)、備份端口(BACKUP Port)和禁用端口(DISABLED Port)。每個端口有3個狀態:轉發狀態(Forwarding)、學習狀態(Learning)和丟棄狀態(Discarding)。


  RSTP協議狀態機根據DM8606傳輸過來的BPDU幀,決定端口的角色和狀態,選擇既非ROOT又非DESIGNED的端口作為ALTERNATED端口,禁止其轉發功能,消除“環路”,如下圖所示。此時,如果中斷SW2交換節點的P1口,其P0口將迅速轉變為ROOT PORT(P1變為DISABLED Port,不參與RSTP運算),SW2的網絡幀將迅速從P0端口經環路的另一邊傳輸到目的地ROOT BRIDGE。


未標題-2.gif

圖3 網絡收斂原始狀態


未標題-2.gif

圖4 中斷SW2 P1后的網絡狀態


  此外,因為RSTP是作為后臺程序運行在EM9287上,且CPU占用資源低于1%,EM9287仍然可以運行用戶所需的其他應用程序。而本質上,我們也是用一個擴展模塊實現了簡單的環網交換功能,取代了原來的環網交換機。