摘 要:詳細闡述了利用無線收發芯片nRF24E1設計的數據傳輸系統的硬件和軟件設計,給出了具體的實現方案。系統以嵌入51單片機內核的單片射頻收發芯片nRF24E1為核心,將傳感器采集的數據通過無線收發模塊向手機傳輸,并在手機上正確的顯示出來,供用戶監控,從而在用戶端能隨時監控廠房的各種數據,減少布線的麻煩。
關鍵詞:nRF24E1; 短距離無線數據傳輸; 手機顯示; 測溫
中圖分類號:TN919 文獻標識碼:A
文章編號:1004-373X(2010)13-0117-03
Design of Temperature Detection System Based on Low-power RF Chip
LI Li
(Guangdong Institute of Science and Technology, Guangzhou 510640, China)
Abstract: Both hardware and software designs of a data transmission system based on the wireless transceiving chip nRF24E1 are elaborated. The implementation method, working principle and architecture of the temperature detection systemare are presented. Taking the RF transceiving chip nRF24E1 embedded in the 8051 SCM as the critical part of the system, the data acquisited by the sensors is transmitted to a mobile telephone by the wireless transceiving module and is dispayed correctly on the mobile phone of the user for data real-time control. The system and the technology can be applied to the actual scenes, such as warehouse, incubation, plant breeding and so on.
Keywords: nRF24E1; short distance wireless data transmission; mobile phone display; temperature detection
在農業生產活動中,溫度、濕度信息的采集和傳遞是一項很重要的功能,以前粗放式生產,現在是追求高技術含量的精細化生產。農業上孵化、育種等場合,需要對溫度實行控制,許多領域對溫以及壓力等數據的采集可通過傳感器來實現,如何有效地管理棚室溫度,是當前蔬菜管理的重點。本文針對由于農作物的不同時期傳感器的空間位置不固定,布線不方便,可靠性差的問題,采用無線通信技術進行數據傳輸。利用微功率RF芯片(nRF24E1)設計了一個體積小、成本低、性能穩定、功耗低、數據傳輸可靠的點對多點的無線射頻數據采集系統,實現了對多個采樣點的實時數據無線采集。經過實際使用,DS18B20和單片機AT89S52以及RF芯片組成的測溫系統,完全符合用戶的需要。
1 系統總體設計
本系統要實現的是溫度、濕度和壓力的采集、傳輸、顯示和后期處理等功能。系統的總體構想為數據采集模塊,短距離無線通訊模塊,串口通信模塊,顯示處理模塊幾大部分。系統方案的確定主要集中在無線通訊模塊的選擇和顯示模塊上[1-2]。
硬件系統組成如圖1所示,首先用傳感器將現場信號轉換為電信號,經過模/數轉換器ADC采樣、量化、編碼后轉換成數字信號,送到單片機進行初步處理,然后利用nRF2401無線數據傳輸芯片通過無線方式將有效數據發送給接收端,接收端在接收到有效數據后通過串行口將數據送入手機,手機通過C#語言編寫的控制程序完成數據的顯示以及對有效數據進一步處理的任務。
圖1 系統總體構成(采集端和接收端)
2 系統硬件設計
2.1 系統硬件組成
圖2所示是系統的硬件組成,DS18B20是DALLAS公司生產的一線式數字溫度傳感器,可把溫度信號直接轉換成串行數字信號供微機處理。具有3引腳TO-92小體積封裝形式;溫度測量范圍為-55~+125 ℃,可編程為9~12 b A/D轉換精度,測溫分辨率可達0062 5 ℃,被測溫度用符號擴展的16 b數字量方式串行輸出;其工作電源既可在遠端引入,也可采用寄生電源方式產生;多個DS18B20可以并聯到3根或2根線上,CPU只需1根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節省大量的引線和邏輯電路。從DS1820讀出的信息或寫入DS1820的信息,僅需要1根口線(單線接口)。讀寫及溫度變換功率來源于數據總線,總線本身也可以向所掛接的DS1820供電,而無需額外電源。以上特點使DS18B20非常適用于遠距離多點溫度檢測系統。DS1820提供九位溫度讀數,構成多點溫度檢測系統而無需任何外圍硬件,DS1820與nRF24E1的連接方式如圖3所示。
圖2 系統硬件組成
圖3 溫度傳感器與無線收發芯片接口圖
在本系統中,傳感器采集數據后,送到下位機,下位機和上位機通過無線數據通道聯系。無線數據收發部分主要由nRF24E1芯片、E2PROM、晶振、傳感器信號輸入和天線組成。
2.2 芯片nRF24E1內部結構
nRF24E1芯片是無線數據收發部分的核心,通過內嵌的51單片機內核,控制芯片內的A/D轉換模塊,無線收,發模塊。將射頻發射、接收、GMSK調制、解調、增強型8051內核、9輸入12 b ADC、125頻道、UART、SPI、PWM、RTC、WDT全部集成到單芯片中,從而實現數據的采集,傳輸,處理等功能[3]。硬件模塊如圖4所示,芯片主要由以下部分組成:
(1) CPU(微處理器)。
帶有增強型8051內核,ADC、SPI、RF發射器1個、RF接收器2個、喚醒定時器5個中斷源,1個UART以及3個定時器。
(2) PWM輸出。
可編程確定PWM的輸出工作于6位、7位或8位,PWM信號的頻率可由軟件控制。
(3) SPI接口和SPI總線。
(4) RTC喚醒定時器、WTD和RC振蕩器。
(5) A/D轉換器。A/D轉換器有9個輸入通道可通過軟件進行選擇。
(6) 無線收發器,通過內部并行口或內部SPI口與其他模塊進行通信,工作于全球開放的2.4~2.5 GHz頻段。
圖4 芯片nRF24E1內部結構
3 無線數據傳輸系統的軟件設計與實現
本系統在編程時采用模塊化設計思想,各主要功能模塊均編成獨立的函數在主程序中加以調用,程序主要由以下功能模塊組成:上電初始化程序、無線收發程序、數據包打包拆包程序、數據處理程序。采集端和接收端在上電后首先調用初始化程序,完成無線收發頻率、工作模式、發射速率、A/D轉換器精度及其他內部寄存器的初始化配置[4-6]。
3.1 軟件流程圖
軟件流程圖如圖5~圖7所示。
圖5 無線數據傳輸系統的數據流程
圖6 系統數據無線發送流程圖
圖7 系統數據無線接收流程圖
圖6 系統數據無線發送流程圖
圖7 系統數據無線接收流程圖
3.2 無線通信軟件系統描述
系統軟件設計主要包括兩部分:無線通信模塊和手機端數據處理模塊,采用C#語言編寫。無線通信模塊首先需完成串口配置、A/D配置和接收器的配置,然后編寫發送函數和接收函數實現無線通信[7-8]。由于從機有多個,采用輪詢的方式,對從機輪流發給“令牌”,從機在獲得“令牌”期間才能和主機間進行通信。采用單工方式通信,首先打開通信配置,發送“配置字”,然后關閉通信配置,接收方接收到“配置字”后按照地址進行通信[9-10]。接收函數和發送函數簡介如下:
3.2.1 接收函數
接收函數程序如下:
void Receiver(void){
unsigned char b;
CS=1;//打開配置方式
for(b=0;b SpiReadWrite(rconf.buf[b]);//發送接收器配置字 } CS=0;//關配置方式 for(;;){ b=ReceivePacket();//接收數據包 } } 3.2.2 發送函數 發送函數程序如下: void Transmitter(void){ unsigned char b; CS=1;//開配置方式 for(b=0;b SpiReadWrite(tconf.buf[b]);//發送發送器配置字 } CS=0;//關配置方式 b=KeyByte;//讀取數據 TransmitPacket(b);//發送數據 } 4 結 語 該無線系統電路簡單、性能穩定、抗干擾能力強、可靠性高、搭建方便、易于擴展,本系統適用于在短距離對多種環境溫濕度的監測,有廣闊的應用前景。無線數據傳輸在實驗室的效果是好的,對采集參數的接收和數據的發送都反應靈敏。但無線數據傳輸還存在著一些問題,若采用競爭信道的方式可進一步提高系統效率,采用USB接口,可提高效率,同時支持即插即用,這些特性都需要進一步改善。 參考文獻 [1]Nordic. nRF2401 Product Specification[ M] . [ S.l.] : Nordic Corporation, 2009. [2]林嶸.數據轉換與接口技術[M].南京:東南大學出版社,2006. [3]KAPP S. Leaving the wire behind[ J] . IEEE Internet Computing, 2002,6(1):82-85. [4]王桂靜,梁得勝,田錫天.基于nRF24E1的生命信號實時無線采集系統設計[J].工業儀表與自動化裝置,2005(3): 38-40. [5]劉恒.基于nRF24E1的無線加速度測量系統設計[ D] .西安:西北工業大學,2007. [6]牛偉,郭世澤,吳志軍.無線局域網[M].北京:人民郵電出版社,2003. [7]胡漢才.單片機原理及其接口技術[M].北京:清華大學出版社,2008. [8]Nordic. VLSI ASA wireless hands-free using nRF24E1[M]. [ S.l.] : Nordic Corporation, 2008. [9]金炯泰.如何使用KEIL 8051 C編譯器[ M] .北京:北京航空航天大學出版社,2007. [10]馬忠梅.單片機的C語言應用程序設計[ M] .3版.北京:北京航空航天大學出版社,2007.