《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于nRF24L01的移動(dòng)數(shù)據(jù)通訊網(wǎng)絡(luò)設(shè)計(jì)
基于nRF24L01的移動(dòng)數(shù)據(jù)通訊網(wǎng)絡(luò)設(shè)計(jì)
來源:微型機(jī)與應(yīng)用2011年第24期
曹青梅,徐立友,曹艷玲,席志強(qiáng)
(河南科技大學(xué) 車輛與動(dòng)力工程學(xué)院,河南 洛陽471003)
摘要: 采用無線射頻技術(shù)組建了移動(dòng)數(shù)據(jù)通訊網(wǎng)絡(luò),詳細(xì)介紹了移動(dòng)數(shù)據(jù)終端的硬件、軟件設(shè)計(jì)以及系統(tǒng)通訊協(xié)議,并利用時(shí)分技術(shù)和跳頻技術(shù)保證了系統(tǒng)的穩(wěn)定性和適應(yīng)性。為短距離傳輸?shù)男∫?guī)模通訊網(wǎng)的組建提供了可靠的解決方案。
Abstract:
Key words :

摘  要: 采用無線射頻技術(shù)組建了移動(dòng)數(shù)據(jù)通訊網(wǎng)絡(luò),詳細(xì)介紹了移動(dòng)數(shù)據(jù)終端的硬件、軟件設(shè)計(jì)以及系統(tǒng)通訊協(xié)議,并利用時(shí)分技術(shù)和跳頻技術(shù)保證了系統(tǒng)的穩(wěn)定性和適應(yīng)性。為短距離傳輸?shù)男∫?guī)模通訊網(wǎng)的組建提供了可靠的解決方案。
關(guān)鍵詞: 無線通訊;移動(dòng)數(shù)據(jù)終端;時(shí)分;跳頻

    利用無線射頻技術(shù)實(shí)現(xiàn)無線數(shù)據(jù)傳輸具有便捷、成本低、適合可移動(dòng)設(shè)備等優(yōu)點(diǎn),特別適用于各種手持式儀器、儀表以及其他不便于布線的嵌入式系統(tǒng)。本文采用無線射頻收發(fā)芯片nRF24L01組建了可以點(diǎn)對多點(diǎn)之間數(shù)據(jù)短距離傳輸?shù)男∫?guī)模通訊網(wǎng),并利用時(shí)分技術(shù)和跳頻技術(shù)使網(wǎng)內(nèi)數(shù)據(jù)之間以及不同網(wǎng)絡(luò)之間的數(shù)據(jù)傳遞互不干擾,保證了數(shù)據(jù)傳遞的可靠性。
1 系統(tǒng)基本結(jié)構(gòu)
    移動(dòng)數(shù)據(jù)通訊網(wǎng)絡(luò)由移動(dòng)數(shù)據(jù)終端、無線數(shù)據(jù)接收主機(jī)、數(shù)據(jù)處理主機(jī)三部分組成,如圖1所示。移動(dòng)數(shù)據(jù)終端與無線數(shù)據(jù)接收主機(jī)采用星形組網(wǎng)方式,構(gòu)成點(diǎn)對多點(diǎn)的無線數(shù)據(jù)雙向傳輸。無線數(shù)據(jù)接收主機(jī)與數(shù)據(jù)處理主機(jī)采用局域網(wǎng)連接,無線數(shù)據(jù)接收主機(jī)接收到的數(shù)據(jù)存入數(shù)據(jù)處理主機(jī)的數(shù)據(jù)庫,并由數(shù)據(jù)處理主機(jī)進(jìn)行處理。數(shù)據(jù)處理主機(jī)還可以通過無線數(shù)據(jù)接收機(jī)向移動(dòng)數(shù)據(jù)終端發(fā)送數(shù)據(jù),從而實(shí)現(xiàn)對移動(dòng)數(shù)據(jù)終端的管理和控制。
    移動(dòng)數(shù)據(jù)通訊網(wǎng)絡(luò)也可以通過建立不同工作頻率的子網(wǎng)絡(luò)來進(jìn)行擴(kuò)展。圖1中網(wǎng)絡(luò)1內(nèi)的移動(dòng)數(shù)據(jù)終端和無線數(shù)據(jù)接收主機(jī)使用同一初始工作頻率和跳頻表,網(wǎng)絡(luò)2使用與網(wǎng)絡(luò)1不同的頻率和跳頻表,從而使兩個(gè)網(wǎng)絡(luò)內(nèi)的通訊互不干擾。采用這種允許多個(gè)不同頻率的網(wǎng)絡(luò)同時(shí)進(jìn)行通訊的擴(kuò)展方式可以增加網(wǎng)絡(luò)內(nèi)移動(dòng)數(shù)據(jù)終端的數(shù)量,縮短子網(wǎng)內(nèi)數(shù)據(jù)接收主機(jī)的輪詢時(shí)間,從而提高整個(gè)網(wǎng)絡(luò)的工作效率。

2 nRF24L01芯片特點(diǎn)和工作原理
    nRF24L01無線通訊芯片工作在2.4 GHz~2.52 GHz免許可證ISM頻段,高效GFSK調(diào)制,抗干擾能力強(qiáng);工作頻率可分為125個(gè)信道,支持高速跳頻,能夠在全球無線市場暢通無阻。nRF2401支持多點(diǎn)間通訊,最高傳輸速率達(dá)1 Mb/s。同時(shí)nRF2401芯片能耗非常低,其工作電壓為1.9 V~3.6 V,以0 dBm的功率、1 Mb/s的傳輸速率發(fā)射時(shí),工作電流只有11.3 mA,接收時(shí)工作電流只有11.7 mA,待機(jī)模式下狀態(tài)為22 ?滋A;掉電模式下為900 nA[1,2]。nRF24L01是目前體積最小、功耗最少、外圍元件最少的低成本射頻系統(tǒng)級芯片之一。
    nRF24L01一般常采用突發(fā)工作模式進(jìn)行數(shù)據(jù)的收發(fā)。發(fā)射數(shù)據(jù)時(shí), 首先將芯片配置為發(fā)射模式,并把發(fā)射地址和數(shù)據(jù)從微控制器送入nRF24L01片內(nèi)的FIFO堆棧區(qū)。nRF24L01在發(fā)送數(shù)據(jù)時(shí),自動(dòng)給所發(fā)射數(shù)據(jù)加上字頭、地址和CRC 校驗(yàn)碼,然后高速發(fā)射。如果開啟了芯片自動(dòng)應(yīng)答功能,則nRF24L01芯片在發(fā)射完數(shù)據(jù)后立即進(jìn)入接收模式,以接收應(yīng)答信號。如果收到應(yīng)答,則此次通訊成功;如果未收到應(yīng)答,則自動(dòng)重新發(fā)射,若重發(fā)次數(shù)達(dá)到設(shè)定的上限,配置寄存器的MAX_RT位置高,表明通訊失敗。
    nRF24L01接收數(shù)據(jù)時(shí),需先配置為接收模式,延遲130 μs之后即進(jìn)入接收狀態(tài)。當(dāng)nRF24L01接收到數(shù)據(jù)時(shí),若檢測到有效的地址和CRC校驗(yàn)碼時(shí),便自動(dòng)把數(shù)據(jù)中字頭和CRC校驗(yàn)碼移去,并把有效數(shù)據(jù)包存儲(chǔ)在接收堆棧中。如果自動(dòng)應(yīng)答開啟,接收方同時(shí)進(jìn)入發(fā)射狀態(tài)回傳應(yīng)答信號。接收過程完成后,nRF24L01通知微控制器讀取數(shù)據(jù)。
    nRF24L01射頻協(xié)議可以通過SPI口對芯片的配置寄存器寫入相應(yīng)的配置字來體現(xiàn)。突發(fā)模式的配置字共有30 B,主要用于設(shè)置工作模式、傳輸數(shù)據(jù)寬度、地址寬度、地址、通道、發(fā)射頻率、發(fā)射功率、CRC、工作狀態(tài)、自動(dòng)應(yīng)答使能、自動(dòng)重發(fā)的次數(shù)等。配置完成后,在nRF24L01工作的過程中,只需改變其REXN配置寄存器相應(yīng)位的內(nèi)容,就可以實(shí)現(xiàn)接收模式和發(fā)送模式之間的切換。
3 移動(dòng)數(shù)據(jù)終端設(shè)計(jì)
3.1 移動(dòng)數(shù)據(jù)終端硬件設(shè)計(jì)

    移動(dòng)數(shù)據(jù)終端的系統(tǒng)硬件由單片機(jī)、nRF24L01無線射頻模塊、液晶顯示模塊、信息數(shù)據(jù)采集(包括采集傳感器信號和按鍵信號)模塊和電源模塊組成。nRF24L01無線射頻模塊的外圍電路如圖2所示。nRF24L01無線射頻模塊與微控制器相連接的引腳有CE、CSN、SCK、MOSI、MISO、IRO。CE決定是否允許收發(fā)信號。CSN為芯片內(nèi)部SPI硬件接口的使能端,低電平有效,SCK為SPI的時(shí)鐘輸入端,MOSI為SPI接口的數(shù)據(jù)輸入端,MISO為SPI接口的數(shù)據(jù)輸出端,IRQ 為中斷請求端,nRF24L01輸出3 種中斷請求:發(fā)送數(shù)據(jù)完成中斷、接收數(shù)據(jù)完成中斷和重發(fā)次數(shù)超限中斷。這些引腳可以與3.3 V供電的微控制器的普通I/O口直接相連,對于5 V供電的微控制器,則需要串聯(lián)2 kΩ的限流電阻。

3.2 通訊協(xié)議的設(shè)計(jì)
    移動(dòng)數(shù)據(jù)終端數(shù)據(jù)傳輸?shù)目煽啃允菬o線通訊系統(tǒng)必須要解決的問題。雖然nRF24L01內(nèi)部通訊協(xié)議中的差錯(cuò)重傳機(jī)制對接收的每個(gè)數(shù)據(jù)幀進(jìn)行片內(nèi)CRC校驗(yàn),可以保證接收數(shù)據(jù)的正確性。但在多機(jī)無線數(shù)據(jù)通訊組網(wǎng)中,會(huì)因?yàn)榫W(wǎng)內(nèi)多機(jī)通訊中多點(diǎn)接入沖突、不同網(wǎng)絡(luò)間同頻率干擾、以及其他應(yīng)用電路和外界的噪聲干擾,或者元器件老化導(dǎo)致的信號衰減等造成傳輸過程中數(shù)據(jù)丟失[3]。針對上述問題,可以分別通過制定合理的通訊協(xié)議進(jìn)行解決。

 


    網(wǎng)內(nèi)多機(jī)通訊過程中,由于從機(jī)的頻率是相同的,如果遇到多個(gè)從機(jī)同時(shí)發(fā)射數(shù)據(jù)就會(huì)產(chǎn)生網(wǎng)內(nèi)同頻干擾。采用時(shí)分技術(shù),通過無線數(shù)據(jù)接收主機(jī)掃描輪詢網(wǎng)內(nèi)移動(dòng)數(shù)據(jù)終端的方法,可以實(shí)現(xiàn)同一時(shí)間點(diǎn)接收主機(jī)接收數(shù)據(jù)終端的數(shù)據(jù)是點(diǎn)對點(diǎn)數(shù)據(jù)通訊,從而解決多點(diǎn)接入沖突。移動(dòng)數(shù)據(jù)終端將需要發(fā)射的數(shù)據(jù)存在發(fā)射寄存器內(nèi),先將數(shù)據(jù)終端設(shè)為接收狀態(tài),一旦接收到無線數(shù)據(jù)接收主機(jī)發(fā)送的廣播信息就與本機(jī)的機(jī)器碼相對照,如果機(jī)器碼不對應(yīng)則繼續(xù)接收,如果與本機(jī)機(jī)器碼一致則立即進(jìn)入發(fā)射狀態(tài)將存在發(fā)射寄存器內(nèi)的數(shù)據(jù)發(fā)射出去,同時(shí)檢測應(yīng)答信號ACK。如果發(fā)射成功則進(jìn)入待機(jī)模式,等待需要發(fā)射的數(shù)據(jù),否則重新發(fā)射。
    由于移動(dòng)數(shù)據(jù)終端工作在免許可證ISM頻段,所以就有與周圍其他的無線射頻設(shè)備出現(xiàn)同頻的可能。為了避免不同網(wǎng)絡(luò)間同頻率干擾,移動(dòng)數(shù)據(jù)終端采用跳頻的方法,選取通訊質(zhì)量好的頻點(diǎn)來替換被干擾的頻點(diǎn)。相對于軍事用途的無線通訊系統(tǒng),移動(dòng)數(shù)據(jù)終端所受的干擾是隨機(jī)和無意識(shí)的[4],所以可以采用比較簡單的自適應(yīng)跳頻協(xié)議[5-6]。在通訊的空閑階段,無線數(shù)據(jù)接收主機(jī)向網(wǎng)絡(luò)內(nèi)的移動(dòng)數(shù)據(jù)終端節(jié)點(diǎn)發(fā)送信標(biāo)幀,同時(shí)檢測反饋信號。如果沒有收到網(wǎng)絡(luò)內(nèi)的移動(dòng)數(shù)據(jù)終端的有效信號,則丟幀計(jì)數(shù)值加1。當(dāng)丟幀計(jì)數(shù)值在設(shè)定時(shí)間內(nèi)大于規(guī)定值,則認(rèn)為目前的信道質(zhì)量不佳,無線數(shù)據(jù)接收主機(jī)向網(wǎng)內(nèi)的發(fā)送數(shù)據(jù)終端廣播信息進(jìn)行跳頻。如果終端節(jié)點(diǎn)與主機(jī)失去聯(lián)系,則按照事先設(shè)定的跳頻表切換信道,以捕獲接收主機(jī)的信標(biāo)幀信息。
3.3 移動(dòng)數(shù)據(jù)通訊網(wǎng)絡(luò)軟件設(shè)計(jì)
    移動(dòng)數(shù)據(jù)終端通訊網(wǎng)絡(luò)的軟件部分主要包括主程序、初始化程序、跳頻處理子程序、信息處理子程序等,通過主程序?qū)Ω髯映绦虻恼{(diào)用實(shí)現(xiàn)系統(tǒng)總體功能。
    初始化程序的主要功能是設(shè)置數(shù)據(jù)終端和接收主機(jī)的工作模式、數(shù)據(jù)通道、接收地址、CRC模式、重發(fā)次數(shù)、發(fā)射功率和初始握手頻率。信息處理子程序的功能是信息采集、顯示和存儲(chǔ),采用中斷觸發(fā)的方式實(shí)現(xiàn)運(yùn)行。接收主機(jī)跳頻處理子程序的功能是在系統(tǒng)初始化后,通過輪詢的方法檢測反饋信號,如果系統(tǒng)輪詢丟幀計(jì)數(shù)值大于規(guī)定值或數(shù)次輪詢反饋信號出現(xiàn)不一致的現(xiàn)象,則判斷出現(xiàn)干擾頻率,根據(jù)跳頻表重新設(shè)置系統(tǒng)通訊頻率。移動(dòng)數(shù)據(jù)終端的跳頻處理子程序的功能是在系統(tǒng)初始化后檢測接收主機(jī)的信號,如果在一定時(shí)間內(nèi)檢測不到主機(jī)信號,則按跳頻表切換信道,直到檢測到主機(jī)的握手信號為止。系統(tǒng)主程序流程圖如圖3所示。

    在數(shù)據(jù)終端和接收主機(jī)初始化并相互檢測握手信號之后,數(shù)據(jù)終端處于接收模式,接收主機(jī)處于發(fā)射模式并發(fā)射帶有數(shù)據(jù)終端號碼的廣播輪詢信號。數(shù)據(jù)終端接收到廣播信號后與自己的機(jī)器碼對照,若不對應(yīng)則丟棄此信息并繼續(xù)保持接收狀態(tài),若機(jī)器碼對應(yīng),則根據(jù)目前是否有需要發(fā)射的信息向主機(jī)發(fā)射數(shù)據(jù)信息或僅發(fā)射響應(yīng)信號。信號發(fā)射完畢后,數(shù)據(jù)終端回到接收模式。主機(jī)接收到數(shù)據(jù)信號,即立即向數(shù)據(jù)終端發(fā)射響應(yīng)信號并向上位機(jī)傳遞數(shù)據(jù),若僅接收到數(shù)據(jù)終端的響應(yīng)信號或在規(guī)定時(shí)間內(nèi)未接收到信號則將數(shù)據(jù)終端機(jī)器碼的地址指針加1開始下一輪詢問。數(shù)據(jù)終端發(fā)射數(shù)據(jù)信息之后需要等待主機(jī)的反饋信號,若接收到反饋信號則顯示發(fā)射完成,若在規(guī)定時(shí)間內(nèi)未接收到反饋信號則提示發(fā)射超時(shí),信息需要在下一次輪詢過程中重新發(fā)射。
    基于nRF24L01的移動(dòng)數(shù)據(jù)通訊網(wǎng)絡(luò)已經(jīng)成功應(yīng)用于科研評價(jià)系統(tǒng)中的評委分?jǐn)?shù)采集。移動(dòng)數(shù)據(jù)終端經(jīng)過測試,可靠的數(shù)據(jù)傳輸距離在70 m以上;輪詢子網(wǎng)內(nèi)60臺(tái)移動(dòng)數(shù)據(jù)終端時(shí),無線數(shù)據(jù)接收主機(jī)所用時(shí)間不超過1 s;通過設(shè)置不同初始頻率和跳頻技術(shù)的應(yīng)用,在同一地點(diǎn)可以允許同時(shí)存在多個(gè)移動(dòng)數(shù)據(jù)終端的通訊子網(wǎng)絡(luò)。測試結(jié)果表明本文所提出的軟硬件設(shè)計(jì)方案能夠滿足近距離無線數(shù)據(jù)網(wǎng)絡(luò)傳輸?shù)男枰?br /> 參考文獻(xiàn)
[1] Nordic Corporation.nRF2401 Wireless hands-free DEMO  [EB/OL].(2008-11-21)[2011-03-16].http://www.Nordic.com.
[2] 李泉溪,孫君頂.基于無線傳感器網(wǎng)絡(luò)的煤礦報(bào)警系統(tǒng)節(jié)點(diǎn)的設(shè)計(jì)及實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008,24(5):265-267.
[3] HAYKIN S.Cognitive radio: brain-empowered wireless  communications[J].IEEE journal on selected areas in communications,2005,23(2):201-220.
[4] 郝衛(wèi)亮.無線傳輸系統(tǒng)中nRF2401芯片數(shù)據(jù)丟失問題的研究[J].電子技術(shù)應(yīng)用,2007,33(8):55-57.
[5] 劉琪,蘇偉,李承恕.基于跳頻的自適應(yīng)頻譜共享方案[J]. 電子學(xué)報(bào),2010,38(1):105-110.
[6] 郭麗華,穆曉敏,朱春華.一種新的A適應(yīng)跳頻通信系統(tǒng)[J].電訊技術(shù),2009,49(2):19-23.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。