[導讀]智能家居系統是將相對獨立的家用電器構成一個(gè)統一的系統,進(jìn)而實(shí)現對這些設備和家庭環(huán)境的智能管理、遠程監控和資源共享。
智能家居系統是將相對獨立的家用電器構成一個(gè)統一的系統,進(jìn)而實(shí)現對這些設備和家庭環(huán)境的智能管理、遠程監控和資源共享。其目的是為人們提供一個(gè)安全、舒適、高效和便利的生活環(huán)境。本文介紹一種基于嵌入式Web和ZigBee技術(shù)的網(wǎng)絡(luò )化智能家居系統的設計和實(shí)現方案。
1、系統結構和功能介紹
系統有遠端PC、嵌入式網(wǎng)關(guān)、USB攝像頭和ZigBee組成的家庭內部無(wú)線(xiàn)網(wǎng)絡(luò )四部分組成。設計思想是在每一個(gè)家庭設備上都裝上ZigBee模塊和相應傳感器來(lái)組成一個(gè)終端節點(diǎn),用來(lái)實(shí)時(shí)監控設備的狀態(tài),并且把采集到的數據以無(wú)線(xiàn)方式發(fā)給ZigBee協(xié)調器,這樣就由ZigBee協(xié)調器和各終端設備組成了一個(gè)無(wú)線(xiàn)連接的星型結構的家庭內部網(wǎng)絡(luò )。嵌入式網(wǎng)關(guān)是系統的中樞,可以把USB攝像頭采集的視頻信息和來(lái)自協(xié)調器接收的終端節點(diǎn)信號傳送到Internet上,這樣就把內部網(wǎng)絡(luò )連接到互聯(lián)網(wǎng)上。特別是USB攝像頭的使用,讓用戶(hù)可以直觀(guān)的看到家里的一切變化,彌補了大部分智能家居系統只可以查看家庭設備數字信息的不足。用戶(hù)可以通過(guò)遠程PC機訪(fǎng)問(wèn)家庭內部網(wǎng)絡(luò ),查看家庭設備的數字信息和視頻信息,實(shí)現遠程監控的目的。
2、系統硬件設計
2.1核心處理器模塊
本系統選用S3C2440A作為核心控制器,它是Samsung公司推出的一款基于A(yíng)RM920T核的處理器,采用了16/32位RISC處理器,具有外部存儲器控制器,LCD控制器,4通道DMA控制器,三通道UART,兩通道SPI,兩路全速USB主設備芯片,帶有MMU虛擬存儲器單元,這一特性可以移植linux系統和建立Web服務(wù)器,主頻400MHz,有130個(gè)I/O端口和24路外部中斷源,有多種通信接口,體積小,功耗和成本低,可靠性高,特別適合作為嵌入式微處理器。
2.2存儲模塊
NANDFLASH存儲模塊選擇Samsung公司生產(chǎn)的K9F1208U0M-YCB064 M*8bits的高性能存儲芯片。掉電后信息不會(huì )丟失,用于存儲啟動(dòng)代碼、內核和文件系統。
SDRAM是系統的內存,它不具有掉電保持數據的特性,其存取速度大大高于Flash存儲器,在系統中主要作程序的運行空間、數據和堆棧區。系統中SDRAM選用K4S561632C-TC75芯片。K4S561632C-TC75的存儲容量為16M*16位(32M字節),數據寬度為16位,由于S3C2440A是32位的,外部總線(xiàn)也是32位的,為了最大限度發(fā)揮處理器的性能,本系統選用兩片K4S561632C-TC75芯片并聯(lián)起來(lái),以構成32位內存系統。
2.3以太網(wǎng)接口
系統選用CS8900A芯片建立網(wǎng)絡(luò )接口。CS8900A是Cirrus公司生產(chǎn)的一款單芯片、全雙工、全面支持IEEE802.3標準的高集成以太網(wǎng)控制器。在本系統中網(wǎng)絡(luò )控制器發(fā)揮著(zhù)重要作用,它負責將監控數據發(fā)送到Internet,并把來(lái)自Internet的控制指令傳送至底層。
2.4攝像頭選擇
對于圖像采集傳感器,采用以中星微公司的ZC301感光芯片為核心的USB攝像頭作為圖像采集模塊。中星微301系列高清芯片擁有影像光源自動(dòng)增益補強技術(shù),自動(dòng)白平衡、邊緣增強以及伽馬矯正等先進(jìn)的攝像控制技術(shù)。
2.5ZigBee模塊
無(wú)線(xiàn)收發(fā)芯片采用Chipcon(已于2006年被TI公司收購)公司生產(chǎn)的CC2430.CC2430芯片除了整合ZigBee射頻(RF)前端、內存和微控制器外,還具有128KB可編程內存和8KB的RAM、模擬數字轉換器(ADC)、定時(shí)器(Timer)、AES-128協(xié)同處理器、看門(mén)狗定時(shí)器以及21個(gè)可編程I/O腳等。因此選擇CC2430做為無(wú)線(xiàn)收發(fā)部分,使用起來(lái)非常容易上手。由于CC2430的高度集成度,外圍需要很少的器件可以組成最小系統。它結合Chipcon公司全球先進(jìn)的ZigBee協(xié)議棧、工具包和參考設計,展示了領(lǐng)先的ZigBee解決方案。其產(chǎn)品廣泛應用于汽車(chē)、工控系統、家居系統和無(wú)線(xiàn)傳感器網(wǎng)絡(luò )等領(lǐng)域。
3、系統軟件設計
系統軟件主要包括移植Linux操作系統,USB攝像頭驅動(dòng)的編寫(xiě),ZigBee協(xié)調器工作程序和終端設備的收發(fā)程序,嵌入式Web服務(wù)器的移植等等。
3.1移植Linux操作系
本系統選用2.6版本的Linux內核,首先從內核源碼。在編譯內核前先要修改根目錄下的Makefile文件:
ARCH=arm
CROSSCOMPILE=arm-linux-gcc
然后運行makemenuconfig進(jìn)入配置菜單,選擇需要的選項,配置完成后保存退出,依次執行內核編譯命令:makedep;makeclean;makezImage編譯成功后會(huì )在/linux/arch/arm/boot/下找到編譯好的內核鏡像文件zImage.然后可以用Bootloader菜單命令把內核鏡像燒寫(xiě)到NANDFLASH中。
3.2USB攝像頭程序
在Linuxkernel源碼目錄中driver/usb/usb-skeleton.c提供了一個(gè)基礎的USB驅動(dòng)程序。通過(guò)它僅需要修改極少的部分,就可以完成一個(gè)USB設備的驅動(dòng)。重新編譯內核生成攝像頭驅動(dòng)文件,然后執行insmod加載USB攝像頭驅動(dòng),Linux系統就在/dev目錄下注冊了USB視頻設備/dev/video0.
攝像頭驅動(dòng)程序安裝好后為了進(jìn)行視頻采集必須加入Video4Linux模塊,Video4Linux是Linux中關(guān)于視頻設備的內核驅動(dòng),它為針對視頻設備的應用程序提供一系列接口函數。對于USB口攝像頭,其驅動(dòng)程序中需要提供基本的I/O操作接口函數open、close、read、write等的實(shí)現。對中斷的處理實(shí)現,內存映射功能以及I/O通道的控制接口函數ioctl的實(shí)現等,并把它們定義在structfile_operation中。這樣當應用程序對設備文件進(jìn)行諸如open、close、read、write等系統調用函數時(shí),Linux內核將通過(guò)file_operation結構體訪(fǎng)問(wèn)驅動(dòng)程序提供的函數。