基于A(yíng)RM-LINUX平臺的物聯(lián)網(wǎng)服務(wù)器設計

發(fā)布時(shí)間:2014-12-16 10:42    發(fā)布者:designapp

        基于XSCALE PXA270處理器平臺和開(kāi)源Linux系統搭建ARM-Linux物聯(lián)網(wǎng)服務(wù)器。使用51單片機連接溫濕度傳感模塊、LED燈等外圍設備,使用基十XSCALE PXA270處理器的Up-Tech嵌入式實(shí)驗箱為核心服務(wù)器運行平臺。首先介紹了嵌入式設備的ARM-Linux系統搭建、守護程序和CGI程序之間的通信設計,然后詳細介紹了Web服務(wù)器的搭建和網(wǎng)絡(luò )程序設計所使用的iQuery類(lèi)庫和AJAX技術(shù)的設計實(shí)現。
物聯(lián)網(wǎng)是互聯(lián)網(wǎng)應用的擴展,是一種新興的聯(lián)網(wǎng)技術(shù),其核心是物與物之間的信息通信交流,也是物與人之間的交互控制。物聯(lián)網(wǎng)技術(shù),主要是利用各種傳感器設備,例如:無(wú)線(xiàn)技術(shù)、射頻識別(RFID)技術(shù),各類(lèi)傳感器等技術(shù)設備將物理世界中的各種信息,如溫度、光強、位置等信息通過(guò)網(wǎng)絡(luò )傳輸,達到物與物之間、物與人之間的信息交互目的。
要使人們能方便地訪(fǎng)問(wèn)物聯(lián)網(wǎng)信息,監測和控制各類(lèi)傳感節點(diǎn)和電氣設備,一個(gè)友好的用戶(hù)界面是前提;贐/S架構的解決方案以其客戶(hù)端通用性成為構建系統的首選。本文將設計開(kāi)發(fā)一個(gè)通用的基于A(yíng)RM處理器平臺和Linux嵌入式操作系統的物聯(lián)網(wǎng)服務(wù)器,在硬件平臺上,將使用基于XSCALEPXA270處理器的UPTECH嵌入式開(kāi)發(fā)實(shí)驗箱、51單片機及各種傳感控制設備。在此嵌入式設備上使用ARM LinuX系統,在嵌入式Linux系統下搭建服務(wù)器,采用B/S架構,以BOA為WEB服務(wù)器,通過(guò)CGI通信方式實(shí)現遠程的信息傳遞和智能交互。
1 系統體系結構
為了突出現代物聯(lián)網(wǎng)服務(wù)器系統的低功耗、低成本、服務(wù)水平高、處理效率高的特點(diǎn),服務(wù)器將運行在基于XSCALE PXA270處理器的UP—Tech嵌入式設備上,利用51單片機連接各種傳感控制設備。
在UP-Tech嵌入式設備上移植了2.6.28內核的ARM Linux操作系統。在Linux系統上面,編寫(xiě)一個(gè)守護程序來(lái)與51單片機通信,從而在Linux系統上與各種傳感控制設備進(jìn)行通信控制。在Linux上面移植Boa WEB服務(wù)器,用來(lái)搭建用戶(hù)可交互式的訪(fǎng)問(wèn)界面。使用戶(hù)通過(guò)瀏覽器訪(fǎng)問(wèn)頁(yè)面就可以實(shí)時(shí)進(jìn)行查看或控制各種傳感控制設備。
系統架構如圖1所示。



圖1 系統架構





       
2 物聯(lián)網(wǎng)數據采集與處理子系統設計
2.1 基于51單片機的數據采集系統
在物聯(lián)網(wǎng)終端設備方面,采用51單片機,通過(guò)其豐富的外擴接口和溫度傳感器、濕度傳感器,以及LED燈等模塊進(jìn)行連接。在軟件上采用“C語(yǔ)言+驅動(dòng)庫”的開(kāi)發(fā)模式,通過(guò)這樣的開(kāi)發(fā)模式,不僅可以提高開(kāi)發(fā)效率,還能很好地完成多個(gè)傳感器的信息收集和處理。在連接ARM-Linux嵌入式平臺方面,采用UART虛擬串口與嵌入式平臺進(jìn)行連接通信。
本系統的基本實(shí)現功能如下:
(1)連接各個(gè)傳感模塊,通過(guò)輸入輸出接口獲取傳感器傳遞過(guò)來(lái)的信息并且記錄;
(2)設置定時(shí)器,在規定的單元時(shí)間內,采集各個(gè)傳感設備的信息和控制設備的狀態(tài)。將他們的信息、狀態(tài)合成數據包,通過(guò)虛擬串口發(fā)送;
(3)利通虛擬串口通信,時(shí)刻檢測來(lái)自ARM-Linux平臺發(fā)送過(guò)來(lái)的控制信號;
(4)分析串口傳遞過(guò)來(lái)的數據包,檢測數據來(lái)源確定是否合法,然后根據特定的控制代碼對單片機和各個(gè)控制模塊進(jìn)行控制。
2.2 基于A(yíng)RM—Linux平臺的數據處理系統
ARM-Linux平臺是指利用開(kāi)源的Linux內核經(jīng)過(guò)特定需求的裁剪后,經(jīng)過(guò)交叉編譯后得到一個(gè)能夠運行在A(yíng)RM處理器的Linux內核,同時(shí)還定制一個(gè)Linux根文件系統,整個(gè)系統容量控制在幾百KB到幾十MB。系統主要由三部分組成:BootLoader、ARM-Linux內核、Linux根文件系統。
在嵌入式設備上,主要的數據處理系統由守護程序實(shí)現。守護程序一方面負責接收處理單片機發(fā)送過(guò)來(lái)的信息;一方面接受WEB服務(wù)器傳來(lái)的查詢(xún)控制請求。
在物聯(lián)網(wǎng)服務(wù)器端,來(lái)自客戶(hù)端訪(fǎng)問(wèn)的請求,由服務(wù)器接收并檢驗后,將請求查詢(xún)、控制指令傳遞給守護程序,守護程序接收到來(lái)自服務(wù)器的請求,通過(guò)驗證后再向單片機發(fā)送請求查詢(xún)、控制指令。
守護程序的通信過(guò)程分為兩部分,第一部分為守護程序向服務(wù)端的CGI程序告知更新數據,第二部分為服務(wù)端CGI程序向守護程序發(fā)送指令控制,由守護程序監聽(tīng)到后執行控制程序。




       
3 人機交互子系統-WEB服務(wù)器設計
由于嵌入式設備的硬件資源一般都比較有限,不能同時(shí)處理多個(gè)用戶(hù)的請求。因此,在WEB服務(wù)器的選取方面,選擇一些專(zhuān)為嵌入式設備而開(kāi)發(fā)的WEB服務(wù)器。這些服務(wù)器具有占用內存空間低、處理效率高、安全性高等優(yōu)點(diǎn),相當適合嵌入式應用領(lǐng)域。另一方面,在實(shí)際的應用當中,由于互聯(lián)網(wǎng)的高速發(fā)展,3G網(wǎng)絡(luò )的到來(lái),每個(gè)人都希望可以通過(guò)手上的手持式設備來(lái)訪(fǎng)問(wèn)控制自己的物聯(lián)網(wǎng)設備,使用一個(gè)輕量級的WEB服務(wù)器當作訪(fǎng)問(wèn)控制服務(wù)器,可以相當出色地完成任務(wù)。
3.1 服務(wù)器工作原理
嵌入式WEB服務(wù)器的體系結構采用B/S架構,也即由服務(wù)端和客戶(hù)端構成。在此架構上,將會(huì )通過(guò)以下幾個(gè)步驟來(lái)與WEB服務(wù)器互相通信。
(1)在客戶(hù)端的瀏覽器(Browser)輸入WEB服務(wù)器的IP地址;
(2)客戶(hù)端首先通過(guò)TCP發(fā)起建立連接請求,然后服務(wù)器通過(guò)認證后,確認請求合法后立即建立連接。在這個(gè)過(guò)程中,采用的是TCP/IP協(xié)議的“三次握手”方式建立連接的;
(3)通過(guò)TCP/IP建立連接后,瀏覽器再用HTTP協(xié)議發(fā)出HTTP請求;
(4)當服務(wù)器端接收到HTTP請求后,對其進(jìn)行解析等操作,然后根據不同的處理結果服務(wù)器再執行相應的返回操作。
(5)客戶(hù)端收到服務(wù)器的返回結果后,解析HTML數據包,然后將之顯示在瀏覽器上。
3.2 Boa WEB服務(wù)器的移植
Boa是一個(gè)處理單任務(wù)的WEB服務(wù)器。也就是說(shuō)只有在完成一個(gè)請求后才能響應另外一個(gè)連接請求,雖然無(wú)法實(shí)現并發(fā)響應,但是已經(jīng)足夠應付嵌入式的應用處理了。另外,Boa也是一個(gè)相當輕量級的WEB服務(wù)器,交叉編譯所得到的可執行文件只有60kB左右。出于設計的精簡(jiǎn)和應用需求,Boa僅支持CGI。
在WWW.boa.org上下載boa的源代碼。通過(guò)以下步驟完成其交叉編譯:
#tar—bxzf boa-0.94.1 3.tar. gz
#cd./boa-0.94.13/src
#./configure
#vi./Makefile
修改CC=gcc為CC=arm-unknownlinux-gcc,CPP=gcc -E為CPP=arm-unknownlinux-cpp -E,保存退出。執行如下命令:
#make
#arm-linux-strip./boa
得到能在arm平臺下的可執行文件boa,大小只有60KB
將可執行文件Boa下載到嵌入式設備后,還需對其進(jìn)行一些配置。首先需要在/etc/boa目錄下建立一個(gè)boa配置文件boa.conf。表1為Boa配置文件部分配置說(shuō)明:
表1 Boa配置文件配置參數說(shuō)明







       
3.3 通用網(wǎng)關(guān)接口CGI
CGI是通用網(wǎng)關(guān)接口的簡(jiǎn)稱(chēng)。該接口定義了WEB服務(wù)器和其他可執行程序之間的通信接口標準。一般這些可執行程序我們也簡(jiǎn)稱(chēng)為CGI程序。在客戶(hù)端瀏覽器上面,可以請求執行CGI程序,并會(huì )附帶傳送的參數。當服務(wù)器收到此請求后,執行對應的CGI程序,與此同時(shí),會(huì )把來(lái)自客戶(hù)端的傳輸傳遞給CGI程序。在服務(wù)器和CGI程序之間,他們足利用標準輸入輸出來(lái)實(shí)現參數傳遞和信息返回的。
在本物聯(lián)網(wǎng)服務(wù)器的設計當中,CGI程序不僅僅與WEB服務(wù)器通信,它還需要和守護程序進(jìn)行通信。由于守護程序是負責連接外圍設備,并與之通信的,所以可以通過(guò)CGI程序來(lái)對外圍設備進(jìn)行通信。通過(guò)這樣的通信過(guò)程實(shí)現了客戶(hù)端與物聯(lián)網(wǎng)設備終端的交互。其通信過(guò)程如下:
(1)客戶(hù)端利用TCP/IP協(xié)議和WEB服務(wù)器建立連接;
(2)客戶(hù)端利用HTTP協(xié)議發(fā)出URL指向一個(gè)CGI程序的請求;
(3)服務(wù)器收到請求后,執行對應的CGI程序;
(4)CGI應用程序執行,可以通過(guò)讀取標準輸入或環(huán)境變量(QUERY STRING)獲取來(lái)自客戶(hù)端的參數;
(5)應用程序利用進(jìn)行標準輸出方式來(lái)輸出返回結果給WEB服務(wù)器。
(6)WEB服務(wù)器將結果傳送給客戶(hù)端,完成整個(gè)請求返回過(guò)程。
3.4 網(wǎng)絡(luò )應用程序的訪(fǎng)問(wèn)與控制
網(wǎng)站的訪(fǎng)問(wèn)和控制使用JavaScript語(yǔ)言,調用jQuery類(lèi)庫和利用AJAX技術(shù),實(shí)現動(dòng)態(tài)顯示頁(yè)面的效果。而頁(yè)面的參數傳遞和CGI反饋都是使用JSON數據格式。
JSON即JavaScript Object Notation,它是一種輕量級的數據交換格式。本設計使用JSON數據格式中的”名稱(chēng)/值”對的集合為基本數據結構,它作為頁(yè)面與CGI程序之間的參數傳遞和運算結果返回的數據格式;靖袷饺缦拢
{device:"value",model:"value",type:"value",data:“Value”}
利用jQuery類(lèi)庫,每隔1 s中通過(guò)請求./cgi-bin/web_cgi。得到請求結果作為當前狀態(tài)。
4 總結
本文實(shí)現了一個(gè)基于A(yíng)RM-Linux平臺的通用物聯(lián)網(wǎng)服務(wù)器的設計,本設計可以為用戶(hù)提供通過(guò)WEB頁(yè)面對物聯(lián)網(wǎng)中數據采集的實(shí)時(shí)監測和控制功能,具有較好的實(shí)用意義。下一步將繼續完善系統的功能,如:增加對更多傳感器的支持,系統如何更方便地應用于不同的領(lǐng)域等,系統的安全性也有待完善。



本文地址:http://selenalain.com/thread-135388-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页