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