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

圖1 系統架構
2、 物聯網數據采集與處理子系統設計
2.1 基于51單片機的數據采集系統
在物聯網終端設備方面,采用51單片機,通過其豐富的外擴接口和溫度傳感器、濕度傳感器,以及LED燈等模塊進行連接。在軟件上采用“C語言+驅動庫” 的開發模式,通過這樣的開發模式,不僅可以提高開發效率,還能很好地完成多個傳感器的信息收集和處理。在連接ARM-Linux嵌入式平臺方面,采用 UART 虛擬串口與嵌入式平臺進行連接通信。
本系統的基本實現功能如下:
(1)連接各個傳感模塊,通過輸入輸出接口獲取傳感器傳遞過來的信息并且記錄;
(2)設置定時器,在規定的單元時間內,采集各個傳感設備的信息和控制設備的狀態。將他們的信息、狀態合成數據包,通過虛擬串口發送;
(3)利通虛擬串口通信,時刻檢測來自ARM-Linux平臺發送過來的控制信號;
(4)分析串口傳遞過來的數據包,檢測數據來源確定是否合法,然后根據特定的控制代碼對單片機和各個控制模塊進行控制。
2.2 基于ARM—Linux平臺的數據處理系統
ARM-Linux 平臺是指利用開源的Linux內核經過特定需求的裁剪后,經過交叉編譯后得到一個能夠運行在ARM處理器的Linux內核,同時還定制一個Linux根文件系統,整個系統容量控制在幾百KB到幾十MB。系統主要由三部分組成:BootLoader、ARM-Linux內核、Linux根文件系統。
在嵌入式設備上,主要的數據處理系統由守護程序實現。守護程序一方面負責接收處理單片機發送過來的信息;一方面接受WEB服務器傳來的查詢控制請求。
在物聯網服務器端,來自客戶端訪問的請求,由服務器接收并檢驗后,將請求查詢、控制指令傳遞給守護程序,守護程序接收到來自服務器的請求,通過驗證后再向單片機發送請求查詢、控制指令。
守護程序的通信過程分為兩部分,第一部分為守護程序向服務端的CGI程序告知更新數據,第二部分為服務端CGI程序向守護程序發送指令控制,由守護程序監聽到后執行控制程序。
3 、人機交互子系統-WEB服務器設計
由于嵌入式設備的硬件資源一般都比較有限,不能同時處理多個用戶的請求。因此,在WEB服務器的選取方面,選擇一些專為嵌入式設備而開發的WEB服務器。這些服務器具有占用內存空間低、處理效率高、安全性高等優點,相當適合嵌入式應用領域。另一方面,在實際的應用當中,由于互聯網的高速發展,3G網絡的到來,每個人都希望可以通過手上的手持式設備來訪問控制自己的物聯網設備,使用一個輕量級的WEB服務器當作訪問控制服務器,可以相當出色地完成任務。
3.1 服務器工作原理
嵌入式WEB服務器的體系結構采用B/S架構,也即由服務端和客戶端構成。在此架構上,將會通過以下幾個步驟來與WEB服務器互相通信。
(1)在客戶端的瀏覽器(Browser)輸入WEB服務器的IP地址;
(2)客戶端首先通過TCP發起建立連接請求,然后服務器通過認證后,確認請求合法后立即建立連接。在這個過程中,采用的是TCP/IP協議的“三次握手”方式建立連接的;
(3)通過TCP/IP建立連接后,瀏覽器再用HTTP協議發出HTTP請求;
(4)當服務器端接收到HTTP請求后,對其進行解析等操作,然后根據不同的處理結果服務器再執行相應的返回操作。
(5)客戶端收到服務器的返回結果后,解析HTML數據包,然后將之顯示在瀏覽器上。
3.2 Boa WEB服務器的移植
Boa 是一個處理單任務的WEB服務器。也就是說只有在完成一個請求后才能響應另外一個連接請求,雖然無法實現并發響應,但是已經足夠應付嵌入式的應用處理了。另外,Boa也是一個相當輕量級的WEB服務器,交叉編譯所得到的可執行文件只有60kB左右。出于設計的精簡和應用需求,Boa僅支持CGI。
在WWW.boa.org上下載boa的源代碼。通過以下步驟完成其交叉編譯:
評論