本發(fā)明涉及一種軌道交通領域的基于以太網(wǎng)技術的實時數(shù)據(jù)調(diào)度方法,尤其涉及一種軌道交通領域的具有容錯能力的實時數(shù)據(jù)調(diào)度方法。
背景技術:
工業(yè)以太網(wǎng)是指在工業(yè)環(huán)境的自動化控制及程序控制中應用以太網(wǎng)的相關元件及技術,為工業(yè)網(wǎng)絡提供確定性和實時性。工業(yè)以太網(wǎng)與ieee802.3標準兼容,并且具有通信速度快、應用廣泛、開發(fā)和生產(chǎn)成本低、易于集成的特點,被廣泛應用于航空、鐵路交通、工業(yè)制造等領域。
實時以太網(wǎng)交換機是基于以太網(wǎng)的實時通信網(wǎng)絡的骨架,其與終端設備的相互連接構(gòu)成了整個以太網(wǎng)拓撲結(jié)構(gòu)。實時數(shù)據(jù)調(diào)度方法負責對網(wǎng)絡中的由終端產(chǎn)生的數(shù)據(jù)進行轉(zhuǎn)發(fā),并且保證實時數(shù)據(jù)的實時性。數(shù)據(jù)的實時性是指確保數(shù)據(jù)需要在規(guī)定的時間內(nèi)到達目的終端,具有實時性要求的數(shù)據(jù)稱為實時數(shù)據(jù)。實時數(shù)據(jù)調(diào)度方法是保證工業(yè)以太網(wǎng)實時性的關鍵。
國內(nèi)現(xiàn)有的實時數(shù)據(jù)調(diào)度方法主要集中在保障實時功能上,并不能容忍交換機發(fā)生故障。在列車網(wǎng)絡中,發(fā)生故障的交換機被短接,導致原本經(jīng)過該故障交換機的實時數(shù)據(jù)提早到達下一個交換機,從而造成數(shù)據(jù)與其對應的接收時間窗口不匹配,進而導致網(wǎng)絡丟包問題。列車上,實時數(shù)據(jù)的丟失會導致例如剎車失靈等問題,進而造成嚴重的后果。因此,發(fā)明一種軌道交通領域的具有容錯功能的實時數(shù)據(jù)調(diào)度方法十分必要。
技術實現(xiàn)要素:
本發(fā)明的目的是提供一種能夠容忍交換機發(fā)生故障的實時數(shù)據(jù)調(diào)度方法。
本發(fā)明的技術方案在于提供了一種軌道交通領域的具有容錯功能的實時數(shù)據(jù)調(diào)度方法,其特征在于:其特征在于包括以下步驟:
步驟1、對具有容錯功能的實時以太網(wǎng)交換機系統(tǒng)進行初始化;硬件啟動后,對容錯模塊進行初始化,清空存儲資源池中的數(shù)據(jù),將地址列表的值都置為1;
步驟2、監(jiān)測交換機故障;cpu板上搭載的linux系統(tǒng),通過心跳數(shù)據(jù)包監(jiān)測周圍交換機是否發(fā)生故障,當交換機的某端口接收不到指定的心跳數(shù)據(jù)包時,cpu判定對應端口連接的交換機發(fā)生故障;當沒有檢測到交換機故障時,仲裁模塊直接將數(shù)據(jù)幀傳輸?shù)綄崟r調(diào)度模塊中;
步驟3、響應交換機故障,當cpu板檢測到周圍交換機故障時,cpu向交換板發(fā)送打開容錯功能的指令,從而打開連接故障交換機端口的容錯功能;
步驟4、判斷仲裁模塊根據(jù)各端口的容錯功能是否打開,決定來自各端口數(shù)據(jù)包的流向;如果端口的容錯功能處于關閉狀態(tài),仲裁模塊將來自該端口的數(shù)據(jù)包轉(zhuǎn)發(fā)到實時調(diào)度模塊;如果端口的容錯功能處于開啟狀態(tài),仲裁模塊將來自該端口的數(shù)據(jù)包轉(zhuǎn)發(fā)到存儲資源分配模塊;
步驟5、當?shù)竭_數(shù)據(jù)包的接收窗口時,控制邏輯模塊根據(jù)數(shù)據(jù)流標識字段,確定該數(shù)據(jù)包的地址空間;如果該地址空間為空,控制邏輯模塊切換到下一個數(shù)據(jù)包的取回操作;否則,控制邏輯模塊取回改地址空間中的數(shù)據(jù),然后將該地址空間對應的地址列表的值設置為0。
本發(fā)明還提了一種用軌道交通的具有容錯功能的實時數(shù)據(jù)調(diào)度方法的實時以太網(wǎng)交換機系統(tǒng),包括cpu板、交換板和phy板;其特征在于:
cpu板通過pci-e接口與交換板進行控制信息和數(shù)據(jù)信息的交互,交換板通過接口與phy版進行數(shù)據(jù)信息的交互;
cpu板包括中央處理器、存儲單元和pci-e接口;
cpu板上運行實時linux系統(tǒng),并且通過pci-e接口與交換板進行數(shù)據(jù)的交換;
交換板是實現(xiàn)具有容錯功能的實時調(diào)度算法的硬件板;
phy板上包含phyasic芯片,是物理接口收發(fā)器,負責實現(xiàn)物理層。
本發(fā)明的有益效果在于:本發(fā)明使得在列車發(fā)生故障的交換機被短接時,有效防止原本經(jīng)過該故障交換機的實時數(shù)據(jù)提早到達下一個交換機,從而造成數(shù)據(jù)與其對應的接收時間窗口不匹配,進而導致網(wǎng)絡丟包的問題。
附圖說明
圖1是本發(fā)明所述的軌道交通領域的具有容錯功能的實時數(shù)據(jù)調(diào)度系統(tǒng)的原理圖;
圖2本發(fā)明所述的兩口交換卡內(nèi)部結(jié)構(gòu)示例圖;
圖3本發(fā)明所述的四路容錯模塊結(jié)構(gòu)示例圖;
圖4本發(fā)明本發(fā)明所述的軌道交通領域的具有容錯功能的實時數(shù)據(jù)調(diào)度方法的容錯模塊程序流程圖;
具體實施方式
下面結(jié)合附圖1-4對本發(fā)明的技術方案進行進一步描述。
如圖4所示,該實施例提供了一種軌道交通領域的具有容錯功能的實時數(shù)據(jù)調(diào)度方法,其具體包括以下步驟:
步驟1、對具有容錯功能的實時以太網(wǎng)交換機系統(tǒng)進行初始化;
硬件啟動后,對容錯模塊進行初始化,清空存儲資源池中的數(shù)據(jù),將地址列表的值都置為1;
步驟2、監(jiān)測交換機故障;
cpu板上搭載的linux系統(tǒng),通過心跳數(shù)據(jù)包監(jiān)測周圍交換機是否發(fā)生故障,當交換機的某端口接收不到指定的心跳數(shù)據(jù)包時,cpu判定對應端口連接的交換機發(fā)生故障;當沒有檢測到交換機故障時,仲裁模塊直接將數(shù)據(jù)幀傳輸?shù)綄崟r調(diào)度模塊中;
步驟3、響應交換機故障,當cpu板檢測到周圍交換機故障時,cpu向交換板發(fā)送打開容錯功能的指令,從而打開連接故障交換機端口的容錯功能。
該指令包含一個32位的值,從低位到高位分別對應1-32個端口。當端口打開容錯功能時,該端口對應的指令值的位置設為1;當端口關閉容錯功能時,該端口對應的指令值的位置設為0。
步驟4、仲裁模塊根據(jù)各端口的容錯功能是否打開,決定來自各端口數(shù)據(jù)包的流向。如果端口的容錯功能處于關閉狀態(tài),仲裁模塊將來自該端口的數(shù)據(jù)包轉(zhuǎn)發(fā)到實時調(diào)度模塊;如果端口的容錯功能處于開啟狀態(tài),仲裁模塊將來自該端口的數(shù)據(jù)包轉(zhuǎn)發(fā)到存儲資源分配模塊。
存儲資源分配模塊根據(jù)數(shù)據(jù)流標識字段,為實時數(shù)據(jù)包分配存儲資源池地址空間。如果該數(shù)據(jù)流標志字段對應的地址空間中已經(jīng)存儲數(shù)據(jù),存儲資源分配模塊清空該地址空間的數(shù)據(jù),并將其對應的地址列表中的值設置為0,然后重新對該實時數(shù)據(jù)進行地址空間的分配;如果該數(shù)據(jù)流標志字段對應的地址空間為空,存儲資源分配模塊將數(shù)據(jù)存儲在該地址空間中,并且將其對應的地址列表的值設置為1。
步驟5、當?shù)竭_數(shù)據(jù)包的接收窗口時,控制邏輯模塊根據(jù)數(shù)據(jù)流標識字段,確定該數(shù)據(jù)包的地址空間。如果該地址空間為空,控制邏輯模塊切換到下一個數(shù)據(jù)包的取回操作;否則,控制邏輯模塊取回改地址空間中的數(shù)據(jù),然后將該地址空間對應的地址列表的值設置為0。
為了減少串行訪問存儲資源池導致的數(shù)據(jù)競爭為題,控制邏輯模塊對數(shù)據(jù)包進行預取,即提前于給定的接收時間窗口一定時間將數(shù)據(jù)取出。
該實施例還提供了一種用軌道交通的具有容錯功能的實時數(shù)據(jù)調(diào)度方法,該方法通過具有容錯功能的實時以太網(wǎng)交換機系統(tǒng)來實現(xiàn),其中,具有容錯功能的實時以太網(wǎng)交換機系統(tǒng)包括cpu板、交換板和phy板。
如圖1所示,其中:cpu板通過pci-e接口與交換板進行控制信息和數(shù)據(jù)信息的交互,交換板通過s3mii接口與phy版進行數(shù)據(jù)信息的交互。
cpu板包括powerpc架構(gòu)的中央處理器(cpu)、存儲單元和pci-e接口。cpu板上運行實時linux系統(tǒng),并且通過pci-e接口與交換板進行數(shù)據(jù)的交換。
交換板是實現(xiàn)具有容錯功能的實時調(diào)度算法的核心硬件板卡,包括物理器件和數(shù)字電路。交換板的物理器件包括xilinxvertex7芯片、flashrom、qdr外接存儲器等;交換板的數(shù)字電路由fpga設計,燒錄到xilinx芯片中。
phy板上包含broadcom的phyasic芯片,是物理接口收發(fā)器,負責實現(xiàn)物理層。
圖2是本發(fā)明的交換板內(nèi)部結(jié)構(gòu)圖,控制物理設備實現(xiàn)普通數(shù)據(jù)幀的轉(zhuǎn)發(fā),保障實時數(shù)據(jù)幀的實時性傳輸,并且提供容錯功能。
交換卡的內(nèi)部結(jié)構(gòu)包括mac、分類器、普通數(shù)據(jù)緩存、時鐘數(shù)據(jù)緩存、實時數(shù)據(jù)通道、普通數(shù)據(jù)通道、多路選擇器和pci-e接口,其中:
mac是數(shù)據(jù)的接口,負責發(fā)送和接收以太網(wǎng)中的數(shù)據(jù)幀。
分類器根據(jù)以太網(wǎng)幀數(shù)據(jù)的ethertype字段,區(qū)分以太網(wǎng)數(shù)據(jù)幀的類型。0x88d7為實時數(shù)據(jù)類型,0x8801是時鐘數(shù)據(jù)類型。
數(shù)據(jù)幀的類型為普通數(shù)據(jù)幀、實時數(shù)據(jù)幀和時統(tǒng)數(shù)據(jù)幀。實時數(shù)據(jù)幀被直接傳輸?shù)綄崟r數(shù)據(jù)通道;普通數(shù)據(jù)幀存儲在普通數(shù)據(jù)緩存中;時統(tǒng)數(shù)據(jù)存儲在時鐘數(shù)據(jù)緩存中。
普通數(shù)據(jù)緩存負責存儲分類器傳入的普通數(shù)據(jù)幀。
時鐘數(shù)據(jù)緩存負責存儲分類器傳入的時統(tǒng)數(shù)據(jù)幀。
實時數(shù)據(jù)通道負責轉(zhuǎn)發(fā)實時數(shù)據(jù),并且提供容錯功能。
其包括容錯模塊、實時調(diào)度模塊和時間同步模塊。容錯模塊負責實現(xiàn)交換機容錯功能;實時調(diào)度模塊負責調(diào)度實時數(shù)據(jù)幀,以保障數(shù)據(jù)幀的實時性傳輸;時鐘同步模塊負責為整個網(wǎng)絡的設備提供同步的全局時鐘。
普通數(shù)據(jù)通道負責實現(xiàn)普通數(shù)據(jù)幀的轉(zhuǎn)發(fā)功能。
多路選擇器負責根據(jù)優(yōu)先級,選擇應該發(fā)送的數(shù)據(jù)幀。其中實時數(shù)據(jù)幀的優(yōu)先級最高,普通數(shù)據(jù)幀的優(yōu)先級最低。
圖3是本發(fā)明的容錯模塊結(jié)構(gòu)圖,其中實現(xiàn)容錯功能的模塊包括仲裁模塊、存儲資源分配邏輯模塊、存儲資源池和控制邏輯模塊。
仲裁模塊的功能是決定進入容錯模塊數(shù)據(jù)的流向。仲裁模塊響應中央處理器的命令,打開或者關閉容錯功能。當容錯功能開啟時,仲裁模塊將數(shù)據(jù)傳輸?shù)酱鎯Y源分配模塊。當容錯功能關閉時,仲裁模塊將數(shù)據(jù)直接傳輸?shù)綄崟r數(shù)據(jù)調(diào)度模塊。
存儲資源分配模塊負責為數(shù)據(jù)分配其在存儲資源池中的位置。在實時數(shù)據(jù)中,每個數(shù)據(jù)流具有一個特定的字段進行標識,字段取值為1-4096。該模塊通過解析標識字段來決定數(shù)據(jù)流在存儲資源池中的存儲位置。
存儲資源池負責緩存需要進行容錯的實時數(shù)據(jù)。本發(fā)明中的存儲資源池通過外接存儲設備qdr實現(xiàn)。存儲池中的地址空間為1-4096,每一個空間能且僅能存儲一個以太網(wǎng)的最長幀。存儲地址空間與數(shù)據(jù)流標識字段一一對應。存儲資源池中維護一個4096位的地址列表,用于記錄1-4096地址空間中是否已經(jīng)存儲了數(shù)據(jù)。如果地址空間存儲了數(shù)據(jù),在列表中該地址位標識為1,否則標識為0;
控制邏輯模塊負責在規(guī)定的時間從存儲資源池中取回數(shù)據(jù)。每個實時數(shù)據(jù)對應一個時間表的條目,條目中記錄該數(shù)據(jù)的接收時間窗口和發(fā)送時間。每個實時數(shù)據(jù)應該在規(guī)定的時間窗口中到達,并且在規(guī)定的時間點發(fā)送出去。當?shù)竭_數(shù)據(jù)的接收時間窗口時,該模塊獲取數(shù)據(jù)流標識字段,從存儲資源池中獲取該數(shù)據(jù)。在獲取過程中,該模塊首先查詢地址列表,如果數(shù)據(jù)流字段對應地址的地址列表值為1,該模塊從存儲資源池中獲取數(shù)據(jù),之后將數(shù)據(jù)傳輸?shù)綄崟r調(diào)度模塊。否則,該模塊不響應該數(shù)據(jù)的取回請求。
數(shù)據(jù)通過mac模塊的接收,到達分類器。分類器通過解析以太網(wǎng)數(shù)據(jù)的ethertype字段,將字段值為0x88d7的實時數(shù)據(jù)轉(zhuǎn)發(fā)到容錯模塊。實時數(shù)據(jù)首先通過仲裁模塊,如果該實時數(shù)據(jù)對應的輸入端口容錯功能關閉,則被仲裁模塊轉(zhuǎn)發(fā)到實時調(diào)度模塊;如果該實時數(shù)據(jù)對應的輸入端口容錯功能打開,則被仲裁模塊轉(zhuǎn)發(fā)到存儲資源分配模塊中。存儲資源分配模塊根據(jù)數(shù)據(jù)標識字段為該實時數(shù)據(jù)在存儲資源池中分配存儲空間。當控制邏輯模塊判定該實時數(shù)據(jù)的接收時間到達時,從存儲資源池中將該實時數(shù)據(jù)取出,并發(fā)送到實時調(diào)度模塊。打開端口的容錯功能時,因數(shù)據(jù)提前到達實時數(shù)據(jù)緩存在資源存儲池中,并在規(guī)定的接收時間被取出,所以實時數(shù)據(jù)不會因為提前到達實時調(diào)度模塊而被丟棄,從而實現(xiàn)了容錯功能。
雖然上面結(jié)合本發(fā)明的優(yōu)選實施例對本發(fā)明的原理進行了詳細的描述,本領域技術人員應該理解,上述實施例僅僅是對本發(fā)明的示意性實現(xiàn)方式的解釋,并非對本發(fā)明包含范圍的限定。實施例中的細節(jié)并不構(gòu)成對本發(fā)明范圍的限制,在不背離本發(fā)明的精神和范圍的情況下,任何基于本發(fā)明技術方案的等效變換、簡單替換等顯而易見的改變,均落在本發(fā)明保護范圍之內(nèi)。