無線傳輸系統(tǒng)中nRF2401芯片數(shù)據(jù)丟失問題的研究_第1頁
無線傳輸系統(tǒng)中nRF2401芯片數(shù)據(jù)丟失問題的研究_第2頁
無線傳輸系統(tǒng)中nRF2401芯片數(shù)據(jù)丟失問題的研究_第3頁
無線傳輸系統(tǒng)中nRF2401芯片數(shù)據(jù)丟失問題的研究_第4頁
無線傳輸系統(tǒng)中nRF2401芯片數(shù)據(jù)丟失問題的研究_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、    無線傳輸系統(tǒng)中nRF2401芯片數(shù)據(jù)丟失問題的研究        郝衛(wèi)亮 時間:2008年07月03日     字 體: 大 中 小        關鍵詞:<"cblue" " target='_blank'>數(shù)據(jù)丟失<"cblue" " target=&#

2、39;_blank'>數(shù)據(jù)幀<"cblue" " target='_blank'>實際應用<"cblue" " target='_blank'>通信協(xié)議<"cblue" " target='_blank'>突發(fā)模式            ? 摘 要: 針對近距離無線傳輸系統(tǒng)中nRF2401芯

3、片在<"cblue" " title="實際應用">實際應用中存在的<"cblue" " title="數(shù)據(jù)丟失">數(shù)據(jù)丟失問題,提出一種對<"cblue" " title="通信協(xié)議">通信協(xié)議加以擴展的解決辦法,并在用單片機與該芯片設計的實驗電路上給予證明,給出了程序開發(fā)流程及硬件接口電路。實驗結果分析表明,此方法可以有效解決數(shù)據(jù)丟失的問題,實現(xiàn)可靠的無線數(shù)據(jù)傳輸。? 關鍵詞: nRF2401芯片,無線傳輸

4、,數(shù)據(jù)丟失? 當前,近距離無線通信技術在越來越多的領域中得到應用,凡是布線繁雜或不允許布線的場合,如小型無線網(wǎng)絡、門禁系統(tǒng)、工業(yè)數(shù)據(jù)采集系統(tǒng)、非接觸RF智能卡等,都可以通過無線通信來滿足需求。在大量出現(xiàn)的射頻集成芯片中,由Nordic公司推出的無線收發(fā)一體芯片nRF2401,因其外圍電路簡單、通信速率高、通信質(zhì)量穩(wěn)定可靠、成本低、開發(fā)周期短等優(yōu)點,在無線系統(tǒng)開發(fā)中得到廣泛應用。但該芯片內(nèi)部通信協(xié)議僅包含差錯重傳機制,而沒有考慮實際應用中存在的數(shù)據(jù)丟失問題。本文用丟失重傳機制對其通信協(xié)議進行了擴展,并在用C8051F236微控制器與nRF2401設計的簡單通信電路上,對所提解決方案的正確性加以實

5、驗證明。1 芯片工作原理? nRF2401工作原理可概括為:一個配置字、兩種通信模式、兩個通道和四種狀態(tài)1。? 一個配置字:nRF2401的各種參數(shù),都由控制器通過一個3線接口(CLK、DR和DATA)寫入一個單獨的配置寄存器。該配置寄存器共144位,稱為狀態(tài)字。? 兩種通信模式:Direct Mode(直接模式)和ShockBurstTM Mode(<"cblue" " title="突發(fā)模式">突發(fā)模式)。直接模式的使用與其他傳統(tǒng)射頻收發(fā)器的原理一樣,需要通過軟件在發(fā)送端添加校驗碼和地址碼,在接收端判斷是否為本機地址,并檢查數(shù)據(jù)

6、是否傳輸正確。突發(fā)模式使用芯片內(nèi)部的先入先出堆棧區(qū),數(shù)據(jù)可從低速微控制器送入,高速發(fā)射出去,地址和校驗碼由硬件自動添加和刪除。? 兩個通道:控制器與nRF2401通過由CLK、DR和DATA組成的兩個通道交換傳輸數(shù)據(jù),通道1(CLK1、DR1、DATA)可接收和發(fā)送數(shù)據(jù),通道2(CLK2、DR2和DOUT2)只能接收數(shù)據(jù),并且接收頻道2的頻率只有在比頻道1高8MHz的情況下才能保證正確接收。? 四種狀態(tài):分別為Active(RX/TX)(激活狀態(tài))、Configuration(配置狀態(tài))、Stand_by(等待狀態(tài))、Power down(掉電狀態(tài)),通過3個引腳PWR_UP、CE、CS控制。

7、? nRF2401工作時,首先置2401為配置狀態(tài),由控制器中寫入狀態(tài)字;而后,在激活狀態(tài)下,使用狀態(tài)字中指定的通道,進行數(shù)據(jù)收發(fā),收發(fā)過程中進行交互時一方進入等待狀態(tài);如全部數(shù)據(jù)都傳送完畢,則進入掉電狀態(tài)。2 RF協(xié)議擴展? nRF2401在其設計時,把多數(shù)單元如:頻率合成器、晶體振蕩器、調(diào)制器和數(shù)模轉換器等都進行了集成,因而外圍電路簡單。其內(nèi)部通信協(xié)議中的差錯重傳機制對發(fā)送的每個<"cblue" " title="數(shù)據(jù)幀">數(shù)據(jù)幀在接收方進行片內(nèi)CRC校驗,以保證接收數(shù)據(jù)的正確性。但在實際應用中2,往往因為各種因素,如來自應用電

8、路和外界的噪聲干擾,或者元器件老化導致的信號衰減等,導致傳輸過程中的數(shù)據(jù)丟失。? 為有效解決上述問題,可用丟失重傳機制對其通信協(xié)議加以擴展,即由發(fā)送方對數(shù)據(jù)進行預封裝處理。具體做法是:發(fā)方將待發(fā)送數(shù)據(jù)分組,計算出每組的CRC校驗值,封裝于預先定義好的包內(nèi),分若干幀發(fā)送出去。收方要對每次接收到的數(shù)據(jù)幀及發(fā)方定義的數(shù)據(jù)包進行兩次CRC校驗,通過幀CRC校驗確認接收數(shù)據(jù)的正確性,通過包CRC校驗判斷是否發(fā)生數(shù)據(jù)包丟失。在丟失發(fā)生的情況下,收方有3次請求重傳的機會,收發(fā)雙方用ACK信號進行交互。2.1 數(shù)據(jù)分組? 將待發(fā)送數(shù)據(jù)進行分組時,要考慮兩個因素:數(shù)據(jù)幀的格式及狀態(tài)字設置。在突發(fā)傳遞模式下,nR

9、F2401的數(shù)據(jù)幀格式如表1。? 其中,幀頭Pre-amble、收方地址address、crc分別占8、32、16位,由于突發(fā)模式下數(shù)據(jù)幀長度不能超過256位,所以數(shù)據(jù)部分Payload的最大長度是:256-(Pre-amble:8位+Address:32位+CRC:16位)=200位(25B),即每幀的payload部分可以為125B。下面的實驗中,由狀態(tài)字設置數(shù)據(jù)部分長度為20B。所以,對待傳送數(shù)據(jù)分組時,每組長度取20B的整數(shù)倍。本系統(tǒng)按每組60B進行分組。其中,高58位為數(shù)據(jù),兩個低字節(jié)用于存放由58B數(shù)據(jù)計算出的CRC校驗值。這樣,每個數(shù)據(jù)包(組)分3個數(shù)據(jù)幀發(fā)送。? 需要指出的是,

10、在每次發(fā)送完一個數(shù)據(jù)封裝包后,收發(fā)雙方的交互要進行兩次收發(fā)狀態(tài)的轉換,會占用數(shù)據(jù)傳輸?shù)臅r間,但nRF2401有一個優(yōu)勢在于:它只需要改變配置字的最低位RXEN就可進行收發(fā)方式(RXEN=0 TX;RXEN=1 RX)轉換,而不必重置整個配置字。每進行一次轉換,需要控制器通過CE、CS引腳改變nRF2401的工作狀態(tài),由nRF2401的時序可知,會有兩個最長5s的延時,兩次狀態(tài)轉換共有20s的延時。由于實際應用中一次傳輸?shù)臄?shù)據(jù)量比較少,而且數(shù)據(jù)丟失發(fā)生的幾率很小,所以不會對傳輸速度有太大的影響。2.2 適用范圍? 不同的應用,需要一次性傳輸?shù)臄?shù)據(jù)量也不同,上述方法適用于傳輸數(shù)據(jù)量為KB以上的情況

11、。為了減少發(fā)生數(shù)據(jù)丟失時重傳的代價,當傳輸數(shù)據(jù)量少于KB時,可以按實際情況,調(diào)整狀態(tài)字中設置的Payload段的長度,對數(shù)據(jù)進行靈活分組。例如:如果待傳輸數(shù)據(jù)為560B,可以設置Payload段的長度為10B,按每組30B封裝,這樣,所有數(shù)據(jù)分20個組,分60幀傳送完畢。? 另外,如果待傳輸數(shù)據(jù)量為100B左右,顯然沒有分組的必要,但為了保證不發(fā)生數(shù)據(jù)丟失,可以在封裝時去掉CRC段,加一個1B的head字段,作為傳輸數(shù)據(jù)的序號,每個封裝包用1個數(shù)據(jù)幀發(fā)送。接收端通過檢查head字段,確定是否發(fā)生數(shù)據(jù)丟失。3 實驗設計3.1 硬件設計? 硬件實現(xiàn)電路如圖1。由單片機C8051F236控制nRF2

12、401進行數(shù)據(jù)傳輸。由于單片機與nRF2401的供電電壓分別為1.93.6V和5V,設計中采用MAX232芯片進行電平轉換。另外,在發(fā)送端和接收端采用幾乎完全對稱的設計。3,與nRF2401的CE、CS、PWR_UP連接,控制nRF2401的工作狀態(tài)。系統(tǒng)上電時,首先置nRF2401為配置狀態(tài),寫入狀態(tài)字。隨后置nRF2401為激活方式。P0.2-0.7也配置成通用I/O引腳,與nRF2401的CLK1、DR1、DATA(通道1)、CLK2、DR2、DOUT2(通道2)連接,進行數(shù)據(jù)收發(fā)。當需要發(fā)送數(shù)據(jù)時,單片機置CE為1,通過通道1將數(shù)據(jù)寫入nRF2401,而后置CE為0,由nRF2401將

13、數(shù)據(jù)發(fā)送出去。如果封裝包的所有數(shù)據(jù)都發(fā)送完畢,切換到接收狀態(tài)。接收方用兩個通道同時接收數(shù)據(jù)。3.2 軟件設計? 程序開始時對C8051F236及nRF2401狀態(tài)字進行配置,隨后進入激活方式。本系統(tǒng)狀態(tài)字配置接收端值為:0x8E08.1CA0.A000.0000.00CC.0000.0000.CC23.CF41。配置后nRF2401每次發(fā)送的數(shù)據(jù)長度為160bit(20B),地址段長度32bit,通道1、2硬件地址0xCC,16位CRC校驗段,以突發(fā)模式進行雙通道接收,通信速率250Kbps,晶振頻率16MHz,輸出功率0dBm,工作頻段24402448MHz,接收狀態(tài)。發(fā)送端值為:0x8E0

14、8.1CA0.A000.0000.00CC.0000.0000.CC23.CF40,發(fā)送狀態(tài)。? 進入激活狀態(tài)后,收發(fā)雙方行為描述如下:? 第一步:定義一個數(shù)據(jù)包結構,發(fā)方將待發(fā)送數(shù)據(jù)分組,計算出數(shù)據(jù)包CRC校驗值,然后將數(shù)據(jù)封裝、發(fā)送。發(fā)送完一個封裝包(共60B)后,停止發(fā)送,切換到接收狀態(tài),等待ACK信號到來。收方接收完一個封裝包后,切換到發(fā)送狀態(tài),同時計算接收到的數(shù)據(jù)包的CRC校驗值,如果與包內(nèi)的CRC值相符,則說明數(shù)據(jù)接收正確,收方置ACK值為0;如不一致,則說明發(fā)生數(shù)據(jù)包丟失,收方置ACK值為1。? 第二步:收方發(fā)送ACK信號給發(fā)方,發(fā)方根據(jù)ACK值決定繼續(xù)發(fā)送數(shù)據(jù)包(ACK=0)還

15、是重新發(fā)送數(shù)據(jù)包(ACK=1)。? 第三步:收發(fā)雙方再次重新配置,繼續(xù)數(shù)據(jù)傳輸。? 第四步:在發(fā)生數(shù)據(jù)包丟失的情況下,收方對要求重發(fā)次數(shù)用count進行計數(shù),如果三次重發(fā)請求所收到的數(shù)據(jù)仍不正確,則不再要求重發(fā),切換到Stand_by狀態(tài)。? 軟件流程圖如圖2。? 數(shù)據(jù)包可定義為結構體:? Struct PACKAGE ? Char head;/1B數(shù)據(jù)序號(可選)? Char DATA57;/58B數(shù)據(jù)? Char CRC1;/2BCRC校驗值? ? package;? 除收發(fā)程序外,收發(fā)雙方對包封裝、包檢測及包的CRC值計算定義相應的函數(shù)。發(fā)方對數(shù)據(jù)分組時,如未發(fā)送數(shù)據(jù)不足60B,則在高位補0。3.3 實驗與結果分析? 向單片機中載入程序后,nRF2401工作模式配置為雙通道突發(fā)模式,控制程序采用C語言編寫。用評估參數(shù)BLER(塊錯誤),對實驗中數(shù)據(jù)傳輸過程中的數(shù)據(jù)丟失情況進行評估:? BLER=丟失塊數(shù)/傳輸?shù)目倝K數(shù)? 實驗方案:在允許的距離范圍(1030米)內(nèi),分不同傳輸距離,分別發(fā)送1000個數(shù)據(jù)包,每個距離發(fā)送3次,BLER值取3次的平均值。為了進一步說明問題,首先以未擴展的協(xié)議進行收發(fā),然后再以擴展協(xié)議進行收發(fā),并分別記下相應BLER值。實驗數(shù)據(jù)如表2。? 由表2可知,進行協(xié)議擴展后,BLER值僅為0.0%0.14%

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論