??? 關(guān)鍵詞:單片無線收發(fā)芯片nRF401,無線通信協(xié)議,無線抄表
nRF401單片無線收發(fā)芯片外圍元件少并可直接接單片機(jī)串口,為設(shè)計智能無線抄表等短距離無線數(shù)傳應(yīng)用產(chǎn)品提供了較好的解決辦法,在很多領(lǐng)域得到廣泛應(yīng)用。然而,由于無線通信的特殊性,一些外部的因素會對數(shù)據(jù)的無線傳輸產(chǎn)生影響,因此需要采用有效的辦法來確保通信。為了有效地應(yīng)用無線通信,這里建立了一個無線數(shù)據(jù)傳送的通信信道模型,了解并討論外部因素對無線數(shù)據(jù)傳輸?shù)挠绊懀治鲥e誤產(chǎn)生的原因與環(huán)節(jié)以及如何有效地傳輸數(shù)據(jù),最后提供了一個可實際使用的無線通信協(xié)議。
1 通信信道模型及其分析
為了分析影響無線通信的因素,我們建立了一個無線通信信道模型。通信信道是指數(shù)據(jù)從發(fā)射到接收的一個完整通道。它包括產(chǎn)生數(shù)據(jù)源、編碼、發(fā)射、接收、解碼等,如圖1所示。
1.1 數(shù)據(jù)源
數(shù)據(jù)源是指數(shù)據(jù)產(chǎn)生的來源,在不同的應(yīng)用中數(shù)據(jù)的來源是不同的,它可能是一個溫度傳感器的A/D數(shù)據(jù)值,計算機(jī)里的一個文件,或者用戶輸入鍵盤里的一個按鍵。數(shù)據(jù)在這里發(fā)生錯誤的可能性較小,而且較易通過硬件或軟件的方式來發(fā)現(xiàn)。
1.2 數(shù)據(jù)編碼
數(shù)據(jù)編碼主要包括并行轉(zhuǎn)串行以及為了傳輸可靠而增加的編碼信息。nRF401需要的是串行數(shù)據(jù)格式,這通常是由單片機(jī)UART(通用異步傳輸)來完成的,有時也可通過軟件I/O模擬來完成。數(shù)據(jù)在此發(fā)生錯誤的可能性也不大,而且可跟蹤和發(fā)現(xiàn)。
1.3 數(shù)據(jù)發(fā)射
數(shù)據(jù)發(fā)射是通過單片無線收發(fā)芯片nRF401的發(fā)射功能來完成的。nRF401采用PLL頻率合成和FSK調(diào)制技術(shù),本身的設(shè)計是可靠的,然而外部因素如不恰當(dāng)?shù)?a target="_blank">供電、PCB設(shè)計與布局不良、噪聲、不適當(dāng)?shù)恼{(diào)制電壓電平、不適當(dāng)?shù)?a target="_blank">天線負(fù)載,都能引起數(shù)據(jù)流的錯誤。解決的要點需要根據(jù)良好的射頻PCB設(shè)計、選用滿足要求的外圍元件,并注意供電(良好的電源濾波,盡量不用開關(guān)電源),通過綜合采用以上措施,可以減少數(shù)據(jù)流產(chǎn)生錯誤的因素,獲得較為理想的效果。
1.4 傳播路徑
傳播路徑是無線電波從發(fā)射到接收的路徑,傳播損耗將會直接影響通信的效果,數(shù)據(jù)錯誤最有可能在這個階段發(fā)生。因為頻帶內(nèi)的干擾或傳播路徑中RF信號的損耗降低了靈敏度,而且多徑和衰減也可能引起接收機(jī)接收錯誤的數(shù)據(jù)。傳播損耗包括自由空間損耗和其他損耗,其他主要的損耗包括:大氣、降雨、云、霧損耗;樹木遮擋損耗;建筑物等遮擋物的損耗;另外,突發(fā)性的干擾也會導(dǎo)致數(shù)據(jù)的錯誤。下面以自由空間損耗為例對傳播進(jìn)行預(yù)測。
所謂自由空間傳播系指天線周圍為無限大真空時的電波傳播,它是理想傳播條件,自由空間傳播損耗與距離和工作頻率有關(guān)。下面的公式說明在自由空間下電波傳播的損耗:
〔Los〕(dB)=32.44+20lgd+20lgf
式中,Los是傳播損耗,單位為dB;d是距離,單位是km;f是工作頻率,單位是MHz。
由上式可見,自由空間中電波傳播損耗(亦稱衰減)只與工作頻率f和傳播距離d有關(guān),當(dāng)f或d增大一倍時,Los將分別增加6dB。
下面舉例說明工作頻率為433.92MHz,發(fā)射功率為+10dBm(10mW),接收靈敏度為-105dBm的無線系統(tǒng)(基于nRF401)在自由空間的傳播距離:
(1)由發(fā)射功率+10dBm,接收靈敏度為-105dBm,則Los=115dB;
?? (2)由Los、f計算得出d=9.7公里。
這是理想狀況下的傳輸距離,實際應(yīng)用中會低于該值,這是因為無線通信要受到各種外界因素的影響,如大氣、阻擋物、多徑等造成的損耗,將上述損耗的參考值計入上式中,即可計算出近似通信距離。假定大氣、遮擋等造成的損耗為25dB,可以計算得出通信距離為:d=1.7公里。由此也可看出傳播損耗對數(shù)據(jù)傳輸可靠的影響是很大的。
1.5 數(shù)據(jù)接收
接收過程通過單片無線收發(fā)芯片nRF401的接收功能來完成。在沒有接收到信號時,nRF401會有隨機(jī)數(shù)據(jù)輸出,這是因為其靈敏度比較高。當(dāng)發(fā)射機(jī)發(fā)射時,接收機(jī)的隨機(jī)數(shù)據(jù)輸出被抑制,這時輸出的是真正的數(shù)據(jù)。帶內(nèi)干擾和頻率下降可能引起接收機(jī)接收到錯誤數(shù)據(jù)。與數(shù)據(jù)發(fā)射情況一樣,合理的PCB設(shè)計與布局,良好的供電等將產(chǎn)生較好的效果。
1.6 數(shù)據(jù)解碼
從nRF401輸出的數(shù)據(jù)是串行數(shù)據(jù),通常可由微控制器的UART來處理,或者用軟件方法來實現(xiàn)接收。數(shù)據(jù)在此過程出現(xiàn)錯誤的可能性很小的,且易被跟蹤。如果錯誤發(fā)生在這之前,能根據(jù)幀錯誤通過軟件發(fā)現(xiàn)。
1.7 數(shù)據(jù)解釋
數(shù)據(jù)解釋通常在軟件里實現(xiàn),錯誤檢測和糾正也在這階段實現(xiàn),數(shù)據(jù)錯誤在這階段發(fā)生的可能性不大,且易于跟蹤。
2 無線通信協(xié)議基本要求及設(shè)計
在對無線通信信道模型進(jìn)行分析,了解并討論外部因素對無線數(shù)據(jù)傳輸?shù)挠绊懞螅覀兛梢該?jù)此設(shè)計實用的無線通信協(xié)議。
2.1 起始碼和噪聲的識別
這是因為nRF401靈敏度比較高,由于nRF401的特性,在沒有接收到信號時,nRF401會有隨機(jī)數(shù)據(jù)輸出,所以協(xié)議的第一件事就是能夠識別噪聲和有效數(shù)據(jù)。噪聲是以隨機(jī)字節(jié)出現(xiàn)的,沒有明顯的方式。一個理想的噪聲源應(yīng)該能夠產(chǎn)生每一種可能字節(jié)信息的結(jié)合,噪聲的這種特性使得去找一種字節(jié)組合來作為有效包的開始相當(dāng)困難,但實際上,噪聲并不是理想的。經(jīng)測試和試驗,我們發(fā)現(xiàn)0xFF后跟0x00在噪聲中不容易發(fā)生,傳輸協(xié)議應(yīng)該在數(shù)據(jù)包前加開始字節(jié)0xFF后跟0。
發(fā)送協(xié)議的開始應(yīng)該是一個任意內(nèi)容的字節(jié)如0xAA(這是因為第一個字節(jié)的數(shù)據(jù)在發(fā)送時容易丟失),然后是0xFF后跟一0x00;接收協(xié)議規(guī)定只接收以0xFF后跟一00x00開始的包。
2.2 錯誤檢測
為了發(fā)現(xiàn)數(shù)據(jù)傳輸可能發(fā)生的錯誤,需要對接收到的數(shù)據(jù)進(jìn)行錯誤檢測。錯誤檢測可以這樣來實現(xiàn):在發(fā)射之前先對數(shù)據(jù)進(jìn)行分析,然后將這種分析結(jié)果加到數(shù)據(jù)包中,稱為監(jiān)督位;在接收端比較附加在信息位后的監(jiān)督位,如果兩者不同,則包是錯誤的。錯誤檢測的方法有多種,奇偶校驗、和校驗以及CRC校驗等。
奇偶校驗、和校驗是較為常用及易于實現(xiàn)的方法,下面舉例說明奇偶校驗法。
例1:發(fā)射數(shù)據(jù)1 0 1 0 1 0 1 0,在其后加奇偶標(biāo)志位,此為偶標(biāo)志(1),則發(fā)送為1 0 1 0 1 0 1 0 1接收到0 0 1 0 1 0 1 0 1。將前8位奇偶校驗與1比較,不對,故接收錯誤。奇偶校驗容易實現(xiàn),但卻是最不可靠的,因其只能發(fā)現(xiàn)奇數(shù)個錯誤。
另外一種形式的錯誤檢查是和校驗。和校驗是先將所有的數(shù)據(jù)字節(jié)相加,然后將結(jié)果截短到所需的位長并作為校驗子傳輸。下面以例2說明之。
??? 例2:
??? 4 ? 字節(jié)1
??? 109 字節(jié)2
??? 65 字節(jié)3
??? 204 字節(jié)4
??? 126 8 bit校驗和
校驗和能夠檢測到比奇偶校驗更多的錯誤,但當(dāng)字節(jié)順序顛倒時,校驗和不能發(fā)現(xiàn),因其不能發(fā)現(xiàn)次序錯誤。如果要求更高的可靠性,可采用CRC編碼,采用CCITT16檢錯編碼,理論上可對16位以下的突發(fā)或隨機(jī)錯誤完全檢出,具體原理和實現(xiàn)方式可以參考相關(guān)資料。
2.3 錯誤糾正
錯誤糾正的目的是在發(fā)送數(shù)據(jù)編碼時增加一些額外的信息,以檢測并糾正數(shù)據(jù)傳輸發(fā)生的錯誤。前向糾錯的方法包括漢明碼、循環(huán)碼和卷積碼等。
一些復(fù)雜的算法雖然有很好的糾檢錯效果,但是對于許多初次接觸無線通信協(xié)議設(shè)計的人來說,可能需要很大的精力來了解相關(guān)的數(shù)學(xué)知識,因此,這里介紹一個采用重復(fù)碼來糾檢錯的算法,它適用于簡單實用的通信協(xié)議,編程也很容易實現(xiàn),在采用nRF401設(shè)計的無線數(shù)傳系統(tǒng)中得到應(yīng)用。下面就是一種適合于許多無線數(shù)傳的前向錯誤糾正方法。數(shù)據(jù)在包中復(fù)制兩次(總共3份),在接收端,第一個拷貝進(jìn)行檢錯,如果有錯,剩下的兩個備份用來改正錯誤。
錯誤的糾正是通過比較三個備份數(shù)據(jù)中的每位,如果兩位或更多位是0,則正確的應(yīng)為0。如:
??? 0 0 0 0 1 0 1 1 copy 1(錯誤字節(jié))
??? 1 0 1 0 1 0 1 0 copy 2
??? 1 0 1 1 1 0 1 0 copy 3
??? 1 0 1 0 1 0 1 0 已經(jīng)被糾正的字節(jié)
在實際應(yīng)用中可以根據(jù)需要選用三重判決或者五重判決。
3 無線通信協(xié)議設(shè)計的基本要求
根據(jù)對無線信道模型的分析,我們可以了解到無線通信協(xié)議有以下幾個基本要求:
·最小的開銷:無線傳輸過程中受到噪聲或干擾等的影響,會出現(xiàn)誤碼,為此,在傳送時要對數(shù)據(jù)進(jìn)行各種糾檢錯編碼。不同的編碼方式具有不同的糾檢錯能力,有的編碼只能檢錯不能糾錯,一般來說,監(jiān)督位碼元所占的比例越大,糾檢錯能力越強(qiáng)。糾錯編碼是以降低信息傳輸速率為代價來提高傳輸?shù)目煽啃缘模虼耍黾有畔⒌臄?shù)量必須是所需信息中最少的,以保證編碼的效率。
·可靠性:一個無線通信協(xié)議應(yīng)該能夠有效檢出并糾正數(shù)據(jù)的錯誤。
·優(yōu)化的無線功能:一個無線通信協(xié)議應(yīng)該使設(shè)備以一種能充分利用發(fā)射和接收機(jī)特性的優(yōu)化方式工作。
參考文獻(xiàn)
2 劉富全.糾錯編碼及應(yīng)用.哈爾濱:哈爾濱船舶工程學(xué)院出版社,1993
評論
查看更多