專利名稱:通信設(shè)備、系統(tǒng)及通信方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種通信設(shè)備、系統(tǒng)及通信方法。
背景技術(shù):
在網(wǎng)絡(luò)通信系統(tǒng)例如對講系統(tǒng)、安防報警系統(tǒng)中,為了實(shí)現(xiàn)多臺設(shè)備之間的網(wǎng)絡(luò)通信,目前主要采用TCP或UDP進(jìn)行網(wǎng)絡(luò)傳輸,并設(shè)計相應(yīng)通信指令系統(tǒng)完成多個設(shè)備間通信。通信過程采用TCP通信,在一些嵌入式設(shè)備時需要消耗較多資源,發(fā)送和接收數(shù)據(jù)都需要啟動一個線程。當(dāng)通信只在一對一進(jìn)行時較簡單,但多個設(shè)備同時交互時,較難控制線程個數(shù)及多線程帶來的同步問題。而某些嵌入式系統(tǒng)資源有限,可能不支持TCP或者支持的 TCP線程有限并已被其它模塊占用,此時,必須考慮其它方法。而在采用UDP通信時可能存在以下問題UDP丟包、狀態(tài)同步性差、命令重發(fā)、命令確認(rèn)、網(wǎng)絡(luò)故障檢測等。例如指令發(fā)送后,如果對方?jīng)]有收到,必須重發(fā);而為了檢測網(wǎng)絡(luò)故障,需要設(shè)定類似TCP心跳的命令。 UDP是基于指令的通信,需要通過發(fā)送指令來確認(rèn)通信,指令系統(tǒng)通常由多條指令構(gòu)成,相應(yīng)的代碼算法也較復(fù)雜。
發(fā)明內(nèi)容
為解決上述技術(shù)問題,本發(fā)明提供一種新型的通信設(shè)備、系統(tǒng)及通信方法。為解決上述技術(shù)問題,本發(fā)明采用的一個技術(shù)方案是提供一種通信方法,包括實(shí)時接收網(wǎng)絡(luò)中傳送過來的其他設(shè)備的通信狀態(tài)的步驟,其中,所述通信狀態(tài)封裝在UDP包中;以預(yù)定間隔向外發(fā)送自身的通信狀態(tài)的步驟,其中,所述通信狀態(tài)封裝在UDP包中;記錄設(shè)備自身和接收到的其他設(shè)備的通信狀態(tài),分析處理并響應(yīng)其他設(shè)備通信狀態(tài)的步驟。其中,一條所述通信狀態(tài)被封裝為一個UDP包。其中,所述UDP包上編有順序號。為解決上述技術(shù)問題,本發(fā)明采用的一個技術(shù)方案是提供一種通信設(shè)備,包括接收模塊、發(fā)送模塊和狀態(tài)管理模塊;所述接收模塊用于接收來自網(wǎng)絡(luò)中其他設(shè)備的以UDP 包形式傳輸?shù)耐ㄐ艩顟B(tài)并將接收到的內(nèi)容傳送給所述狀態(tài)管理模塊;所述發(fā)送模塊用于以預(yù)定間隔向網(wǎng)絡(luò)中的一個或多個設(shè)備發(fā)送設(shè)備自身的通信狀態(tài),其中,所述通信狀態(tài)封裝為UDP包;所述狀態(tài)管理模塊用于記錄設(shè)備自身和接收到的其他設(shè)備的通信狀態(tài),分析處理并響應(yīng)其他設(shè)備的通信狀態(tài)。其中,一條所述通信狀態(tài)被封裝為一個UDP包。其中,所述發(fā)送模塊還包括用于給UDP包加上順序號的編號單元。為解決上述技術(shù)問題,本發(fā)明采用的一個技術(shù)方案是提供一種通信系統(tǒng),包括至少兩個通信設(shè)備,所述通信設(shè)備均連入網(wǎng)絡(luò);所述通信設(shè)備包括接收模塊、發(fā)送模塊和狀態(tài)管理模塊;所述接收模塊用于接收來自網(wǎng)絡(luò)中其他設(shè)備的以UDP包形式傳輸?shù)耐ㄐ艩顟B(tài)并將接收到的內(nèi)容傳送給所述狀態(tài)管理模塊;所述發(fā)送模塊用于以預(yù)定間隔向網(wǎng)絡(luò)中的一個或多個設(shè)備發(fā)送設(shè)備自身的通信狀態(tài),其中,所述通信狀態(tài)封裝為UDP包;所述狀態(tài)管理模塊用于記錄設(shè)備自身和接收到的其他設(shè)備的通信狀態(tài),分析處理并響應(yīng)其他設(shè)備的通信狀態(tài)。其中,一條所述通信狀態(tài)被封裝為一個UDP包。其中,所述發(fā)送模塊還包括用于給UDP包加上順序號的編號單元。本發(fā)明的有益效果是本發(fā)明所采用的通信方式是基于狀態(tài)的通信,完全不同于以往的基于命令的通信,采用本發(fā)明的通信方法至少具有以下優(yōu)點(diǎn)1、通信過程簡單,報告狀態(tài)只需一條信息,而現(xiàn)有的基于命令的通信中控制指令一般都需要多條。2、解決狀態(tài)同步問題,避免兩邊設(shè)備狀態(tài)不一致,因?yàn)樵O(shè)備總是向其它設(shè)備報告狀態(tài),因而能夠盡快從錯誤中恢復(fù)。3、省略通信心跳包,由于設(shè)備以一定的間隔向外發(fā)送自身狀態(tài),即通信是以一定間隔在運(yùn)行,它本身就可以看成心跳功能,當(dāng)一方在一定時間內(nèi)收不到對方的狀態(tài),就按掉線故障處理。4、解決UDP丟包重發(fā)問題,丟了也沒有關(guān)系,下一次報告狀態(tài)時自動恢復(fù)。5、狀態(tài)命令發(fā)送后,不需要等待確認(rèn),根據(jù)對方的下一次報告的狀態(tài)即可判定如何處理。
圖1是本發(fā)明通信設(shè)備一實(shí)施例的結(jié)構(gòu)示意圖;圖2是本發(fā)明通信系統(tǒng)一實(shí)施例的結(jié)構(gòu)示意圖;圖3是本發(fā)明通信方法的示意圖。
具體實(shí)施例方式為詳細(xì)說明本發(fā)明的技術(shù)內(nèi)容、構(gòu)造特征、所實(shí)現(xiàn)目的及效果,以下結(jié)合實(shí)施方式并配合附圖詳予說明。圖1示出了本發(fā)明一實(shí)施例中通信系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu),在該系統(tǒng)中,每個通信設(shè)備必須連接到IP網(wǎng)絡(luò),IP網(wǎng)絡(luò)可以是互聯(lián)網(wǎng),城域網(wǎng),局域網(wǎng)等等,每個通信設(shè)備允許同時與一個或多個其他通信設(shè)備進(jìn)行通信。通信設(shè)備可以有多個,局域網(wǎng)也可以有多個,通信可以一對一進(jìn)行,也可以一對多進(jìn)行,并允許多對多通信。本發(fā)明首先提供一種可以應(yīng)用于通信系統(tǒng)中的通信方法,包括實(shí)時接收網(wǎng)絡(luò)中傳送過來的其他設(shè)備的通信狀態(tài)的步驟,其中,所述通信狀態(tài)封裝在UDP包中;以預(yù)定間隔向外發(fā)送自身的通信狀態(tài)的步驟,其中,所述通信狀態(tài)封裝在UDP包中;記錄設(shè)備自身和接收到的其他設(shè)備的通信狀態(tài),分析處理并響應(yīng)其他設(shè)備通信狀態(tài)的步驟。
在該方法中,通信狀態(tài)的傳輸是以UDP包的形式進(jìn)行,利用現(xiàn)有的UDP傳輸過程, 但在UDP包中傳輸各設(shè)備的通信狀態(tài),以通信狀態(tài)作為通信的觸發(fā)點(diǎn),設(shè)備通過接收其他設(shè)備的狀態(tài)作出相應(yīng)地響應(yīng)動作例如接受通話請求拒絕通話請求等,另外設(shè)備也以預(yù)定間隔向其他設(shè)備發(fā)送自身的通信狀態(tài),這樣通過告知對方自己的狀態(tài)使對方知道下一步的行為。本發(fā)明實(shí)現(xiàn)了基于UDP的穩(wěn)定可靠的多設(shè)備相互通信的方法,以狀態(tài)通信取代了傳統(tǒng)的命令通信,比TCP占用的資源少,但又解決了 UDP通信存在的例如指令復(fù)雜、狀態(tài)不同步、 丟包等各種問題,特別適合于嵌入式設(shè)備,尤其是多個設(shè)備通信情形。參閱圖2,本發(fā)明的一實(shí)施例中,通信設(shè)備包括接收模塊、發(fā)送模塊和狀態(tài)管理模塊。所述接收模塊用于接收來自網(wǎng)絡(luò)中其他設(shè)備的以UDP包形式傳輸?shù)耐ㄐ艩顟B(tài)并將接收到的內(nèi)容傳送給所述狀態(tài)管理模塊;網(wǎng)絡(luò)中的其他設(shè)備可以為一個或多個。所述發(fā)送模塊用于以預(yù)定間隔向網(wǎng)絡(luò)中的一個或多個設(shè)備發(fā)送設(shè)備自身的通信狀態(tài),其中,所述通信狀態(tài)封裝為UDP包。所述狀態(tài)管理模塊用于記錄設(shè)備自身和接收到的其他設(shè)備的通信狀態(tài),分析處理并響應(yīng)其他設(shè)備的通信狀態(tài)。狀態(tài)管理模塊接收到其他設(shè)備的通信狀態(tài)后,進(jìn)行分析,確認(rèn)應(yīng)該對其他設(shè)備作出怎樣的反應(yīng),例如接收到的通信狀態(tài)為其他設(shè)備向本設(shè)備發(fā)起通信請求,狀態(tài)管理模塊就可以相應(yīng)地作出接收請求或拒絕請求的處理,同時這個過程中如果本設(shè)備的通信狀態(tài)發(fā)生了變化,狀態(tài)管理模塊還需修改本設(shè)備的通信狀態(tài),發(fā)送模塊再向外發(fā)送本設(shè)備的通信狀態(tài)即發(fā)送修改之后的通信狀態(tài),這樣其他設(shè)備也可根據(jù)該通信狀態(tài)得知本設(shè)備的情況從而作出相應(yīng)的處理。參閱圖3,本發(fā)明的設(shè)備在啟用通信后,接收模塊、發(fā)送模塊和狀態(tài)管理模塊均開始工作,接收模塊接收其他設(shè)備的狀態(tài),并將接收到的狀態(tài)傳送給狀態(tài)管理模塊,狀態(tài)管理模塊對接收到的狀態(tài)做相應(yīng)的處理,必要時修改本設(shè)備的通信狀態(tài),而發(fā)送模塊則根據(jù)預(yù)設(shè)的時間向其他設(shè)備發(fā)送狀態(tài)。由于每臺設(shè)備都會以預(yù)定間隔向外發(fā)送自己的狀態(tài),因此當(dāng)兩臺設(shè)備建立通信后,互相會以一定時間間隔向?qū)Ψ綀蟾鏍顟B(tài)。這個時間間隔可以按需要確定,可以短也可以長,也可能根據(jù)不同的狀態(tài)采用不同的間隔。設(shè)備的通信狀態(tài)由人工預(yù)設(shè),保證一臺設(shè)備在獲取對方狀態(tài)后,可以確定下一步該做什么。每個設(shè)備的行為都是根據(jù)自身及對方的狀態(tài)進(jìn)行處理及回應(yīng),而不是等待對方的指令或應(yīng)答。以下根據(jù)一應(yīng)用實(shí)例來說明對象為設(shè)備A與設(shè)備B,動作為設(shè)備A呼叫設(shè)備B 設(shè)計狀態(tài)格式為Call =n,m;其中Call表示呼叫,η表示序號,m表示狀態(tài)碼。設(shè)計狀態(tài)碼1表示呼叫狀態(tài);2表示響鈴狀態(tài);3表示通話狀態(tài);4表示通話結(jié)束狀態(tài)。需要說明的是,本例中狀態(tài)并不完整,只是選取主要的狀態(tài)加以說明。可能發(fā)生的通信情形(只例舉二種)第一種設(shè)備A呼叫失敗(可能是由于B處于關(guān)機(jī)狀態(tài))在某一時間,設(shè)備A發(fā)送[Call = 1,1 ;]給設(shè)備B ;設(shè)備B在3秒(時間可以預(yù)先設(shè)定,并非一定限制在3秒)內(nèi)都未發(fā)送狀態(tài)給設(shè)備A,設(shè)備A監(jiān)測接收到的其他設(shè)備的通信狀態(tài),若一直未收到設(shè)備B的狀態(tài),則可判斷呼叫失敗。第二種設(shè)備A呼叫設(shè)備B,設(shè)備B接通,兩設(shè)備保持一定時長的通話,而后設(shè)備A 掛機(jī)設(shè)備A 發(fā)送[Call = 1,1 ;];設(shè)備B 發(fā)送[Call = 2,2 ;];設(shè)備A 發(fā)送[Call = 3,2 ;];......設(shè)備B 發(fā)送[Call = 30,3 ;];設(shè)備A 發(fā)送[Call = 31,3 ;];......設(shè)備A 發(fā)送[Cal 1 = 60,4 ;];設(shè)備B 發(fā)送[Call = 61,4 ;]?!?.....”代表的是狀態(tài)會持續(xù)一段時間,這段時間的狀態(tài)沒有改變,發(fā)送的狀態(tài)
的接收的狀態(tài)處于重復(fù)狀態(tài)。在上述通話過程中,設(shè)備A首先發(fā)起通話,此時其處于呼叫狀態(tài),設(shè)備B接收到設(shè)備A的狀態(tài)后,響應(yīng)設(shè)備A的呼叫,設(shè)備B響鈴,設(shè)備B的狀態(tài)相應(yīng)變?yōu)轫戔彔顟B(tài),而設(shè)備A根據(jù)設(shè)備B的狀態(tài)即可以得知設(shè)備B已響應(yīng)了其呼叫請求,設(shè)備A的狀態(tài)亦修改為響鈴狀態(tài),兩設(shè)備繼續(xù)交換通信狀態(tài),直至設(shè)備B接通,設(shè)備A與設(shè)備B建立通話連接,設(shè)備B首先修改通信狀態(tài)為通話狀態(tài),而后設(shè)備A亦修改通信狀態(tài)為通話狀態(tài),當(dāng)兩者在保持通話過程中,狀態(tài)不變,但兩者的狀態(tài)交換則一直按預(yù)定間隔進(jìn)行,直至最后通話結(jié)束再修改通話狀態(tài)。以上只是示意通信方法,真實(shí)的通信狀態(tài)會更多和復(fù)雜一些。根據(jù)上述的通信過程可以看出,本發(fā)明所采用的通信方式是基于狀態(tài)的通信,完全不同于以往的基于命令的通信,采用本發(fā)明的通信方法至少具有以下優(yōu)點(diǎn)1、通信過程簡單,報告狀態(tài)只需一條信息,而現(xiàn)有的基于命令的通信中控制指令一般都需要多條。2、解決狀態(tài)同步問題,避免兩邊設(shè)備狀態(tài)不一致,因?yàn)樵O(shè)備總是向其它設(shè)備報告狀態(tài),因而能夠盡快從錯誤中恢復(fù)。3、省略通信心跳包,由于設(shè)備以一定的間隔向外發(fā)送自身狀態(tài),即通信是以一定間隔在運(yùn)行,它本身就可以看成心跳功能,當(dāng)一方在一定時間內(nèi)收不到對方的狀態(tài),就按掉線故障處理。4、解決UDP丟包重發(fā)問題,丟了也沒有關(guān)系,下一次報告狀態(tài)時自動恢復(fù)。5、狀態(tài)命令發(fā)送后,不需要等待確認(rèn),根據(jù)對方的下一次報告的狀態(tài)即可判定如何處理。在以上應(yīng)用實(shí)例中,是以通話過程來示意本發(fā)明的通信方法,但是對于實(shí)際的通信設(shè)備來講,并不限于一次使用此方法,可以多次使用,例如設(shè)備具有通話和監(jiān)視兩個功能,通話和監(jiān)視可以分別采用本方法進(jìn)行通信,它們在同一設(shè)備上存在,但是相對獨(dú)立。在上述的實(shí)施例中,所述通信狀態(tài)以一個UDP包的形式傳輸。這樣使得數(shù)據(jù)的表達(dá)比較精簡,丟包的可能性降低。相應(yīng)地,對于通信設(shè)備而言,其需要包括一個用于當(dāng)然將
6通信狀態(tài)封裝為一個UDP包的封裝單元。如果一個UDP包表達(dá)不了,可以用多個UDP包,正常情況下,一個UDP包是夠用的,如果確實(shí)需要多個UDP包,可以考慮將狀態(tài)分組。作為改進(jìn),在一實(shí)施例中,所述UDP包上還編有順序號,所述發(fā)送模塊還包括用于給UDP包加上順序號的編號單元。由于在UDP通信中,接收順序和發(fā)送順序可能不一致,接收順序是亂序的,在狀態(tài)中添加包序號,處理其它設(shè)備狀態(tài)時保持序號按遞增或遞減或其它規(guī)則進(jìn)行,避免處理過時的狀態(tài)信息。以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種通信方法,其特征在于包括實(shí)時接收網(wǎng)絡(luò)中傳送過來的其他設(shè)備的通信狀態(tài)的步驟,其中,所述通信狀態(tài)封裝在 UDP包中;以預(yù)定間隔向外發(fā)送自身的通信狀態(tài)的步驟,其中,所述通信狀態(tài)封裝在UDP包中; 記錄設(shè)備自身和接收到的其他設(shè)備的通信狀態(tài),分析處理并響應(yīng)其他設(shè)備通信狀態(tài)的步驟。
2.根據(jù)權(quán)利要求1所述的通信方法,其特征在于一條所述通信狀態(tài)被封裝為一個UDP包。
3.根據(jù)權(quán)利要求2所述的通信方法,其特征在于所述UDP包上編有順序號。
4.一種通信設(shè)備,其特征在于,包括接收模塊、發(fā)送模塊和狀態(tài)管理模塊;所述接收模塊用于接收來自網(wǎng)絡(luò)中其他設(shè)備的以UDP包形式傳輸?shù)耐ㄐ艩顟B(tài)并將接收到的內(nèi)容傳送給所述狀態(tài)管理模塊;所述發(fā)送模塊用于以預(yù)定間隔向網(wǎng)絡(luò)中的一個或多個設(shè)備發(fā)送設(shè)備自身的通信狀態(tài), 其中,所述通信狀態(tài)封裝為UDP包;所述狀態(tài)管理模塊用于記錄設(shè)備自身和接收到的其他設(shè)備的通信狀態(tài),分析處理并響應(yīng)其他設(shè)備的通信狀態(tài)。
5.根據(jù)權(quán)利要求4所述的通信設(shè)備,其特征在于一條所述通信狀態(tài)被封裝為一個UDP包。
6.根據(jù)權(quán)利要求5所述的通信設(shè)備,其特征在于所述發(fā)送模塊還包括用于給UDP包加上順序號的編號單元。
7.一種通信系統(tǒng),其特征在于,包括至少兩個通信設(shè)備,所述通信設(shè)備均連入網(wǎng)絡(luò); 所述通信設(shè)備包括接收模塊、發(fā)送模塊和狀態(tài)管理模塊;所述接收模塊用于接收來自網(wǎng)絡(luò)中其他設(shè)備的以UDP包形式傳輸?shù)耐ㄐ艩顟B(tài)并將接收到的內(nèi)容傳送給所述狀態(tài)管理模塊;所述發(fā)送模塊用于以預(yù)定間隔向網(wǎng)絡(luò)中的一個或多個設(shè)備發(fā)送設(shè)備自身的通信狀態(tài), 其中,所述通信狀態(tài)封裝為UDP包;所述狀態(tài)管理模塊用于記錄設(shè)備自身和接收到的其他設(shè)備的通信狀態(tài),分析處理并響應(yīng)其他設(shè)備的通信狀態(tài)。
8.根據(jù)權(quán)利要求7所述的通信系統(tǒng),其特征在于一條所述通信狀態(tài)被封裝為一個UDP包。
9.根據(jù)權(quán)利要求8所述的通信設(shè)備,其特征在于所述發(fā)送模塊還包括用于給UDP包加上順序號的編號單元。
全文摘要
本發(fā)明公開了一種通信設(shè)備、系統(tǒng)及通信方法,所述通信方法包括實(shí)時接收網(wǎng)絡(luò)中傳送過來的其他設(shè)備的通信狀態(tài)的步驟;以預(yù)定間隔向外發(fā)送自身的通信狀態(tài)的步驟;記錄設(shè)備自身和接收到的其他設(shè)備的通信狀態(tài),分析處理并響應(yīng)其他設(shè)備通信狀態(tài)的步驟;其中通信狀態(tài)在傳輸過程以UDP包的形式傳輸。本發(fā)明實(shí)現(xiàn)了基于UDP的穩(wěn)定可靠的多設(shè)備相互通信的方法,以狀態(tài)通信取代了傳統(tǒng)的命令通信,比TCP占用的資源少,但又解決了UDP通信存在的例如指令復(fù)雜、狀態(tài)不同步、丟包等各種問題,特別適合于嵌入式設(shè)備,尤其是多個設(shè)備通信情形。
文檔編號H04L29/06GK102523157SQ20111041863
公開日2012年6月27日 申請日期2011年12月14日 優(yōu)先權(quán)日2011年12月14日
發(fā)明者張義寶 申請人:福建星網(wǎng)視易信息系統(tǒng)有限公司