專利名稱:一種用于總線的報文快速分發(fā)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通訊技術(shù)領(lǐng)域,特別涉及一種用于總線的報文快速分發(fā)方法及裝置。
背景技術(shù):
現(xiàn)有的通信設(shè)備進行本地管理一般采取這樣的方式,一主控設(shè)備通過其CPU總線接口連接插接在該設(shè)備上的外圍設(shè)備。對外圍設(shè)備的配置和管理都是通常是在主控設(shè)備上完成的。主控設(shè)備和外圍設(shè)備之間通過總線通信,將外圍設(shè)備的狀態(tài)信息實時的獲取保存到本地,并能將對外圍設(shè)備的配置下發(fā)到各個外圍設(shè)備。遠(yuǎn)端管理是指兩臺設(shè)備之間通過光纖或電纜連接,主設(shè)備能夠?qū)⒐芾硇畔⒓拥骄€路上去遠(yuǎn)距離傳輸?shù)綇脑O(shè)備上。從設(shè)備在接收到遠(yuǎn)端管理信息后,按照通信協(xié)議的約定處理主設(shè)備的管理信息。一般的CPU都有多種總線接口,每種接口可以根據(jù)需求做不同用途。比如某種CPU有兩個RS232接口,可以一個用來做本地的設(shè)備管理,另一個做遠(yuǎn)端設(shè)備的管理。但是當(dāng)某種CPU只有一個某一類型的接口,而該接口又有多重管理需求時候。或者說當(dāng)前期開發(fā)的時候雖然某種接口有多個,但是只給其提供了較單一的功能,而在后來擴展時又需要給某接口增加新功能時。需要一種能從軟件實現(xiàn)上滿足上述需求而又保證管理性能的處理方式。而且現(xiàn)有的總線接口在處理報文時處理過程過長,導(dǎo)致有時不能對到來的報文及時處理,致使后續(xù)到來的報文覆蓋了前面未處理的報文,造成了數(shù)據(jù)的丟失。
發(fā)明內(nèi)容
本發(fā)明實施例提供了一種用于總線的報 文快速分發(fā)方法及裝置,用以快速的分發(fā)報文,并實現(xiàn)同時管理本地設(shè)備和遠(yuǎn)端設(shè)備。本發(fā)明實施例提供的一種用于總線的報文快速分發(fā)方法,該方法包括在每一次接收到報文消息時,進行解析,根據(jù)解析結(jié)果對該報文消息的去向進行判斷;當(dāng)該報文消息為本地報文消息時,將所述本地報文消息分發(fā)至本地設(shè)備的管理模塊進行處理;當(dāng)該報文消息為遠(yuǎn)端報文消息時,將所述遠(yuǎn)端報文消息分發(fā)至消息隊列分發(fā)模塊中;在所述本地管理模塊處理本次本地報文消息完成或本次遠(yuǎn)端報文消息已經(jīng)分發(fā)至消息隊列分發(fā)模塊中后,再進行下一次報文消息的接收和分發(fā)。本發(fā)明實施例提供的一種用于總線的報文快速分發(fā)裝置,該裝置包括報文判斷模塊,用于在每一次接收到報文消息時,進行解析,根據(jù)解析結(jié)果對該報文消息的去向進行判斷;報文分發(fā)模塊,用于當(dāng)該報文消息為本地報文消息時,將所述本地報文消息分發(fā)至本地設(shè)備的管理模塊進行處理;當(dāng)該報文消息為遠(yuǎn)端報文消息時,將所述遠(yuǎn)端報文消息分發(fā)至消息隊列分發(fā)模塊中;報文接收模塊,用于在所述本地管理模塊處理本次本地報文消息完成或本次遠(yuǎn)端報文消息已經(jīng)分發(fā)至消息隊列分發(fā)模塊中后,再進行下一次報文消息的接收和分發(fā)。本發(fā)明實施例設(shè)置的報文判斷模塊實現(xiàn)了對報文消息的辨別,實現(xiàn)了通過一個總線接口同時對本地消息和異地消息同時管理;設(shè)有報文分發(fā)模塊,在處理遠(yuǎn)端報文消息時,只將遠(yuǎn)端報文消息放入消息隊列分發(fā)模塊中,并不進行后續(xù)的發(fā)送流程,縮短了總線接口的接收發(fā)送循環(huán)流程,也就是只進行分發(fā),不進行發(fā)送,所以能夠更快的處理接收到的報文消息,縮短了處理報文的時間間隔,降低了報文消息覆蓋,導(dǎo)致數(shù)據(jù)丟失的發(fā)生幾率。
圖1為本發(fā)明實施例提供的一種用于總線的報文快速分發(fā)方法的流程示意圖;圖2為本發(fā)明實施例提供的一種用于總線的報文快速分發(fā)裝置的結(jié)構(gòu)示意圖;圖3為本發(fā)明實施例提供的一種用于總線的報文快速分發(fā)方法及裝置的流程示意圖。
具體實施例方式
本發(fā)明實施例提供了一種報文快速分發(fā)方法及裝置,用于總線接口,用以快速的對到來的報文進行分發(fā),并實現(xiàn)同時管理本地設(shè)備和遠(yuǎn)端設(shè)備?;谏鲜瞿康?,如圖1所示,本發(fā)明實施例首先提供了一種用于總線的報文快速分發(fā)方法,該方法包括S101,在每一次接收到報文消息時,進行解析;S102,根據(jù)解析結(jié)果對該報文消息的去向進行判斷;S103,當(dāng)該報文消息為本地報文消息時,將所述本地報文消息分發(fā)至本地設(shè)備的管理模塊進行處理;S104,當(dāng)該報文消息為遠(yuǎn)端報文消息時,將所述遠(yuǎn)端報文消息分發(fā)至消息隊列分發(fā)模塊中;在所述本地管理模塊處理本次本地報文消息完成或本次遠(yuǎn)端報文消息已經(jīng)分發(fā)至消息隊列分發(fā)模塊中后,再進行下一次報文消息的接收和分發(fā)。本發(fā)明實施例中,在總線的接口建立一個報文消息分發(fā)的機制,能夠?qū)Φ絹淼膱笪南⑦M行識別和快速分發(fā),將本地報文消息發(fā)送給本地設(shè)備的管理模塊進行處理,而將遠(yuǎn)端報文消息放入消息隊列分發(fā)模塊中去發(fā)送,在所述管理模塊處理本地報文消息完成或?qū)⑦h(yuǎn)端報文消息放入消息隊列分發(fā)模塊完成后,表示本方法完成對該報文的分發(fā),迅速的重置該機制以開始下一次報文消息的接收和分發(fā)。本發(fā)明實施例中,本方法改變了傳統(tǒng)總線的報文接收和發(fā)送流程,在處理遠(yuǎn)端報文消息時,只將遠(yuǎn)端報文消息放入消息隊列分發(fā)模塊中,并不進行后續(xù)的發(fā)送流程,縮短了總線接口的接收發(fā)送循環(huán)流程,也就是只進行分發(fā),不進行發(fā)送,所以能夠更快的處理接收到的報文消息,縮短了處理報文的時間間隔,降低了報文消息覆蓋,導(dǎo)致數(shù)據(jù)丟失的發(fā)生幾率?!愕?,根據(jù)總線接口的數(shù)目可以為每個總線接口綁定一個報文處理函數(shù),所述本地報文消息通過調(diào)用的報文處理函數(shù)發(fā)送給本地管理模塊。
一般地,在所述本地管理模塊處理本地報文消息完成后,應(yīng)返回用于表示處理完成的響應(yīng)消息,這樣本報文消息分發(fā)機制在獲得該響應(yīng)消息后重置,進行下一次報文消息的接收和分發(fā)。所述消息隊列分發(fā)模塊在接收到所述遠(yuǎn)端報文消息后,發(fā)送給遠(yuǎn)端設(shè)備的管理模塊。上述消息隊列分發(fā)模塊進行報文消息的發(fā)送,所述報文消息分發(fā)的機制進行報文消息的分發(fā),二者配合完成了整個總線接口對于報文消息的接收、分發(fā)和發(fā)送。而將報文消息的優(yōu)選地,所述遠(yuǎn)端設(shè)備的管理模塊在處理完所述遠(yuǎn)端報文消息后,返回響應(yīng)消息至所述本地設(shè)備的管理模塊,讓本地設(shè)備得知對遠(yuǎn)端設(shè)備的管理已完成。優(yōu)選地,所述消息隊列分發(fā)模塊可同時存儲多條遠(yuǎn)端報文消息,根據(jù)遠(yuǎn)端報文消息的接收順序,依次進行發(fā)送,這相當(dāng)于增加了一個二級報文緩沖區(qū),提高了系統(tǒng)的報文處理能力。如圖2所示,為了配合上述方法,本發(fā)明實施例還提供了一種用于總線的報文快速分發(fā)裝置,該裝置包括報文判斷模塊2,用于在每一次接收到報文消息時,進行解析,根據(jù)解析結(jié)果對該報文消息的去向進行判斷;報文分發(fā)模塊3,用于當(dāng)該報文消息為本地報文消息時,將所述本地報文消息分發(fā)至本地設(shè)備的管理模塊進行處理;當(dāng)該報文消息為遠(yuǎn)端報文消息時,將所述遠(yuǎn)端報文消息分發(fā)至消息隊列分發(fā)模塊中;報文接收模塊1,用于在所述本地管理模塊處理本次本地報文消息完成或本次遠(yuǎn)端報文消息已經(jīng)分發(fā)至消息隊 列分發(fā)模塊中后,再進行下一次報文消息的接收和分發(fā)。上述實施例中,在總線的接口設(shè)置了一個報文快速分發(fā)裝置,能夠輔助總線對到來的報文消息進行識別和快速分發(fā),將本地報文消息發(fā)送給本地設(shè)備的管理模塊進行處理,而將遠(yuǎn)端報文消息放入消息隊列分發(fā)模塊中去發(fā)送,在所述管理模塊處理本地報文消息完成或?qū)⑦h(yuǎn)端報文消息放入消息隊列分發(fā)模塊完成后,表示本裝置完成對該報文的分發(fā),迅速的重置該裝置以開始下一次報文消息的接收和分發(fā)。本發(fā)明實施例中,本裝置與總線配合工作改變了傳統(tǒng)總線的報文接收和發(fā)送流程,在處理遠(yuǎn)端報文消息時,只將遠(yuǎn)端報文消息放入消息隊列分發(fā)模塊中,并不進行后續(xù)的發(fā)送流程,縮短了總線接口的接收發(fā)送循環(huán)流程,也就是只進行分發(fā),不進行發(fā)送,所以能夠更快的處理接收到的報文消息,縮短了處理報文的時間間隔,降低了因報文消息覆蓋,導(dǎo)致數(shù)據(jù)丟失的發(fā)生幾率。本發(fā)明裝置適用于具有主從關(guān)系的設(shè)備之間管理所用,可以使主設(shè)備通過一個總線接口實現(xiàn)對本地設(shè)備和遠(yuǎn)端的從設(shè)備同時管理,本裝置也適用于具有多個總線接口的分布式設(shè)備。一般地,根據(jù)總線接口的數(shù)目可以為每個總線接口綁定一個報文處理函數(shù),所述報文分發(fā)模塊通過調(diào)用的報文處理函數(shù)將本地報文消息發(fā)送給本地管理模塊。一般地,在所述本地管理模塊處理本地報文消息完成后,應(yīng)向報文接收模塊返回用于表示處理完成的響應(yīng)消息,這樣本報文快速分發(fā)裝置在獲得該響應(yīng)消息后重置,進行下一次報文消息的接收和分發(fā)。優(yōu)選地,該裝置還可包括消息發(fā)送模塊,用于在所述消息隊列分發(fā)模塊在接收到所述遠(yuǎn)端報文消息后,發(fā)送給遠(yuǎn)端設(shè)備的管理模塊。需要注意的是本消息發(fā)送模塊負(fù)責(zé)報文消息的發(fā)送,上述報文判斷模塊、報文分發(fā)模塊和報文接收模塊負(fù)責(zé)報文消息的分發(fā),發(fā)送與分發(fā)在本裝置中屬于兩個單獨的任務(wù),互相無影響。優(yōu)選地,所述遠(yuǎn)端設(shè)備的管理模塊在處理完所述遠(yuǎn)端報文消息后,返回響應(yīng)消息至所述本地設(shè)備的管理模塊,讓本地設(shè)備得知對遠(yuǎn)端設(shè)備的管理已完成。一般地,所述消息發(fā)送模塊根據(jù)所述消息隊列分發(fā)模塊接收遠(yuǎn)端報文消息的順序,依次進行發(fā)送。申請人:經(jīng)過在瑞斯康達(dá)科技發(fā)展有限公司生產(chǎn)的緊湊型多業(yè)務(wù)復(fù)用設(shè)備RC3000系列產(chǎn)品上試用本裝置和方法發(fā)現(xiàn),使用后的設(shè)備能夠很好的利用一條SPI(SerialPeripheral Interface,·串行外設(shè)接口)總線完成對本地設(shè)備的管理,同時能夠使用SPI總線作為遠(yuǎn)端被管總線接口,接收遠(yuǎn)端主設(shè)備的管理。而且無論是本地管理還是接收遠(yuǎn)端報文消息都很穩(wěn)定,響應(yīng)速度也得到很好的保證。如圖3所示,為了更好的理解本發(fā)明技術(shù)方案,下面以CPU—個總線接口為例,詳細(xì)介紹一種報文快速分發(fā)方法流程首先,需要說明的是,在工作前,為每個總線接口綁定一個報文處理函數(shù)。S201,本流程為一個循環(huán)報文分發(fā)流程,報文接收模塊在上個報文消息分發(fā)完成后對該總線的中斷位進行輪詢,在發(fā)現(xiàn)存在中斷標(biāo)記時,從接收緩沖區(qū)中讀取報文信息放到內(nèi)存中,并將中斷標(biāo)記清除;S202,報文判斷模塊對報文消息進行解析,判斷該報文消息為本地報文消息還是遠(yuǎn)端報文消息;S203,報文分發(fā)模塊根據(jù)判斷結(jié)果,將本地報文消息分發(fā)至本地設(shè)備的管理模塊進行處理,將遠(yuǎn)端報文消息分發(fā)至消息發(fā)送模塊的消息隊列分發(fā)模塊中,至此本裝置完成了一次報文消息的分發(fā),所述報文接收模塊重新輪詢總線的中斷位。作為與上述分發(fā)流程并列的另一個獨立任務(wù),所述消息發(fā)送模塊按照遠(yuǎn)端報文消息的接收順序,進行遠(yuǎn)端報文消息的依次發(fā)送。綜上所述,本發(fā)明實施例設(shè)置的報文判斷模塊實現(xiàn)了對報文消息的辨別,實現(xiàn)了通過一個總線接口同時對本地消息和異地消息同時管理;設(shè)有報文分發(fā)模塊,在處理遠(yuǎn)端報文消息時,只將遠(yuǎn)端報文消息放入消息隊列分發(fā)模塊中,并不進行后續(xù)的發(fā)送流程,縮短了總線接口的接收發(fā)送循環(huán)流程,也就是只進行分發(fā),不進行發(fā)送,所以能夠更快的處理接收到的報文消息,縮短了處理報文的時間間隔,降低了報文消息覆蓋,導(dǎo)致數(shù)據(jù)丟失的發(fā)生幾率;將原有總線報文消息處理流程分為單獨的分發(fā)和發(fā)送兩個平行任務(wù),互不影響,最大限度的加快總線對接收的報文消息的處理速度,盡可能的讓報文消息不會丟失。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。顯然,本領(lǐng)域的技術(shù)人員可以對 本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種用于總線的報文快速分發(fā)方法,其特征在于,該方法包括 在每一次接收到報文消息時,進行解析,根據(jù)解析結(jié)果對該報文消息的去向進行判斷; 當(dāng)該報文消息為本地報文消息時,將所述本地報文消息分發(fā)至本地設(shè)備的管理模塊進行處理;當(dāng)該報文消息為遠(yuǎn)端報文消息時,將所述遠(yuǎn)端報文消息分發(fā)至消息隊列分發(fā)模塊中; 在所述本地管理模塊處理本次本地報文消息完成或本次遠(yuǎn)端報文消息已經(jīng)分發(fā)至消息隊列分發(fā)模塊中后,再進行下一次報文消息的接收和分發(fā)。
2.如權(quán)利要求1所述的方法,其特征在于,所述本地報文消息通過調(diào)用的報文處理函數(shù)發(fā)送給本地管理模塊。
3.如權(quán)利要求2所述的方法,其特征在于,在所述本地管理模塊處理本地報文消息完成后,返回用于表示處理完成的響應(yīng)消息。
4.如權(quán)利要求1所述的方法,其特征在于,所述消息隊列分發(fā)模塊在接收到所述遠(yuǎn)端報文消息后,發(fā)送給遠(yuǎn)端設(shè)備的管理模塊。
5.如權(quán)利要求4所述的方法,其特征在于,所述遠(yuǎn)端設(shè)備的管理模塊在處理完所述遠(yuǎn)端報文消息后,返回響應(yīng)消息至所述本地設(shè)備的管理模塊。
6.如權(quán)利要求4所述的方法,其特征在于,所述消息隊列分發(fā)模塊根據(jù)遠(yuǎn)端報文消息的接收順序,依次進行發(fā)送。
7.一種用于總線的報文快速分發(fā)裝置,其特征在于,該裝置包括 報文判斷模塊,用于在每一次接收到報文消息時,進行解析,根據(jù)解析結(jié)果對該報文消息的去向進行判斷; 報文分發(fā)模塊,用于當(dāng)該報文消息為本地報文消息時,將所述本地報文消息分發(fā)至本地設(shè)備的管理模塊進行處理;當(dāng)該報文消息為遠(yuǎn)端報文消息時,將所述遠(yuǎn)端報文消息分發(fā)至消息隊列分發(fā)模塊中; 報文接收模塊,用于在所述本地管理模塊處理本次本地報文消息完成或本次遠(yuǎn)端報文消息已經(jīng)分發(fā)至消息隊列分發(fā)模塊中后,再進行下一次報文消息的接收和分發(fā)。
8.如權(quán)利要求7所述的裝置,其特征在于,所述報文分發(fā)模塊通過調(diào)用報文處理函數(shù)將本地報文消息發(fā)送給本地管理模塊。
9.如權(quán)利要求8所述的裝置,其特征在于,在所述本地管理模塊處理本地報文消息完成后,向所述報文接收模塊返回用于表示處理完成的響應(yīng)消息。
10.如權(quán)利要求7所述的裝置,其特征在于,該裝置還包括消息發(fā)送模塊,用于在所述消息隊列分發(fā)模塊在接收到所述遠(yuǎn)端報文消息后,發(fā)送給遠(yuǎn)端設(shè)備的管理模塊。
11.如權(quán)利要求10所述的裝置,其特征在于,所述遠(yuǎn)端設(shè)備的管理模塊在處理完所述遠(yuǎn)端報文消息后,返回響應(yīng)消息至所述本地設(shè)備的管理模塊。
12.如權(quán)利要求10所述的裝置,其特征在于,所述消息發(fā)送模塊根據(jù)所述消息隊列分發(fā)模塊接收遠(yuǎn)端報文消息的順序,依次進行發(fā)送。
全文摘要
本發(fā)明公開了一種用于總線的報文快速分發(fā)方法及裝置,涉及通訊技術(shù)領(lǐng)域,用以快速的分發(fā)報文,并實現(xiàn)同時管理本地設(shè)備和遠(yuǎn)端設(shè)備。該方法包括在每一次接收到報文消息時,進行解析,根據(jù)解析結(jié)果對該報文消息的去向進行判斷;當(dāng)該報文消息為本地報文消息時,將所述本地報文消息分發(fā)至本地設(shè)備的管理模塊進行處理;當(dāng)該報文消息為遠(yuǎn)端報文消息時,將所述遠(yuǎn)端報文消息分發(fā)至消息隊列分發(fā)模塊中;在所述本地管理模塊處理本地報文消息完成或遠(yuǎn)端報文消息已經(jīng)分發(fā)至消息隊列分發(fā)模塊中后,進行下一次報文消息的接收和分發(fā)。
文檔編號H04L12/863GK103051528SQ201210545879
公開日2013年4月17日 申請日期2012年12月14日 優(yōu)先權(quán)日2012年12月14日
發(fā)明者楊芳芳, 王永 申請人:瑞斯康達(dá)科技發(fā)展股份有限公司