基于CC2430的無(wú)線(xiàn)溫度檢測終端的設計
——
在現代工農業(yè)生產(chǎn)中,常常需要對環(huán)境溫度進(jìn)行檢測。傳統的方法往往費時(shí)、費力,效率低下,不便應用在對較大環(huán)境的溫度檢測中。
本文設計了一種基于無(wú)線(xiàn)射頻技術(shù)的溫度檢測終端,它以RF(射頻)芯片CC2430為核心,在溫度傳感器DS1822的配合下,能夠高效地完成對環(huán)境溫度的無(wú)線(xiàn)檢測。
1 CC2430芯片概述
CC2430芯片為Chipcon公司生產(chǎn)的2.4 GHz射頻系統單芯片,其結構框圖如圖1所示。

該單芯片上整合了ZigBee RF前端,內存,微控制器。其主要特點(diǎn)如下:高性能和低功耗的8051微控制器核;集成符合IEEE 802.15.4標準的2.4 GHz的RF無(wú)線(xiàn)電收發(fā)機;優(yōu)良的無(wú)線(xiàn)接收靈敏度和強大的抗干擾性;在休眠模式時(shí)僅0.9μA的流耗,外部的中斷或RTC(實(shí)時(shí)時(shí)鐘)喚醒系統,在待機模式時(shí)少于0.6μA的流耗,外部的中斷能喚醒系統;硬件支持CSMA/CA(具有檢測沖擊的載波偵聽(tīng)多路接人)功能;較寬的電壓范圍(2.O V~3.6 V);數字化的RSSI(接收信號強度指示)/LQI(鏈路質(zhì)量指示)支持和強大的DMA(直接存儲器存取)功能;具有電池監測和溫度感測功能;集成了14位ADC(A/D轉換器);集成AES(高級加密標準)安全協(xié)處理器;帶有2個(gè)強大的支持幾組協(xié)議的USART(通用異步同步收發(fā)器),以及1個(gè)符合IEEE 802.15.4規范的MAC(媒體訪(fǎng)問(wèn)控制)層計時(shí)器,1個(gè)常規的16位計時(shí)器和2個(gè)8位計時(shí)器;21個(gè)可編程的I/O引腳,P0、P1口是完全8位口,P2口只有5個(gè)可使用位,可以由軟件設定一組SFR(專(zhuān)用寄存器)的位和字節,使這些引腳作為通常的I/O口或作為連接ADC、計時(shí)器、USART等部件的外圍設備口使用。
2 DS1822結構特點(diǎn)與基本操作指令
DS1822是一種一線(xiàn)數字溫度計,它用一根信號線(xiàn)來(lái)實(shí)現互連通信,其內部電路的核心是一個(gè)直接數字輸出的溫度傳感器。它可以將-55℃~125℃范圍內的溫度值按9位、10位、11位、12位的分辨率進(jìn)行量化,其最高分辨率為0.625℃,工作電壓范圍為3.0 V~5.5 V。每一片DS1822都有一個(gè)唯一的且不可改寫(xiě)的ROM ID(標識碼,即電子序列號),在實(shí)際應用中可以通過(guò)指令方便地進(jìn)行查詢(xún)。
DS1822的主要操作指令如下:
a)Search ROM指令(代碼為FOh):用以讀取在線(xiàn)的DS1822的序列號。
b)write Scratchpad指令(代碼為4Eh):將溫度報警上、下限值分別寫(xiě)入DS1822便箋式存儲器的TH與TL字節中。
c)Convert T指令(代碼為44h):?jiǎn)?dòng)DS1822進(jìn)行溫度A/D轉換。
d):Read Scratchpad指令(代碼為BEh):讀取便箋式寄存器中的溫度值。
3 終端硬件設計
CC2430芯片只需少量外圍部件配合就能實(shí)現信號的收發(fā)功能。圖2為該溫度檢測終端的硬件結構。

電路使用一個(gè)非平衡天線(xiàn),連接非平衡變壓器可使天線(xiàn)性能更好。電路中的非平衡變壓器由電容C1和電感L1、L2、L3以及一個(gè)PCB(印制板)微波傳輸線(xiàn)組成,整個(gè)結構滿(mǎn)足RF輸入/輸出匹配電阻(50 Ω)的要求。內部T/R交換電路完成LNA和PA之間的交換。R1和R2為偏置電阻,R1主要用來(lái)為32 MHz的晶振提供一個(gè)合適的工作電流。用1個(gè)32 MHz的石英諧振器(XTAL1)和2個(gè)電容(C2和C3)構成一個(gè)32 MHz的晶振電路。用1個(gè)32.768 kHz的石英諧振器(XTA12)和2個(gè)電容(C4和C5)構成一個(gè)32.768kHz的晶振電路。電壓調節器為所有要求1.8 V電壓的引腳和內部電源供電,電容C6和C7是去耦電容,用來(lái)為電源濾波,以提高芯片工作的穩定性。溫度傳感器DS1822的數據輸入/輸出端DQ接P0_0引腳,該 引腳具有4 mA的輸出驅動(dòng)能力。
4 終端軟件設計
軟件部分需要解決的問(wèn)題包括:溫度及報警信號采集、ZigBee協(xié)議棧(z-Stack)、ZigBee通信等。
溫度及報警信號的采集可由CC2430芯片內部的MCU完成。
ZigBee協(xié)議棧運行在一個(gè)OSAL(操作系統抽象層)操作系統上。該操作系統基于任務(wù)調度機制,通過(guò)對任務(wù)的事件觸發(fā)來(lái)實(shí)現任務(wù)調度。每個(gè)任務(wù)都包含若干個(gè)事件,每個(gè)事件都對應一個(gè)事件號。當一個(gè)事件產(chǎn)生時(shí),對應任務(wù)的事件就被設置為相應的事件號,這樣,事件調度就會(huì )調用相應的任務(wù)處理程序。OSAL中的任務(wù)可以通過(guò)任務(wù)API將其添加到系統中,這樣就可以實(shí)現多任務(wù)機制。OSAL任務(wù)調度流程如圖3所示。
NextActive Task()是一個(gè)任務(wù)事件查詢(xún)函數,返回任務(wù)的事件狀態(tài)Active Task。軟件設計時(shí),可通過(guò)ActiveTask的值來(lái)決定是否需執行對應的任務(wù)函數ActiveTask()。

ZigBee的通信或數據傳輸涉及到兩種通信幀格式:KVP(關(guān)鍵值偶)幀格式、消息(Message)幀格式。在發(fā)送數據量較大時(shí)選擇Message方式;當只需要發(fā)送1個(gè)字節或幾個(gè)字節的命令或數據時(shí),可以使用KVP格式,該格式是ZigBee協(xié)議定義好的一種通信方式,操作比較簡(jiǎn)單,調用相應的信息發(fā)送函數即可實(shí)現兩點(diǎn)問(wèn)的通信。該終端設計中采用后一種通信幀格式,在充分利用開(kāi)發(fā)工具CC2430ZDK Pro內部現有的協(xié)議棧的情況下,可以方便地完成通信部分的軟件開(kāi)發(fā)工作。
5 終端工作原理
該終端系統設計中采用DMA向存儲器內部寫(xiě)終端控制程序。正式使用時(shí),終端控制程序被啟動(dòng),終端首先完成其內部系統的初始化,即通信協(xié)議的初始化,各端口使能與初始化,確認溫度傳感器連接完好,向DS1822中TH/TL位寫(xiě)入最高/最低溫度門(mén)限,讀取該溫度傳感器的身份標志碼(該標志碼亦代表該終端設備的身份),并將該終端標志碼傳回管理中心,以示該終端處于就緒狀態(tài),并準備隨時(shí)接受管理中心的啟動(dòng)指令。啟動(dòng)后,終端由自己內部的MCU(即CC2430內部的MCU)控制,定期向溫度傳感器DS1822發(fā)送溫度轉換指令,DS1822在完成溫度轉換后會(huì )自動(dòng)將溫度值和TH/TL寄存器中的觸發(fā)門(mén)限相比較,如比較結果表明測量溫度高于TH或低于TL中的門(mén)限值,則設置報警標志位。隨后,MCU在讀取溫度值的同時(shí)也讀取報警標志位,并將這些數據信號傳回管理中心。這樣,終端就完成了溫度的檢測與報警功能。
該終端也可隨時(shí)接收來(lái)自管理中心的查詢(xún)指令。
由于該類(lèi)終端每一片都有自己唯一的身份標志碼,所以,一個(gè)管理中心可以管理多個(gè)這樣的終端,并能準確區分它們。利用多個(gè)此類(lèi)終端可對較大環(huán)境的溫度實(shí)現實(shí)時(shí)、無(wú)線(xiàn)、多點(diǎn)的檢測。
6 結束語(yǔ)
本文設計的溫度檢測終端,其外圍 設備簡(jiǎn)單、功耗低,傳輸無(wú)線(xiàn)化,可以用在諸如溫室、倉庫等場(chǎng)合。
評論