專利名稱:一種同步通信方法、系統(tǒng)及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信方法,尤其涉及同步通信方法、系統(tǒng)及設(shè)備。
背景技術(shù):
一般的通信系統(tǒng)中通常會包括主設(shè)備和從設(shè)備,其中主設(shè)備用于控制從設(shè)備、向從設(shè)備發(fā)送命令報文并接收從設(shè)備返回的應(yīng)答報文,從設(shè)備用于接收和處理主設(shè)備發(fā)送的命令報文并返回應(yīng)答報文給主設(shè)備?,F(xiàn)有通信系統(tǒng)常采用序列號同步機制實現(xiàn)同步通信,即主設(shè)備發(fā)送攜帶本側(cè)當(dāng)前序列號的命令報文給從設(shè)備之后,應(yīng)在規(guī)定時間內(nèi)收到由從設(shè)備返回的攜帶相同序列號的應(yīng)答報文,也就是同步應(yīng)答報文,如果主設(shè)備在規(guī)定時間內(nèi)收到同步應(yīng)答報文,則確認(rèn)本次通信成功,否則認(rèn)為本次通信失敗。其中,從設(shè)備返回給主設(shè)備的應(yīng)答報文包括表示通信命令執(zhí)行成功的成功應(yīng)答(ACK)報文,以及表示通信命令執(zhí)行失敗的失敗應(yīng)答(NACK)報文。
現(xiàn)有技術(shù)的同步通信方法包括主設(shè)備側(cè)流程和從設(shè)備側(cè)流程,圖1是現(xiàn)有技術(shù)中同步通信方法的主設(shè)備側(cè)流程圖,圖2是現(xiàn)有技術(shù)中同步通信方法的從設(shè)備側(cè)流程圖。其中,主設(shè)備側(cè)執(zhí)行的流程包括以下步驟步驟101主設(shè)備發(fā)送攜帶本側(cè)當(dāng)前序列號SQ1的命令報文給從設(shè)備,同時啟動本側(cè)定時器。
步驟102主設(shè)備在定時到達時自動更新本側(cè)序列號SQ1,一般是在當(dāng)前SQ1上加1得到更新后的SQ1,之后結(jié)束本流程。
從設(shè)備側(cè)執(zhí)行的流程包括以下步驟步驟201~202從設(shè)備接收主設(shè)備發(fā)來的攜帶有序列號的命令報文;從設(shè)備判斷所接收的命令報文是否為本側(cè)預(yù)期的命令報文,如果是,則執(zhí)行步驟203,否則執(zhí)行步驟204。
步驟203從設(shè)備用命令報文中攜帶的序列號更新本側(cè)當(dāng)前序列號SQ2,即令更新后的SQ2等于當(dāng)前SQ1,處理命令報文并返回攜帶更新后的序列號SQ2的應(yīng)答報文給主設(shè)備,結(jié)束本流程。
步驟204從設(shè)備丟棄該命令報文,結(jié)束本流程。
其中,步驟202中從設(shè)備判斷所接收的命令報文是否為本側(cè)預(yù)期的命令報文的方法可以是判斷所接收的命令報文中攜帶的序列號是否為本側(cè)預(yù)期的序列號,常見的,從設(shè)備側(cè)預(yù)期的序列號比當(dāng)前序列號SQ2大1。
以下以實際應(yīng)用中的具體情況為例,從主設(shè)備和從設(shè)備通信交互的角度詳細(xì)介紹現(xiàn)有技術(shù)的同步通信方法,主要包括以下兩種情況(1)第一種情況,假設(shè)本次通信之前,主設(shè)備側(cè)序列號是從設(shè)備側(cè)預(yù)期的序列號,例如主設(shè)備側(cè)序列號SQ1為4,從設(shè)備側(cè)序列號SQ2為3,這種情況下采用現(xiàn)有技術(shù)同步通信方法的通信流程包括步驟11、主設(shè)備發(fā)送攜帶本側(cè)當(dāng)前序列號4的命令報文給從設(shè)備,同時啟動本側(cè)定時器。
步驟12、從設(shè)備接收主設(shè)備發(fā)來的攜帶序列號4的命令報文,判斷所接收的命令報文是否為本側(cè)預(yù)期的命令報文,由于所接收的命令報文中攜帶的序列號4比本側(cè)序列號SQ2大1,故而從設(shè)備判斷得知所接收的命令報文是本側(cè)預(yù)期的命令報文。
步驟13、從設(shè)備將本側(cè)序列號SQ2更新為4,處理命令報文并返回攜帶本側(cè)更新后的序列號4的應(yīng)答報文給主設(shè)備。
步驟14、主設(shè)備在定時到達時將本側(cè)序列號SQ1更新為5,結(jié)束本流程。
可見,在這種情況下,主設(shè)備發(fā)送攜帶序列號4的命令報文給從設(shè)備,在定時到達之前收到由從設(shè)備返回的同步應(yīng)答報文,通信成功。同時,在本次通信結(jié)束之后,主設(shè)備側(cè)序列號更新為5,從設(shè)備側(cè)序列號更新為4,主設(shè)備側(cè)序列號是從設(shè)備側(cè)預(yù)期的序列號,后續(xù)通信可順利進行。
(2)第二種情況,假設(shè)本次通信之前,主設(shè)備側(cè)序列號不是從設(shè)備側(cè)預(yù)期的序列號,例如主設(shè)備側(cè)序列號SQ1為5,從設(shè)備側(cè)序列號SQ2為3,這種情況下采用現(xiàn)有技術(shù)同步通信方法的通信流程包括步驟21、主設(shè)備發(fā)送攜帶本側(cè)當(dāng)前序列號5的命令報文給從設(shè)備,同時啟動本側(cè)定時器。
步驟22、從設(shè)備接收主設(shè)備發(fā)來的攜帶序列號5的命令報文,判斷所接收的命令報文是否為本側(cè)預(yù)期的命令報文,由于所接收的命令報文中攜帶的序列號5比從本側(cè)序列號SQ2大2,故而從設(shè)備判斷得知所接收的命令報文不是本側(cè)預(yù)期的命令報文。
步驟23從設(shè)備丟棄該命令報文。
步驟24、主設(shè)備在定時到達時將本側(cè)序列號SQ1更新為6,結(jié)束本流程。
可見,在這種情況下,主設(shè)備發(fā)送攜帶序列號5的命令報文給從設(shè)備,在定時到達之前沒有收到由從設(shè)備返回的同步應(yīng)答報文,通信失敗。同時,在本次通信結(jié)束之后,主設(shè)備側(cè)序列號更新為6,從設(shè)備側(cè)序列號仍為3,主設(shè)備側(cè)序列號依然不是從設(shè)備側(cè)預(yù)期的序列號,后續(xù)通信無法進行。
從以上分析可知,現(xiàn)有技術(shù)的同步通信方法要求從設(shè)備和主設(shè)備在通信過程中依次更新本側(cè)序列號,從而保證每次通信過程結(jié)束之后,主設(shè)備側(cè)序列號是從設(shè)備側(cè)預(yù)期的序列號,后續(xù)通信過程得以順利進行。但是,在實際應(yīng)用中,現(xiàn)有技術(shù)的通信方法很難保證從設(shè)備在每次通信過程中都更新了本側(cè)序列號,舉例來說,如果從設(shè)備沒有收到主設(shè)備發(fā)送的命令報文,則當(dāng)前通信失敗,從設(shè)備的序列號得不到更新,而定時到達時主設(shè)備將自動更新本側(cè)序列號,因此當(dāng)前通信過程結(jié)束之后,主設(shè)備側(cè)序列號并非從設(shè)備側(cè)預(yù)期的序列號,后續(xù)通信無法進行。
因此,總的來說,現(xiàn)有技術(shù)的同步通信方法的可靠性較差,無法確保當(dāng)前通信失敗時后續(xù)通信的順利進行。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種同步通信方法,能夠提高同步通信的可靠性,確保當(dāng)前通信失敗時后續(xù)通信的順利進行。
本發(fā)明的目的還在于提供一種同步通信系統(tǒng),能夠提高同步通信的可靠性,確保當(dāng)前通信失敗時后續(xù)通信的順利進行。
本發(fā)明的目的進一步在于提供一種同步通信主設(shè)備,能夠提高同步通信的可靠性,確保當(dāng)前通信失敗時后續(xù)同步通信的順利進行。
本發(fā)明的目的進一步在于提供一種同步通信從設(shè)備,能夠提高同步通信的可靠性,確保當(dāng)前通信失敗時后續(xù)同步通信的順利進行。
根據(jù)上述目的的一個方面,本發(fā)明提供了一種同步通信方法,該方法包括步驟A、主設(shè)備發(fā)送攜帶本側(cè)當(dāng)前序列號和重同步標(biāo)志的命令報文給從設(shè)備;B、從設(shè)備判斷所述命令報文中攜帶的重同步標(biāo)志是否有效,如果是,則執(zhí)行步驟C,否則執(zhí)行步驟D;C、從設(shè)備用所述命令報文中攜帶的序列號更新本側(cè)序列號,處理命令報文并返回攜帶本側(cè)更新后的序列號的應(yīng)答報文給主設(shè)備,結(jié)束本流程;D、從設(shè)備判斷所述命令報文是否是本側(cè)預(yù)期的命令報文,如果是,則執(zhí)行步驟C,否則結(jié)束本流程。
其中,步驟A中所述主設(shè)備發(fā)送命令報文的同時啟動本側(cè)定時器,相應(yīng)地,結(jié)束本流程之前進一步包括步驟E1、主設(shè)備在本側(cè)定時器到達時判斷是否收到攜帶本側(cè)當(dāng)前序列號的應(yīng)答報文,如果是,則更新當(dāng)前序列號并將重同步標(biāo)志置為無效,否則將重同步標(biāo)志置為有效。
其中,步驟D中所述判斷是從設(shè)備判斷所述命令報文中攜帶的序列號是否是本側(cè)預(yù)期的序列號,如果是,則所述命令報文是本側(cè)預(yù)期的命令報文,否則,所述命令報文不是本側(cè)預(yù)期的命令報文。
其中,該方法進一步包括在主設(shè)備中設(shè)置發(fā)送次數(shù)標(biāo)志;則步驟A中所述主設(shè)備發(fā)送命令報文的同時更新當(dāng)前發(fā)送次數(shù)標(biāo)志并啟動本側(cè)定時器,相應(yīng)地,結(jié)束本流程之前進一步包括步驟
E2、主設(shè)備在本側(cè)定時器到達時判斷是否收到攜帶本側(cè)當(dāng)前序列號的應(yīng)答報文,如果是,則更新當(dāng)前序列號并將重同步標(biāo)志置為無效,否則執(zhí)行步驟F2;F2、主設(shè)備判斷發(fā)送次數(shù)標(biāo)志是否等于最大發(fā)送次數(shù),如果是,則將重同步標(biāo)志置為有效,否則返回步驟A。
其中,所述步驟A和步驟B之間進一步包括從設(shè)備判斷所述命令報文是否是重復(fù)發(fā)送的命令報文,如果是,則直接回復(fù)攜帶本側(cè)當(dāng)前序列號的應(yīng)答報文給主設(shè)備,結(jié)束本流程,否則執(zhí)行步驟B。
其中,所述判斷是從設(shè)備判斷所述命令報文中攜帶的序列號是否是本側(cè)當(dāng)前序列號,如果是,則所述命令報文是重復(fù)發(fā)送的命令報文,否則,所述命令報文不是重復(fù)發(fā)送的命令報文。
根據(jù)上述目的的另一個方面,本發(fā)明還提供了一種同步通信系統(tǒng),包括主設(shè)備和從設(shè)備,主設(shè)備和從設(shè)備相互連接,主設(shè)備用于保存和更新重同步標(biāo)志,發(fā)送攜帶重同步標(biāo)志的命令報文給從設(shè)備,接收從設(shè)備返回的同步應(yīng)答報文,以及在當(dāng)前通信失敗后將重同步標(biāo)志置為有效;從設(shè)備用于接收主設(shè)備發(fā)來的攜帶有重同步標(biāo)志的命令報文,處理命令報文并返回同步應(yīng)答報文給主設(shè)備。
其中,所述系統(tǒng)包括至少一個主設(shè)備和一個或者一個以上從設(shè)備,所述主設(shè)備與所述從設(shè)備以一對一、一對多、多對一、或多對多的方式相互連接。
根據(jù)上述目的的再另一個方面,本發(fā)明進一步提供了一種同步通信主設(shè)備,包括相互連接的命令發(fā)起模塊和通信與同步模塊,命令發(fā)起模塊用于通過通信與同步模塊向同步通信從設(shè)備發(fā)送命令消息,并通過通信與同步模塊接收由從設(shè)備返回的應(yīng)答消息;通信與同步模塊用于保存和更新重同步標(biāo)志,將來自命令發(fā)起模塊的命令消息封裝為攜帶重同步標(biāo)志的命令報文并發(fā)送給從設(shè)備,接收和解析由從設(shè)備返回的同步應(yīng)答報文并發(fā)送從同步應(yīng)答報文中提取的應(yīng)答消息給命令發(fā)起模塊,以及在當(dāng)前通信失敗后將重同步標(biāo)志置為有效。
根據(jù)上述目的的再另一個方面,本發(fā)明進一步提供了一種同步通信從設(shè)備,包括相互連接的命令處理模塊和通信與同步模塊,命令處理模塊用于通過通信與同步模塊接收來自同步通信主設(shè)備的命令消息,執(zhí)行命令并通過通信與同步模塊返回應(yīng)答消息給主設(shè)備;通信與同步模塊用于接收和解析來自主設(shè)備的攜帶有重同步標(biāo)志的命令報文并發(fā)送從命令報文中提取的命令消息給命令處理模塊,以及將來自命令處理模塊的應(yīng)答消息封裝為同步應(yīng)答報文并返回給主設(shè)備。
可見,本發(fā)明的同步通信方法中,如果當(dāng)前通信失敗,主設(shè)備將重同步標(biāo)志置為有效,在之后的下一次通信過程中,主設(shè)備發(fā)送攜帶有效重同步標(biāo)志和當(dāng)前序列號的命令報文給從設(shè)備,從設(shè)備按照命令報文中的序列號更新本側(cè)序列號,并返回同步應(yīng)答報文給主設(shè)備,使得下一次同步通信能夠順利進行。因此,本發(fā)明的同步通信方法具有很高的可靠性,能夠確保當(dāng)前通信失敗時后續(xù)通信的順利進行。
圖1是現(xiàn)有技術(shù)中同步通信方法的主設(shè)備側(cè)流程圖;圖2是現(xiàn)有技術(shù)中同步通信方法的從設(shè)備側(cè)流程圖;圖3是本發(fā)明實施例一的同步通信方法的主設(shè)備側(cè)流程圖;圖4是本發(fā)明實施例一的同步通信方法的從設(shè)備側(cè)流程圖;圖5是本發(fā)明實施例一的的同步通信系統(tǒng)的結(jié)構(gòu)圖;圖6是本發(fā)明實施例二的同步通信方法的主設(shè)備側(cè)流程圖;圖7是本發(fā)明實施例三的同步通信方法的從設(shè)備側(cè)流程圖。
具體實施例方式
本發(fā)明的核心思想是主設(shè)備側(cè)新增用于標(biāo)志通信失敗的重同步標(biāo)志,每次通信結(jié)束時主設(shè)備判斷本次通信是否成功,如果是,則將重同步標(biāo)志置為無效,否則將重同步標(biāo)志置為有效。同時,主設(shè)備發(fā)送給從設(shè)備的命令報文中進一步攜帶重同步標(biāo)志,如果從設(shè)備收到重同步標(biāo)志為有效的命令報文,則直接根據(jù)該報文攜帶的序列號更新本側(cè)序列號。
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下舉實施例,并參照附圖,對本發(fā)明進一步詳細(xì)說明。
在本發(fā)明的實施例中,重同步標(biāo)志為“0”表示無效,“1”表示有效。
實施例一本實施例的同步通信方法包括主設(shè)備側(cè)流程和從設(shè)備側(cè)流程,圖3是本發(fā)明實施例一的同步通信方法的主設(shè)備側(cè)流程圖,圖4是本發(fā)明實施例一的同步通信方法的從設(shè)備側(cè)流程圖。其中,主設(shè)備可將重同步標(biāo)志初始化為0,主設(shè)備側(cè)執(zhí)行的流程包括以下步驟步驟301主設(shè)備發(fā)送攜帶本側(cè)當(dāng)前序列號SQ1和重同步標(biāo)志的命令報文給從設(shè)備,同時啟動本側(cè)定時器。
步驟302主設(shè)備在定時到達時判斷本次通信是否成功,即是否收到同步應(yīng)答報文,如果是,則執(zhí)行步驟303,否則執(zhí)行步驟304。
步驟303主設(shè)備更新本側(cè)序列號SQ1,即在當(dāng)前SQ1上加1得到更新的SQ1,將重同步標(biāo)志置為0,結(jié)束本流程。
步驟304主設(shè)備將序列號SQ1置為0,將重同步標(biāo)志置為1,結(jié)束本流程。
其中,步驟304中,主設(shè)備可以任意設(shè)置序列號SQ1,而不僅限于0。
從設(shè)備側(cè)執(zhí)行的流程包括步驟401~402從設(shè)備接收主設(shè)備發(fā)來的攜帶有序列號和重同步標(biāo)志的命令報文;從設(shè)備判斷所接收的命令報文中攜帶的重同步標(biāo)志是否為1,如果是,則執(zhí)行步驟403,否則執(zhí)行步驟404。
步驟403從設(shè)備用命令報文中攜帶的序列號更新本側(cè)當(dāng)前序列號SQ2,即令更新后的SQ2等于當(dāng)前SQ1,處理命令報文并返回攜帶更新后的序列號SQ2的應(yīng)答報文給主設(shè)備,結(jié)束本流程。
步驟404從設(shè)備判斷所接收的命令報文是否是本側(cè)預(yù)期的命令報文,如果是,則執(zhí)行步驟405,否則執(zhí)行步驟406。
步驟405從設(shè)備用命令報文中攜帶的序列號更新本側(cè)當(dāng)前序列號SQ2,即令更新后的SQ2等于當(dāng)前SQ1,處理命令報文并返回攜帶更新后的序列號SQ2的應(yīng)答報文給主設(shè)備,結(jié)束本流程。
步驟406從設(shè)備丟棄該命令報文,結(jié)束本流程。
其中,步驟404中從設(shè)備判斷所接收的命令報文是否是本側(cè)預(yù)期的命令報文的方法可以是判斷所接收的命令報文中攜帶的序列號是否是本側(cè)預(yù)期的序列號,常見的,從設(shè)備側(cè)預(yù)期的序列號比當(dāng)前序列號SQ2大1。
以下以實際應(yīng)用中的具體情況為例,從主設(shè)備和從設(shè)備通信交互的角度詳細(xì)介紹本實施例的同步通信方法,主要包括以下兩種情況(1)第一種情況,假設(shè)本次通信之前,主設(shè)備側(cè)序列號是從設(shè)備側(cè)預(yù)期的序列號,例如主設(shè)備側(cè)序列號SQ1為4,重同步標(biāo)志為0,從設(shè)備側(cè)序列號SQ2為3,這種情況下采用本實施例的同步通信方法的通信流程包括步驟31主設(shè)備發(fā)送攜帶本側(cè)當(dāng)前序列號4和重同步標(biāo)志0的命令報文給從設(shè)備,同時啟動本側(cè)定時器。
步驟32、從設(shè)備接收主設(shè)備發(fā)來的攜帶序列號4和重同步標(biāo)志0的命令報文,判斷得到所接收的命令報文中攜帶的重同步標(biāo)志不為1。
步驟33、從設(shè)備判斷所接收的命令報文是否是本側(cè)預(yù)期的命令報文,由于所接收的命令報文中攜帶的序列號4比從設(shè)備側(cè)序列號SQ2大1,故而從設(shè)備判斷所接收的命令報文是預(yù)期的命令報文。
步驟34從設(shè)備將本側(cè)序列號SQ2更新為4,處理命令報文并返回攜帶本側(cè)更新后的序列號4的應(yīng)答報文給主設(shè)備。
步驟35、主設(shè)備在定時到達時判斷本次通信是否成功,由于主設(shè)備在定時到達前收到同步應(yīng)答報文,故而主設(shè)備判斷本次通信成功。
步驟36主設(shè)備將本側(cè)序列號SQ1更新為5,將重同步標(biāo)志置為0,結(jié)束本流程。
可見,在這種情況下,主設(shè)備發(fā)送攜帶序列號4的命令報文給從設(shè)備,在定時到達之前收到由從設(shè)備返回的同步應(yīng)答報文,通信成功。同時,在本次通信結(jié)束之后,主設(shè)備側(cè)序列號更新為5,重同步標(biāo)志為0,從設(shè)備側(cè)序列號更新為4,主設(shè)備側(cè)序列號是從設(shè)備側(cè)預(yù)期的序列號,后續(xù)通信可順利進行。
(2)第二種情況,假設(shè)本次通信之前,主設(shè)備側(cè)序列號不是從設(shè)備側(cè)預(yù)期的序列號,例如主設(shè)備側(cè)序列號SQ1為0,重同步標(biāo)志為1,從設(shè)備側(cè)序列號SQ2為3,這種情況下采用本實施例的同步通信方法的通信流程包括步驟41、主設(shè)備發(fā)送攜帶本側(cè)當(dāng)前序列號0和重同步標(biāo)志1的命令報文給從設(shè)備,同時啟動本側(cè)定時器。
步驟42、從設(shè)備接收主設(shè)備發(fā)來的攜帶序列號0和重同步標(biāo)志1的命令報文,判斷得到所接收的命令報文中攜帶的重同步標(biāo)志為1。
步驟43從設(shè)備將本側(cè)序列號SQ2更新為0,返回攜帶本側(cè)更新后的序列號0的應(yīng)答報文給主設(shè)備。
步驟44主設(shè)備在定時到達時判斷本次通信是否成功,由于主設(shè)備在定時到達前收到同步應(yīng)答報文,故而主設(shè)備判斷本次通信成功。
步驟45主設(shè)備將本側(cè)序列號SQ1更新為1,將重同步標(biāo)志置為0。
可見,在這種情況下,主設(shè)備發(fā)送攜帶序列號0的命令報文給從設(shè)備,在定時到達之前收到由從設(shè)備返回的同步應(yīng)答報文,通信成功。同時,在本次通信結(jié)束之后,主設(shè)備側(cè)序列號更新為1,重同步標(biāo)志為0,從設(shè)備側(cè)序列號更新為0,主設(shè)備側(cè)序列號是從設(shè)備側(cè)預(yù)期的序列號,后續(xù)通信可順利進行。
圖5是本發(fā)明實施例一的同步通信系統(tǒng)的結(jié)構(gòu)圖,用于實現(xiàn)本實施例的同步通信方法,本實施例的同步通信系統(tǒng)500包括相互連接的主設(shè)備510和從設(shè)備520。主設(shè)備用于向從設(shè)備發(fā)送命令報文并接收從設(shè)備返回的應(yīng)答報文,從設(shè)備用于接收和處理主設(shè)備發(fā)送的命令報文并返回同步應(yīng)答報文給主設(shè)備。
主設(shè)備510包括相互連接的命令發(fā)起模塊513和通信與同步模塊514,其中通信與同步模塊514負(fù)責(zé)保存和更新本側(cè)序列號SQ1和重同步標(biāo)志。
具體的,命令發(fā)起模塊513用于生成命令消息并通過通信與同步模塊514將所生成的命令消息發(fā)送給從設(shè)備,以及通過通信與同步模塊514接收從設(shè)備返回的應(yīng)答消息。
通信與同步模塊514用于將來自命令發(fā)起模塊513的命令消息封裝為攜帶當(dāng)前序列號SQ1和重同步標(biāo)志的命令報文,并發(fā)送命令報文給從設(shè)備側(cè)通信與同步模塊524;通信與同步模塊514還用于接收和解析來自從設(shè)備側(cè)通信與同步模塊524的應(yīng)答報文,發(fā)送從應(yīng)答報文中提取的應(yīng)答消息給命令發(fā)起模塊513;通信與同步模塊進一步用于對當(dāng)前通信成功與否進行判斷,如果當(dāng)前通信成功,則將重同步標(biāo)志置為無效,并更新序列號標(biāo)志SQ1,否則將重同步標(biāo)志置為有效。
從設(shè)備520包括相互連接的命令處理模塊523和通信與同步模塊524,其中通信與同步模塊524負(fù)責(zé)保存和更新本側(cè)序列號SQ2。
具體的,命令處理模塊523用于通過通信與同步模塊524接收來自主設(shè)備的命令消息,執(zhí)行命令并通過通信與同步模塊524返回應(yīng)答消息給主設(shè)備。
通信與同步模塊524用于接收和解析來自主設(shè)備側(cè)通信與同步模塊514的命令報文,發(fā)送從命令報文中提取的命令消息給命令處理模塊523;通信與同步模塊524用于將來自命令處理模塊523的應(yīng)答消息封裝為攜帶當(dāng)前序列號SQ2的應(yīng)答報文,并發(fā)送應(yīng)答報文給主設(shè)備側(cè)通信與同步模塊514;通信與同步模塊524還用于根據(jù)所接收的命令報文中攜帶的重同步標(biāo)志對當(dāng)前是否需要重同步進行判斷,如果是,則用命令報文中攜帶的序列號更新本側(cè)序列號,否則需要進一步判斷所接收的報文是否是預(yù)期的命令報文;通信與同步模塊524進一步用于根據(jù)所接收的命令報文中攜帶的序列號對其是否是本側(cè)預(yù)期的命令報文做出判斷,如果是,則用命令報文中攜帶的序列號更新本側(cè)序列號,否則丟棄命令報文。
實際應(yīng)用中,采用本實施例的同步通信系統(tǒng)還可以是包括一個主設(shè)備和一個以上從設(shè)備的同步通信系統(tǒng),主設(shè)備能夠與一個以上從設(shè)備中的任意一個進行同步通信;包括一個以上主設(shè)備和一個從設(shè)備的同步通信系統(tǒng),一個以上主設(shè)備中的任意一個能夠從設(shè)備進行同步通信;包括一個以上主設(shè)備和一個以上從設(shè)備的同步通信系統(tǒng),一個以上主設(shè)備中的任意一個能夠與一個以上從設(shè)備中的任意一個進行同步通信。
實施例二本實施例與實施例一的主要區(qū)別在于,主設(shè)備側(cè)增加用于標(biāo)識命令報文發(fā)送次數(shù)的發(fā)送次數(shù)標(biāo)志并設(shè)置最大發(fā)送次數(shù)。
本實施例的同步通信方法包括主設(shè)備側(cè)流程和從設(shè)備側(cè)流程,其中從設(shè)備側(cè)流程與實施例一的從設(shè)備側(cè)流程相同。圖6是本發(fā)明實施例二的同步通信方法的主設(shè)備側(cè)流程圖,其中主設(shè)備預(yù)先設(shè)置發(fā)送次數(shù)標(biāo)志為0,并設(shè)置最大發(fā)送次數(shù),例如將最大發(fā)送次數(shù)設(shè)為3,主設(shè)備側(cè)執(zhí)行的流程包括以下步驟步驟601主設(shè)備發(fā)送攜帶本側(cè)當(dāng)前序列號SQ1和重同步標(biāo)志的命令報文給從設(shè)備,更新發(fā)送次數(shù)標(biāo)志,即在當(dāng)前發(fā)送次數(shù)標(biāo)志上加1得到更新后的發(fā)送次數(shù)標(biāo)志,同時啟動本側(cè)定時器。
步驟602主設(shè)備在定時到達時判斷判斷本次通信是否成功,即是否收到同步應(yīng)答報文,如果是,則執(zhí)行步驟603,否則執(zhí)行步驟604。
步驟603主設(shè)備更新序列號SQ1,即在當(dāng)前SQ1上加1得到更新的SQ1,將重同步標(biāo)志置為0,結(jié)束本流程。
步驟604主設(shè)備判斷發(fā)送次數(shù)標(biāo)志是否等于最大發(fā)送次數(shù),如果是,則執(zhí)行步驟605,否則返回步驟601。
步驟605主設(shè)備將重同步標(biāo)志置為1,將序列號SQ1置為0,結(jié)束本流程。
其中,步驟605中,主設(shè)備可以任意設(shè)置序列號SQ1,而不僅限于0。
實施例三本實施例與實施例二的主要區(qū)別在于,從設(shè)備側(cè)收到主設(shè)備發(fā)送的命令報文后,首先判斷該報文是否是重復(fù)發(fā)送的命令報文,如果是,則直接回復(fù)應(yīng)答報文給主設(shè)備。
本實施例的同步通信方法包括主設(shè)備側(cè)流程和從設(shè)備側(cè)流程,其中主設(shè)備側(cè)流程與實施例二的主設(shè)備側(cè)流程相同。圖7是本發(fā)明實施例三的同步通信方法的從設(shè)備側(cè)流程圖,從設(shè)備側(cè)執(zhí)行的流程包括以下步驟步驟701~702從設(shè)備接收主設(shè)備發(fā)來的攜帶有序列號和重同步標(biāo)志的命令報文;從設(shè)備判斷所接收報文是否是重復(fù)發(fā)送的命令報文,如果是,則執(zhí)行步驟703,否則執(zhí)行步驟704。
步驟703從設(shè)備丟棄命令報文,直接回復(fù)攜帶本側(cè)當(dāng)前序列號SQ2的應(yīng)答報文給主設(shè)備,結(jié)束本流程。
步驟704從設(shè)備判斷所接收的命令報文中攜帶的重同步標(biāo)志是否為1,如果是,則執(zhí)行步驟705,否則執(zhí)行步驟706;步驟705從設(shè)備用命令報文中攜帶的序列號更新本側(cè)當(dāng)前序列號SQ2,即令更新后的SQ2等于當(dāng)前SQ1,處理命令報文并返回攜帶更新后的序列號SQ2的應(yīng)答報文給主設(shè)備,結(jié)束本流程。
步驟706從設(shè)備判斷所接收的命令報文是否是本側(cè)預(yù)期的命令報文,如果是,則執(zhí)行步驟707,否則執(zhí)行步驟708。
步驟707從設(shè)備用命令報文中攜帶的序列號更新本側(cè)當(dāng)前序列號SQ2,即令更新后的SQ2等于當(dāng)前SQ1,處理命令報文并返回攜帶更新后的序列號SQ2的應(yīng)答報文給主設(shè)備,結(jié)束本流程。
步驟708從設(shè)備丟棄命令報文,結(jié)束本流程。
其中,步驟702中從設(shè)備判斷所接收的命令報文是否是重復(fù)發(fā)送的命令報文的方法可以是判斷所接收的命令報文中攜帶的序列號是否等于本側(cè)當(dāng)前序列號SQ2。
步驟706中從設(shè)備判斷所接收的命令報文是否是本側(cè)預(yù)期的命令報文的方法可以是判斷所接收的命令報文中攜帶的序列號是否是本側(cè)預(yù)期的序列號,常見的,從設(shè)備側(cè)預(yù)期的序列號比當(dāng)前序列號SQ2大1。
以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
權(quán)利要求
1.一種同步通信方法,其特征在于,該方法包括步驟A、主設(shè)備發(fā)送攜帶本側(cè)當(dāng)前序列號和重同步標(biāo)志的命令報文給從設(shè)備;B、從設(shè)備判斷所述命令報文中攜帶的重同步標(biāo)志是否有效,如果是,則執(zhí)行步驟C,否則執(zhí)行步驟D;C、從設(shè)備用所述命令報文中攜帶的序列號更新本側(cè)序列號,處理命令報文并返回攜帶本側(cè)更新后的序列號的應(yīng)答報文給主設(shè)備,結(jié)束本流程;D、從設(shè)備判斷所述命令報文是否是本側(cè)預(yù)期的命令報文,如果是,則執(zhí)行步驟C,否則結(jié)束本流程。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A中所述主設(shè)備發(fā)送命令報文的同時啟動本側(cè)定時器,相應(yīng)地,結(jié)束本流程之前進一步包括步驟E1、主設(shè)備在本側(cè)定時器到達時判斷是否收到攜帶本側(cè)當(dāng)前序列號的應(yīng)答報文,如果是,則更新當(dāng)前序列號并將重同步標(biāo)志置為無效,否則將重同步標(biāo)志置為有效。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟D中所述判斷是從設(shè)備判斷所述命令報文中攜帶的序列號是否是本側(cè)預(yù)期的序列號,如果是,則所述命令報文是本側(cè)預(yù)期的命令報文,否則,所述命令報文不是本側(cè)預(yù)期的命令報文。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法進一步包括在主設(shè)備中設(shè)置發(fā)送次數(shù)標(biāo)志;則步驟A中所述主設(shè)備發(fā)送命令報文的同時更新當(dāng)前發(fā)送次數(shù)標(biāo)志并啟動本側(cè)定時器,相應(yīng)地,結(jié)束本流程之前進一步包括步驟E2、主設(shè)備在本側(cè)定時器到達時判斷是否收到攜帶本側(cè)當(dāng)前序列號的應(yīng)答報文,如果是,則更新當(dāng)前序列號并將重同步標(biāo)志置為無效,否則執(zhí)行步驟F2;F2、主設(shè)備判斷發(fā)送次數(shù)標(biāo)志是否等于最大發(fā)送次數(shù),如果是,則將重同步標(biāo)志置為有效,否則返回步驟A。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A和步驟B之間進一步包括從設(shè)備判斷所述命令報文是否是重復(fù)發(fā)送的命令報文,如果是,則直接回復(fù)攜帶本側(cè)當(dāng)前序列號的應(yīng)答報文給主設(shè)備,結(jié)束本流程,否則執(zhí)行步驟B。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述判斷是從設(shè)備判斷所述命令報文中攜帶的序列號是否是本側(cè)當(dāng)前序列號,如果是,則所述命令報文是重復(fù)發(fā)送的命令報文,否則,所述命令報文不是重復(fù)發(fā)送的命令報文。
7.一種同步通信系統(tǒng),其特征在于,包括主設(shè)備和從設(shè)備,主設(shè)備和從設(shè)備相互連接,主設(shè)備用于保存和更新重同步標(biāo)志,發(fā)送攜帶重同步標(biāo)志的命令報文給從設(shè)備,接收從設(shè)備返回的同步應(yīng)答報文,以及在當(dāng)前通信失敗后將重同步標(biāo)志置為有效;從設(shè)備用于接收主設(shè)備發(fā)來的攜帶有重同步標(biāo)志的命令報文,處理命令報文并返回同步應(yīng)答報文給主設(shè)備。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)包括至少一個主設(shè)備和一個或者一個以上從設(shè)備,所述主設(shè)備與所述從設(shè)備以一對一、一對多、多對一、或多對多的方式相互連接。
9.一種同步通信主設(shè)備,其特征在于,包括相互連接的命令發(fā)起模塊和通信與同步模塊,命令發(fā)起模塊用于通過通信與同步模塊向同步通信從設(shè)備發(fā)送命令消息,并通過通信與同步模塊接收由從設(shè)備返回的應(yīng)答消息;通信與同步模塊用于保存和更新重同步標(biāo)志,將來自命令發(fā)起模塊的命令消息封裝為攜帶重同步標(biāo)志的命令報文并發(fā)送給從設(shè)備,接收和解析由從設(shè)備返回的同步應(yīng)答報文并發(fā)送從同步應(yīng)答報文中提取的應(yīng)答消息給命令發(fā)起模塊,以及在當(dāng)前通信失敗后將重同步標(biāo)志置為有效。
10.一種同步通信從設(shè)備,其特征在于,包括相互連接的命令處理模塊和通信與同步模塊,命令處理模塊用于通過通信與同步模塊接收來自同步通信主設(shè)備的命令消息,執(zhí)行命令并通過通信與同步模塊返回應(yīng)答消息給主設(shè)備;通信與同步模塊用于接收和解析來自主設(shè)備的攜帶有重同步標(biāo)志的命令報文并發(fā)送從命令報文中提取的命令消息給命令處理模塊,以及將來自命令處理模塊的應(yīng)答消息封裝為同步應(yīng)答報文并返回給主設(shè)備。
全文摘要
本發(fā)明公開了一種同步通信方法,該方法包括步驟A.主設(shè)備發(fā)送攜帶本側(cè)當(dāng)前序列號和重同步標(biāo)志的命令報文給從設(shè)備;B.從設(shè)備判斷所述命令報文中攜帶的重同步標(biāo)志是否有效,如果是,則執(zhí)行步驟C,否則執(zhí)行步驟D;C.從設(shè)備用所述命令報文中攜帶的序列號更新本側(cè)序列號,處理命令報文并返回攜帶本側(cè)更新后的序列號的應(yīng)答報文給主設(shè)備,結(jié)束本流程;D.從設(shè)備判斷所述命令報文是否是本側(cè)預(yù)期的命令報文,如果是,則執(zhí)行步驟C,否則結(jié)束本流程。本發(fā)明還公開了一種同步通信系統(tǒng)、一種同步通信主設(shè)備和一種同步通信從設(shè)備。本發(fā)明提供的同步通信方法、系統(tǒng)和設(shè)備,能夠提高同步通信的可靠性,確保當(dāng)前通信失敗時后續(xù)同步通信的順利進行。
文檔編號H04L7/04GK1801692SQ200610001518
公開日2006年7月12日 申請日期2006年1月18日 優(yōu)先權(quán)日2006年1月18日
發(fā)明者葛長忠, 陳道威, 唐曉丹, 陸明 申請人:杭州華為三康技術(shù)有限公司