基于北斗衛(wèi)星的可靠數(shù)據(jù)傳輸方法
【專利摘要】本發(fā)明公開了一種基于北斗衛(wèi)星的可靠數(shù)據(jù)傳輸方法,基于該方法可以實現(xiàn)一個指揮機和多個終端間的可靠數(shù)據(jù)傳輸,數(shù)據(jù)傳輸過程中,各終端機對數(shù)據(jù)包進行編號發(fā)送,指揮機收到數(shù)據(jù)包后,解析出終端號和數(shù)據(jù)包號,并通過廣播的方式將收到的最新數(shù)據(jù)包的包號告知所有終端機,終端機依此可確認(rèn)指揮機是否已收到自己上報的數(shù)據(jù),進而確定是發(fā)新的數(shù)據(jù)包,還是重發(fā)原有數(shù)據(jù)包。所述指揮機廣播收到數(shù)據(jù)包的編號,是對所接入的所有終端機上報最新數(shù)據(jù)的包號集中編碼、一次發(fā)送的過程,避開了輪詢通知過程中的等待時間過長的問題,使得可靠傳輸?shù)靡詫崿F(xiàn)。基于北斗衛(wèi)星的通訊傳輸頻次低、數(shù)據(jù)量少,多次握手來實現(xiàn)可靠傳輸異常困難,本方法解決了在這種惡劣通訊條件下的可靠數(shù)據(jù)傳輸。
【專利說明】基于北斗衛(wèi)星的可靠數(shù)據(jù)傳輸方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于衛(wèi)星的可靠數(shù)據(jù)傳輸方法,尤指通過民用北斗衛(wèi)星進行數(shù)據(jù)可靠傳輸?shù)姆椒ā?br>
【背景技術(shù)】
[0002]當(dāng)前北斗衛(wèi)星可實現(xiàn)終端對終端的數(shù)據(jù)傳輸,同時衛(wèi)星指揮機可以向多個終端進行數(shù)據(jù)廣播。但是在數(shù)據(jù)傳輸協(xié)議中,北斗衛(wèi)星不會反饋信息的接收情況,所以發(fā)送方無法獲知數(shù)據(jù)是否已經(jīng)正確送達?,F(xiàn)有的解決方案是,接收方收到信息后,給發(fā)送方一個反饋信息,從而達到通知的效果,這種方案,可以解決點對點的通訊,但是,當(dāng)前更多的系統(tǒng)是需要從多個終端,向一個中心指揮機發(fā)送信息,無論北斗終端還是指揮機,由于北斗衛(wèi)星的通訊頻度限制,一般每分鐘只能發(fā)送I到2次數(shù)據(jù)包,所以中心指揮機無法及時向多個終端的反饋送達信息。
[0003]由此可見,設(shè)計出一種基于北斗衛(wèi)星可靠的數(shù)據(jù)傳輸方法是目前急需解決的問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供一種基于北斗衛(wèi)星的可靠數(shù)據(jù)傳輸方法,該方法可以實現(xiàn)一個指揮機和多個終端基于北斗衛(wèi)星的可靠數(shù)據(jù)傳輸,數(shù)據(jù)傳輸過程中,各終端機對數(shù)據(jù)包進行編號發(fā)送,指揮機收到數(shù)據(jù)包后,解析出終端號和數(shù)據(jù)包號,并通過廣播的方式將收到的最新數(shù)據(jù)包的包號集中告知各終端機,終端機依此可確認(rèn)指揮機是否已收到自己上報的數(shù)據(jù),進而可以確定是繼續(xù)后面的工作,發(fā)送新的數(shù)據(jù)包,還是重發(fā)原有數(shù)據(jù)包。
[0005]所述數(shù)據(jù)包編號在0-255之間,并順序遞增,編號達到255后,重置為0,編號存儲在各終端機中,終端機每發(fā)送成功一個數(shù)據(jù)包后,數(shù)據(jù)包編號就加1,沒有收到指揮機的確認(rèn)廣播,不進行下一條數(shù)據(jù)的上報,超長時間沒有收到數(shù)據(jù)廣播,就重復(fù)發(fā)送上一條數(shù)據(jù),數(shù)據(jù)包號不變。
[0006]所述指揮機廣播收到數(shù)據(jù)包的編號,是對所接入的所有終端機傳輸最新數(shù)據(jù)的包號集中編碼、一次發(fā)送的過程,避開了輪詢通知過程中的等待時間過長的問題。
[0007]為實現(xiàn)上述目的,本發(fā)明采用了如下技術(shù)方案:
1.本發(fā)明主要是利用中心指揮機的廣播功,解決當(dāng)多個終端向一個中心指揮機發(fā)送時,消息送達狀態(tài)的及時反饋問題。
[0008]所述指揮機廣播功能是指,指揮機想管轄的終端進行的數(shù)據(jù)廣播,一次發(fā)送,所有設(shè)備都會接收到相同的內(nèi)容。
[0009]2.本發(fā)明對所有上行、下行數(shù)據(jù)包的格式作出統(tǒng)一約定,即基礎(chǔ)通訊協(xié)議,如圖2所示,數(shù)據(jù)包分三個部分,其中前2位是包頭,中間是數(shù)據(jù)域,最后I位是CRC校驗,上述包頭占2個字節(jié),數(shù)據(jù)類型一個字節(jié),數(shù)據(jù)域的數(shù)據(jù)長占一個字節(jié),CRC校驗占一個字節(jié),數(shù)據(jù)域占多個字節(jié),其字節(jié)數(shù)存放在包頭數(shù)據(jù)長度中。
[0010]3.本發(fā)明中約定數(shù)據(jù)類型分3種,分別是:終端機上報的數(shù)據(jù),用O表示;指揮機廣播數(shù)據(jù)包號,用I表示;指揮機對終端進行終端號的修改,用2表示。
[0011]4.本發(fā)明對終端上報數(shù)據(jù)的格式作了約定,即數(shù)據(jù)上報協(xié)議,終端上報數(shù)據(jù)的格式遵循基礎(chǔ)通訊協(xié)議。如圖3所示,數(shù)據(jù)包中數(shù)據(jù)類型固定為0,對數(shù)據(jù)域的規(guī)定如下:數(shù)據(jù)域第一個字節(jié)存放終端編號,第二個字節(jié)存放數(shù)據(jù)包編號,后面的字節(jié)存放要上報的數(shù)據(jù)。所述數(shù)據(jù)包編號在0-255之間,并順序遞增,后面發(fā)送的數(shù)據(jù)包編號是在前面數(shù)據(jù)包編號的基礎(chǔ)上加一而得。沒有收到指揮機的確認(rèn)廣播,不得進行下一條數(shù)據(jù)的上報,超長時間沒有收到數(shù)據(jù)廣播,就重復(fù)發(fā)送上一條數(shù)據(jù),數(shù)據(jù)包號不變。
[0012]5.本發(fā)明對指揮機廣播數(shù)據(jù)包號的數(shù)據(jù)格式作了約定,即包號廣播協(xié)議,指揮機廣播數(shù)據(jù)包的格式遵循基礎(chǔ)通訊協(xié)議。如圖4所示,數(shù)據(jù)包中數(shù)據(jù)類型固定為1,對數(shù)據(jù)域的規(guī)定如下:數(shù)據(jù)域第I個字節(jié)存放收到I號終端最后數(shù)據(jù)的包編號,數(shù)據(jù)域第2個字節(jié)存放收到2號終端最后數(shù)據(jù)的包編號,依次類推,數(shù)據(jù)域第η個字節(jié)存放收到η號終端最后數(shù)據(jù)的包編號。
[0013]6.本發(fā)明對終端設(shè)備的編號設(shè)置作了約定,即終端設(shè)備編號設(shè)置協(xié)議,對終端設(shè)備的編號設(shè)置,其數(shù)據(jù)包遵循基礎(chǔ)通訊協(xié)議。如圖5所示,數(shù)據(jù)包中數(shù)據(jù)類型固定為2,對數(shù)據(jù)域的規(guī)定如下:數(shù)據(jù)域第I個字節(jié)存放終端密碼的高字節(jié),數(shù)據(jù)域第2個字節(jié)存放終端密碼的低字節(jié),數(shù)據(jù)域第3個字節(jié)存放新的設(shè)備編號,所述終端密碼是存放在終端設(shè)備上的,且密碼為int型數(shù)字。
[0014]7.如圖6所示,終端發(fā)送數(shù)據(jù)的過程中,首先是對數(shù)據(jù)進行編碼,將包號編入數(shù)據(jù)包中,數(shù)據(jù)發(fā)送后,進入等待循環(huán),如果收到指揮機的廣播數(shù)據(jù),就比較指揮機反饋的包號和剛剛發(fā)送數(shù)據(jù)包的包號是否相等,如果相等則當(dāng)前包號加I后結(jié)束本次數(shù)據(jù)包的發(fā)送,如果不等則繼續(xù)等待指揮機新的包號廣播。
[0015]8.如圖7所示,指揮機中存在二個工作線程,一個線程監(jiān)聽并接收數(shù)據(jù),另一個線程是一個定時器,負(fù)責(zé)廣播數(shù)據(jù)包號。監(jiān)聽并接收數(shù)據(jù)的線程在收到數(shù)據(jù)后,從數(shù)據(jù)中提取終端號和數(shù)據(jù)包號存入變量存儲區(qū),再處理收到的數(shù)據(jù)。定時廣播線程會定時從變量存儲區(qū)中讀取各個終端的最新數(shù)據(jù)包號,進而編碼廣播。監(jiān)聽和接收線程收到數(shù)據(jù)后,會維護一個包號變更變量,廣播數(shù)據(jù)包號的線程只有在包號變更后,才會工作,如果指揮機沒有收到任何終端發(fā)來的數(shù)據(jù),則不廣播數(shù)據(jù)包號。
[0016]本發(fā)明的優(yōu)點是:
本發(fā)明是基于北斗衛(wèi)星的可靠數(shù)據(jù)傳輸方法,充分利用了北斗衛(wèi)星通訊的廣播機制,一次性將所有終端最新數(shù)據(jù)的數(shù)據(jù)包號廣播出去,避免對終端上報數(shù)據(jù)作逐一回復(fù),有效地降低了通訊次數(shù),每個終端機又不失回饋機制,從而,可靠傳輸?shù)靡詫崿F(xiàn)。依據(jù)本發(fā)明可實現(xiàn)基于北斗衛(wèi)星數(shù)據(jù)的可靠傳輸,且不會降低通訊效率。
[0017]
【專利附圖】
【附圖說明】
[0018]圖1指揮機、終端協(xié)作流程圖。
[0019]圖2基礎(chǔ)通訊協(xié)議。
[0020]圖3數(shù)據(jù)上報協(xié)議。
[0021]圖4廣播數(shù)據(jù)包編號協(xié)議。
[0022]圖5終端設(shè)備編號設(shè)置協(xié)議。
[0023]圖6終端發(fā)送數(shù)據(jù)包流程。
[0024]圖7指揮機接收數(shù)據(jù)、廣播包號流程。
[0025]
【具體實施方式】
[0026]本發(fā)明的目的在于提供一種基于北斗衛(wèi)星的可靠數(shù)據(jù)傳輸方法,在該方法中,終端機對數(shù)據(jù)包進行編號發(fā)送,指揮機收到數(shù)據(jù)包后,通過廣播的方式將收到的最新數(shù)據(jù)包的包號告知所有終端機,終端機依此可確認(rèn)指揮機是否已收到自己上報的數(shù)據(jù),進而確定是發(fā)新的數(shù)據(jù)包,還是重發(fā)原有數(shù)據(jù)包。
[0027]所述指揮機廣播收到數(shù)據(jù)包的編號,是對所接入的所有終端機傳輸數(shù)據(jù)的包號集中編碼、集中發(fā)送的過程。避開了輪詢通知過程中的等待時間過長的問題,使得可靠傳輸成為可能。
[0028]本發(fā)明基于北斗衛(wèi)星的可靠數(shù)據(jù)傳輸方法,其可靠傳輸是由如下執(zhí)行過程來保障的:
步驟1:如圖6所示,終端對數(shù)據(jù)進行編碼上報,終端機始終維護一個包號,每成功發(fā)送一次、并成功收到回饋信息,包號就加I。終端在數(shù)據(jù)編碼上報的過程中會將包號也編入數(shù)據(jù)包,具體編碼規(guī)則參見圖3,本步驟包括一個編碼過程和一個發(fā)送過程;
步驟2:終端進入等待指揮機回饋狀態(tài),終端每發(fā)送完一個數(shù)據(jù)包后,就會進入本過程,等待指揮機的回饋廣播,從而確定本次發(fā)送是否成功了 ;
步驟3:如圖7所示,指揮機監(jiān)聽到數(shù)據(jù)后,進入數(shù)據(jù)接收流程,指揮機會有一個專門的線程監(jiān)聽所有的終端設(shè)備,只要發(fā)現(xiàn)有數(shù)據(jù)上報,就會新起一個線程來接收本次數(shù)據(jù),監(jiān)聽線程繼續(xù)監(jiān)聽所有的終端設(shè)備,監(jiān)聽線程不負(fù)責(zé)數(shù)據(jù)的接收;
步驟4:指揮機從數(shù)據(jù)中分析出終端編號、終端發(fā)送數(shù)據(jù)包的包號,將包號保存到變量區(qū),并設(shè)置收到數(shù)據(jù)標(biāo)記,數(shù)據(jù)接收標(biāo)記是一個全局的變量,只存數(shù)是否有新的數(shù)據(jù)上來,收到新的數(shù)據(jù)后,該變量置為true,該標(biāo)記由包號廣播線程來重置,包號廣播后,將該變量置為false ;所述變量區(qū)是存儲每個終端最新包號的;
步驟5:指揮機的定時器查詢到已收到數(shù)據(jù)后,在變量存儲區(qū)中讀取各個終端發(fā)送最新數(shù)據(jù)包的包號,將這些包號組織起來進行廣播,指揮機上有一個定時器,該定時器一般每30秒查詢一次新數(shù)據(jù)到達標(biāo)記,有新的數(shù)據(jù)就會依據(jù)圖4所述的格式組織一個數(shù)據(jù)包,將各個終端機的最新包號廣播出去;
步驟6:終端收到指揮機的廣播后,依據(jù)自身的終端號碼,從廣播的信息中分析出與自己相關(guān)的最新的數(shù)據(jù)包號,如果指揮機反饋的最新包號,就是本終端剛剛發(fā)送的,就說明剛剛發(fā)送的數(shù)據(jù)包指揮機已經(jīng)準(zhǔn)確收到。
[0029]步驟7:終端機確認(rèn)指揮機準(zhǔn)確收到數(shù)據(jù)后,則將本地發(fā)送數(shù)據(jù)包的包號加1,等待下一次發(fā)送。
[0030]步驟8:終端機在接收指揮機廣播的過程中,如果超時,則再次發(fā)送上次的數(shù)據(jù),重復(fù)步驟1、2、6、7、8過程。
[0031]步驟9:終端機在收到指揮機廣播的最新數(shù)據(jù)包號不是本機最新發(fā)送的,則需要再次發(fā)送剛剛組織的數(shù)據(jù)包,重復(fù)步驟2、6、7、8過程。
[0032]以上是基于北斗衛(wèi)星的可靠數(shù)據(jù)傳輸過程,基于本發(fā)明的終端設(shè)備編號設(shè)置過程,步驟如下:
步驟1:指揮機按照如圖5所示的數(shù)據(jù)包結(jié)構(gòu),將終端的密碼和新的設(shè)備好組織成一個數(shù)據(jù)包。
[0033]步驟2:指揮機將數(shù)據(jù)包發(fā)送給指定的終端。
[0034]步驟3:終端收到數(shù)據(jù)包后,更改本機的終端編號。
[0035]需要提及的是,本發(fā)明還可以用于一對多的UDP數(shù)據(jù)采集過程,實現(xiàn)UDP數(shù)據(jù)的可靠傳輸。
[0036]本發(fā)明的優(yōu)點是:
本發(fā)明是基于北斗衛(wèi)星的可靠數(shù)據(jù)傳輸方法,充分利用了北斗衛(wèi)星通訊的廣播機制,一次性將所有終端最新數(shù)據(jù)的數(shù)據(jù)包號廣播出去,避免對終端上報數(shù)據(jù)作逐一回復(fù),有效地降低了通訊次數(shù),每個終端機又不失回饋機制,從而,可靠傳輸?shù)靡詫崿F(xiàn)。依據(jù)本發(fā)明可實現(xiàn)基于北斗衛(wèi)星數(shù)據(jù)的可靠傳輸,且不會降低通訊效率。
[0037]以上所述是本發(fā)明的較佳實施例及其所運用的技術(shù)原理,對于本領(lǐng)域的技術(shù)人員來說,在不背離本發(fā)明的精神和范圍的情況下,任何基于本發(fā)明技術(shù)方案基礎(chǔ)上的等效變換、簡單替換等顯而易見的改變,均屬于本發(fā)明保護范圍之內(nèi)。
【權(quán)利要求】
1.基于北斗衛(wèi)星的可靠數(shù)據(jù)傳輸方法,該方法可以實現(xiàn)北斗衛(wèi)星指揮機和多個終端之間的可靠數(shù)據(jù)傳輸,數(shù)據(jù)傳輸過程中,各終端機對數(shù)據(jù)包進行編號發(fā)送,指揮機收到數(shù)據(jù)包后,解析出終端號和數(shù)據(jù)包號,并通過廣播的方式將收到的最新數(shù)據(jù)包的包號集中告知各終端機,終端機依此可確認(rèn)指揮機是否已收到自己上報的數(shù)據(jù),進而可以確定是繼續(xù)后面的工作,發(fā)送新的數(shù)據(jù)包,還是重發(fā)原有數(shù)據(jù)包。
2.如權(quán)利要求1所述,北斗衛(wèi)星的可靠數(shù)據(jù)傳輸方法,其特征在于: 所述指揮機廣播收到數(shù)據(jù)包的編號,是對所接入的所有終端機傳輸最新數(shù)據(jù)的包號集中編碼、一次發(fā)送的過程,避開了輪詢通知過程中的等待時間過長的問題。
3.如權(quán)利要求1所述,北斗衛(wèi)星的可靠數(shù)據(jù)傳輸方法,其特征在于: 本發(fā)明對所有上行、下行數(shù)據(jù)包的格式作出統(tǒng)一約定,數(shù)據(jù)包分三個部分,其中前2位是包頭,中間是數(shù)據(jù)域,最后I位是CRC校驗,包頭第一個字節(jié)是數(shù)據(jù)類型,包頭第二個字節(jié)是數(shù)據(jù)域的數(shù)據(jù)長度; 本發(fā)明對終端上報數(shù)據(jù)的格式作了約定,數(shù)據(jù)包中的數(shù)據(jù)類型固定為O,數(shù)據(jù)域第一個字節(jié)存放本終端的終端編號,第二個字節(jié)存放數(shù)據(jù)包編號,后面的字節(jié)存放要上報的數(shù)據(jù); 本發(fā)明對指揮機廣播數(shù)據(jù)包號的數(shù)據(jù)格式作了約定,數(shù)據(jù)包中數(shù)據(jù)類型固定為1,數(shù)據(jù)域第I個字節(jié)存放收到I號終端最后數(shù)據(jù)的包編號,數(shù)據(jù)域第2個字節(jié)存放收到2號終端最后數(shù)據(jù)的包編號,依次類推,數(shù)據(jù)域第η個字節(jié)存放收到η號終端最后數(shù)據(jù)的包編號。
4.如權(quán)利要求3所述,北斗衛(wèi)星的可靠數(shù)據(jù)傳輸方法,其特征在于: 所述數(shù)據(jù)包編號在0-255之間,并順序遞增,編號達到255后,重置為0,編號存儲在各終端機中,終端機每發(fā)送成功一個數(shù)據(jù)包后,數(shù)據(jù)包編號就加1,沒有收到指揮機的確認(rèn)廣播,不進行下一條數(shù)據(jù)的上報,超長時間沒有收到數(shù)據(jù)廣播,就重復(fù)發(fā)送上一條數(shù)據(jù),數(shù)據(jù)包號不變。
【文檔編號】H04L1/16GK104468059SQ201410728607
【公開日】2015年3月25日 申請日期:2014年12月5日 優(yōu)先權(quán)日:2014年12月5日
【發(fā)明者】楊廣云, 陰法章, 劉文斌, 王春雷, 王占興, 劉漢臣, 尹憲文, 李玉奎, 杜春輝 申請人:北京艾力泰爾信息技術(shù)有限公司