基于nRF2401芯片的多路無線分布式溫度測(cè)量系統(tǒng)設(shè)計(jì)
引言
短距離多路無線通信系統(tǒng)不僅系統(tǒng)布置靈活,不 受場(chǎng)地等條件的制約,而且還可以完全消除通信設(shè)備 之間的物理連接,大大降低使用成本,因而已在現(xiàn)代 工業(yè)生產(chǎn)控制中得到了廣泛的應(yīng)用。
本文討論并設(shè)計(jì)了一種基于nRF2401射頻無線 通訊芯片的多路無線分布式溫度測(cè)量系統(tǒng)。該系統(tǒng) 使用新型一線式數(shù)字溫度傳感器DS18B20進(jìn)行溫度 測(cè)量,經(jīng)ATmegal6單片機(jī)處理后再用射頻無線收 發(fā)芯片nRF2401實(shí)現(xiàn)測(cè)溫?cái)?shù)據(jù)的無線發(fā)送。主控節(jié) 點(diǎn)也使用nRF2401芯片進(jìn)行無線測(cè)溫?cái)?shù)據(jù)的接收, 再經(jīng)ATmegal6單片機(jī)進(jìn)行數(shù)據(jù)轉(zhuǎn)換和處理,從而 把遠(yuǎn)方4處的溫度測(cè)量值巡回顯示在6位LCD顯示 器上,也可利用按鍵來單獨(dú)測(cè)量某一處的溫度值。該 系統(tǒng)的總體結(jié)構(gòu)框圖如圖1所示。
1 系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)的主控節(jié)點(diǎn)和各測(cè)溫通道均采用Atmel 公司開發(fā)的高性能、低功耗、高速8位處理器AT- megal6單片機(jī)作為控制器。ATmegal6單片機(jī)不僅 價(jià)格低廉,而且性能強(qiáng)大,能很好的完成本系統(tǒng)要求 的控制和數(shù)據(jù)處理功能。該單片機(jī)采用先進(jìn)的RISC 結(jié)構(gòu)CPU內(nèi)核,具備了 1 MIPS/MHz的高速數(shù)據(jù)處 理能力,片內(nèi)不僅有32個(gè)8位通用寄存器,而且包含有16 KB容量的非易失性FLASH程序存儲(chǔ)器和 1024 B的SRAM數(shù)據(jù)存儲(chǔ)器,并支持JTAG接口, 片內(nèi)資源十分豐富。
1.1 數(shù)字溫度傳感器DS18B20及其接口電路
本系統(tǒng)的各個(gè)測(cè)溫通道中都選用了 DALLAS公 司生產(chǎn)的新一代一線式數(shù)字溫度傳感器DS18B20。該 器件只有3個(gè)引腳,使用非常方便。其溫度測(cè)量范圍 為一55 °C?+125笆,可實(shí)現(xiàn)最高12位的測(cè)溫分辨 率,測(cè)溫精度可達(dá)±0.0625 °C,用戶還可設(shè)置溫度的 上下限報(bào)警值。DS18B20器件的外形圖如圖2所示。 圖3所示是DS18B20與單片機(jī)的連接電路。
圖3中的DS18B20的供電電壓可在+ 3 V? + 5.5V之間選取。通常為了簡便,都是選擇+ 5V。 DS18B20只需一根數(shù)據(jù)線就可實(shí)現(xiàn)控制命令和測(cè)溫數(shù)據(jù)的通訊傳輸。本系統(tǒng)中把DS18B20的DQ數(shù)據(jù) 線與ATmegal6單片機(jī)的PA7端口相連。雖然這種釆用DS18B20作為測(cè)溫元件的硬件電路相當(dāng)簡單, 但相對(duì)來說,單片機(jī)為實(shí)現(xiàn)溫度讀取而需要進(jìn)行的控 制與數(shù)據(jù)讀取的程序操作卻較為復(fù)雜和繁瑣。為獲取一次溫度數(shù)據(jù),單片機(jī)需要先對(duì)DS18B20器件進(jìn)行復(fù)位,再向DS18B20發(fā)送ROM操作指令和RAM 操作指令,然后才能執(zhí)行溫度數(shù)據(jù)的讀取。DS18B20 器件的測(cè)溫?cái)?shù)據(jù)由2個(gè)字節(jié)共16位組成,其中低12位即測(cè)溫的數(shù)值,高4位則代表是正攝氏度還是 負(fù)攝氏度。具體數(shù)據(jù)格式及測(cè)溫?cái)?shù)據(jù)如圖4所示。
1.2 無線收發(fā)器nRF2401及其接口電路
為實(shí)現(xiàn)測(cè)溫?cái)?shù)據(jù)的無線傳輸,本設(shè)計(jì)采用的新型 短距離無線收發(fā)芯片nRF2401是單片射頻收發(fā)器, 工作于2.4-2. 5 GHz的ISM頻段,芯片內(nèi)置頻率合 成器、功率放大器、晶體振蕩器和調(diào)制器等功能模塊, 輸出功率和通信頻道可通過程序進(jìn)行配置。芯片供 電電源電壓范圍為1. 9?3.6 V,具有多種低功率工 作模式,節(jié)能設(shè)計(jì)方便,功耗很低。當(dāng)以一5 dBm的 功率發(fā)射時(shí),其工作電流只有10.5 mA,接收時(shí)的工 作電流只有18 mA。其具有的DuoCeiver?技術(shù)使 該芯片可以使用同一天線同時(shí)接收兩個(gè)不同頻道的 數(shù)據(jù),并有125個(gè)頻道可供選擇。最高發(fā)射速率為 1 Mb/s,輸出功率可配置并支持雙通道接收和多種 低功耗模式。工作時(shí)只需要很少的外圍元件,因此, 使用起來非常方便。nRF2401芯片采用扁平24引 腳封裝,外形尺寸只有5 mmX 5 mm,其引腳排列及 內(nèi)部組成框圖如圖5所示。
nRF2401芯片的引腳功能說明如表1所列。
nRF2401芯片的外部電路連接如圖6所示。
nRF2401共有四種主模式:分別為收/發(fā)模式(RX/TX)、配置模式(configuration),空閑模式(Standby)和關(guān)機(jī)模式(Powerdown)?這四種工作模式由PWR_UP.CE和CS三個(gè)引腳控制,表2所列為其工作模式設(shè)置方法。其中收/發(fā)模式又分為ShockBurst?突發(fā)模式和直接模式,由nRF2401的配置字控制。
在突發(fā)模式下,待發(fā)數(shù)據(jù)低速進(jìn)入片內(nèi)FIFO,以高速發(fā)射出去,可以大大降低功耗。即使使用低速廉價(jià)的微控制器也可以滿足高速率發(fā)射數(shù)據(jù)的應(yīng)用需求。突發(fā)模式和直接模式均支持DuoCeiver?雙通道接收,即通道1(CLK1、DR1和DATA)和通道2(CLK2、DR2和DOUT2)。由于通道2只能接收數(shù)據(jù),并且其頻率始終比通道1高8MHzo因此,nRF2401可以使用同一天線同時(shí)接收兩個(gè)不同通道的數(shù)據(jù);配置模式用于向nRF2401寫入配置字;空閑模式可減小芯片功耗,同時(shí)又可以縮短芯片啟動(dòng)時(shí)間,在該模式下,部分晶振處于活動(dòng)狀態(tài),配置字內(nèi)容仍保留在芯片內(nèi);關(guān)機(jī)模式下,nRF2401被關(guān)閉,因而具有最小功耗,但配置字內(nèi)容仍保留在芯片內(nèi)。當(dāng)收發(fā)器處于不活動(dòng)狀態(tài)時(shí),可以進(jìn)入該模式,從而延長電池使用壽命。
nRF2401一般通過PA口與單片機(jī)進(jìn)行通信??蓪⒔邮諗?shù)據(jù)準(zhǔn)備好信號(hào)DR1、時(shí)鐘端CLK1和數(shù)據(jù)端DATA分別與單片機(jī)的PA2.PA1和PA0相連,以用于數(shù)據(jù)的接收和發(fā)送;電源控制端PWR_UP、激活控制端CE和片選端CS分別與單片機(jī)的PA6.PA5和PA4相連,可用于控制nRF2401的工作模式。
2 系統(tǒng)軟件設(shè)計(jì)
根據(jù)本系統(tǒng)確定的功能,主控節(jié)點(diǎn)主要負(fù)責(zé)巡回測(cè)量與顯示各節(jié)點(diǎn)的溫度(也可按鍵測(cè)量某一路的值)。其主控節(jié)點(diǎn)的軟件工作流程如圖7所示。
2.1 無線收發(fā)程序
由于系統(tǒng)中的nRF2401X作在突發(fā)模式,所以,上電后必須對(duì)配置字后面的120位進(jìn)行配置。15字節(jié)的配置字可通過三線接口(CS、CLK1和DATA)寫入片內(nèi)配置寄存器,寫時(shí)先寫高位。當(dāng)CS出現(xiàn)下降沿時(shí),寫入的配置字有效。
當(dāng)有數(shù)據(jù)要發(fā)送時(shí),首先應(yīng)將CE置1,激活片內(nèi)數(shù)據(jù)處理模塊,然后通過CLK1和DAIA引腳向片內(nèi)FIFO依次寫入接收端的地址和待發(fā)送的數(shù)據(jù),nRF2401自動(dòng)為其生成CRC校驗(yàn)碼,最后再將CE置0,nRF2401自動(dòng)添加頭部,激活一次ShockBurst?發(fā)射,完成發(fā)射后返回空閑模式。
接收數(shù)據(jù)時(shí),首先將CE置1,以激活接收模塊,然后200fis后,nRF2401進(jìn)入監(jiān)視狀態(tài)。當(dāng)檢測(cè)到一個(gè)有效的數(shù)據(jù)包(數(shù)據(jù)包的地址段和本機(jī)配置字中的接收地址匹配且CRC校驗(yàn)正確)時(shí),nRF2401自動(dòng)移除頭部、地址段和CRC校驗(yàn)位,并將DR1置1,以供控制器査詢或申請(qǐng)中斷。然后,控制器就可以以合適的速率將其中的數(shù)據(jù)段逐位移出。最后,當(dāng)所有數(shù)據(jù)移出后,nRF2401自動(dòng)將DR1清0,此時(shí)若CE仍為1,則準(zhǔn)備接收下一個(gè)數(shù)據(jù)包;若CE為0,則進(jìn)入空閑模式。
由ATmegal6單片機(jī)控制的數(shù)據(jù)無線收發(fā)流程如圖8所示。
2.2 溫度采集程序
按照對(duì)DS18B20的溫度釆集控制要求,可為ATmegal6單片機(jī)設(shè)計(jì)溫度釆集程序,事實(shí)上,其每一次測(cè)溫操作都必須遵循以下順序:
第一步:對(duì)DS18B20予以初始化,即單片機(jī)向DS18B20發(fā)送一低電平的復(fù)位脈沖,要求該低電平脈沖的寬度不得小于480μs。DS18B20在收到該復(fù)位脈沖后會(huì)回送一寬度為60?240μs的低電平“存在”脈沖,以告知主機(jī)該設(shè)備的存在且處于就緒狀態(tài);
第二步:單片機(jī)發(fā)送ROM命令(隨后是任何需要的讀寫時(shí)隙);
第三步:單片機(jī)發(fā)送RAM命令(隨后是任何需要的讀寫時(shí)隙)。
以上命令和數(shù)據(jù)操作都是通過DS18B20的DQ傳送(從最低位開始),而DQ線已與ATmegal6單片機(jī)的PA7端口相連,故在編程時(shí)必須保證端口地址設(shè)置正確且須嚴(yán)格按照DS18B20數(shù)據(jù)手冊(cè)中要求的時(shí)序進(jìn)行操作,以保證測(cè)溫?cái)?shù)據(jù)交換的正確性。
3 結(jié)語
本系統(tǒng)采用DS18B20作為數(shù)字溫度傳感器,并通過ATmegal6單片機(jī)控制nRF2401無線收發(fā)器實(shí)現(xiàn)了4路溫度數(shù)據(jù)的無線采集、傳輸與實(shí)時(shí)顯示。該系統(tǒng)不僅能夠?qū)崿F(xiàn)自動(dòng)巡回溫度檢測(cè),也可根據(jù)按鍵測(cè)量指定通道的溫度。本系統(tǒng)具有測(cè)溫簡單、精度高,便攜性強(qiáng)、布線不受地形限制等優(yōu)點(diǎn),可代替?zhèn)鹘y(tǒng)有線多路測(cè)溫系統(tǒng),故在工農(nóng)業(yè)生產(chǎn)實(shí)踐中具有良好應(yīng)用前景。