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