楊 旭,李德敏,張謙益
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620)
無線中短距離通信是當(dāng)前的一個“熱點”,越來越多的人開始關(guān)注這一領(lǐng)域。作為較早進入國內(nèi)市場的中短距離無線收發(fā)芯片之一,來自北歐挪威的nRF無線芯片已經(jīng)得到市場的認(rèn)可及廣泛的應(yīng)用,如已被大家所熟悉的低頻段的nRF9xx系列,以及2.4 GHz頻段的nRF24xx系列。在2.4 GHz的工科醫(yī)用頻段,低頻段信道帶寬少,傳輸速率低的缺點已經(jīng)不復(fù)存在,如何保證通信系統(tǒng)的完整性,穩(wěn)定性,提高服務(wù)質(zhì)量成為nRF24xx系列通信協(xié)議研究的重點[1]。
現(xiàn)有 nRF24L01協(xié)議基于停止等待自動重傳請求協(xié)議(SW-ARQ, Stop and Wait-Automatic Repeat Request),但是在大量數(shù)據(jù)需要通信傳輸時(如實時語音通信),采用這種方式,在信道良好的情況下重復(fù)發(fā)送確定應(yīng)答(ACK,ACKnowledgement Character)信號會導(dǎo)致前向頻帶的通過率低,系統(tǒng)傳輸幀所需時間長[2]。而文獻(xiàn)[2]提出的一種基于nRF24xx的混合無線通信協(xié)議,當(dāng)信道通信質(zhì)量高的時候,采用連發(fā)方式,質(zhì)量較差的時候則回到握手方式,也不能很好滿足實際需求。針對這些不足,基于 nRF24L01,現(xiàn)提出一種連續(xù)傳輸、SW-ARQ檢驗通信質(zhì)量的通信協(xié)議。在檢測到信道可以通信的情況下,使用連續(xù)傳輸?shù)姆绞綄崿F(xiàn)通信,然后在利用 SW-ARQ重傳出錯數(shù)據(jù)包的過程中,對信道通信質(zhì)量進行評估,如果通信質(zhì)量差,則跳頻再繼續(xù)進行通信。這樣在保證通信質(zhì)量的前提下能更好地提高系統(tǒng)的通過率,減少通信傳輸所需的時間。
[3]。nRF24L01 是一款工作在2.4~2.5 GHz世界通用工科醫(yī)用頻段的單片無線收發(fā)器芯片。工作電壓為1.9~3.6 V, 有多達(dá)125個頻道可供選擇??赏ㄟ^SPI總線寫入數(shù)據(jù),最高可達(dá)10 Mb/s。數(shù)據(jù)發(fā)送傳輸率最快可達(dá)2 Mb/s。與其他nRF24xx系列的芯片相比,nRF24L01新增了兩大功能:①內(nèi)嵌的自動應(yīng)答和自動重發(fā)功能;②載波檢測(CD,Carrier Detect)功能。另外,在增強型突發(fā)(ShockBurst)工作模式下,數(shù)據(jù)包的結(jié)構(gòu)也作了一些改變。
相對于其他nRF24xx系列芯片的ShockBurst工作模式,nRF24L01的增強型ShockBurst工作模式主要體現(xiàn)在其集成了所有高速鏈路層操作,比如,自動應(yīng)答和自動重發(fā)。這樣,不但減少了MCU的工作量,而且便于軟硬件的開發(fā)。
自動重應(yīng)答功能和自動重發(fā)功能可以通過 SPI口對nRF24L01的寄存器進行配置,決定是否開啟。在自動應(yīng)答模式使能的情況下,收到有效的數(shù)據(jù)包后,系統(tǒng)將進入發(fā)送模式并發(fā)送確認(rèn)信號。發(fā)送完確認(rèn)信號后,系統(tǒng)進入正常工作模式。
當(dāng)接收端檢測到射頻范圍內(nèi)的信號時將 CD 置高,否則CD 為低。內(nèi)部的CD 信號在寫入寄存器之前是經(jīng)過濾波的,內(nèi)部CD 高電平狀態(tài)至少保持128 us以上。
在增強型 ShockBurst模式中只有當(dāng)發(fā)送模塊沒有成功發(fā)送數(shù)據(jù)時,推薦使用CD檢測功能。如果發(fā)送端相應(yīng)的寄存器顯示數(shù)據(jù)包丟失率太高時,可將其設(shè)置位接收模式檢測CD值,如果CD為高說明通道出現(xiàn)了擁擠現(xiàn)象,需要更改通信頻道。如果CD為低電平狀態(tài)(距離超出通信范圍),保持原有通信頻道。
nRF24L01的數(shù)據(jù)幀由前置碼、地址碼、包控制段、有效載荷、循環(huán)冗余校驗五部分組成,如圖1所示。
圖1 增強型ShockBurst的數(shù)據(jù)包結(jié)構(gòu)
與于其他nRF24xx系列芯片的ShockBurst的數(shù)據(jù)包結(jié)構(gòu)相比,nRF24L01增加了一個9 bit大小的包控制段,通過包控制段中的數(shù)據(jù)包標(biāo)志碼(PID , Packet IDdentifier),可以將不同的數(shù)據(jù)包進行識別。
在部分請求重傳 ARQ差錯控制體制的基礎(chǔ)上[4],結(jié)合nRF24L01芯片的功能,設(shè)計了一種使用連續(xù)發(fā)送和SW-ARQ反饋信道質(zhì)量的通信方式。這里需要注意的是,根據(jù)nRF24L01芯片的特點,它只能同時存儲3個數(shù)據(jù)包。同時在接受端還需設(shè)置一個用來記錄數(shù)據(jù)包ID號的PID寄存器,用來反饋數(shù)據(jù)包的接收情況。下面敘述系統(tǒng)的工作過程。
系統(tǒng)在建立連接之后,進入連續(xù)發(fā)送數(shù)據(jù)包的狀態(tài)。對于發(fā)送端,MCU輸出的有效載荷經(jīng) nRF24L01打包處理后,發(fā)送至接收端,這里在數(shù)據(jù)包的控制段設(shè)置接收端不需要回執(zhí)。當(dāng)送完M個碼字后,發(fā)送端轉(zhuǎn)到SW-ARQ工作狀態(tài)。對于接收端,nRF24L01接收到數(shù)據(jù)包之后,通過檢測數(shù)據(jù)包的前置碼、地址碼、循環(huán)冗余校驗,也就是對碼的工作,確定數(shù)據(jù)包的正確性[5]。在確認(rèn)無誤之后,通知 MCU接收數(shù)據(jù)包的有效載荷和數(shù)據(jù)包控制段的PID號。當(dāng)接收端收到M個數(shù)據(jù)包之后,轉(zhuǎn)到SW-ARQ工作狀態(tài)[6]。
在此工作狀態(tài)下,接收端的工作過程取決于MCU中的PID寄存器,如果相應(yīng)位全為1,表示M個數(shù)據(jù)包都接收成功,則發(fā)送一個ACK給發(fā)送端,通知其繼續(xù)發(fā)送新的M個數(shù)據(jù)包。如果PID寄存器相應(yīng)位不全為1,則表示傳輸過程中有數(shù)據(jù)包出現(xiàn)錯誤,接收端則將PID寄存器中的數(shù)據(jù)作為有效載荷,打包回執(zhí)給發(fā)送端。發(fā)送端接收到該回執(zhí)信號后,使用SW-ARQ方式將出錯的數(shù)據(jù)包重發(fā)。在這個過程當(dāng)中,系統(tǒng)還要根據(jù)重發(fā)同一數(shù)據(jù)包的次數(shù),判斷信道的可用性。如果同一數(shù)據(jù)包發(fā)送次數(shù)超過設(shè)置值,接收端將開啟CD檢測,判斷信道的質(zhì)量情況,如果信道忙,則按照預(yù)設(shè)的跳頻表跳到另一個通信頻道。如果信道不忙,則繼續(xù)使用該信道。圖2、圖3分別是發(fā)送端流程圖和接收端的流程圖。
圖2 發(fā)送端流程
為便于分析,定義下列概率事件:A事件表示數(shù)據(jù)包在正向信道上傳輸正確,接收端能正確接收到數(shù)據(jù)。B和C事件分別表示出現(xiàn)可檢錯誤和不可檢錯誤。Y和N事件分別表示反向信道上傳輸回執(zhí)信號正確和錯誤[4]。根據(jù)系統(tǒng)的工作原理可知,當(dāng)發(fā)送一個數(shù)據(jù)包時,有且只有事件A,BY、BN和C之一發(fā)生,分別設(shè)概率為Pa,Pby,Pbn,Pc。
系統(tǒng)正確接收數(shù)據(jù)包的概率為:
所以誤碼率為:
圖3 接收端流程
因為通信環(huán)境是固定的,所以各種概率事件發(fā)送的概率都是相同的,所以本協(xié)議的誤碼率與握手協(xié)議的誤碼率、協(xié)議[2]的混合協(xié)議的誤碼率都是一樣的。
先求在一個連續(xù)發(fā)送組中的 M 個數(shù)據(jù)包的平均發(fā)送次數(shù)。假定n為數(shù)據(jù)包的長度,K為有效負(fù)載的長度,R為傳輸速率,T為在SW-ARQ狀態(tài)下的環(huán)路延時時間。由于每個數(shù)據(jù)包在每次發(fā)送后,重發(fā)的概率為 Pb=Pby+Pbn,所以 M個數(shù)據(jù)包的平均發(fā)送次數(shù)為:
圖4 通過率比較
設(shè)系統(tǒng)在純 SW-ARQ方式中傳輸一個數(shù)據(jù)包所需時間為T,則有:
圖5 平均傳輸時間比較
提出的這種傳輸協(xié)議適用于有大量數(shù)據(jù)需要實時傳輸?shù)膱龊?。同時利用nRF24L01的載波檢測功能,在信道質(zhì)量不好的情況下進行調(diào)頻傳輸,這樣就能有效避免其他 2.4 G系統(tǒng)的影響。通過仿真證明這種通信協(xié)議要比原協(xié)議在通過率和平均傳輸時間上具有優(yōu)勢。
參考文獻(xiàn)
[1] Nordic VLSI ASA.nRF24xx Link Integrity[EB/OL].(2003-04-01)[2010-10-09].http://www.semiconductorstore.com/Pages/Items/ Nordic/attachments.asp.
[2] 蔣增文,張莉萍,李德敏,等.一種基于nRF24xx的混合無線通信協(xié)議[J].通信技術(shù),2010,43(10): 78-80.
[3] Nordic VLSI ASA.nRF24L01 Single Chip 2.4GHz Transceiver Product Specification[EB/OL].(2007-07-11)[2010-10-09].http://www.semiconductorstore.com/pdf/newsite/nordic/nRF24 L01.pdf
[4] 趙曉群,方勇,王仲文 .一種新型ARQ體制[J] .通信學(xué)報,1992,13(03) :88-92.
[5] 劉建華,陳繼榮.基于 nRF24E1 的無線通信協(xié)議設(shè)計與性能分析[J].通信技術(shù),2008,41(12): 131-133.
[6] Long Hainan, Liu Zhiqiang.Design Wireless Data Transmission System for Small Hydropower Stations Based on nRF24L01[J].Information Science and Engineering,2009(01):4008-4010.
[7] KORDAS J, WAGNER P, KOTZI J.Wireless transceiver for control of mobile embedded devices[J].Computer Science and Information Technology ,2010(05):869-872.