摘 要: 采用無線射頻技術(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)對(duì)多點(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)對(duì)多點(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)對(duì)移動(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)級(jí)芯片之一,。
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)答信號(hào),。如果收到應(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)答信號(hào)。接收過程完成后,,nRF24L01通知微控制器讀取數(shù)據(jù),。
nRF24L01射頻協(xié)議可以通過SPI口對(duì)芯片的配置寄存器寫入相應(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ù)采集(包括采集傳感器信號(hào)和按鍵信號(hào))模塊和電源模塊組成,。nRF24L01無線射頻模塊的外圍電路如圖2所示。nRF24L01無線射頻模塊與微控制器相連接的引腳有CE,、CSN,、SCK、MOSI,、MISO,、IRO。CE決定是否允許收發(fā)信號(hào),。CSN為芯片內(nèi)部SPI硬件接口的使能端,,低電平有效,SCK為SPI的時(shí)鐘輸入端,,MOSI為SPI接口的數(shù)據(jù)輸入端,,MISO為SPI接口的數(shù)據(jù)輸出端,IRQ 為中斷請(qǐng)求端,,nRF24L01輸出3 種中斷請(qǐng)求:發(fā)送數(shù)據(jù)完成中斷,、接收數(shù)據(jù)完成中斷和重發(fā)次數(shù)超限中斷。這些引腳可以與3.3 V供電的微控制器的普通I/O口直接相連,,對(duì)于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ī)制對(duì)接收的每個(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)致的信號(hào)衰減等造成傳輸過程中數(shù)據(jù)丟失[3],。針對(duì)上述問題,,可以分別通過制定合理的通訊協(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)對(duì)點(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ī)器碼相對(duì)照,,如果機(jī)器碼不對(duì)應(yīng)則繼續(xù)接收,,如果與本機(jī)機(jī)器碼一致則立即進(jìn)入發(fā)射狀態(tài)將存在發(fā)射寄存器內(nèi)的數(shù)據(jù)發(fā)射出去,同時(shí)檢測應(yīng)答信號(hào)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)。相對(duì)于軍事用途的無線通訊系統(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í)檢測反饋信號(hào)。如果沒有收到網(wǎng)絡(luò)內(nèi)的移動(dòng)數(shù)據(jù)終端的有效信號(hào),,則丟幀計(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)初始化后,,通過輪詢的方法檢測反饋信號(hào),如果系統(tǒng)輪詢丟幀計(jì)數(shù)值大于規(guī)定值或數(shù)次輪詢反饋信號(hào)出現(xiàn)不一致的現(xiàn)象,,則判斷出現(xiàn)干擾頻率,,根據(jù)跳頻表重新設(shè)置系統(tǒng)通訊頻率。移動(dòng)數(shù)據(jù)終端的跳頻處理子程序的功能是在系統(tǒng)初始化后檢測接收主機(jī)的信號(hào),,如果在一定時(shí)間內(nèi)檢測不到主機(jī)信號(hào),,則按跳頻表切換信道,直到檢測到主機(jī)的握手信號(hào)為止,。系統(tǒng)主程序流程圖如圖3所示,。
在數(shù)據(jù)終端和接收主機(jī)初始化并相互檢測握手信號(hào)之后,數(shù)據(jù)終端處于接收模式,,接收主機(jī)處于發(fā)射模式并發(fā)射帶有數(shù)據(jù)終端號(hào)碼的廣播輪詢信號(hào),。數(shù)據(jù)終端接收到廣播信號(hào)后與自己的機(jī)器碼對(duì)照,若不對(duì)應(yīng)則丟棄此信息并繼續(xù)保持接收狀態(tài),,若機(jī)器碼對(duì)應(yīng),,則根據(jù)目前是否有需要發(fā)射的信息向主機(jī)發(fā)射數(shù)據(jù)信息或僅發(fā)射響應(yīng)信號(hào)。信號(hào)發(fā)射完畢后,,數(shù)據(jù)終端回到接收模式,。主機(jī)接收到數(shù)據(jù)信號(hào),即立即向數(shù)據(jù)終端發(fā)射響應(yīng)信號(hào)并向上位機(jī)傳遞數(shù)據(jù),,若僅接收到數(shù)據(jù)終端的響應(yīng)信號(hào)或在規(guī)定時(shí)間內(nèi)未接收到信號(hào)則將數(shù)據(jù)終端機(jī)器碼的地址指針加1開始下一輪詢問,。數(shù)據(jù)終端發(fā)射數(shù)據(jù)信息之后需要等待主機(jī)的反饋信號(hào),若接收到反饋信號(hào)則顯示發(fā)射完成,,若在規(guī)定時(shí)間內(nèi)未接收到反饋信號(hào)則提示發(fā)射超時(shí),,信息需要在下一次輪詢過程中重新發(fā)射。
基于nRF24L01的移動(dòng)數(shù)據(jù)通訊網(wǎng)絡(luò)已經(jīng)成功應(yīng)用于科研評(píng)價(jià)系統(tǒng)中的評(pí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.