引言
在工農(nóng)業(yè)領域和日常生活中,溫度是zui常用的被控參數(shù)之一。目前,嵌入式系統(tǒng)發(fā)展迅速,其具有代碼少、速度快等特點,適合于可靠性和精度要求高的溫度實時系統(tǒng)。本文設計了一種結(jié)合嵌入式技術(shù)和無線傳感器技術(shù)的無線溫度采集系統(tǒng)。該系統(tǒng)具有高性能、低功耗的特點及快速處理數(shù)據(jù)的能力。
一、系統(tǒng)總體設計
無線溫度采集系統(tǒng)主要由溫度信號采集模塊、ARM920T控制模塊、無線收發(fā)模塊、顯示模塊、供電模塊組成。
無線溫度采集系統(tǒng)的核心采用韓國三星公司推出的ARM920T內(nèi)核S3C24l0的32位嵌入式微處理器,信號采集模塊選用溫度傳感器DS18B20,無線收發(fā)模塊選用CHIPCON公司生產(chǎn)的CC1100芯片。系統(tǒng)通過DSl8B20實時采集溫度數(shù)據(jù);利用函數(shù)初始化,設置CC1100芯片的各個寄存器,并通過SPI串行接口把溫度數(shù)據(jù)發(fā)送到CC1100芯片上。當CC1100接收到調(diào)制數(shù)據(jù)后,先對數(shù)據(jù)進行解調(diào),然后將數(shù)據(jù)傳送到S3C2410上,S3C2410再經(jīng)過編制程序?qū)?shù)據(jù)進行處理,zui后把溫度數(shù)據(jù)顯示在LCD液晶顯示屏上。系統(tǒng)框圖如圖1所示。
系統(tǒng)通過設定溫度測量時的上下界限,將環(huán)境溫度控制在所要求的范圍內(nèi),當溫度超出設定的范圍時,系統(tǒng)發(fā)出報警信號。
通過UART串行接口,控制模塊可以與PC進行數(shù)據(jù)通信,并繪制出溫度實時曲線,達到更加直觀、更加實時的無線溫度測量。
二、系統(tǒng)硬件設計
2.1控制模塊
ARM9的S3C2410芯片是整個系統(tǒng)的核心,其直接控制DS18B20進行溫度信號的采集,工作頻率zui高為202MHz。2片SDRAM,每片容量為32MB,用來存取系統(tǒng)運行時的程序,32bit數(shù)據(jù)總線。片選NSCS6接2片HY57V561620單元作為片選信號,CPU分配給這2片HY57V561620單元的地址空間為S3C24lO的Bank6區(qū)和Bank7區(qū)。
32MB的NANDFlash存儲器K9F5608U用來保存Bootloader、嵌入式Linux操作系統(tǒng)、應用程序等配置參數(shù)。該存儲單元有8bit數(shù)據(jù)總線,由S3C2410的相關引腳直接控制,CPU分配給它的地址空間為0x00000000~0x01ffffff,啟動代碼部分則放在從0x00000000開始的地址空間內(nèi)。系統(tǒng)將CPU的引腳OM[1:0]設置成00b,當核心板上電復位時,系統(tǒng)首先將NANDFlash開始地址中0~4kbit的程序映射到StePPinStone區(qū),然后從那里開始執(zhí)行。S3C2410具有一系列的外部接口:觸摸屏接口、HC總線接口、115總線接口、1個USB設備接口、2個USB主機接口、SD接口和MMC卡接口。本系統(tǒng)采用NANDFlash與SDRAM組合啟動的方式。
S3C2410在電源供給方式上也具有自身的特點,不同的部分需要不同的供電方式,如內(nèi)核用1.8v、存儲單元用3.3V、VDDQ用3.0/3V、I/O用3.3V。
S3C24l0通過I2C總線與4線SPI接口(S1、SO、SCLK和SCn)對CCll00進行配置、控制和數(shù)據(jù)收發(fā)。
2.2無線收發(fā)模塊
CCI1100為低功耗高集成性無線收發(fā)芯片,它為突發(fā)數(shù)據(jù)處理、清晰信道提供廣泛的硬件支持,非常適用于惡劣的無線環(huán)境。CCll00通過SPI接口來設定內(nèi)部寄存器的值并配置相應的工作方式。接收方式下,射頻輸入信號先通過低噪聲放大器(LNA)進行放大,然后通過混頻器把輸入信號轉(zhuǎn)換成中頻信號;在送給解調(diào)器之前,中頻信號被A/D轉(zhuǎn)換為數(shù)字信號,解調(diào)之后,進行前向糾錯和數(shù)據(jù)包處理,再把收到的數(shù)據(jù)存入接收FIFO中。在發(fā)射方式下,數(shù)據(jù)經(jīng)過調(diào)制之后被送到頻率合成器,再經(jīng)過90°的相移裝置發(fā)送給信號放大器(PA)。當S3C2410檢測到振動信號時,發(fā)送激活命令,CCll00進入接收模式,如果CC1100準備好接收,則可以開始接收數(shù)據(jù)。CC1100的RF收發(fā)器具有可配置的調(diào)制解調(diào)器,通過編程設置寄存器的參數(shù),可使CCll00支持不同的調(diào)制格式,zui高可達到500kbit/s。
2.3采集模塊
DSl8B20是Dallas公司生產(chǎn)的一線式數(shù)字式溫度傳感器。該傳感器針對溫度進行了內(nèi)部硬件修正,能直接與S3C2410相連,實現(xiàn)溫度測量,不需要A/D轉(zhuǎn)換電路,適用于低功耗的環(huán)境。DSl8B20電路圖如圖2所示。
DSl8B20內(nèi)部結(jié)構(gòu)為3引腳TO-92小體積封裝形式;溫度測量范圍為-55~+125℃,可編程為9-12bitA/D轉(zhuǎn)換精度,測溫分辨率可達0.0625℃,被測溫度采用符號擴展的16bit數(shù)字量方式串行輸出。DS18B20由4部分組成,即64bitROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。ROM中的64bit序列號是DS18BZO的地址序列碼,每一DSl8BZo的64bit序列號各不相同。DS18B20中的溫度傳感器完成對溫度的測量,并顯示16bit符號擴展的二進制補碼讀數(shù)形式,表達成0.0625℃/LSB,S為符號位。LCD的控制器使用S3C24lO內(nèi)部集成的控制器,其具有189.81mm(1英寸=25.4mm)、320x240像素、256色的彩屏,電源操作范圍為2.7-5.5V。
三、系統(tǒng)軟件設計
系統(tǒng)軟件設計包括建立嵌入式Linux系統(tǒng)的開發(fā)環(huán)境和移植。
基本的嵌入式Linux系統(tǒng)包括3個基本元素:系統(tǒng)引導程序,用于完成機器加電后的系統(tǒng)定位引導;Linux系統(tǒng)內(nèi)核,為嵌入式應用提供一個軟件環(huán)境,為應用程序完成基本的底層資源管理工作;初始化過程,完成基本的初始化。
3.1建立系統(tǒng)的開發(fā)環(huán)境開發(fā)環(huán)境
包括操作系統(tǒng)以及包括連接器、編譯器、調(diào)試器在內(nèi)的軟件。嵌入式系統(tǒng)軟件開發(fā)采用交叉編譯調(diào)試的方式。交叉編譯調(diào)試環(huán)境建立在宿主機Host(即PC機)上,而嵌入式ARM9-S3C2410系統(tǒng)為目標板Target,因此,通過網(wǎng)線把Host和Target相連,從而進行跨平臺開發(fā)。
系統(tǒng)安裝了1臺Redhat9.04系統(tǒng)的PC機作為宿主機。運行Linux的宿主機進行開發(fā)時,使用宿主機上的交叉編譯、匯編及連接工具形成可執(zhí)行的二進制代碼,再把這些二進制代碼下載到目標機上運行。采用ARM-LINUX-GCC3.3.2作為GNU交叉編譯工具,具體包括C/C++編譯器、匯編器、鏈接器、嵌入式系統(tǒng)的標準C庫、GDB代碼調(diào)試器U。這些工具可以從網(wǎng)上下載。
3.2U-boot的移植過程
U-boot是德國DENX小組開發(fā)的、在嵌入式操作系統(tǒng)運行之前執(zhí)行的一段Bootloader程序,是一個公開源代碼的軟件。其代碼源可以從上獲得版本為1.1.4.
通過U-boot進行初始化硬件設備,建立內(nèi)層空間的映射表,并且建立適當?shù)南到y(tǒng)軟硬件環(huán)境,為運行程序做好準備。其具體過程如下。
四、系統(tǒng)的實現(xiàn)
4.1系統(tǒng)環(huán)境
溫度測量系統(tǒng)軟件主要包括主程序、無線傳感器初始化子程序、無線傳感器讀數(shù)據(jù)子程序、溫度測量子程序、無線通信子程序等部分。
傳感器讀數(shù)據(jù)的代碼如下:
主程序流程如圖3所示:
4.2系統(tǒng)測試結(jié)果
未驗證測試結(jié)果,實驗室設置了溫度測量系統(tǒng),并采用精度為0.001℃的標準溫度計作為溫度測量標準。其測量結(jié)果過如表1所示。
五、結(jié)束語
本文結(jié)合嵌入式技術(shù)與無線通信技術(shù),提出了基于ARM9的無線溫度采集系統(tǒng)。系統(tǒng)采用單號線數(shù)字溫度傳感器DS18B20實現(xiàn)溫度采集,并利用無線通信模塊CC1100完成ARM9處理器與測溫節(jié)點間的數(shù)據(jù)傳輸,ARM9處理器實現(xiàn)系統(tǒng)控制和溫度顯示。