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