在現(xiàn)代工農(nóng)業(yè)生產(chǎn)中,常常需要對環(huán)境溫度進(jìn)行檢測。傳統(tǒng)的方法往往費時、費力,效率低下,不便應(yīng)用在對較大環(huán)境的溫度檢測中。本文設(shè)計了一種基于無線射頻技術(shù)的溫度檢測終端,它以RF(射頻)芯片CC2430為核心,在溫度傳感器DS1822的配合下,能夠高效地完成對環(huán)境溫度的無線檢測。
1 CC2430芯片概述
CC2430芯片為Chipcon公司生產(chǎn)的2.4 GHz射頻系統(tǒng)單芯片,其結(jié)構(gòu)框圖如圖1所示。
2 DS1822結(jié)構(gòu)特點與基本操作指令
DS1822是一種一線數(shù)字溫度計,它用一根信號線來實現(xiàn)互連通信,其內(nèi)部電路的核心是一個直接數(shù)字輸出的溫度傳感器。它可以將-55℃~125℃范圍內(nèi)的溫度值按9位、10位、11位、12位的分辨率進(jìn)行量化,其分辨率為0.625℃,工作電壓范圍為3.0 V~5.5 V。每一片DS1822都有一個的且不可改寫的ROM ID(標(biāo)識碼,即電子序列號),在實際應(yīng)用中可以通過指令方便地進(jìn)行查詢。
DS1822的主要操作指令如下:
a)Search ROM指令(代碼為FOh):用以讀取在線的DS1822的序列號。
b)write Scratchpad指令(代碼為4Eh):將溫度報警上、下限值分別寫入DS1822便箋式存儲器的TH與TL字節(jié)中。
c)Convert T指令(代碼為44h):啟動DS1822進(jìn)行溫度A/D轉(zhuǎn)換。
d):Read Scratchpad指令(代碼為BEh):讀取便箋式寄存器中的溫度值。
3 終端硬件設(shè)計
CC2430芯片只需少量外圍部件配合就能實現(xiàn)信號的收發(fā)功能。圖2為該溫度檢測終端的硬件結(jié)構(gòu)。
電路使用一個非平衡天線,連接非平衡變壓器可使天線性能更好。電路中的非平衡變壓器由電容C1和電感L1、L2、L3以及一個PCB(印制板)微波傳輸線組成,整個結(jié)構(gòu)滿足RF輸入/輸出匹配電阻(50 Ω)的要求。內(nèi)部T/R交換電路完成LNA和PA之間的交換。R1和R2為偏置電阻,R1主要用來為32 MHz的晶振提供一個合適的工作電流。用1個32 MHz的石英諧振器(XTAL1)和2個電容(C2和C3)構(gòu)成一個32 MHz的晶振電路。用1個32.768 kHz的石英諧振器(XTA12)和2個電容(C4和C5)構(gòu)成一個32.768kHz的晶振電路。電壓調(diào)節(jié)器為所有要求1.8 V電壓的引腳和內(nèi)部電源供電,電容C6和C7是去耦電容,用來為電源濾波,以提高芯片工作的穩(wěn)定性。溫度傳感器DS1822的數(shù)據(jù)輸入/輸出端DQ接P0_0引腳,該 引腳具有4 mA的輸出驅(qū)動能力。
4 終端軟件設(shè)計
軟件部分需要解決的問題包括:溫度及報警信號采集、ZigBee協(xié)議棧(z-Stack)、ZigBee通信等。
溫度及報警信號的采集可由CC2430芯片內(nèi)部的MCU完成。
ZigBee協(xié)議棧運行在一個OSAL(操作系統(tǒng)抽象層)操作系統(tǒng)上。該操作系統(tǒng)基于任務(wù)調(diào)度機(jī)制,通過對任務(wù)的事件觸發(fā)來實現(xiàn)任務(wù)調(diào)度。每個任務(wù)都包含若干個事件,每個事件都對應(yīng)一個事件號。當(dāng)一個事件產(chǎn)生時,對應(yīng)任務(wù)的事件就被設(shè)置為相應(yīng)的事件號,這樣,事件調(diào)度就會調(diào)用相應(yīng)的任務(wù)處理程序。OSAL中的任務(wù)可以通過任務(wù)API將其添加到系統(tǒng)中,這樣就可以實現(xiàn)多任務(wù)機(jī)制。OSAL任務(wù)調(diào)度流程如圖3所示。
NextActive Task()是一個任務(wù)事件查詢函數(shù),返回任務(wù)的事件狀態(tài)Active Task。軟件設(shè)計時,可通過ActiveTask的值來決定是否需執(zhí)行對應(yīng)的任務(wù)函數(shù)ActiveTask()。
5 終端工作原理
該終端系統(tǒng)設(shè)計中采用DMA向存儲器內(nèi)部寫終端控制程序。正式使用時,終端控制程序被啟動,終端首先完成其內(nèi)部系統(tǒng)的初始化,即通信協(xié)議的初始化,各端口使能與初始化,確認(rèn)溫度傳感器連接完好,向DS1822中TH/TL位寫入/溫度門限,讀取該溫度傳感器的身份標(biāo)志碼(該標(biāo)志碼亦代表該終端設(shè)備的身份),并將該終端標(biāo)志碼傳回管理中心,以示該終端處于就緒狀態(tài),并準(zhǔn)備隨時接受管理中心的啟動指令。啟動后,終端由自己內(nèi)部的MCU(即CC2430內(nèi)部的MCU)控制,定期向溫度傳感器DS1822發(fā)送溫度轉(zhuǎn)換指令,DS1822在完成溫度轉(zhuǎn)換后會自動將溫度值和TH/TL寄存器中的觸發(fā)門限相比較,如比較結(jié)果表明測量溫度高于TH或低于TL中的門限值,則設(shè)置報警標(biāo)志位。隨后,MCU在讀取溫度值的同時也讀取報警標(biāo)志位,并將這些數(shù)據(jù)信號傳回管理中心。這樣,終端就完成了溫度的檢測與報警功能。
該終端也可隨時接收來自管理中心的查詢指令。
由于該類終端每一片都有自己的身份標(biāo)志碼,所以,一個管理中心可以管理多個這樣的終端,并能準(zhǔn)確區(qū)分它們。利用多個此類終端可對較大環(huán)境的溫度實現(xiàn)實時、無線、多點的檢測。
6 結(jié)束語
本文設(shè)計的溫度檢測終端,其外圍 設(shè)備簡單、功耗低,傳輸無線化,可以用在諸如溫室、倉庫等場合。