基于ZigBee技術的智能家居系統(tǒng)的設計方案
文章出處:http://www.sgrivertours.com 作者:中國一卡通收錄 人氣: 發(fā)表時間:2012年03月20日
1 引言
隨著信息時代的到來和網絡技術的飛速發(fā)展, 實現家庭信息化、網絡化是當今智能家居設備系統(tǒng)發(fā)展的新趨勢。智能家居系統(tǒng)是將相對獨立的家用電器構成一個統(tǒng)一的系統(tǒng), 進而實現對這些設備和家庭環(huán)境的智能管理、遠程監(jiān)控和資源共享。其目的是為人們提供一個安全、舒適、高效和便利的生活環(huán)境。本文介紹一種基于嵌入式Web 和ZigBee 技術的網絡化智能家居系統(tǒng)的設計和實現方案。
2 系統(tǒng)結構和功能介紹
系統(tǒng)有遠端PC、嵌入式網關、USB 攝像頭和ZigBee 組成的家庭內部無線網絡四部分組成。設計思想是在每一個家庭設備上都裝上ZigBee 模塊和相應傳感器來組成一個終端節(jié)點,用來實時監(jiān)控設備的狀態(tài), 并且把采集到的數據以無線方式發(fā)給ZigBee 協(xié)調器,這樣就由ZigBee 協(xié)調器和各終端設備組成了一個無線連接的星型結構的家庭內部網絡。嵌入式網關是系統(tǒng)的中樞,可以把USB 攝像頭采集的視頻信息和來自協(xié)調器接收的終端節(jié)點信號傳送到Internet 上, 這樣就把內部網絡連接到互聯(lián)網上。特別是USB 攝像頭的使用,讓用戶可以直觀的看到家里的一切變化, 彌補了大部分智能家居系統(tǒng)只可以查看家庭設備數字信息的不足。用戶可以通過遠程PC 機訪問家庭內部網絡,查看家庭設備的數字信息和視頻信息,實現遠程監(jiān)控的目的。
3 系統(tǒng)硬件設計
3.1 核心處理器模塊
本系統(tǒng)選用S3C2440A 作為核心控制器, 它是Samsung 公司推出的一款基于ARM920T 核的處理器, 采用了16/32 位RISC 處理器, 具有外部存儲器控制器,LCD 控制器,4 通道DMA控制器,三通道UART,兩通道SPI,兩路全速USB 主設備芯片,帶有MMU 虛擬存儲器單元,這一特性可以移植linux 系統(tǒng)和建立Web 服務器,主頻400MHz,有130 個I/O 端口和24 路外部中斷源,有多種通信接口,體積小,功耗和成本低,可靠性高,特別適合作為嵌入式微處理器。
3.2 存儲模塊
NAND FLASH 存儲模塊選擇Samsung 公司生產的K9F1208U0M-YCB0 64M*8bits 的高性能存儲芯片。掉電后信息不會丟失,用于存儲啟動代碼、內核和文件系統(tǒng)。
SDRAM 是系統(tǒng)的內存, 它不具有掉電保持數據的特性,其存取速度大大高于Flash 存儲器, 在系統(tǒng)中主要作程序的運行空間、數據和堆棧區(qū)。系統(tǒng)中SDRAM 選用K4S561632C-TC75芯片。K4S561632C-TC75 的存儲容量為16M*16 位(32M 字節(jié)),數據寬度為16 位,由于S3C2440A 是32 位的,外部總線也是32位的, 為了最大限度發(fā)揮處理器的性能, 本系統(tǒng)選用兩片K4S561632C-TC75 芯片并聯(lián)起來,以構成32 位內存系統(tǒng)。
3.3 以太網接口
系統(tǒng)選用CS8900A 芯片建立網絡接口。CS8900A 是Cirrus公司生產的一款單芯片、全雙工、全面支持IEEE802.3 標準的高集成以太網控制器。在本系統(tǒng)中網絡控制器發(fā)揮著重要作用,它負責將監(jiān)控數據發(fā)送到Internet, 并把來自Internet 的控制指令傳送至底層。
3.4 攝像頭選擇
對于圖像采集傳感器,采用以中星微公司的ZC301 感光芯片為核心的USB 攝像頭作為圖像采集模塊。中星微301 系列高清芯片擁有影像光源自動增益補強技術,自動白平衡、邊緣增強以及伽馬矯正等先進的攝像控制技術。
3.5 ZigBee 模塊
無線收發(fā)芯片采用Chipcon (已于2006 年被TI 公司收購)公司生產的CC2430.CC2430 芯片除了整合ZigBee 射頻(RF)前端、內存和微控制器外, 還具有128KB 可編程內存和8KB 的RAM、模擬數字轉換器(ADC) 、定時器(Timer) 、AES-128 協(xié)同處理器、看門狗定時器以及21 個可編程I/O 引腳等。因此選擇CC2430 做為無線收發(fā)部分, 使用起來非常容易上手。由于CC2430 的高度集成度, 外圍需要很少的器件可以組成最小系統(tǒng)。它結合Chipcon 公司全球先進的ZigBee 協(xié)議棧、工具包和參考設計,展示了領先的ZigBee 解決方案。其產品廣泛應用于汽車、工控系統(tǒng)、家居系統(tǒng)和無線傳感器網絡等領域。
4 系統(tǒng)軟件設計
系統(tǒng)軟件主要包括移植Linux 操作系統(tǒng),USB 攝像頭驅動的編寫,ZigBee 協(xié)調器工作程序和終端設備的收發(fā)程序,嵌入式Web 服務器的移植等等。
4.1 移植Linux 操作系統(tǒng)
本系統(tǒng)選用2.6 版本的Linux 內核, 首先從ftp://ftp.kernel.org/pub/linux/kernel/下載內核源碼。在編譯內核前先要修改根目錄下的Makefile 文件:
ARCH=arm
CROSS COMPILE=arm-linux-gcc
然后運行make menuconfig 進入配置菜單, 選擇需要的選項, 配置完成后保存退出, 依次執(zhí)行內核編譯命令:make dep ;make clean;make zImage 編譯成功后會在/linux/arch/arm/boot/下找到編譯好的內核鏡像文件zImage.然后可以用Bootloader 菜單命令把內核鏡像燒寫到NAND FLASH 中。
4.2 USB 攝像頭程序
在Linux kernel 源碼目錄中driver/usb/usb-skeleton.c 提供了一個基礎的USB 驅動程序。通過它僅需要修改極少的部分,就可以完成一個USB 設備的驅動。重新編譯內核生成攝像頭驅動文件,然后執(zhí)行insmod 加載USB 攝像頭驅動,Linux 系統(tǒng)就在/dev 目錄下注冊了USB 視頻設備/dev/video0.
攝像頭驅動程序安裝好后為了進行視頻采集必須加入Video4Linux 模塊,Video4Linux 是Linux 中關于視頻設備的內核驅動,它為針對視頻設備的應用程序提供一系列接口函數。對于USB 口攝像頭, 其驅動程序中需要提供基本的I/O 操作接口函數open、close、read、write 等的實現。對中斷的處理實現,內存映射功能以及I/O 通道的控制接口函數ioctl 的實現等, 并把它們定義在struct file_operations 中。這樣當應用程序對設備文件進行諸如open、close、read、write 等系統(tǒng)調用函數時,Linux 內核將通過file_operations 結構體訪問驅動程序提供的函數。
4.3 ZigBee 協(xié)調器和設備節(jié)點程序
ZigBee 家庭無線網絡主要負責對現場各種信息的監(jiān)控以及數據的采集, 并將內部處理過的數據經家庭網關傳送到外部網絡。本系統(tǒng)中ZigBee 協(xié)調器主要用于建立無線網絡,分配地址,向終端節(jié)點發(fā)送控制命令和接收終端節(jié)點的工作狀態(tài),并將接收到的狀態(tài)數據全部上傳至Web 服務器, 最后通過Internet傳送到遠端的用戶端。終端設備節(jié)點主要有加入網絡,接收控制命令,以及發(fā)送狀態(tài)信息給協(xié)調器等。協(xié)調器主程序流程如圖2所示。
4.4 Web 服務器
Web 服務器的作用是監(jiān)聽用戶的服務請求, 并根據用戶的請求給出相應的服務。服務器和客戶端瀏覽器之間的通信協(xié)議是超文本傳輸協(xié)議HTTP.HTTP 協(xié)議規(guī)定了發(fā)送和請求的標準方式, 瀏覽器和服務器之間傳輸的消息格式及各種控制信息。
Linux 支持boa、httpd、thttpd 等幾種Web 服務器, 其中boa 是一款單任務的Web 服務器軟件,源代碼開放,速度快,性能優(yōu)秀,支持能夠實現動態(tài)Web 技術的CGI(Common Gateway Interface)技術,特別適合應用在嵌入式系統(tǒng)中。
CGI 提供了一個Web 服務器的外部程序通道,運行在服務器上,由瀏覽器輸入觸發(fā),是Web 服務器和系統(tǒng)中其他程序連接的通道。CGI 程序就是符合這種接口的程序。服務器接收到用戶的請求,并將數據送給CGI 程序,CGI 程序接收到數據后,啟動編寫好的應用程序,并按照用戶提供的數據執(zhí)行。應用程序執(zhí)行完成后,返回執(zhí)行結果,并通過Web 服務器傳送給用戶瀏覽器顯示。
本系統(tǒng)采用了CGI 來實現動態(tài)Web 技術,CGI 規(guī)定了Web服務器調用其他可執(zhí)行程序(CGI 程序)的接口協(xié)議標準。Web服務器通過CGI 程序實現和瀏覽器的交互,也就是CGI 程序接受瀏覽器發(fā)送給Web 服務器的信息進行處理,將響應結果再回送給Web 服務器及瀏覽器。CGI 程序可以用多種程序設計語言編寫, 本系統(tǒng)選用C 語言編寫的CGI 程序。嵌入式Web 服務器工作流程如圖3 所示。
5 系統(tǒng)測試
將服務器用網線和電腦主機相連, 服務器的地址設為192.168.1.6,電腦主機地址為192.168.1.8(只要主機IP 和服務器IP 處在同一個網段就可以)系統(tǒng)的網頁包括家電系統(tǒng)、安防系統(tǒng)和視頻畫面三個頁面,這三個畫面可以相互切換, 在瀏覽器輸入服務器IP 對系統(tǒng)進行測試,并選擇攝像頭遠程控制畫面,攝像頭采集的視頻畫面截圖如圖4 所示。
6 結論
本文設計的智能家居綜合控制系統(tǒng),采用ZigBee 技術組建家庭內部無線網絡, 用USB 攝像頭實時采集家庭視頻信息,在S3C2440A 為控制核心的硬件平臺移植嵌入式Linux 操作系統(tǒng)和Web 服務器完成家庭網關的設計,經過實際測試,本系統(tǒng)達到了家庭信息網絡化的目的,實現了對家庭設備遠程監(jiān)控的愿望。系統(tǒng)的功能強大,功耗低,實現簡單,具有廣闊的應用前景。