本發(fā)明涉及工業(yè)異構網絡的無線通信領域,具體地說是一種面向工業(yè)異構網絡的無線鏈路時延補償裝置和方法。
背景技術:基于無線技術構建新型工業(yè)回程網絡,可有效降低網絡布設成本,增加網絡覆蓋面積。而工業(yè)以太網作為當前成熟的、廣泛應用的工業(yè)有線網絡,短期內不能被無線網絡所取代,進而造成無線網絡和以太網長期共存的現(xiàn)象,即構成工業(yè)異構網絡。精確的時間同步對于保證工業(yè)異構網絡的實時性和安全性等應用需求至關重要。工業(yè)異構網絡作為無線網絡和有線網絡的集成,網絡中存在多種通信鏈路,包括以太網節(jié)點間的有線通信鏈路和無線通信鏈路等。同時,實驗發(fā)現(xiàn),現(xiàn)有以太網時間同步技術的精度可以達到次ns級,但實現(xiàn)無線通信的以太網節(jié)點間的同步精度卻可達ms級,進而造成全網的同步精度嚴重下降。因此,實現(xiàn)以太網節(jié)點間的無線傳輸、同時保證高精度的時間同步是工業(yè)異構網絡技術目前迫切需要解決的問題。由于精度低、成本高、安全性低、可擴展性差以及應用范圍有限等因素,現(xiàn)有的時間同步技術不能直接應用到工業(yè)異構網絡中。而建立在UDP/IP協(xié)議基礎之上的成熟以太網時間同步協(xié)議IEEE1588協(xié)議,可以被直接應用到無線網絡中。同時,IEEE1588協(xié)議提供普通時鐘(OrdinaryClock,OC)、透明時鐘(TransparentClock,TC)、邊界時鐘(BoundaryClock,BC)等不同的時鐘類型,具有可擴展性好、同步精度高等特點。所以IEEE1588協(xié)議是實現(xiàn)工業(yè)異構網絡時間同步的首選。IEEE1588協(xié)議實現(xiàn)高精度時間同步的關鍵是基于硬件時間戳和對稱鏈路,即在介質訪問控制層(MediaAccessControlLayer,MAC層)和物理層(PhysicalLayer,PHY層)之間的介質獨立接口(MediumIndependentInterface,MII)處取出時間戳,同時聯(lián)合TC機制保證同步節(jié)點間的上下行鏈路時延一致。當前市場上的以太網芯片多提供MII接口,但Wi-Fi芯片多為單芯片結構,即造成Wi-Fi節(jié)點時間戳的選取只能在MAC層以上實現(xiàn),產生較大的時延波動。所以,Wi-Fi節(jié)點的CPU處理、MAC層排隊、PHY層傳輸?shù)绒D發(fā)時延誤差以及時間戳選取機制會造成鏈路的非對稱,嚴重影響時間同步精度?,F(xiàn)有方法多采用統(tǒng)計學原理進行鏈路時延補償,增加了網絡中的報文,同時實時性差。
技術實現(xiàn)要素:針對現(xiàn)有技術的不足,本發(fā)明提出了一種面向工業(yè)異構網絡的無線鏈路時延補償裝置和方法,是一種工業(yè)異構網絡環(huán)境下,基于IEEE1588時間同步協(xié)議的無線鏈路時延補償裝置和方法。本發(fā)明為實現(xiàn)上述目的所采用的技術方案是:一種面向工業(yè)異構網絡的無線鏈路時延補償裝置,包括:ESTW模塊,用于實現(xiàn)以太網節(jié)點間的無線通信;ETE模塊,用于提供以太網端口處PHY層與MAC層之間的MII端口;IEEE1588報文駐留時間檢測和補償模塊,用于完成IEEE1588報文在ESTW模塊的駐留時間檢測和補償;其中,ESTW模塊與ETE模塊之間通過以太網端口相連,與IEEE1588報文駐留時間檢測和補償模塊之間通過驅動層的GPIO口相連,ETE模塊與IEEE1588報文駐留時間檢測和補償模塊之間通過MII端口相連。所述ESTW模塊包括無線網卡以及主板,主板的以太網端口與以太網節(jié)點實現(xiàn)有線連接,無線網卡實現(xiàn)報文的無線傳輸。所述ETE模塊為RTL8212雙PHY層芯片。所述IEEE1588報文駐留時間檢測和補償模塊包括IEEE1588報文檢測模塊、時鐘模塊、時間戳寄存器模塊、IEEE1588報文一致性檢測模塊以及IEEE1588報文修正域補償模塊;所述IEEE1588報文檢測模塊用于完成MII端口處IEEE1588報文的檢測;所述時鐘模塊用于提供當前時間信息;所述時間戳寄存器模塊用于完成時間戳信息的存儲;所述IEEE1588報文一致性檢測模塊完成報文在ESTW模塊的駐留時間計算;所述IEEE1588報文修正域補償模塊對報文修正域的值進行修正。其中,時鐘模塊根據(jù)IEEE1588報文檢測模塊的檢測結果,決定是否將當前時間發(fā)送給時間戳寄存器模塊;IEEE1588報文一致性檢測模塊調取時間戳寄存器模塊的時間信息,并將檢測后的信息發(fā)送給IEEE1588報文修正域補償模塊;IEEE1588報文修正域補償模塊根據(jù)IEEE1588報文一致性檢測模塊的時間信息以及IEEE1588報文檢測模塊的報文信息對相應報文修正域進行補償。一種面向工業(yè)異構網絡的無線鏈路時延補償方法,包括以下步驟:采用ESTW模塊實現(xiàn)以太網節(jié)點間的無線通信,所述以太網節(jié)點為既連接有線網絡又連接無線網絡的以太網節(jié)點;利用FPGA實現(xiàn)ESTW模塊的IEEE1588報文駐留時間檢測;將報文駐留時間加入到相應IEEE1588報文的修正域中,完成鏈路時延補償。所述IEEE1588報文駐留時間檢測指IEEE1588報文駐留時間檢測和補償裝置通過檢測IEEE1588報文在以太網端口位置TS1和Wi-Fi端口位置TS2處的時間戳差值,計算IEEE1588報文在ESTW模塊中的駐留時間。所述將報文駐留時間加入到相應IEEE1588報文的修正域中,具體為:IEEE1588報文修正域補償模塊根據(jù)IEEE1588報文檢測模塊的報文檢測結果以及報文sequenceID,將sequenceID一致的時間差值,即相應報文的駐留時間,增加到Follow_Up報文和Delay_Resp報文的修正域correction_field中。所述報文修正域是指IEEE1588報文的報頭correctionField域,在two-step時鐘中,Sync報文和Delay_Req報文的該域值為0,F(xiàn)ollow_Up報文和Delay_Resp報文的該域值分別為Sync報文和Delay_Req報文在中間節(jié)點的轉發(fā)時延。所述特定IEEE1588報文包括:Sync報文、Delay_Req報文、Follow_Up報文、Delay_Resp報文。所述Wi-Fi端口IEEE1588報文檢測包括實現(xiàn)Wi-Fi驅動層的IEEE1588報文檢測。本發(fā)明提出的工業(yè)異構網絡無線鏈路時延補償裝置和方法充分考慮工業(yè)異構網絡的“有線-無線”架構的特殊性以及無線鏈路的非對稱性問題,利用IEEE1588協(xié)議的異構特點,在不影響現(xiàn)有IEEE1588協(xié)議運行的基礎上,減少網絡中的報文,實現(xiàn)實時性鏈路時延補償。具體表現(xiàn)在:1.本發(fā)明基于現(xiàn)有的IEEE1588協(xié)議層次化時間同步模型,可擴展性好、靈活性強,不需要額外的協(xié)議開銷;2.本發(fā)明采用ESTW模塊實現(xiàn)以太網節(jié)點間的無線通信,在不影響現(xiàn)有以太網設備的同時,降低了額外的硬件開發(fā)需求,實用性強;3.本發(fā)明利用FPGA實現(xiàn)IEEE1588報文在ESTW模塊的駐留時間檢測,降低了協(xié)議開銷,提高了網絡的吞吐量,滿足了鏈路時延補償?shù)膶崟r性要求,提高了網絡的時間同步精度。附圖說明圖1為本發(fā)明的工業(yè)異構網絡示意圖;圖2為本發(fā)明的ESTW模塊示意圖;圖3為無線鏈路時延補償裝置;圖4為IEEE802.3/Ethernet協(xié)議下的IEEE1588報文封裝格式;圖5為UDP/IP協(xié)議下的IEEE1588報文封裝格式;圖6為IEEE1588報文駐留時間檢測和補償模塊;圖7為Wi-Fi端IEEE1588報文檢測流程圖具體實施方式下面結合附圖及實施例對本發(fā)明做進一步的詳細說明。構建工業(yè)實時應用的層次化異構網絡;設計ESTW模塊實現(xiàn)特定以太網節(jié)點間的無線通信;利用FPGA實現(xiàn)ESTW模塊的報文駐留時間檢測,同時完成IEEE1588報文修正域的鏈路時延補償。如圖1所示,所述工業(yè)異構網絡中同時存在無線通信鏈路(A—D,B—F,C—H)和有線通信鏈路(A—B,A—C,B—E,C—G,D—I,D—G)。網絡中節(jié)點均為具有IEEE1588功能的以太網節(jié)點,節(jié)點A、B、C、D、F、H為添加了ESTW模塊的混合節(jié)點。節(jié)點間無線通信的實現(xiàn)由ESTW模塊實現(xiàn)。如圖2所示,所述ESTW模塊由YOBTON公司的YBT5N9220以太網卡以及COMPEX公司的WP546HV主板構成。圖中虛線箭頭所指示的方向為網絡中報文傳輸?shù)姆较?。ESTW模塊的PHY1端口與以太網節(jié)點實現(xiàn)有線連接,而其Wi-Fi網卡實現(xiàn)報文的無線傳輸。如圖3所示為所述ESTW模塊的IEEE1588報文駐留時間檢測結構。圖中虛線箭頭所指示的方向為報文的傳輸方向。RTL8212芯片的PHY1端口通過RJ45接口與以太網節(jié)點相連,PHY2端口通過RJ45接口接ESTW模塊的PHY1端口,二者同時通過MII口與FPGA相連。TS1和TS2位置分別為以太網端口和Wi-Fi端口的時間戳選取點,其中TS1的位置在PHY層和MAC層之間的MII接口處,TS2的位置在MAC層之上的驅動層。Wi-Fi端在驅動層實現(xiàn)IEEE1588報文檢測,并將檢測結果通過通用輸入輸出(GeneralPurposeInputOutput,GPIO)端口輸出。IEEE1588報文駐留時間檢測模塊通過檢測MII口的報文實現(xiàn)以太網端的IEEE1588報文檢測。結合TS1和TS2位置處的時間戳,IEEE1588報文駐留時間檢測模塊計算IEEE1588報文在ESTW模塊中的駐留時間,同時對相應IEEE1588報文的修正域值進行補償,實現(xiàn)高精度的鏈路時延補償。如圖4和圖5所示,為所述IEEE1588報文的兩種封裝格式。當報文封裝格式為“IEEE802.3/Ethernet”時,以太網幀類型域的值為0x88f7;當報文承載方式為“UDP/IP”時,其UDP端口號為319/320(319為事件報文,320為普通報文)。同時,IEEE1588報文的報頭messageType域指示報文的類型(0—Sync報文,1—Delay_Req報文,2—Pdelay_Req報文,3—Pdelay_Resp報文,8—Follow_Up報文,9—Delay_Resp報文)。如圖6所示,所述IEEE1588報文駐留時間檢測模塊結構包括:IEEE1588報文檢測模塊、時鐘模塊、時間戳寄存器模塊、IEEE1588報文一致性檢測模塊以及IEEE1588報文修正域補償模塊。當IEEE1588報文檢測模塊檢測到PHY1端口的MII接口上有數(shù)據(jù)的發(fā)送或接受時,即通知時鐘模塊記下該時刻的時間值,繼續(xù)對數(shù)據(jù)進行分析,若是IEEE1588報文中的事件報文,則將該時間值發(fā)給時間戳寄存器模塊,否則丟棄該數(shù)值;同時,由ESTW模塊的Wi-Fi端發(fā)送來的GPIO信號同樣觸發(fā)時鐘模塊將當前的時間值發(fā)送到時間戳寄存器模塊。時間戳寄存器模塊通過IEEE1588報文的sequenceID區(qū)分時間戳值。IEEE1588報文一致性檢測模塊調取時間戳寄存器的時間戳值,并將差值,即相應IEEE1588報文的駐留時間輸出給IEEE1588報文修正域補償模塊。IEEE1588報文修正域補償模塊修改相同sequenceID的IEEE1588報文的修正域correctionField,然后將修正后的報文通過PHY1/PHY2輸出。模塊中的信號為MII端口信號。各模塊的具體步驟如下:IEEE1588報文檢測模塊針對Sync報文、Delay_Req報文、Follow_Up報文、Delay_Resp等報文進行檢測。在接受/發(fā)送MAC幀時,首先接收/發(fā)送的是前導碼序列0X55和幀開始符0xD5。當檢測到幀開始符時,IEEE1588報文檢測模塊即通知時鐘模塊記錄當前時間。針對IEEE1588報文不同的封裝方式,其檢測機制如下:IEEE802.3/Ethernet封裝格式下,若以太網幀類型域的值為0x88f7,則該報文為IEEE802.3/Ethernet封裝格式下的IEEE1588報文,繼續(xù)分析報文的報頭,解析message_type域的值以及報文序列號sequenceID;UDP/IP協(xié)議封裝格式下,若以太網幀類型域的值為0x0800,則該報文為IPV4報文;繼續(xù)檢測IPV4報文的類型域,若為0xl1,則上層數(shù)據(jù)為UDP數(shù)據(jù)報文,進一步檢測UDP的源端口號,若為319或320,則為IEEE1588報文。最后解析message_type域的值以及報文序列號sequenceID。最后,將檢測結果發(fā)送給時鐘模塊,將報文和檢測結果同時發(fā)送給IEEE1588報文修正域補償模塊。時鐘模塊由1個32位的ns寄存器和1個48位的s寄存器構成。時鐘模塊根據(jù)IEEE1588報文檢測模塊的檢測結果以及GPIO值將當前的IEEE1588報文的時間戳值發(fā)送給時間戳寄存器模塊。時間戳寄存器模塊對時鐘模塊傳送到的時間值進行存儲。PTP報文一致性檢測模塊的功能主要是調用時間戳寄存器模塊的時間值,通過比較時間值的序列號,并求取時間差來獲取相應IEEE1588報文的駐留時間,同時將駐留時間以及序列號sequenceID輸出到IEEE1588報文修正域補償模塊。IEEE1588報文修正域補償模塊根據(jù)IEEE1588報文檢測模塊的報文檢測結果以及相應的報文,將sequenceID一致的時間差值,增加到Follow_Up報文和Delay_Resp報文修正域correction_field,然后將報文通過PHY1或PHY2輸出。如圖7所示,所訴Wi-Fi端IEEE1588報文檢測主要包括驅動層應用程序的修改,即對AR9220芯片驅動程序中的發(fā)送函數(shù)和接受函數(shù)進行修改。IEEE1588報文檢測過程和IEEE1588報文檢測模塊一致。當在發(fā)送或接收到IEEE1588報文時,設置GPIO引腳,觸發(fā)時鐘模塊。