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