一種可預(yù)測的數(shù)據(jù)通信編碼的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種通信協(xié)議方式,具體是一種可預(yù)測的數(shù)據(jù)通信編碼。
【背景技術(shù)】
[0002]隨著智能終端音頻口通信技術(shù)的出現(xiàn),通過智能終端音頻口,為提高智能終端的感知和獲取外部數(shù)據(jù)能力提供一種新的思路和解決方案。但是,由于音頻口的設(shè)計(jì)主要用于傳輸音頻信號,其可處理的數(shù)據(jù)頻率在20Hz?20KHz之間,因此通信帶寬的不足,限制了音頻通信的通信速率。同時,音頻口上數(shù)據(jù)的傳輸都是微弱的交流信號,信號幅度一般小于400mV,容易受到外界噪聲的干擾。雖然現(xiàn)在國內(nèi)外對于語音通信協(xié)議的研究已經(jīng)非常成熟,但是這些協(xié)議針對的是語音信號,并不能直接應(yīng)用于音頻口的通信。目前,應(yīng)用在智能終端常用的通信編碼方式有2FSK和曼切斯特編碼,雖然,這兩種通信方式可以滿足低速率數(shù)據(jù)采集和傳輸?shù)囊?,但是在充分利用音頻頻率資源和提高音頻頻帶范圍內(nèi)的通信速率上尚有不足。因此,結(jié)合手機(jī)音頻口通信的特點(diǎn),設(shè)計(jì)一個適合音頻口數(shù)據(jù)通信的協(xié)議,有效提升數(shù)據(jù)傳輸速率,具有重要意義。
【發(fā)明內(nèi)容】
[0003]本發(fā)明針對現(xiàn)有技術(shù)的不足,提供一種可預(yù)測的數(shù)據(jù)通信編碼,保證在音頻口資源受限和數(shù)據(jù)傳輸誤碼率盡可能低的前提下,提高數(shù)據(jù)傳輸速率。
[0004]為了實(shí)現(xiàn)上述目的,本發(fā)明采用了以下技術(shù)方案:
[0005]—種可預(yù)測的數(shù)據(jù)通信編碼,編碼波形規(guī)則如下:
[0006]兩位二進(jìn)制數(shù)據(jù)“10”占用兩個時鐘周期,第一個時鐘周期為高電平,第二個時鐘周期為低電平;
[0007]兩位二進(jìn)制數(shù)據(jù)“01”占用兩個時鐘周期,第一個時鐘周期為低電平,第二個時鐘周期為高電平;
[0008]兩位二進(jìn)制數(shù)據(jù)“11”占用四個時鐘周期,第一和第二個時鐘周期為高電平,第三和第四個時鐘周期為低電平;
[0009]兩位二進(jìn)制數(shù)據(jù)“00”占用四個時鐘周期,第一和第二個時鐘周期為低電平,第三和第四個時鐘周期為高電平。
[0010]所述可預(yù)測的數(shù)據(jù)通信編碼進(jìn)行數(shù)據(jù)傳輸?shù)姆椒?,步驟如下:
[0011 ] (I)傳輸數(shù)據(jù)前,編碼模塊處在空閑狀態(tài),輸出為低電平;
[0012](2)以二進(jìn)制碼10為數(shù)據(jù)幀的起始位,即在開始一個字節(jié)的數(shù)據(jù)傳輸之前先輸出一個二進(jìn)制碼10表示數(shù)據(jù)幀的開始;
[0013](3)將一個字節(jié)從低位到高位依次按照兩位一組進(jìn)行拆分四組,每組是“11”、“00”、“10”和“01”中任意一種,編碼模塊根據(jù)每組的具體數(shù)據(jù)選擇所述可預(yù)測的數(shù)據(jù)通信編碼中對應(yīng)的編碼波形輸出,
[0014](4)以二進(jìn)制碼01為數(shù)據(jù)幀的終止位,即全部數(shù)據(jù)輸出完成后再輸出一個二進(jìn)制碼Ol表示表示數(shù)據(jù)幀的結(jié)束;
[0015](5)傳輸數(shù)據(jù)完畢后,編碼模塊恢復(fù)空閑狀態(tài),輸出為低電平。
[0016]與現(xiàn)有技術(shù)相比較,本發(fā)明具備的有益效果:
[0017](I)本發(fā)明結(jié)合了曼切斯編碼和UART通信協(xié)議的優(yōu)點(diǎn),與曼切斯特編碼相同的是采用上升沿和下降沿來區(qū)分不同的數(shù)據(jù),而區(qū)別在于:本發(fā)明還利用了信號脈寬,即使相同的邊沿,寬度不一樣的脈寬,所代表的數(shù)據(jù)也不一樣。
[0018](2)本發(fā)明除了無直流分量的特性外,還結(jié)合了串口通信協(xié)議在低速數(shù)據(jù)傳輸?shù)膬?yōu)點(diǎn),比較于曼切斯特編碼,誤碼率更低,在傳輸效率上提高了 25 %。
【附圖說明】
[0019]圖1為本發(fā)明所述可預(yù)測的數(shù)據(jù)通信編碼的波形圖。
[0020]圖2為實(shí)施例2的不同編碼方式波形圖對比。
【具體實(shí)施方式】
[0021]實(shí)施例1
[0022]—種可預(yù)測的數(shù)據(jù)通信編碼,編碼波形規(guī)則如下:
[0023]—號碼型:兩位二進(jìn)制數(shù)據(jù)“10”占用兩個時鐘周期,第一個時鐘周期為高電平,第二個時鐘周期為低電平,如圖1中(a)所示。
[0024]二號碼型:兩位二進(jìn)制數(shù)據(jù)“01”占用兩個時鐘周期,第一個時鐘周期為低電平,第二個時鐘周期為高電平,如圖1中(b)所示。
[0025]三號碼型:兩位二進(jìn)制數(shù)據(jù)“11”占用四個時鐘周期,第一和第二個時鐘周期為高電平,第三和第四個時鐘周期為低電平,如圖1中(C)所示。
[0026]四號碼型:兩位二進(jìn)制數(shù)據(jù)“00”占用四個時鐘周期,第一和第二個時鐘周期為低電平,第三和第四個時鐘周期為高電平,如圖1中(d)所示。
[0027]所述可預(yù)測的數(shù)據(jù)通信編碼進(jìn)行數(shù)據(jù)傳輸?shù)姆椒?,步驟如下:
[0028](I)傳輸數(shù)據(jù)前,編碼模塊處在空閑狀態(tài),輸出為低電平;
[0029](2)以二進(jìn)制碼10為數(shù)據(jù)幀的起始位,即在開始一個字節(jié)的數(shù)據(jù)傳輸之前先輸出一個二進(jìn)制碼10表示數(shù)據(jù)幀的開始;
[0030](3)將一個字節(jié)從低位到高位依次按照兩位一組進(jìn)行拆分四組,每組是“11”、“00”、“10”和“01”中任意一種,編碼模塊根據(jù)每組的具體數(shù)據(jù)選擇所述可預(yù)測的數(shù)據(jù)通信編碼中對應(yīng)的編碼波形輸出,
[0031](4)以二進(jìn)制碼01為數(shù)據(jù)幀的終止位,即全部數(shù)據(jù)輸出完成后再輸出一個二進(jìn)制碼01表示表示數(shù)據(jù)幀的結(jié)束;
[0032](5)傳輸數(shù)據(jù)完畢后,編碼模塊恢復(fù)空閑狀態(tài),輸出為低電平。
[0033]本發(fā)明所述數(shù)據(jù)通信編碼的可預(yù)測性表現(xiàn)如下:
[0034]本發(fā)明所述數(shù)據(jù)通信編碼的一個碼型表示兩位二進(jìn)制數(shù)據(jù),在數(shù)據(jù)傳輸中,跟在在前碼型后的在后碼型是四種碼型中的任意一種。
[0035]假設(shè)在前碼型為一號碼型,意味著第一時鐘周期為高電平,第二時鐘周期為低電平,第一時鐘周期的終了時刻/第二時鐘周期的初始時刻為下降沿。
[0036]在前碼型傳輸完畢后,即開始傳輸在后碼型,若第二時鐘周期的終了時刻為上升沿,則可預(yù)測在后碼型為一號碼型或者三號碼型,可排除在后碼型為二號碼型和四號碼型的可能性,當(dāng)下降沿觸發(fā)時,可計(jì)算高電平脈寬,即可確定在后碼型是一號碼型或者三號碼型,判斷方法為:若高電平脈寬為兩個時鐘周期,則在后碼型為三號碼型;若高電平脈寬為一個時鐘周期,則在后碼型為一號碼型。
[0037]若第二時鐘周期的終了時刻不是上升沿而是持續(xù)的低電平,則可預(yù)測在后碼型為二號碼型或者四號碼型,可排除在后碼型為一號碼型和三號碼型的可能性,當(dāng)上升沿觸發(fā)時,可計(jì)算出在前碼型的下降沿到在后碼型的上升沿的之間低電平的保持時間,用低電平的保持時間減去在前碼型的低電平時間,得到在后碼型的低電平時間,若在后碼型的低電平時間為兩個時鐘周期,則在后碼型為四號碼型;若在后碼型的低電平時間為一個時鐘周期,則在后碼型為二號碼型。
[0038]實(shí)施例2
[0039]本例所述一個字節(jié)的二進(jìn)制碼為01001110,按照本發(fā)明所述可預(yù)測的數(shù)據(jù)通信編碼方法得到的波形圖如圖2所示。圖2同時給出了二進(jìn)制碼01001110以NRZ、manche ster、差分manchester三種編碼方式得到的波形圖,另外還給出了時鐘的波形圖。
[0040]實(shí)施例3
[0041]Stepl:上層應(yīng)用將需要發(fā)送的數(shù)據(jù)寫入發(fā)送緩存中,發(fā)送緩存大小為32字節(jié)。
[0042]Step2:當(dāng)編碼模塊檢測到發(fā)送緩存中存在數(shù)據(jù)時,從發(fā)送緩存中取出一個字節(jié)的數(shù)據(jù)。
[0043]Step3:編碼模塊將一個字節(jié)從低位到高位依次按照兩位一組進(jìn)行拆分四組,每組是“11”、“00”、“10”和“01”中任意一種,編碼模塊根據(jù)每組的具體數(shù)據(jù)選擇所述可預(yù)測的數(shù)據(jù)通信編碼中的對應(yīng)編碼波形輸出。
[0044]Step4:將一幀數(shù)據(jù)高低電平的時間脈寬依序存放在一個數(shù)組中。
[0045]Step5:根據(jù)脈寬數(shù)組的值設(shè)置定時器高低電平的輸出。
[0046]Step6:重復(fù)Step2?Step5,直到緩存中的數(shù)據(jù)編碼完畢。
【主權(quán)項(xiàng)】
1.一種可預(yù)測的數(shù)據(jù)通信編碼,其特征在于,編碼波形規(guī)則如下: 兩位二進(jìn)制數(shù)據(jù)“10”占用兩個時鐘周期,第一個時鐘周期為高電平,第二個時鐘周期為低電平; 兩位二進(jìn)制數(shù)據(jù)“01”占用兩個時鐘周期,第一個時鐘周期為低電平,第二個時鐘周期為高電平; 兩位二進(jìn)制數(shù)據(jù)“11”占用四個時鐘周期,第一和第二個時鐘周期為高電平,第三和第四個時鐘周期為低電平; 兩位二進(jìn)制數(shù)據(jù)“00”占用四個時鐘周期,第一和第二個時鐘周期為低電平,第三和第四個時鐘周期為高電平。2.根據(jù)權(quán)利要求1所述可預(yù)測的數(shù)據(jù)通信編碼進(jìn)行數(shù)據(jù)傳輸?shù)姆椒ǎ涮卣髟谟?,步驟如下: (1)傳輸數(shù)據(jù)前,編碼模塊處在空閑狀態(tài),輸出為低電平; (2)以二進(jìn)制碼10為數(shù)據(jù)幀的起始位,即在開始一個字節(jié)的數(shù)據(jù)傳輸之前先輸出一個二進(jìn)制碼10表示數(shù)據(jù)幀的開始; (3)將一個字節(jié)從低位到高位依次按照兩位一組進(jìn)行拆分四組,每組是“11”、“00”、“10”和“01”中任意一種,編碼模塊根據(jù)每組的具體數(shù)據(jù)選擇所述可預(yù)測的數(shù)據(jù)通信編碼中對應(yīng)的編碼波形輸出, (4)以二進(jìn)制碼01為數(shù)據(jù)幀的終止位,即全部數(shù)據(jù)輸出完成后再輸出一個二進(jìn)制碼01表不表不數(shù)據(jù)幀的結(jié)束; (5)傳輸數(shù)據(jù)完畢后,編碼模塊恢復(fù)空閑狀態(tài),輸出為低電平。
【專利摘要】一種可預(yù)測的數(shù)據(jù)通信編碼,編碼波形規(guī)則如下:兩位二進(jìn)制數(shù)據(jù)“10”占用兩個時鐘周期,第一個時鐘周期為高電平,第二個時鐘周期為低電平;兩位二進(jìn)制數(shù)據(jù)“01”占用兩個時鐘周期,第一個時鐘周期為低電平,第二個時鐘周期為高電平;兩位二進(jìn)制數(shù)據(jù)“11”占用四個時鐘周期,第一和第二個時鐘周期為高電平,第三和第四個時鐘周期為低電平;兩位二進(jìn)制數(shù)據(jù)“00”占用四個時鐘周期,第一和第二個時鐘周期為低電平,第三和第四個時鐘周期為高電平。本發(fā)明結(jié)合了曼切斯編碼和UART通信協(xié)議的優(yōu)點(diǎn),與曼切斯特編碼相同的是采用上升沿和下降沿來區(qū)分不同的數(shù)據(jù),而區(qū)別在于:本發(fā)明還利用了信號脈寬,即使相同的邊沿,寬度不一樣的脈寬,所代表的數(shù)據(jù)也不一樣。
【IPC分類】H04L1/00
【公開號】CN105553624
【申請?zhí)枴緾N201511027543
【發(fā)明人】張振榮, 羅濤洋, 謝鋒, 葛志輝
【申請人】廣西大學(xué)
【公開日】2016年5月4日
【申請日】2015年12月31日