一種信息傳輸方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種信息傳輸方法,該方法包括:在分布式系統(tǒng)中進(jìn)一步包括UART通道選通單元,通過UART口與主控單元和轉(zhuǎn)發(fā)引擎單元相連;主控單元通過所述UART通道選通單元與轉(zhuǎn)發(fā)引擎單元之間建立UART通道,作為IPC通道的備份;在IPC中斷的情況下,保證主控單元和轉(zhuǎn)發(fā)引擎單元之間的關(guān)鍵信息的傳輸?;谕瑯拥陌l(fā)明構(gòu)思,本發(fā)明還提出一種裝置,在轉(zhuǎn)發(fā)引擎單元心跳異常時(shí),主控單元能夠?qū)υ撧D(zhuǎn)發(fā)引擎單元加以干預(yù)并快速恢復(fù)。
【專利說明】一種信息傳輸方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,特別涉及一種信息傳輸方法和裝置。
【背景技術(shù)】
[0002]一個(gè)分布式系統(tǒng)包括一個(gè)主控單元,多個(gè)轉(zhuǎn)發(fā)引擎單元。參見圖1,圖1為現(xiàn)有實(shí)現(xiàn)中分布式系統(tǒng)示意圖。圖1中,以一個(gè)主控單元和3個(gè)轉(zhuǎn)發(fā)引擎單元為例??刂仆ǖ篮蛿?shù)據(jù)通道分離,通過進(jìn)程間通信(Inter-process Communication, IPC)交換單元實(shí)現(xiàn)主控單元和轉(zhuǎn)發(fā)引擎單元之間的控制信息交互;通過板間數(shù)據(jù)通道交換單元實(shí)現(xiàn)主控單元和轉(zhuǎn)發(fā)引擎單元之間的報(bào)文數(shù)據(jù)的交互。
[0003]主控單元負(fù)責(zé)系統(tǒng)的全局管理、路由的計(jì)算和下發(fā)。主控單元上包括整個(gè)系統(tǒng)的所有路由轉(zhuǎn)發(fā)表項(xiàng)信息。主控單元只通過控制通道向每一個(gè)轉(zhuǎn)發(fā)引擎單元下發(fā)與之相關(guān)的路由轉(zhuǎn)發(fā)信息。也就是說,每一個(gè)轉(zhuǎn)發(fā)引擎單元的路由轉(zhuǎn)發(fā)表只是主控單元的一個(gè)子集。
[0004]主控單元和轉(zhuǎn)發(fā)引擎單元之間的控制通道即是IPC,如圖1中的實(shí)線箭頭所示。主控單元和每個(gè)轉(zhuǎn)發(fā)引擎單元都用一個(gè)GE接口作為IPC通道,用一個(gè)GE交換芯片連接作為IPC交換單元,主控單元和轉(zhuǎn)發(fā)引擎單元之間通過GE交換芯片實(shí)現(xiàn)路由轉(zhuǎn)發(fā)表信息的交換。
[0005]主控單元和轉(zhuǎn)發(fā)引擎單元之間的數(shù)據(jù)通道采用PCIE或者XAUI接口,用PCIESWITCH芯片或者XGE交換芯片作為板間數(shù)據(jù)通道交換單元,如圖1中的虛線所示。
[0006]主控單元和任一轉(zhuǎn)發(fā)引擎單元之間通過特定的心跳(ke印alive)報(bào)文來維持二者之間的控制通道連接狀態(tài)。這個(gè)心跳報(bào)文也通過IPC控制通道來傳輸。主控單元會(huì)定時(shí)向每個(gè)轉(zhuǎn)發(fā)引擎單元發(fā)出心跳報(bào)文并等待回應(yīng)。如果連續(xù)幾個(gè)心跳報(bào)文都沒有回應(yīng),主控單元認(rèn)為目的轉(zhuǎn)發(fā)引擎單元已經(jīng)不能正常工作,會(huì)發(fā)送硬件信號(hào)復(fù)位這個(gè)轉(zhuǎn)發(fā)引擎單元,使之恢復(fù)正常。
[0007]當(dāng)轉(zhuǎn)發(fā)引擎單元工作不正常時(shí),無法保證IPC報(bào)文的正常傳輸。如,轉(zhuǎn)發(fā)引擎單元已經(jīng)無法為IPC報(bào)文分配buffer,或者轉(zhuǎn)發(fā)引擎單元因?yàn)閴毫^大已經(jīng)無法保證負(fù)責(zé)IPC報(bào)文處理的那個(gè)任務(wù)或者進(jìn)程得到正常調(diào)度。這個(gè)時(shí)候,主控單元已經(jīng)無法獲取對應(yīng)的轉(zhuǎn)發(fā)引擎單元的信息。對于主控單元,轉(zhuǎn)發(fā)引擎單元變成了一個(gè)黑盒,主控單元只能通過硬件信號(hào)復(fù)位轉(zhuǎn)發(fā)引擎單元,使該轉(zhuǎn)發(fā)引擎單元出現(xiàn)較長時(shí)間的轉(zhuǎn)發(fā)業(yè)務(wù)中斷。并且,因?yàn)镮PC已經(jīng)中斷,主控單元無法獲取轉(zhuǎn)發(fā)引擎單元工作異常的原因并進(jìn)行診斷,導(dǎo)致整個(gè)分布式系統(tǒng)健壯性和可維護(hù)性得不到保證。
【發(fā)明內(nèi)容】
[0008]有鑒于此,本發(fā)明提供一種信息傳輸方法和裝置,在轉(zhuǎn)發(fā)引擎單元心跳異常時(shí),主控單元能夠?qū)υ撧D(zhuǎn)發(fā)引擎單元加以干預(yù)并快速恢復(fù)。
[0009]為解決上述技術(shù)問題,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0010]—種信息傳輸方法,應(yīng)用于包括一個(gè)主控單兀和多個(gè)轉(zhuǎn)發(fā)引擎單兀的分布式系統(tǒng)中,在該系統(tǒng)中進(jìn)一步包括UART通道選通單元,通過UART 口與主控單元和轉(zhuǎn)發(fā)引擎單元相連;主控單元通過所述UART通道選通單元建立與所述轉(zhuǎn)發(fā)引擎單元之間的UART通道;所述方法包括:
[0011]所述主控單元感知任一轉(zhuǎn)發(fā)引擎單元心跳異常時(shí),通過所述UART通道選通單元在所述UART通道上,建立與該轉(zhuǎn)發(fā)引擎單元之間的UART連接,并通過該UART連接向該轉(zhuǎn)發(fā)引擎單元發(fā)出心跳檢測命令;
[0012]如果在第一預(yù)設(shè)時(shí)間內(nèi),通過所述UART連接接收到該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng),則通知該轉(zhuǎn)發(fā)引擎單元回傳其診斷信息;在接收到該轉(zhuǎn)發(fā)引擎單元回傳的診斷信息時(shí),進(jìn)行分析并根據(jù)分析結(jié)果通過UART連接下發(fā)相應(yīng)的恢復(fù)命令,使該轉(zhuǎn)發(fā)引擎單元進(jìn)行相應(yīng)的恢復(fù);
[0013]如果在第一預(yù)設(shè)時(shí)間到時(shí),未通過所述UART連接接收到該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng),則發(fā)出硬件信號(hào)復(fù)位該轉(zhuǎn)發(fā)引擎單元。
[0014]一種裝置,可應(yīng)用于包括一個(gè)主控單元和多個(gè)轉(zhuǎn)發(fā)引擎單元的分布式系統(tǒng)中的主控單元上,在所述系統(tǒng)中進(jìn)一步包括通用異步收發(fā)器UART通道選通單元,通過UART 口與主控單元和轉(zhuǎn)發(fā)引擎單元相連以使所述主控單元與所述轉(zhuǎn)發(fā)引擎單元之間形成UART通道,該裝置包括:感知單元、建立單元、發(fā)送單元、接收單元和處理單元;
[0015]所述感知單元,用于感知任一轉(zhuǎn)發(fā)引擎單元心跳是否異常;
[0016]所述建立單元,用于在所述感知單元感知到任一轉(zhuǎn)發(fā)引擎單元心跳異常時(shí),通過所述UART通道選通單元在所述UART通道上,建立與該轉(zhuǎn)發(fā)引擎單元之間的UART連接;
[0017]所述發(fā)送單元,用于通過所述建立單元建立的UART連接,向該轉(zhuǎn)發(fā)引擎單元發(fā)出心跳檢測命令;在第一預(yù)設(shè)時(shí)間內(nèi),如果所述接收單元通過所述UART連接接收到該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng),則通知該轉(zhuǎn)發(fā)引擎單元回傳其診斷信息;如果在第一預(yù)設(shè)時(shí)間到時(shí),所述接收單元未通過所述UART連接接收到該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng),則發(fā)出硬件信號(hào)復(fù)位該轉(zhuǎn)發(fā)引擎單元;
[0018]所述接收單元,用于通過UART連接接收該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng);接收該轉(zhuǎn)發(fā)引擎單元回傳的診斷信息;
[0019]所述處理單元,用于在所述接收單元接收到該轉(zhuǎn)發(fā)引擎單元回傳的診斷信息時(shí),進(jìn)行分析并根據(jù)分析結(jié)果通過UART連接下發(fā)相應(yīng)的恢復(fù)命令,使該轉(zhuǎn)發(fā)引擎單元進(jìn)行相應(yīng)的恢復(fù)。
[0020]一種裝置,可應(yīng)用于包括一個(gè)主控單元和多個(gè)轉(zhuǎn)發(fā)引擎單元的分布式系統(tǒng)中的任一轉(zhuǎn)發(fā)引擎單元上,在所述系統(tǒng)中進(jìn)一步包括通用異步收發(fā)器UART通道選通單元,通過UART 口與主控單元和轉(zhuǎn)發(fā)引擎單元相連以使所述主控單元與所述轉(zhuǎn)發(fā)引擎單元之間形成UART通道,該裝置包括:接收單元、發(fā)送單元和處理單元;
[0021]所述接收單元,用于通過在所述UART通道上建立的與所述主控單元的UART連接接收所述主控單元發(fā)送的心跳檢測命令;接收主控單元通知回傳本地診斷信息;接收主控單元下發(fā)的恢復(fù)命令;接收主控單元發(fā)送的硬件信號(hào);
[0022]所述發(fā)送單元,用于當(dāng)所述接收單元通過在所述UART通道上建立的與所述主控單元的UART連接接收所述主控單元發(fā)送的心跳檢測命令時(shí),通過所述UART連接發(fā)送對該心跳檢測命令的響應(yīng);所述接收單元接收到主控單元通知回傳本地診斷信息時(shí),向所述主控單元回傳診斷信息;
[0023]所述處理單元,用于在所述接收單元接收到主控單元根據(jù)對診斷信息的分析結(jié)果,通過UART連接下發(fā)的相應(yīng)的恢復(fù)命令時(shí),進(jìn)行相應(yīng)的恢復(fù);在所述接收單元接收到主控單元發(fā)送的硬件信號(hào)時(shí),復(fù)位本轉(zhuǎn)發(fā)引擎單元。
[0024]綜上所述,本發(fā)明通過在分布式系統(tǒng)中增加UART通道選通單元,通過UART 口與主控單元和轉(zhuǎn)發(fā)引擎單元相連;主控單元通過所述UART通道選通單元與轉(zhuǎn)發(fā)引擎單元之間建立UART通道,作為IPC通道的備份;在IPC中斷的情況下,保證主控單元和轉(zhuǎn)發(fā)引擎單元之間的關(guān)鍵信息的傳輸。在轉(zhuǎn)發(fā)引擎單元心跳異常時(shí),主控單元能夠?qū)υ撧D(zhuǎn)發(fā)引擎單元加以干預(yù)并快速恢復(fù)。
【專利附圖】
【附圖說明】
[0025]圖1為現(xiàn)有實(shí)現(xiàn)中分布式系統(tǒng)示意圖;
[0026]圖2為本發(fā)明具體實(shí)施例中分布式示意圖;
[0027]圖3為本發(fā)明實(shí)施例中UART通道選通單元的邏輯示意圖;
[0028]圖4為本發(fā)明具體實(shí)施例中信息傳輸方法流程示意圖;
[0029]圖5為本發(fā)明具體實(shí)施例中應(yīng)用于主控單元上的裝置結(jié)構(gòu)示意圖;
[0030]圖6為本發(fā)明具體實(shí)施例中應(yīng)用于轉(zhuǎn)發(fā)引擎單元的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0031]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對本發(fā)明所述方案作進(jìn)一步地詳細(xì)說明。
[0032]本發(fā)明實(shí)施例中提出一種信息傳輸方法,應(yīng)用于包括一個(gè)主控單元和多個(gè)轉(zhuǎn)發(fā)引擎單元的分布式系統(tǒng)中。在該系統(tǒng)中增加通用異步收發(fā)器(Universal AsynchronousReceiver/Transmitter, UART)通道選通單元,通過UART 口與主控單元和轉(zhuǎn)發(fā)引擎單元相連;主控單元通過所述UART通道選通單元與轉(zhuǎn)發(fā)引擎單元之間建立UART通道,作為IPC通道的備份;在IPC中斷的情況下,保證主控單元和轉(zhuǎn)發(fā)引擎單元之間的關(guān)鍵信息的傳輸。在轉(zhuǎn)發(fā)引擎單元心跳異常時(shí),主控單元能夠?qū)υ撧D(zhuǎn)發(fā)引擎單元加以干預(yù)并快速恢復(fù)。
[0033]參見圖2,圖2為本發(fā)明具體實(shí)施例中分布式示意圖。圖2中省略了數(shù)據(jù)傳輸部分示意圖,僅包括控制信息傳輸部分示意圖。在該分布式系統(tǒng)中數(shù)據(jù)傳輸同現(xiàn)有實(shí)現(xiàn),不再描述。圖2中以3個(gè)轉(zhuǎn)發(fā)引擎單元為例,增加的UART通道選通單元可以是一個(gè)CPLD、FPGA或者,能夠?qū)崿F(xiàn)一點(diǎn)到多點(diǎn)的選通的邏輯單元。
[0034]UART通道選通單元將主控單元的UART接口和轉(zhuǎn)發(fā)引擎單元的UART接口連接起來,當(dāng)IPC通道不可用時(shí),主控單元把心跳報(bào)文切換到UART通道進(jìn)行傳輸。
[0035]UART結(jié)構(gòu)簡單可靠,雖然傳輸速率低,但是在緊急狀態(tài)下傳輸少量的關(guān)鍵數(shù)據(jù)和信息還是完全夠用的。一般的CPU芯片都會(huì)提供至少一個(gè)UART接口,作為最后的與外界通信的手段。UART通道上傳輸?shù)氖亲址鞫皇前?,CPU通過中斷處理UART接口上收過來的字符,不需要buffer資源。所以,即便沒有buffer資源,即便任務(wù)調(diào)度異常,只要CPU能響應(yīng)中斷,就可以處理UART接口上接收的信息。恰恰解決了當(dāng)轉(zhuǎn)發(fā)引擎單元工作不正常時(shí),無法保證IPC報(bào)文的正常傳輸?shù)膯栴}。[0036]參見圖3,圖3為本發(fā)明實(shí)施例中UART通道選通單元的邏輯示意圖。圖3中,將UART通道選通單元看作是一個(gè)點(diǎn)到多點(diǎn)的連通開關(guān),最上面的UARTO連接主控單元,最下面的UART1、UART2和UART3分別連接轉(zhuǎn)發(fā)引擎單元1、轉(zhuǎn)發(fā)引擎單元2和轉(zhuǎn)發(fā)引擎單元3。
[0037]初始狀態(tài),即建立物理UART通道之后,如圖3中所示,主控單元與各轉(zhuǎn)發(fā)引擎單元之間處于非連通狀態(tài)。
[0038]當(dāng)某個(gè)轉(zhuǎn)發(fā)引擎單元,如轉(zhuǎn)發(fā)引擎單元I心跳異常時(shí),主控單元通過UART通道選通單元在主控單元和轉(zhuǎn)發(fā)引擎單元建立的UART通道的基礎(chǔ)上,建立UART連接。
[0039]具體實(shí)現(xiàn)時(shí),主控單元在感知到該轉(zhuǎn)發(fā)引擎單元心跳異常時(shí),通過UART接口向所述UART通道選通單元發(fā)出選通命令,使UART通道選通單元在UART通道上,建立本主控單元與該轉(zhuǎn)發(fā)引擎單元之間的UART連接。
[0040]UART通道選通單元接收到主控單元發(fā)送的選通命令時(shí),根據(jù)選通命令中的轉(zhuǎn)發(fā)引擎單元編號(hào)(1),建立主控單元與轉(zhuǎn)發(fā)引擎單元I之間的UART連接,UART連接建立后,主控單元和轉(zhuǎn)發(fā)引擎單元I之間處于選通狀態(tài)。其中,選通命令包含:轉(zhuǎn)發(fā)引擎單元編號(hào),以及預(yù)設(shè)字符或預(yù)設(shè)字符的組合,該預(yù)設(shè)字符或預(yù)設(shè)字符的組合用以標(biāo)識(shí)該字符流為選通命令。
[0041]參見圖4,圖4為本發(fā)明具體實(shí)施例中信息傳輸方法流程示意圖。具體步驟為:
[0042]步驟401,主控單元感知任一轉(zhuǎn)發(fā)引擎單元心跳異常時(shí),通過UART通道選通單元在所述UART通道上,建立與該轉(zhuǎn)發(fā)引擎單元之間的UART連接,并通過該UART連接向該轉(zhuǎn)發(fā)引擎單元發(fā)出心跳檢測命令。
[0043]主控單元周期性地向各轉(zhuǎn)發(fā)引擎單元發(fā)送心跳報(bào)文,感知轉(zhuǎn)發(fā)引擎單元心跳異常的方法至少存在如下兩種實(shí)現(xiàn)方式:
[0044]第一種,對于任一轉(zhuǎn)發(fā)引擎單元,如果主控單元連續(xù)發(fā)送的幾個(gè)心跳報(bào)文都沒有回應(yīng),主控單元?jiǎng)t感知到該轉(zhuǎn)發(fā)引擎單元心跳異常。認(rèn)為該轉(zhuǎn)發(fā)引擎單元已經(jīng)不能正常工作。
[0045]第二種,對于任一轉(zhuǎn)發(fā)引擎單元,如果主控單元向該轉(zhuǎn)發(fā)引擎單元發(fā)送一條心跳報(bào)文后,在預(yù)設(shè)時(shí)間內(nèi),未接收到該心跳報(bào)文的響應(yīng)報(bào)文,主控單元?jiǎng)t感知到該轉(zhuǎn)發(fā)引擎單元心跳異常。認(rèn)為該轉(zhuǎn)發(fā)引擎單元已經(jīng)不能正常工作。
[0046]步驟402,如果在第一預(yù)設(shè)時(shí)間內(nèi)通過所述UART連接接收到該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng),則通知該轉(zhuǎn)發(fā)引擎單元回傳其診斷信息;在接收到該轉(zhuǎn)發(fā)引擎單元回傳的診斷信息時(shí),進(jìn)行分析并根據(jù)分析結(jié)果通過UART連接下發(fā)相應(yīng)的恢復(fù)命令,使該轉(zhuǎn)發(fā)弓I擎單元進(jìn)行相應(yīng)的恢復(fù),結(jié)束本流程。
[0047]本步驟中的診斷信息如內(nèi)存、任務(wù)使用情況等。根據(jù)分析接口下發(fā)相應(yīng)的恢復(fù)命令,如重啟某個(gè)任務(wù)、釋放某塊內(nèi)存等。
[0048]步驟403,如果在第一預(yù)設(shè)時(shí)間到時(shí),未通過所述UART連接接收到該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng),則該主控單元發(fā)出硬件信號(hào)復(fù)位該轉(zhuǎn)發(fā)引擎單元。
[0049]如果在第一預(yù)設(shè)時(shí)間到時(shí),未通過所述UART連接接收到該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng),則確定該轉(zhuǎn)發(fā)引擎單元已經(jīng)不可恢復(fù),此時(shí)處理為主控單元發(fā)出硬件信號(hào)復(fù)位該轉(zhuǎn)發(fā)引擎單元,該處理同現(xiàn)有實(shí)現(xiàn)。
[0050]由于UART通道上傳輸?shù)氖亲址鞫皇前虼?,本?shí)施例中發(fā)送的心跳檢測命令:為主控單元與轉(zhuǎn)發(fā)引擎單元之間約定的用于心跳檢測的字符碼流。心跳檢測命令的響應(yīng):為主控單元與轉(zhuǎn)發(fā)引擎單元之間約定的用于響應(yīng)心跳檢測命令的字符碼流。
[0051]步驟402中主控單元根據(jù)分析結(jié)果通過UART連接下發(fā)相應(yīng)的恢復(fù)命令,之后,所述方法進(jìn)一步包括:
[0052]主控單元從IPC通道向該轉(zhuǎn)發(fā)引擎單元發(fā)出心跳報(bào)文。
[0053]如果在第二預(yù)設(shè)時(shí)間內(nèi),通過IPC通道接收到該轉(zhuǎn)發(fā)引擎單元發(fā)送的心跳響應(yīng),表示該轉(zhuǎn)發(fā)引擎單元已恢復(fù)正常,主控單元與該轉(zhuǎn)發(fā)引擎單元之間傳輸控制報(bào)文時(shí)切換到正常模式,即后續(xù)使用IPC通道傳輸與該轉(zhuǎn)發(fā)引擎單元之間的控制報(bào)文;并向UART通道選通單元發(fā)出斷開UART連接的命令,使UART通道選通單元斷開本主控單元與該轉(zhuǎn)發(fā)引擎單元之間的UART連接。
[0054]如果第二預(yù)設(shè)時(shí)間到時(shí),通過IPC通道未接收到該轉(zhuǎn)發(fā)引擎單元發(fā)送的心跳響應(yīng),則通過硬件信號(hào)復(fù)位該轉(zhuǎn)發(fā)引擎單元;并向UART通道選通單元發(fā)出斷開UART連接的命令,使UART通道選通單元斷開本主控單元與該轉(zhuǎn)發(fā)引擎單元之間的UART連接。
[0055]UART通道選通單元接收到斷開UART連接的命令時(shí),斷開與對應(yīng)轉(zhuǎn)發(fā)引擎單元的連接,使主控單元與該轉(zhuǎn)發(fā)引擎單元之間恢復(fù)到非選通狀態(tài)。
[0056]步驟403中,該主控單元發(fā)出硬件信號(hào)復(fù)位該轉(zhuǎn)發(fā)引擎單元,之后,所述方法進(jìn)一步包括:
[0057]主控單元向UART通道選通單元發(fā)出斷開UART連接的命令,使UART通道選通單元斷開本主控單元與該轉(zhuǎn)發(fā)引擎單元之間的UART連接。
[0058]其中,所述斷開UART連接的命令,包括:預(yù)設(shè)字符組合和該轉(zhuǎn)發(fā)引擎單元編號(hào),該預(yù)設(shè)字符組合用以標(biāo)識(shí)該字符流為斷開UART連接的命令。
[0059]基于同樣的發(fā)明構(gòu)思,本申請還提出一種裝置,可應(yīng)用于包括一個(gè)主控單元和多個(gè)轉(zhuǎn)發(fā)引擎單元的分布式系統(tǒng)中的主控單元上。在所述系統(tǒng)中進(jìn)一步包括UART通道選通單元,通過UART 口與主控單元和轉(zhuǎn)發(fā)引擎單元相連以使所述主控單元與所述轉(zhuǎn)發(fā)引擎單元之間形成UART通道。參見圖5,圖5為本發(fā)明具體實(shí)施例中應(yīng)用于主控單元上的裝置結(jié)構(gòu)示意圖。該裝置包括:感知單元501、建立單元502、發(fā)送單元503、接收單元504和處理單元505。
[0060]感知單元501,用于感知任一轉(zhuǎn)發(fā)引擎單元心跳是否異常。
[0061]建立單元502,用于在感知單元501感知到任一轉(zhuǎn)發(fā)引擎單元心跳異常時(shí),通過所述UART通道選通單元在所述UART通道上,建立與該轉(zhuǎn)發(fā)引擎單元之間的UART連接。
[0062]發(fā)送單元503,用于通過建立單元502建立的UART連接,向該轉(zhuǎn)發(fā)引擎單元發(fā)出心跳檢測命令;在第一預(yù)設(shè)時(shí)間內(nèi),如果接收單元504通過所述UART連接接收到該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng),則通知該轉(zhuǎn)發(fā)引擎單元回傳其診斷信息;如果在第一預(yù)設(shè)時(shí)間到時(shí),接收單元504未通過所述UART連接接收到該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng),則發(fā)出硬件信號(hào)復(fù)位該轉(zhuǎn)發(fā)引擎單元。
[0063]接收單元504,用于通過UART連接接收該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng);接收該轉(zhuǎn)發(fā)引擎單元回傳的診斷信息。
[0064]處理單元505,用于在接收單元504接收到該轉(zhuǎn)發(fā)引擎單元回傳的診斷信息時(shí),進(jìn)行分析并根據(jù)分析結(jié)果通過UART連接下發(fā)相應(yīng)的恢復(fù)命令,使該轉(zhuǎn)發(fā)引擎單元進(jìn)行相應(yīng)的恢復(fù)。
[0065]較佳地,
[0066]發(fā)送單元503,進(jìn)一步用于在感知單元501感知到該轉(zhuǎn)發(fā)引擎單元心跳異常時(shí),觸發(fā)建立單元502通過UART接口向所述UART通道選通單元發(fā)出選通命令,使UART通道選通單元在UART通道上,建立與所述轉(zhuǎn)發(fā)引擎單元之間的UART連接。
[0067]較佳地,
[0068]發(fā)送單元503,進(jìn)一步用于根據(jù)處理單元505分析結(jié)果向所述轉(zhuǎn)發(fā)引擎單元下發(fā)相應(yīng)的恢復(fù)命令之后,通過IPC通道向該轉(zhuǎn)發(fā)引擎單元發(fā)出心跳報(bào)文;如果在第二預(yù)設(shè)時(shí)間到時(shí),接收單元504通過IPC通道未接收到該轉(zhuǎn)發(fā)引擎單元發(fā)送的心跳響應(yīng),則發(fā)出硬件信號(hào)復(fù)位該轉(zhuǎn)發(fā)引擎單元;在接收單元504通過IPC通道接收到了該轉(zhuǎn)發(fā)引擎單元發(fā)送的心跳響應(yīng)時(shí),觸發(fā)建立單元504向UART通道選通單元發(fā)出斷開UART連接的命令,使UART通道選通單元斷開與該轉(zhuǎn)發(fā)引擎單元之間的UART連接;在本單元發(fā)出硬件信號(hào)復(fù)位該轉(zhuǎn)發(fā)弓I擎單元時(shí),觸發(fā)所述建立單元向UART通道選通單元發(fā)出斷開UART連接的命令,使UART通道選通單元斷開與該轉(zhuǎn)發(fā)引擎單元之間的UART連接。
[0069]接收單元504,進(jìn)一步用于通過IPC通道接收該轉(zhuǎn)發(fā)引擎單元發(fā)送的心跳響應(yīng)。
[0070]處理單元505,進(jìn)一步用于在第二預(yù)設(shè)時(shí)間內(nèi),如果接收單元504通過IPC通道接收到了該轉(zhuǎn)發(fā)引擎單元發(fā)送的心跳響應(yīng),則后續(xù)使用IPC通道傳輸與該轉(zhuǎn)發(fā)引擎單元之間的控制報(bào)文。
[0071]較佳地,
[0072]所述選通命令,包括:轉(zhuǎn)發(fā)引擎單元編號(hào),以及預(yù)設(shè)字符或預(yù)設(shè)字符的組合,其中,該預(yù)設(shè)字符或預(yù)設(shè)字符的組合用以標(biāo)識(shí)該字符流為選通命令;
[0073]所述斷開UART連接的命令,包括:預(yù)設(shè)字符組合和該轉(zhuǎn)發(fā)引擎單元編號(hào),其中,所述預(yù)設(shè)字符組合用以標(biāo)識(shí)該字符流為斷開UART連接的命令;
[0074]所述心跳檢測命令,為主控單元與轉(zhuǎn)發(fā)引擎單元之間約定的用于心跳檢測的字符碼流;
[0075]所述心跳檢測命令的響應(yīng),為主控單元與轉(zhuǎn)發(fā)引擎單元之間約定的用于響應(yīng)心跳檢測命令的字符碼流。
[0076]基于同樣的發(fā)明構(gòu)思,本發(fā)明還提出一種裝置,可應(yīng)用于包括一個(gè)主控單元和多個(gè)轉(zhuǎn)發(fā)引擎單元的分布式系統(tǒng)中的任一轉(zhuǎn)發(fā)引擎單元上;在所述系統(tǒng)中進(jìn)一步包括UART通道選通單元,通過UART 口與主控單元和轉(zhuǎn)發(fā)引擎單元相連以使所述主控單元與所述轉(zhuǎn)發(fā)引擎單元之間形成UART通道。參見圖6,圖6為本發(fā)明具體實(shí)施例中應(yīng)用于轉(zhuǎn)發(fā)引擎單元的裝置結(jié)構(gòu)示意圖。該裝置包括:接收單元601、發(fā)送單元602和處理單元603。
[0077]接收單元601,用于通過在所述UART通道上建立的與所述主控單元的UART連接接收所述主控單元發(fā)送的心跳檢測命令;接收主控單元通知回傳本地診斷信息;接收主控單元下發(fā)的恢復(fù)命令;接收主控單元發(fā)送的硬件信號(hào)。
[0078]發(fā)送單元602,用于當(dāng)接收單元601通過在所述UART通道上建立的與所述主控單元的UART連接接收所述主控單元發(fā)送的心跳檢測命令時(shí),通過所述UART連接發(fā)送對該心跳檢測命令的響應(yīng);接收單元601接收到主控單元通知回傳本地診斷信息時(shí),向所述主控單元回傳診斷信息。[0079]處理單元603,用于在接收單元601接收到主控單元根據(jù)對診斷信息的分析結(jié)果,通過UART連接下發(fā)的相應(yīng)的恢復(fù)命令時(shí),進(jìn)行相應(yīng)的恢復(fù);在接收單元601接收到主控單元發(fā)送的硬件信號(hào)時(shí),復(fù)位本轉(zhuǎn)發(fā)引擎單元。
[0080]上述實(shí)施例的單元可以集成于一體,也可以分離部署;可以合并為一個(gè)單元,也可以進(jìn)一步拆分成多個(gè)子單元。
[0081]綜上所述,本發(fā)明通過在分布式系統(tǒng)中增加UART通道選通單元,通過UART 口與主控單元和轉(zhuǎn)發(fā)引擎單元相連;主控單元通過所述UART通道選通單元與轉(zhuǎn)發(fā)引擎單元之間建立UART通道,作為IPC通道的備份;在IPC中斷的情況下,保證主控單元和轉(zhuǎn)發(fā)引擎單元之間的關(guān)鍵信息的傳輸。在轉(zhuǎn)發(fā)引擎單元心跳異常時(shí),主控單元能夠?qū)υ撧D(zhuǎn)發(fā)引擎單元加以干預(yù)并快速恢復(fù)。
[0082]以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種信息傳輸方法,應(yīng)用于包括一個(gè)主控單元和多個(gè)轉(zhuǎn)發(fā)引擎單元的分布式系統(tǒng)中,其特征在于,在該系統(tǒng)中進(jìn)一步包括通用異步收發(fā)器UART通道選通單元,通過UART 口與主控單元和轉(zhuǎn)發(fā)引擎單元相連;主控單元通過所述UART通道選通單元建立與所述轉(zhuǎn)發(fā)引擎單元之間的UART通道;所述方法包括: 所述主控單元感知任一轉(zhuǎn)發(fā)引擎單元心跳異常時(shí),通過所述UART通道選通單元在所述UART通道上,建立與該轉(zhuǎn)發(fā)引擎單元之間的UART連接,并通過該UART連接向該轉(zhuǎn)發(fā)引擎單元發(fā)出心跳檢測命令; 如果在第一預(yù)設(shè)時(shí)間內(nèi),通過所述UART連接接收到該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng),則通知該轉(zhuǎn)發(fā)引擎單元回傳其診斷信息;在接收到該轉(zhuǎn)發(fā)引擎單元回傳的診斷信息時(shí),進(jìn)行分析并根據(jù)分析結(jié)果通過UART連接下發(fā)相應(yīng)的恢復(fù)命令,使該轉(zhuǎn)發(fā)引擎單元進(jìn)行相應(yīng)的恢復(fù); 如果在第一預(yù)設(shè)時(shí)間到時(shí),未通過所述UART連接接收到該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng),則發(fā)出硬件信號(hào)復(fù)位該轉(zhuǎn)發(fā)引擎單元。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過所述UART通道選通單元在所述UART通道上,建立與該轉(zhuǎn)發(fā)引擎單元之間的UART連接,包括: 在感知到該轉(zhuǎn)發(fā)引擎單元心跳異常時(shí),通過UART接口向所述UART通道選通單元發(fā)出選通命令,使UART通道選通單元在UART通道上,建立本主控單元與該轉(zhuǎn)發(fā)引擎單元之間的UART連接。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述根據(jù)分析結(jié)果通過UART連接下發(fā)相應(yīng)的恢復(fù)命令,之后,所述方法進(jìn)一步包括: 從進(jìn)程間通信IPC通道向該轉(zhuǎn)發(fā)引擎單元發(fā)出心跳報(bào)文; 如果在第二預(yù)設(shè)時(shí)間內(nèi),通過IPC通道接收到該轉(zhuǎn)發(fā)引擎單元發(fā)送的心跳響應(yīng),則后續(xù)使用IPC通道傳輸與該轉(zhuǎn)發(fā)引擎單元之間的控制報(bào)文;并向UART通道選通單元發(fā)出斷開UART連接的命令,使UART通道選通單元斷開本主控單元與該轉(zhuǎn)發(fā)引擎單元之間的UART連接; 如果在第二預(yù)設(shè)時(shí)間到時(shí),通過IPC通道未接收到該轉(zhuǎn)發(fā)引擎單元發(fā)送的心跳響應(yīng),則發(fā)送硬件信號(hào)復(fù)位該轉(zhuǎn)發(fā)引擎單元;并向UART通道選通單元發(fā)出斷開UART連接的命令,使UART通道選通單元斷開本主控單元與該轉(zhuǎn)發(fā)引擎單元之間的UART連接; 所述未通過所述UART連接接收到該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng),則發(fā)出硬件信號(hào)復(fù)位該轉(zhuǎn)發(fā)引擎單元之后,所述方法進(jìn)一步包括:向UART通道選通單元發(fā)出斷開UART連接的命令,使UART通道選通單元斷開本主控單元與該轉(zhuǎn)發(fā)引擎單元之間的UART連接。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于, 所述選通命令,包括:轉(zhuǎn)發(fā)引擎單元編號(hào),以及預(yù)設(shè)字符或預(yù)設(shè)字符的組合,其中,該預(yù)設(shè)字符或預(yù)設(shè)字符的組合用以標(biāo)識(shí)該字符流為選通命令; 所述斷開UART連接的命令,包括:預(yù)設(shè)字符組合和該轉(zhuǎn)發(fā)引擎單元編號(hào),其中,所述預(yù)設(shè)字符組合用以標(biāo)識(shí)該字符流為斷開UART連接的命令。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于, 所述心跳檢測命令,為主控單元與轉(zhuǎn)發(fā)引擎單元之間約定的用于心跳檢測的字符碼流; 所述心跳檢測命令的響應(yīng),為主控單元與轉(zhuǎn)發(fā)引擎單元之間約定的用于響應(yīng)心跳檢測命令的字符碼流。
6.一種裝置,可應(yīng)用于包括一個(gè)主控單元和多個(gè)轉(zhuǎn)發(fā)引擎單元的分布式系統(tǒng)中的主控單元上,其特征在于,在所述系統(tǒng)中進(jìn)一步包括通用異步收發(fā)器UART通道選通單元,通過UART 口與主控單元和轉(zhuǎn)發(fā)引擎單元相連以使所述主控單元與所述轉(zhuǎn)發(fā)引擎單元之間形成UART通道,該裝置包括:感知單元、建立單元、發(fā)送單元、接收單元和處理單元; 所述感知單元,用于感知任一轉(zhuǎn)發(fā)引擎單元心跳是否異常; 所述建立單元,用于在所述感知單元感知到任一轉(zhuǎn)發(fā)引擎單元心跳異常時(shí),通過所述UART通道選通單元在所述UART通道上,建立與該轉(zhuǎn)發(fā)引擎單元之間的UART連接; 所述發(fā)送單元,用于通過所述建立單元建立的UART連接,向該轉(zhuǎn)發(fā)引擎單元發(fā)出心跳檢測命令;在第一預(yù)設(shè)時(shí)間內(nèi),如果所述接收單元通過所述UART連接接收到該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng),則通知該轉(zhuǎn)發(fā)引擎單元回傳其診斷信息;如果在第一預(yù)設(shè)時(shí)間到時(shí),所述接收單元未通過所述UART連接接收到該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng),則發(fā)出硬件信號(hào)復(fù)位該轉(zhuǎn)發(fā)引擎單元; 所述接收單元,用于通過UART連接接收該轉(zhuǎn)發(fā)引擎單元對心跳檢測命令的響應(yīng);接收該轉(zhuǎn)發(fā)引擎單元回傳的診斷信息; 所述處理單元,用于在所述接收單元接收到該轉(zhuǎn)發(fā)引擎單元回傳的診斷信息時(shí),進(jìn)行分析并根據(jù)分析 結(jié)果通過UART連接下發(fā)相應(yīng)的恢復(fù)命令,使該轉(zhuǎn)發(fā)引擎單元進(jìn)行相應(yīng)的恢復(fù)。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于, 所述發(fā)送單元,進(jìn)一步用于在所述感知單元感知到該轉(zhuǎn)發(fā)引擎單元心跳異常時(shí),觸發(fā)所述建立單元通過UART接口向所述UART通道選通單元發(fā)出選通命令,使UART通道選通單元在UART通道上,建立與所述轉(zhuǎn)發(fā)引擎單元之間的UART連接。
8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于, 所述發(fā)送單元,進(jìn)一步用于在所述處理單元根據(jù)分析結(jié)果向所述轉(zhuǎn)發(fā)引擎單元下發(fā)相應(yīng)的恢復(fù)命令之后,通過進(jìn)程間通信IPC通道向該轉(zhuǎn)發(fā)引擎單元發(fā)出心跳報(bào)文;如果在第二預(yù)設(shè)時(shí)間到時(shí),所述接收單元通過IPC通道未接收到該轉(zhuǎn)發(fā)引擎單元發(fā)送的心跳響應(yīng),則發(fā)出硬件信號(hào)復(fù)位該轉(zhuǎn)發(fā)引擎單元;在所述接收單元通過IPC通道接收到了該轉(zhuǎn)發(fā)引擎單元發(fā)送的心跳響應(yīng)時(shí),觸發(fā)所述建立單元向UART通道選通單元發(fā)出斷開UART連接的命令,使UART通道選通單元斷開與該轉(zhuǎn)發(fā)引擎單元之間的UART連接;在本單元發(fā)出硬件信號(hào)復(fù)位該轉(zhuǎn)發(fā)引擎單元時(shí),觸發(fā)所述建立單元向UART通道選通單元發(fā)出斷開UART連接的命令,使UART通道選通單元斷開與該轉(zhuǎn)發(fā)引擎單元之間的UART連接; 所述接收單元,進(jìn)一步用于通過IPC通道接收該轉(zhuǎn)發(fā)引擎單元發(fā)送的心跳響應(yīng); 所述處理單元,進(jìn)一步用于在第二預(yù)設(shè)時(shí)間內(nèi),如果所述接收單元通過IPC通道接收到了該轉(zhuǎn)發(fā)引擎單元發(fā)送的心跳響應(yīng),后續(xù)則使用IPC通道傳輸與該轉(zhuǎn)發(fā)引擎單元之間的控制報(bào)文。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于, 所述選通命令,包括:轉(zhuǎn)發(fā)引擎單元編號(hào),以及預(yù)設(shè)字符或預(yù)設(shè)字符的組合,其中,該預(yù)設(shè)字符或預(yù)設(shè)字符的組合用以標(biāo)識(shí)該字符流為選通命令; 所述斷開UART連接的命令,包括:預(yù)設(shè)字符組合和該轉(zhuǎn)發(fā)引擎單元編號(hào),其中,所述預(yù)設(shè)字符組合用以標(biāo)識(shí)該字符流為斷開UART連接的命令; 所述心跳檢測命令,為主控單元與轉(zhuǎn)發(fā)引擎單元之間約定的用于心跳檢測的字符碼流; 所述心跳檢測命令的響應(yīng),為主控單元與轉(zhuǎn)發(fā)引擎單元之間約定的用于響應(yīng)心跳檢測命令的字符碼流。
10.一種裝置,可應(yīng)用于包括一個(gè)主控單元和多個(gè)轉(zhuǎn)發(fā)引擎單元的分布式系統(tǒng)中的任一轉(zhuǎn)發(fā)引擎單元上,其特征在于,在所述系統(tǒng)中進(jìn)一步包括通用異步收發(fā)器UART通道選通單元,通過UART 口與主控單元和轉(zhuǎn)發(fā)引擎單元相連以使所述主控單元與所述轉(zhuǎn)發(fā)引擎單元之間形成UART通道,該裝置包括:接收單元、發(fā)送單元和處理單元; 所述接收單元,用于通過在所述UART通道上建立的與所述主控單元的UART連接接收所述主控單元發(fā)送的心跳檢測命令;接收主控單元通知回傳本地診斷信息;接收主控單元下發(fā)的恢復(fù)命令;接收主控單元發(fā)送的硬件信號(hào); 所述發(fā)送單元,用于當(dāng)所述接收單元通過在所述UART通道上建立的與所述主控單元的UART連接接收所述主控單元發(fā)送的心跳檢測命令時(shí),通過所述UART連接發(fā)送對該心跳檢測命令的響應(yīng);所述接 收單元接收到主控單元通知回傳本地診斷信息時(shí),向所述主控單元回傳診斷信息; 所述處理單元,用于在所述接收單元接收到主控單元根據(jù)對診斷信息的分析結(jié)果,通過UART連接下發(fā)的相應(yīng)的恢復(fù)命令時(shí),進(jìn)行相應(yīng)的恢復(fù);在所述接收單元接收到主控單元發(fā)送的硬件信號(hào)時(shí),復(fù)位本轉(zhuǎn)發(fā)引擎單元。
【文檔編號(hào)】G06F9/54GK103595587SQ201310571221
【公開日】2014年2月19日 申請日期:2013年11月13日 優(yōu)先權(quán)日:2013年11月13日
【發(fā)明者】楊逸 申請人:杭州華三通信技術(shù)有限公司