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