陳敏,孟立凡,孟凡勇
(中北大學(xué)電子測試技術(shù)國家重點(diǎn)實(shí)驗(yàn)室 信息與通信工程學(xué)院 山西 太原 030051)
無線傳感器網(wǎng)絡(luò)可以使操作人員近距離觀測目標(biāo),也可以遠(yuǎn)離危險(xiǎn)場所,活動(dòng)范圍大,安全性強(qiáng)。無線傳感器網(wǎng)絡(luò)還可以在長期無人值守的狀態(tài)下工作,在軍事國防、工農(nóng)業(yè)、城市管理、生物醫(yī)療、環(huán)境監(jiān)測、搶險(xiǎn)救災(zāi)、防恐反恐、危險(xiǎn)區(qū)域遠(yuǎn)程控制等許多領(lǐng)域都有重要的科研價(jià)值、巨大的實(shí)用價(jià)值和廣闊的市場前景。在工業(yè)、科學(xué)研究以及醫(yī)療設(shè)備中,目前出現(xiàn)了大量需要進(jìn)行通信的設(shè)備,這些設(shè)備通信距離較近、數(shù)據(jù)量較小、不適合布線。無線網(wǎng)絡(luò)能有效地繞過障礙物,提高工作效率。同時(shí)無線傳輸方式可以不考慮傳輸線纜的安裝問題,從而節(jié)省大量線纜,降低施工難度和系統(tǒng)成本,因而是一個(gè)很有發(fā)展?jié)摿Φ难芯空n題。所以,要求其具有體積小、功耗低、成本低、使用方便等特點(diǎn)的無線通信設(shè)備,未來必有廣闊的應(yīng)用前景[1-2]。
本文介紹了利用ADuC841單片機(jī)和無線數(shù)據(jù)收發(fā)芯片CC1000構(gòu)成的無線數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)方案,該系統(tǒng)實(shí)現(xiàn)了把發(fā)送的數(shù)據(jù)經(jīng)單片機(jī)處理后,通過CC1000發(fā)送出去, 同時(shí)接收端能正確的接收數(shù)據(jù),并把數(shù)據(jù)傳回上位PC進(jìn)行處理。
該系統(tǒng)硬件結(jié)構(gòu)由少量的外部設(shè)備、無線數(shù)據(jù)傳輸模塊,以及供電電路組成。外部設(shè)備有PC,數(shù)據(jù)采集單元。無線數(shù)據(jù)傳輸模塊基于低功耗單片射頻收發(fā)芯片CC1000,采用ADI公司的高精度ADC的ADuC841處理器為主處理芯片,完成數(shù)據(jù)的處理和控制。系統(tǒng)結(jié)構(gòu)如圖1 所示。
圖1 系統(tǒng)總體設(shè)計(jì)框圖
ADuC841芯片是ADI 公司生產(chǎn)的MCS51 系列單片機(jī)的兼容芯片,它在保持MCS51 系列單片機(jī)優(yōu)良的性價(jià)比的同時(shí),還在芯片中集成了采樣率達(dá)420kSPS 的8通道12 位模擬/數(shù)字轉(zhuǎn)換器、在片電壓參考源、2304 Bytes 片內(nèi)RAM數(shù)據(jù)存儲(chǔ)空間、4kBytes片內(nèi)Flash/EE 數(shù)據(jù)存儲(chǔ)空間以及62k Bytes片內(nèi)Flash/EE程序存儲(chǔ)空間等硬件資源。ADuC841芯片與傳統(tǒng)的MCS51系列單片機(jī)相比具有非常高的工作頻率。工作頻率即為時(shí)鐘頻率,不需要對時(shí)鐘頻率進(jìn)行12分頻。最高工作頻率達(dá)20MHz,為高速完成數(shù)學(xué)運(yùn)算提供硬件基礎(chǔ)。
ADuC841芯片還具有的基于(UART)串行口(管腳RxD 和管腳TxD)的在電路程序代碼仿真調(diào)試和下載功能,前者使得進(jìn)行仿真時(shí)不需要仿真器的支持,降低了開發(fā)成本;后者使得在系統(tǒng)編程成為可能,便于系統(tǒng)升級(jí)[3-4]。
CC1000是一種理想的超高頻單片收發(fā)芯片,它專用于低功率和低電壓(2.3V-3.6V)類無線電產(chǎn)品,此芯片電路系統(tǒng)主要用于ISM工業(yè)科學(xué)、醫(yī)療方面以及SRD短距離通訊,采用頻移鍵控(frequency shift keying(簡稱FSK),將0/1信號(hào)以不同的頻率調(diào)制),支持UART、NRZ和曼徹斯特3種編碼方式。工作頻帶在315 MHz、433 MHz、868 MHz及915MHz,不同的調(diào)制頻率通過外部電感和電容調(diào)節(jié)。芯片靈敏度高,最高靈敏度為-110dBm,有RSSI輸出可以方便判斷信號(hào)強(qiáng)度。-20dB到10dB可變輸出功率,通過調(diào)節(jié)發(fā)射功率,選用合適天線在空曠環(huán)境中200m仍可正常通信[5]。
CC1000模塊管腳如圖2所示。
圖2 CC1000模塊管腳
一般情況下,CC1000與MCU連接為圖2右半部分,采用SPI接口來控制CC1000的發(fā)射,ADuC841單片機(jī)集成了SPI串口,在此,ADuC841就是通過SPI接口來配置和控制CC1000模塊。其中芯片 的 PCLK、PDATA、PALE 組 成 ADuC841讀寫CC1000內(nèi)部寄存器的接口。PALE 用來指示目前輸入的是寄存器地址還是寄存器數(shù)據(jù), PCLK 和PDATAPDATA用來傳輸數(shù)據(jù)。為了判斷處理器是要讀寄存器還是寫寄存器, CC1000要求在輸入地址后, 再輸入一位讀寫選擇位1表示寫寄存器, 0表示讀寄存器。DIO 和DCKL 組成ADuC841和CC1000之間交換通信數(shù)據(jù)信息的通道。RSSI/IF用來檢測CC1000的信號(hào)強(qiáng)度的輸出[6]。CC1000與ADuC841的連接的接口電路如圖3所示。
圖3 CC1000與ADuC841的連接
由于市場上直接提供5V電壓的適配器種類較多,而且價(jià)格對直接提供3V電壓的適配器價(jià)格便宜,同時(shí)適配器輸出的電壓含有較多的雜質(zhì)成分,所以要有相應(yīng)的濾波電路。本課題我們采用SPX1117M3-3.3穩(wěn)壓模塊和一些簡單元器件組成的電路進(jìn)行供電。SPX1117為一個(gè)低功耗正向電壓調(diào)節(jié)器,其可以用在一些高效率,小封裝的低功耗設(shè)計(jì)中。這款器件非常適合便攜式電腦及電池供電的應(yīng)用。
SPX1117有很低的靜態(tài)電流,通過廉價(jià)的SPX1117M3-3.3穩(wěn)壓模塊可以獲得3V的穩(wěn)定電壓,從而為整個(gè)系統(tǒng)供電。為了使系統(tǒng)能適應(yīng)野外的操作環(huán)境,設(shè)計(jì)時(shí)附帶兩根引出線,用于無外接電源的情況下可以用電池進(jìn)行供電。能量供應(yīng)電路如圖4所示。
圖4 能量供應(yīng)電路
圖4為測試板的能量供應(yīng)部分電路圖,其中CON2 為電池插頭的兩個(gè)引出線的插針,用于沒有電源供電情況下采用電池供電,維持系統(tǒng)正常運(yùn)作。電源正常工作時(shí),指示燈D1亮。
本系統(tǒng)使用RS232收發(fā)器ADM202與ADuC841的UART接口相連,以便能夠通過RS232接口和PC機(jī)進(jìn)行通訊。該串口既用來對ADuC841進(jìn)行程序下載和聯(lián)機(jī)調(diào)試,又用來向PC傳送ADuC841存儲(chǔ)的數(shù)據(jù)[7]。
CC1000 初始化也就是 CC1000 寄存器的參數(shù)設(shè)置,參數(shù)設(shè)置是通過三線串行數(shù)據(jù)口(PDATA、PCLK 和 PALE)實(shí)現(xiàn)。寄存器的值按照寄存器參數(shù)設(shè)置表得到所要求對應(yīng)的值。
CC1000一個(gè)完整的配置要求發(fā)送29個(gè)數(shù)據(jù)幀,每個(gè)16位(7個(gè)地址位,1個(gè)讀/寫位和8個(gè)數(shù)據(jù)位)。PCLK頻率決定了完全配置所需時(shí)間,在10MHzPCLK頻率工作下,完成整個(gè)配置所需時(shí)間少于60μs。在低電位模式下設(shè)置時(shí)僅需發(fā)射一個(gè)幀,所需時(shí)少于2μs。所有寄存器都可讀。在每次寫循環(huán)中,16位字節(jié)送入PDATA 通道,每個(gè)數(shù)據(jù)幀中7個(gè)最重要的位(A6:0)是地址位。A6是MSB(最高位),首先被發(fā)送。下一個(gè)發(fā)送的位是讀/寫位(高5電平寫,低電平讀),在傳輸?shù)刂泛妥x/寫位期間,PALE(編程地址鎖存使能)必須保持低電平,接著傳輸8個(gè)數(shù)據(jù)位(D7:0)。PDATA在 PCLK下降沿有效。當(dāng)8位數(shù)據(jù)位中的最后一個(gè)字節(jié)位D0裝入后,整個(gè)數(shù)據(jù)字才被裝入內(nèi)部配置寄存器中[8]。CC1000的編程時(shí)序如圖5所示。
圖5 CC1000的編程時(shí)序圖
數(shù)據(jù)格式完全按照所要求的協(xié)議來定,如數(shù)據(jù)格式符合協(xié)議要求,則該數(shù)據(jù)進(jìn)行傳輸與控制;如數(shù)據(jù)格式不符合協(xié)議要求,則該數(shù)據(jù)直接去掉而重新接收下一組數(shù)據(jù)繼續(xù)進(jìn)行判斷。
CC1000接收與發(fā)送程序流程圖如圖6所示。
發(fā)射端用電池供電,方便在野外不同位置發(fā)射數(shù)據(jù),本測試用于測試的發(fā)射數(shù)據(jù)為0000~1111,發(fā)射端依次在10m,20m,50m,100m處發(fā)射,實(shí)驗(yàn)結(jié)果為計(jì)算機(jī)顯示正確數(shù)據(jù),誤碼率為零,但在140m左右出現(xiàn)誤碼。故在短距離的無線通信中,本系統(tǒng)滿足設(shè)計(jì)要求。
圖6 CC1000接收與發(fā)送程序流程圖
本文通過ADuC841微處理器和CC1000無線射頻芯片來架構(gòu)無線收發(fā)系統(tǒng)。相比其它微控制器來說, ADuC841處理器集成度高、體積小, 具有更豐富的資源,特別是它的模數(shù),數(shù)模轉(zhuǎn)換功能,精度高; 而CC1000 芯片本身支持多信道跳頻, 擴(kuò)展了無線傳感器節(jié)點(diǎn)通信功能, 為應(yīng)用系統(tǒng)設(shè)計(jì)提供了一種新的處理手段。本文設(shè)計(jì)的無線數(shù)據(jù)收發(fā)系統(tǒng),經(jīng)過多次實(shí)驗(yàn)證明,其發(fā)射端能正確地將數(shù)據(jù)傳送出去;同時(shí),接收端也能正確接收并顯示數(shù)據(jù)。此外,該系統(tǒng)具有通用性,便于投入實(shí)際應(yīng)用,而且稍作改動(dòng)就可以應(yīng)用到工業(yè)數(shù)據(jù)采集、無線遙控等一些短距離無線通信領(lǐng)域,以實(shí)現(xiàn)無線數(shù)據(jù)的雙向傳輸,具有廣泛的市場應(yīng)用價(jià)值。
[1]辛潔, 孫運(yùn)強(qiáng), 張倫.基于ATmega16和nRF2401的無線射頻收發(fā)系統(tǒng)設(shè)計(jì)[J].電子測試, 2009(4).
[2]涂兵,肖洪祥.無線測溫在電子產(chǎn)品中的應(yīng)用研究[J].電子測試,2008(7).
[3]美國ADI公司微處理器ADuC841數(shù)據(jù)手冊.http://www.analog.com/static/imported-files/data_sheets/ADUC841_842_843.pdf.
[4]賀桂芳,武曉明.基于ADuC841的氣體檢測儀[J].儀表技術(shù)與傳感器,2008(9):1-2.
[5]CC1000數(shù)據(jù)手冊.http://wt.down.elecfans.com/dm/elec/cc1000.pdf.
[6]徐姍姍,楊福寶.基CC1000的無線通信系統(tǒng)設(shè)計(jì)[J].中國水運(yùn),2007,12(5):1-4.
[7]工惠平,李健.基于ADuC841的智能儀表的設(shè)計(jì)[J].機(jī)床與液壓,2004(11):2-3.
[8]郭祥軍.基于ATmegal128單片機(jī)的交通信號(hào)機(jī)的設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2006,19(7):2-5.