本發(fā)明涉及通訊技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)傳輸?shù)男r?yàn)方法。
背景技術(shù):
現(xiàn)有對(duì)講機(jī)發(fā)送數(shù)據(jù)報(bào)文時(shí),在建筑物遮擋或距離較遠(yuǎn)等信號(hào)偏差的狀況下,對(duì)講機(jī)接收數(shù)據(jù)報(bào)文容易發(fā)生錯(cuò)誤。目前主要采用AX.25協(xié)議實(shí)現(xiàn)數(shù)據(jù)報(bào)文在鏈路層的組包、傳輸,該方法可以在傳輸出錯(cuò)的時(shí)候通過(guò)每個(gè)數(shù)據(jù)包附帶的CRC校驗(yàn)字段判斷接收到的數(shù)據(jù)包是否準(zhǔn)確,但無(wú)法實(shí)現(xiàn)數(shù)據(jù)糾錯(cuò)以降低數(shù)據(jù)傳輸過(guò)程中出錯(cuò)的概率。此外,采用支持前向糾錯(cuò)的編碼方式可以提供一定程度的數(shù)據(jù)糾錯(cuò)功能,但是該方法編解碼過(guò)程涉及的運(yùn)算量太大,通常需要采用特定的硬件電路或高速DSP處理器才能實(shí)現(xiàn)。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有對(duì)講機(jī)傳輸數(shù)據(jù)糾錯(cuò)成本較高的問(wèn)題,本發(fā)明實(shí)施例提供一種數(shù)據(jù)傳輸?shù)男r?yàn)方法,
一方面,提供了一種數(shù)據(jù)傳輸?shù)男r?yàn)方法,用于發(fā)送端,所述方法包括:將原始數(shù)據(jù)包拆分為N個(gè)子數(shù)據(jù)包,對(duì)所述子數(shù)據(jù)包進(jìn)行第一校驗(yàn),對(duì)所述原始數(shù)據(jù)包進(jìn)行第二校驗(yàn),將所述原始數(shù)據(jù)包發(fā)送至接收端,所述原始數(shù)據(jù)包包括包含第一發(fā)送校驗(yàn)值的子數(shù)據(jù)包和所述原始數(shù)據(jù)包的第二發(fā)送校驗(yàn)值;以便所述接收端對(duì)所述子數(shù)據(jù)包進(jìn)行第一校驗(yàn),判斷第一接收校驗(yàn)值與所述第一發(fā)送校驗(yàn)值是否相同,若相同,使得所述接收端將所述N個(gè)子數(shù)據(jù)包組合為重組數(shù)據(jù)包,以便所述接收端對(duì)所述重組數(shù)據(jù)包進(jìn)行第二校驗(yàn),判斷第二接收校驗(yàn)值與所述第二發(fā)送校驗(yàn)值是否相同,若相同,則校驗(yàn)成功。
另一方面,提供了一種數(shù)據(jù)傳輸?shù)男r?yàn)方法,用于接收端,所述方法包括:通過(guò)發(fā)送端將原始數(shù)據(jù)包拆分為N個(gè)子數(shù)據(jù)包,對(duì)所述子數(shù)據(jù)包進(jìn)行第一校驗(yàn),對(duì)所述原始數(shù)據(jù)包進(jìn)行第二校驗(yàn),以便所述發(fā)送端將所述原始數(shù)據(jù)包發(fā)送至接收端,所述原始數(shù)據(jù)包包括包含第一發(fā)送校驗(yàn)值的子數(shù)據(jù)包和所述原始數(shù)據(jù)包的第二發(fā)送校驗(yàn)值;對(duì)所述子數(shù)據(jù)包進(jìn)行第一校驗(yàn),判斷第一接收校驗(yàn)值與所述第一發(fā)送校驗(yàn)值是否相同,若相同,將所述N個(gè)子數(shù)據(jù)包組合為重組數(shù)據(jù)包,對(duì)所述重組數(shù)據(jù)包進(jìn)行第二校驗(yàn),判斷第二接收校驗(yàn)值與所述第二發(fā)送校驗(yàn)值是否相同,若相同,則校驗(yàn)成功。
本發(fā)明實(shí)施例提供的技術(shù)方案帶來(lái)的有益效果是:通過(guò)發(fā)送端將原始數(shù)據(jù)包拆分為N個(gè)子數(shù)據(jù)包,對(duì)所述子數(shù)據(jù)包進(jìn)行第一校驗(yàn),對(duì)所述原始數(shù)據(jù)包進(jìn)行第二校驗(yàn),以便所述發(fā)送端將所述原始數(shù)據(jù)包發(fā)送至接收端,所述原始數(shù)據(jù)包包括包含第一發(fā)送校驗(yàn)值的子數(shù)據(jù)包和所述原始數(shù)據(jù)包的第二發(fā)送校驗(yàn)值;對(duì)所述子數(shù)據(jù)包進(jìn)行第一校驗(yàn),判斷第一接收校驗(yàn)值與所述第一發(fā)送校驗(yàn)值是否相同,若相同,將所述N個(gè)子數(shù)據(jù)包組合為重組數(shù)據(jù)包,對(duì)所述重組數(shù)據(jù)包進(jìn)行第二校驗(yàn),判斷第二接收校驗(yàn)值與所述第二發(fā)送校驗(yàn)值是否相同,若相同,則校驗(yàn)成功;解決了現(xiàn)有對(duì)講機(jī)低成本配置無(wú)法實(shí)現(xiàn)數(shù)據(jù)傳輸糾錯(cuò)以降低數(shù)據(jù)傳輸過(guò)程中出錯(cuò)的概率,且針對(duì)具有數(shù)據(jù)傳輸糾錯(cuò)功能的對(duì)講機(jī)對(duì)配置成本要求較高的問(wèn)題;達(dá)到了可以在低成本、低功耗MCU中實(shí)現(xiàn)數(shù)據(jù)傳輸糾錯(cuò)功能,提高數(shù)據(jù)傳輸正確率的技術(shù)效果。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例一提供的數(shù)據(jù)傳輸校驗(yàn)方法的方法流程圖;
圖2是本發(fā)明實(shí)施例二提供的數(shù)據(jù)傳輸校驗(yàn)方法的方法流程圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
實(shí)施例一
請(qǐng)參考圖1,其示出了本發(fā)明實(shí)施例一提供的數(shù)據(jù)傳輸校驗(yàn)方法的方法流程圖,本實(shí)施例主要以該數(shù)據(jù)傳輸校驗(yàn)方法應(yīng)用于包含對(duì)講發(fā)送端與對(duì)講接收端的數(shù)據(jù)傳輸系統(tǒng)中舉例說(shuō)明。該數(shù)據(jù)傳輸?shù)男r?yàn)方法,包括:
步驟101,發(fā)送端將原始數(shù)據(jù)包拆分為N個(gè)子數(shù)據(jù)包,對(duì)所述子數(shù)據(jù)包進(jìn)行第一校驗(yàn),對(duì)所述原始數(shù)據(jù)包進(jìn)行第二校驗(yàn);
發(fā)送端將原始數(shù)據(jù)包拆分為N個(gè)子數(shù)據(jù)包,對(duì)N個(gè)子數(shù)據(jù)包進(jìn)行第一校驗(yàn),得到N個(gè)子數(shù)據(jù)包的第一校驗(yàn)值,對(duì)原始數(shù)據(jù)包進(jìn)行第二校驗(yàn),得到原始數(shù)據(jù)包的第二校驗(yàn)值。
步驟102,所述發(fā)送端將所述原始數(shù)據(jù)包發(fā)送至接收端,所述原始數(shù)據(jù)包包括包含第一發(fā)送校驗(yàn)值的子數(shù)據(jù)包和所述原始數(shù)據(jù)包的第二發(fā)送校驗(yàn)值;
發(fā)送端將原始數(shù)據(jù)包發(fā)送至接收端,上述原始數(shù)據(jù)包包括包含第一發(fā)送校驗(yàn)值的N個(gè)子數(shù)據(jù)包和原始數(shù)據(jù)包的第二發(fā)送校驗(yàn)值。
步驟103,所述接收端對(duì)所述子數(shù)據(jù)包進(jìn)行第一校驗(yàn),判斷第一接收校驗(yàn)值與所述第一發(fā)送校驗(yàn)值是否相同;
接收端對(duì)接收到的N個(gè)子數(shù)據(jù)包進(jìn)行第一校驗(yàn),判斷第一接收校驗(yàn)值與第一發(fā)送校驗(yàn)值是否相同。
步驟104,若相同,使得所述接收端將所述N個(gè)子數(shù)據(jù)包組合為重組數(shù)據(jù)包;
若判斷結(jié)果為相同,接收端將N個(gè)子數(shù)據(jù)包組合為重組數(shù)據(jù)包。
步驟105,所述接收端對(duì)所述重組數(shù)據(jù)包進(jìn)行第二校驗(yàn),判斷第二接收校驗(yàn)值與所述第二發(fā)送校驗(yàn)值是否相同,若相同,則校驗(yàn)成功。
接收端對(duì)重組數(shù)據(jù)包進(jìn)行第二校驗(yàn),判斷第二接收校驗(yàn)值與第二發(fā)送校驗(yàn)值是否相同,若判斷結(jié)果為相同,則校驗(yàn)成功。
綜上所述,本實(shí)施例提供的數(shù)據(jù)傳輸校驗(yàn)方法,通過(guò)發(fā)送端將原始數(shù)據(jù)包拆分為N個(gè)子數(shù)據(jù)包,對(duì)所述子數(shù)據(jù)包進(jìn)行第一校驗(yàn),對(duì)所述原始數(shù)據(jù)包進(jìn)行第二校驗(yàn),所述發(fā)送端將所述原始數(shù)據(jù)包發(fā)送至接收端,所述原始數(shù)據(jù)包包括包含第一發(fā)送校驗(yàn)值的子數(shù)據(jù)包和所述原始數(shù)據(jù)包的第二發(fā)送校驗(yàn)值,所述接收端對(duì)所述子數(shù)據(jù)包進(jìn)行第一校驗(yàn),判斷第一接收校驗(yàn)值與所述第一發(fā)送校驗(yàn)值是否相同,若相同,使得所述接收端將所述N個(gè)子數(shù)據(jù)包組合為重組數(shù)據(jù)包,所述接收端對(duì)所述重組數(shù)據(jù)包進(jìn)行第二校驗(yàn),判斷第二接收校驗(yàn)值與所述第二發(fā)送校驗(yàn)值是否相同,若相同,則校驗(yàn)成功;解決了解決了現(xiàn)有對(duì)講機(jī)低成本配置無(wú)法實(shí)現(xiàn)數(shù)據(jù)傳輸糾錯(cuò)以降低數(shù)據(jù)傳輸過(guò)程中出錯(cuò)的概率,且針對(duì)具有數(shù)據(jù)傳輸糾錯(cuò)功能的對(duì)講機(jī)對(duì)配置成本要求較高的問(wèn)題;達(dá)到了可以在低成本、低功耗MCU中實(shí)現(xiàn)數(shù)據(jù)傳輸糾錯(cuò)功能,提高數(shù)據(jù)傳輸正確率的技術(shù)效果。
實(shí)施例二
請(qǐng)參考圖2,其示出了本發(fā)明實(shí)施例二提供的數(shù)據(jù)傳輸校驗(yàn)方法的方法流程圖,該數(shù)據(jù)傳輸?shù)男r?yàn)方法,包括:
步驟201,發(fā)送端將原始數(shù)據(jù)包拆分為N個(gè)子數(shù)據(jù)包,對(duì)所述子數(shù)據(jù)包進(jìn)行第一校驗(yàn),對(duì)所述原始數(shù)據(jù)包進(jìn)行第二校驗(yàn);
發(fā)送端將待發(fā)送的原始數(shù)據(jù)包按照特定的長(zhǎng)度拆分為N個(gè)子數(shù)據(jù)包,發(fā)送端對(duì)每個(gè)子數(shù)據(jù)包進(jìn)行第一校驗(yàn),發(fā)送端對(duì)原始數(shù)據(jù)包進(jìn)行第二校驗(yàn)。上述第一校驗(yàn)包括但不限于異或校驗(yàn)、奇偶校驗(yàn)或累加校驗(yàn)。上述第二校驗(yàn)包括但不限于crc校驗(yàn)或md5校驗(yàn)。這里的原始數(shù)據(jù)包包括但不限于對(duì)講機(jī)使用AFSK調(diào)制方式傳輸?shù)臄?shù)據(jù)報(bào)文。
步驟202,所述發(fā)送端將所述原始數(shù)據(jù)包重復(fù)發(fā)送M次至接收端,所述原始數(shù)據(jù)包包括包含第一發(fā)送校驗(yàn)值的子數(shù)據(jù)包和所述原始數(shù)據(jù)包的第二發(fā)送校驗(yàn)值;
發(fā)送端將原始數(shù)據(jù)包通過(guò)物理層通路發(fā)送至接收端,發(fā)送的報(bào)文包括但不限于包含帶有奇偶校驗(yàn)位的子數(shù)據(jù)包和整個(gè)數(shù)據(jù)包的CRC校驗(yàn)結(jié)果。且發(fā)送端每次將相同原始數(shù)據(jù)包重復(fù)發(fā)送M次至接收端。
上述數(shù)據(jù)包格式包括但不限于:每個(gè)數(shù)據(jù)包由固定的同步頭起始。包序號(hào)用來(lái)識(shí)別同一個(gè)報(bào)文是否是重傳報(bào)文,如果收到相同序號(hào)的報(bào)文,則認(rèn)為是重傳報(bào)文,否則當(dāng)作新的報(bào)文處理。原始報(bào)文被分解按照固定的長(zhǎng)度N=8分解成子包,每個(gè)子包通過(guò)異或校驗(yàn)算法得到該子包的校驗(yàn)值并附帶到子包的末尾。整個(gè)數(shù)據(jù)包傳輸時(shí),發(fā)送端將相同數(shù)據(jù)重發(fā)M次,每個(gè)重發(fā)報(bào)文間使用一個(gè)同步字節(jié)分隔。在所有報(bào)文發(fā)送結(jié)束后再發(fā)送超過(guò)100字節(jié)的同步尾信號(hào)。
步驟203,所述接收端對(duì)所述子數(shù)據(jù)包進(jìn)行第一校驗(yàn),判斷第一接收校驗(yàn)值與所述第一發(fā)送校驗(yàn)值是否相同;
接收端順序解析物理層解碼出來(lái)的原始數(shù)據(jù)包,接收端接收過(guò)程中每接收完一個(gè)子數(shù)據(jù)包對(duì)子數(shù)據(jù)包內(nèi)容用相同的第一校驗(yàn)方式進(jìn)行校驗(yàn),從而判斷第一接收校驗(yàn)值與所述第一發(fā)送校驗(yàn)值是否相同。
步驟204,若相同,使得所述接收端將所述N個(gè)子數(shù)據(jù)包組合為重組數(shù)據(jù)包;
若判斷出接收到的N個(gè)子數(shù)據(jù)包的第一接收校驗(yàn)值與第一發(fā)送校驗(yàn)值均是相同的,接收端將接收正確的N個(gè)子數(shù)據(jù)包按照序號(hào)排序組合成完整的重組數(shù)據(jù)包。
步驟205,若不同,在重復(fù)發(fā)送的原始數(shù)據(jù)包中查找相同序號(hào)的子數(shù)據(jù)包,所述接收端對(duì)所述相同序號(hào)的子數(shù)據(jù)包進(jìn)行第一校驗(yàn)。
若判斷出接收到的N個(gè)子數(shù)據(jù)包中存在第一接收校驗(yàn)值與第一發(fā)送校驗(yàn)值不同的子數(shù)據(jù)包,則記錄存在錯(cuò)誤的子數(shù)據(jù)包序號(hào),并在后續(xù)的重傳報(bào)文中查找是否有校驗(yàn)正確的對(duì)應(yīng)序號(hào)的子數(shù)據(jù)包,直至查找到第一接收校驗(yàn)值與第一發(fā)送校驗(yàn)值相同的對(duì)應(yīng)序號(hào)的子數(shù)據(jù)包。
步驟206,所述接收端對(duì)所述重組數(shù)據(jù)包進(jìn)行第二校驗(yàn),判斷第二接收校驗(yàn)值與所述第二發(fā)送校驗(yàn)值是否相同,若相同,則校驗(yàn)成功。
接收端對(duì)重組數(shù)據(jù)包進(jìn)行第二校驗(yàn),比如接收端對(duì)重組的數(shù)據(jù)包進(jìn)行CRC校驗(yàn)判斷最終組合的重組數(shù)據(jù)包是否正確,判斷方式為確認(rèn)第二接收校驗(yàn)值與第二發(fā)送校驗(yàn)值是否相同,若相同,則此次數(shù)據(jù)傳輸校驗(yàn)成功。
綜上所述,本實(shí)施例提供的數(shù)據(jù)傳輸校驗(yàn)方法,通過(guò)發(fā)送端將原始數(shù)據(jù)包拆分為N個(gè)子數(shù)據(jù)包,對(duì)所述子數(shù)據(jù)包進(jìn)行第一校驗(yàn),對(duì)所述原始數(shù)據(jù)包進(jìn)行第二校驗(yàn),所述發(fā)送端將所述原始數(shù)據(jù)包發(fā)送至接收端,所述原始數(shù)據(jù)包包括包含第一發(fā)送校驗(yàn)值的子數(shù)據(jù)包和所述原始數(shù)據(jù)包的第二發(fā)送校驗(yàn)值,所述接收端對(duì)所述子數(shù)據(jù)包進(jìn)行第一校驗(yàn),判斷第一接收校驗(yàn)值與所述第一發(fā)送校驗(yàn)值是否相同,若相同,使得所述接收端將所述N個(gè)子數(shù)據(jù)包組合為重組數(shù)據(jù)包,所述接收端對(duì)所述重組數(shù)據(jù)包進(jìn)行第二校驗(yàn),判斷第二接收校驗(yàn)值與所述第二發(fā)送校驗(yàn)值是否相同,若相同,則校驗(yàn)成功;解決了解決了現(xiàn)有對(duì)講機(jī)低成本配置無(wú)法實(shí)現(xiàn)數(shù)據(jù)傳輸糾錯(cuò)以降低數(shù)據(jù)傳輸過(guò)程中出錯(cuò)的概率,且針對(duì)具有數(shù)據(jù)傳輸糾錯(cuò)功能的對(duì)講機(jī)對(duì)配置成本要求較高的問(wèn)題;達(dá)到了可以在低成本、低功耗MCU中實(shí)現(xiàn)數(shù)據(jù)傳輸糾錯(cuò)功能,提高數(shù)據(jù)傳輸正確率的技術(shù)效果。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過(guò)硬件來(lái)完成,也可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤(pán)或光盤(pán)等。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。