基于ZigBee的溫室監(jiān)控系統(tǒng)網(wǎng)關(guān)設(shè)計(jì)
3.1 移植Bootloader
Bootloader是在操作系統(tǒng)內(nèi)核運(yùn)行之前執(zhí)行的一小段程序,通過這段程序初始化硬件設(shè)備。Bootloader可移植性強(qiáng),只要根據(jù)硬件資源修改少量代碼即可直接使用。
3.2 移植Linux內(nèi)核
Linux內(nèi)核是嵌入式操作系統(tǒng)的核心,內(nèi)核移植包括內(nèi)核配置、內(nèi)核編譯、內(nèi)核下載3個(gè)部分。嵌入式設(shè)備主要用NAND Flash作為存儲器,NAND Flash容量有限,因此在配置內(nèi)核時(shí)需要裁減一些不需要的功能以減小內(nèi)核的體積。由于要將編譯好的Linux內(nèi)核映像和文件系統(tǒng)映像燒寫到NAND Flash中,因此設(shè)置NAND Flash分區(qū)。本項(xiàng)目采用256 MB的NAND Flash,將其分為3個(gè)區(qū):0區(qū)為Bootloader分區(qū),1區(qū)為內(nèi)核分區(qū),2區(qū)為根文件系統(tǒng)分區(qū)。內(nèi)核配置完成后執(zhí)行make zImage命令生成Linux內(nèi)核映像文件,然后將內(nèi)核映像文件下載至NAND Flash的內(nèi)核分區(qū)上。
3.3 移植根文件系統(tǒng)和BOA服務(wù)器
根文件系統(tǒng)是嵌入式Linux系統(tǒng)啟動的重要組成部分,也是用戶應(yīng)用程序的載體。本方案采用busybox制作yaffs2文件系統(tǒng),并在文件系統(tǒng)中加入BOA服務(wù)器。BOA是一款單任務(wù)的HTTP服務(wù)器,當(dāng)有連接請求到來時(shí),通過建立HTTP請求列表來處理多路HTTP連接請求,同時(shí)它為CGI程序創(chuàng)建新的進(jìn)程。
移植好BOA服務(wù)器后,在文件系統(tǒng)中建立/var/www/cgi-bin文件夾,此文件夾用于存放靜態(tài)網(wǎng)頁和CGI程序。
3.4 網(wǎng)關(guān)軟件設(shè)計(jì)
網(wǎng)關(guān)軟件程序流程如圖5所示。S3C2440通過I/O端口觸發(fā)CC2430,使其無線發(fā)送相應(yīng)的指令,遠(yuǎn)程控制傳感器節(jié)點(diǎn)進(jìn)行數(shù)據(jù)采集。采集到的數(shù)據(jù)通過UART串口傳回S3C2440并上傳至嵌入式BOA服務(wù)器。用戶通過IE瀏覽器就可以實(shí)時(shí)采集到相應(yīng)的環(huán)境信息。本文引用地址:http://www.ex-cimer.com/article/156144.htm
傳感節(jié)點(diǎn)采集到的數(shù)據(jù)最終將上傳至嵌入式BOA服務(wù)器上,用戶可通過IE瀏覽器訪問服務(wù)器IP地址來監(jiān)測溫室的環(huán)境信息,監(jiān)測網(wǎng)頁如圖6所示。
結(jié)語
本文基于S3C2440平臺和Linux操作系統(tǒng)提出了一種ZigBee網(wǎng)關(guān)的設(shè)計(jì)方法,并給出了硬件和軟件的實(shí)現(xiàn)方法,實(shí)現(xiàn)了ZigBee無線局域網(wǎng)絡(luò)與以太網(wǎng)的數(shù)據(jù)互通。該網(wǎng)關(guān)成功地用于溫室監(jiān)控系統(tǒng)中,具有穩(wěn)定性好、實(shí)時(shí)性強(qiáng)、可遠(yuǎn)距離監(jiān)控等特點(diǎn)。
評論