摘 要: 針對遠端設備狀態的遠程測試與圖像監控,把嵌入式技術結合到遠程測控系統中,提出了基于802.11協議嵌入式網絡的遠程測控系統的設計方案。系統硬件平臺的核心處理器選擇ARM9系列的S3C2440A芯片,并通過基于802.11協議的USB網卡接入網絡完成信息傳輸。系統的軟件平臺選擇嵌入式Linux操作系統,并搭建了嵌入式Web服務器,以實現基于B/S模式的圖像遠程監控功能。經實驗驗證,系統可以實時可靠地完成基于802.11協議網絡的嵌入式遠程測控功能。
關鍵詞: 802.11協議; 遠程測控; ARM9; Linux; B/S模式; 嵌入式Web服務器
中圖分類號: TN915?34; TP3 文獻標識碼: A 文章編號: 1004?373X(2016)03?0058?05
Research on embedded remote measurement and control system based on 802.11 protocol wireless network
WU Meimei1, WANG Deyong2, FENG Heping3, SONG Xijun1
(1. Department of Computer Application and Engineering, Hebei Software Institute, Baoding 071000, China;
2. Department of Marketing, Avnet Technology Solutions (China) Ltd., Beijing 100000, China;
3. Department of Intelligent Engineering, Hebei Software Institute, Baoding 071000, China)
Abstract: For the remote testing and image monitoring of the far?end equipment status, the design scheme of the remote measurement and control system based on 802.11 protocol wireless network is proposed by combining the embedded technology in remote measurement and control system. The S3C2440A chip of ARM9 series is chosen as the core processor of the system hardware platform, and the information transmission is accomplished by USB card access network based on 802.11 protocol. The embedded Linux operating system is chosen for the system software platform. The embedded Web server was established to realize the image remote monitoring function based on B/S accessing pattern. The experimental results prove that the system can reliably realize the embedded remote measurement and control function based on the 802.11 protocol network in real time.
Keywords: 802.11 protocol; remote measurement and control; ARM9; Linux; B/S accessing pattern; embedded Web server
隨著計算機技術、微電子技術以及嵌入式技術的高速發展,遠程測控系統也在不斷更新。近年來,工業控制領域和日常生活中需要測控的對象在飛速增多,測控的范圍不斷擴大,對遠程測控技術發展的要求也在提高。遠程測控是指本地計算機通過專用通信線路對遠端的設備狀態進行查詢、監測與控制。通過遠程測控,管理人員不必親臨現場或惡劣的環境就可以監視現場的工作情況,完成信息獲取、參數設置與調整、運行故障恢復等。隨著遠程測控技術的發展,各類設備的測量、監測、控制對測控技術的可靠性、安全性、便捷性等方面提出了更高的要求。嵌入式遠程測控系統,就是針對條件惡劣、測控人員不易到達、不能長時間停留的地方的測控需求而發展的遠程測控系統的一種。嵌入式遠程測控很好地解決了測控領域以往存在的諸多問題,在樓宇自動化、智能家電、電力監控、火車調度、水電站監控、礦山監控等場合得到了廣泛的應用。針對目前的大多數測控系統通信方式較為傳統,通信聯網功能不強,基于Internet的遠程測控系統正在日益興起,得到業界的廣泛重視[1]。
1 系統硬件設計與實現
1.1 系統硬件設計總體方案
1.1.1 處理器選型
嵌入式微處理器的選型,一般要綜合考慮微處理器的處理速度、片上資源、兼容性、功耗、價格、開發便利性等諸多方面。結合系統設計的要求,最終選定基于ARMv4版本的ARM9系列處理器S3C2440A。該處理器處理速度高,片上資源豐富,功耗低,價格相對較低,支持的操作系統較為廣泛,開發工具和資源豐富,便于開發。S3C2440A芯片能夠滿足系統對硬件和軟件的需求[2]。
1.1.2 系統硬件平臺架構設計
嵌入式微處理器選用的是三星(SAMSUNG)公司的ARM920T核的S3C2440A芯片,該芯片主頻最高達533 MHz,內含16位/32位微控制器,4路帶PWM功能的Timer、并行I/O口、8路10位ADC和2個USB接口控制器。
1.2 系統硬件電路設計
為了實現遠程測控系統的功能,系統的硬件平臺在設計時,要考慮相應的功能擴展模塊的需求,所以還需添加必要的外圍電路。用于開發調試的JTAG接口,采用RS 232接口協議的串口,提供網絡接入功能的RJ45網絡接口,實現視頻圖像監控功能的20針Camera接口以及通用的USB接口。系統的硬件平臺總體框架示意圖如圖1所示。
1.2.1 最小系統電路設計
(1) 電源模塊電路
硬件平臺電路設計采用的是核心板+擴展板的模式,所以擴展板的供電電壓為5 V,采用低壓差線性穩壓源芯片AS2815AR?3.3IC給外部I/O和存儲器提供所需的3.3 V供電。利用低壓差線性穩壓源芯片MAX8860EUA18進一步降壓,為核心板的S3C2440A處理器內核提供1.25 V供電[3]。
(2) 系統復位電路
為了提高系統的穩定性和靈活性設計了復位電路,選用復位專用芯片MAX8118,實現對電源電壓的監測和手動復位。該芯片反應靈敏、可靠性高、操作使用簡單,當系統電壓低于系統復位閾值電壓2.93 V時,復位芯片自動對系統進行復位。同時也可通過手動方式對系統進行復位。
1.2.2 JTAG接口電路設計
采用2.0 mm間距的10腳調試接口電路,JTAG主要用于系統的調試仿真,JTAG接口電路如圖2所示。
1.2.3 串行通信接口電路
RS 232適用于數據傳輸速率在0~20 000 b/s范圍內的通信條件下。RS 232的標準接口有25針和9針兩種,用DB?25和DB?9表示。目前,常用的是DB?9接口,DB?25已漸漸被淘汰,故這里選用DB?9接口[1]。
1.2.4 USB接口電路
USB 采用雙絞線傳輸,分別用D+和D-標記,D+和D-均工作在半雙工狀態。其接口定義如表1所示。
2 系統軟件平臺設計
2.1 嵌入式開發環境的搭建
嵌入式開發工作需要在PC和嵌入式設備上完成,在本設計中PC利用普通的X86架構的計算機,嵌入式設備則采用基于S3C2440A構建的硬件平臺,這里稱為2440目標板。嵌入式開發環境的搭建需要分別在PC 機和2440目標板上進行。這里需要準備的主要硬件設備有以下幾個:PC機、2440目標板、DB?9串口交叉線、JTAG調試板、10針的JTAG排線等[3]。
2.2 Linux內核的裁剪與移植
本系統選取的內核版本為2.6.30.4,Linux內核的裁剪是在根據系統需求和硬件資源配置情況的基礎上,對相應功能的添加或移除。添加需要的功能模塊,移除不必要的部分,讓內核在保證功能的前提下盡量精簡,以達到提高內核運行速度的目的。在Linux中通過內核的配置實現內核的裁剪。通過對內核配置單進行相應的配置修改即可實現不同功能模塊的添加與移除。
2.3 U?Boot分析與移植
U?Boot的具體移植過程并不復雜,首先在PC機的Ubuntu下解壓由天嵌科技公司提供的U?Boot壓縮文件2440uboot26_l6.tgz,即可獲得源碼文件。獲得源碼文件后,將PC機與2440目標板通過JTAG連接起來,JTAG的一端接PC機的并口,另一端接2440目標板的10針JTAG接口。利用H?JTAG軟件將u?boot.bin文件通過JTAG接口燒寫到2440目標板中。之后,通過串口可看到U?Boot的啟動信息。至此,Bootloader的移植就完成了,下面就可以進行內核的裁剪與移植了。
2.4 嵌入式文件系統
Yaffs2系統與jffs,jffs2系統類似,是專門為Nand FLASH設計的文件系統,其特點是占用內存較少、讀寫速度較快。本系統中,2440目標板使用的是256 MB的Nand FLASH和64 MB的SDRAM,考慮到內存空間不大,FLASH空間相對寬裕。綜合考慮,設計的遠程測控系統的嵌入式文件系統采用yaffs2文件系統。
2.5 Yaffs2文件系統的制作與移植
在制作yaffs2文件系統前,要先在內核中添加對yaffs2文件系統的支持。從網上下載yaffs2文件系統補丁源碼包cvs?root.tar.gz。為內核打補丁,具體過程如下:
# tar xvfz /mnt/sources/cvs?root.tar.gz ?C /opt/cvs?root
# cd /opt/cvs?root
#./patch?ker.sh c /opt/TQ2440/linux?2.6.30.4/
完成內核補丁的添加后,還需在內核中對yaffs2進行相應配置。通過之前所述的修改內核配置單的方式,添加對yaffs2的支持。Yaffs2文件系統的制作需要用到BusyBox工具,從網上可以方便地下載到BusyBox工具,將其下載安裝后即可使用它制作文件系統了。根文件系統的各目錄主要內容如表2所示。
根據需求將文件系統制作完成后,即可使用mkyaffs2image工具制作yaffs2文件系統的鏡像。
#cd /opt/EmbedSky/
#mkyaffs2image root_2.6.30.4 root_2.6.30.4.bin
采用與燒寫Linux內核一樣的方法,將root_2.6.30.4.bin燒寫到2440目標板的Nand FLASH中,即完成了yaffs2文件系統的移植。
3 圖像遠程監控子系統
3.1 圖像遠程監控子系統總體框架
以圖像遠程監控子系統為例,介紹整個系統的工作原理與運行方式。圖像遠程監控子系統主要完成對遠程圖像數據的采集、數據的傳輸、遠程控制等功能。其總體結構如圖3所示。
圖像遠程監控子系統主要由兩大部分組成:遠程控制端和現場監控端。遠程控制端主要完成遠程測試、控制指令的發送與測試結果、回應指令的接收。由于采用的是B/S模式,所以遠程控制端由具有瀏覽器功能的普通PC機組成即可。現場監控端主要由嵌入式Web服務器和控制系統組成。嵌入式Web服務器對外提供Web訪問功能,使遠程設備通過Web的方式實時訪問控制本地嵌入式系統。控制系統主要根據遠程指令完成相應設備的控制。
3.2 嵌入式Web服務器構建
3.2.1 嵌入式Web服務器的選擇
隨著網絡技術與嵌入式技術的發展,嵌入式Web服務器的應用越來越廣泛。在本設計中,利用嵌入式設備2440目標板作為硬件平臺搭建嵌入式Web服務器。一般, 嵌入式Web服務器工作的原理如圖4所示。用戶通過Web瀏覽器訪問嵌入式Web服務器,嵌入式Web服務器由HTTP引擎提供訪問功能,Web服務器根據訪問指令調用對應的Web頁面,利用CGI程序實現用戶與嵌入式Web服務器的交互操作。
3.2.2 嵌入式Web服務器Boa的移植
Boa服務器作為開源的嵌入式Web服務器,其源碼從網上可以容易的獲得,本設計中使用的是boa?0.94.13版。下載到Boa服務器源碼后,要對其進行配置,以保證Boa服務器能在系統下正常工作,配置完成后,完整地把Web服務器移植到2440目標板中。具體過程如下:
從網站上獲取Boa的源碼,解壓到/opt/目錄下。
# tar xvfz boa?0.94.13.tar.gz ?C /opt/
解壓完成后,進入Boa的配置目錄進行編譯方式的配置。
# cd boa?0.94.13/src
# ./configure
# gedit Makefile
在打開的文件中,修改內容如下:
將CC=gcc修改為CC=arm?linux?gcc;
將CPP=gcc?E修改為CPP=arm?linux?gcc?E;
配置完成后,Boa服務器即選擇了系統所使用的交叉編譯器,編譯產生的文件也就可以在2440目標板上運行。下面進行編譯生成文件即可。
# make
# arm?linux?strip boa
“arm?linux?strip boa”命令用于去除Boa的調試信息,完成優化的過程,優化后Boa服務器占用的空間大小會減少很多。針對本系統的特點,需要對Boa服務器進一步根據功能需求配置。修改配置文件boa.conf。
#cd /etc/boa/
#gedit boa.conf
在打開的文件中,修改內容如下:
修改Group nogroup為Group root,保證所使用的用戶組具有執行權限。
修改ScriptAlias /cgi?bin/ /usr/lib/cgi?bin/為ScriptAlias /cgi?bin/ /Web/www/cgi?bin/;
該項指定了CGI腳本存放的路徑,“/cgi?bin/”是CGI腳本存放的虛擬路徑,“/Web/www/cgi?bin/”則為CGI腳本存放的實際路徑。
[修改DocumentRoot/Web為DocumentRoot/Web/www。]
該項指定了HTML文檔存放的主目錄,用于存儲靜態網頁。根據實際情況,將目錄修改為“/Web/www/”。
還有一些需要修改的項,這里只列出幾個重要的修改,其他的就不再贅述了。修改完成后保存退出。Boa服務器的配置就基本完成了。重新編譯Linux內核,生成新的鏡像文件,下載到2440目標板中即可。
3.3 嵌入式數據庫的搭建
3.3.1 嵌入式數據庫的選擇
為了提高圖像遠程監控子系統的安全性,系統中添加了用戶登錄管理系統。在嵌入式系統中,常常需要用到數據庫系統,但不同于其他平臺,嵌入式系統的資源較為有限,不能運行類似Oracle,DB2,SQL Server等大型數據庫,因此,在嵌入式系統中采用的多為嵌入式數據庫。嵌入式數據庫相比PC機或大型服務器上的數據庫,具有占用空間小、系統運行資源耗用少、運行速度快、可靠性好、穩定性高等特點。常見的嵌入式數據庫有mSQL,Berkeley DB以及SQLite等。經過綜合分析系統的需求和各種嵌入式數據庫的特點,最后選用了SQLite作為系統采用的嵌入式數據庫。SQLite能夠滿足用戶登錄管理系統的需求[4]。
3.3.2 嵌入式數據庫SQLite3的移植
嵌入式數據庫SQLite3的源代碼是開放的,從網上很容易得到SQLite3的數據庫源碼。從網上下載SQLite3源碼包sqlite?3.5.9,解壓文件并配置。具體過程如下:
#tar xvfj SQLite.tar.bz2 –C /
#cd sqlite?3.5.9/
#./build
配置完成后,在交叉編譯器支持SQLite3數據庫,將其復制到文件系統,重新編譯,下載到2440 目標板。至此SQLite3 數據庫的移植就初步完成了。
3.4 用戶登錄管理系統設計
3.4.1 Web頁面設計
Web登錄頁面的設計較為簡單,設計了用戶登錄信息輸入部分,用戶根據頁面提示輸入有權限的用戶名和密碼即可登錄圖像監控系統。用戶輸入信息的傳輸方式采用“POST”方法。部分代碼如下所示:
“POST”方法比“GET”方法的安全性高。在網絡傳輸中,“GET”方法一般會在頁面的地址欄中顯示出用戶提交的表單信息,這樣的方式是不安全的,采用“POST”方法則不會出現此類問題,提高了信息傳輸的安全性。
3.4.2 CGI程序設計
在嵌入式系統中,CGI程序一般采用C語言編寫。其工作原理如圖5所示。
在用戶登錄管理系統中,CGI 程序從Web瀏覽器中獲得用戶提交的數據,本文設計的CGI 程序利用常見的CGIC 庫函數完成用戶數據的采集,具體代碼如下:
cgiFormString(\"name\",name,10);
cgiFormString(\"psd\",psd,10);
即可獲取用戶輸入的用戶名“name”和密碼“psd” 的信息。CGI 程序獲取用戶輸入的數據后,要把輸入的數據和數據庫中存儲的數據進行比對,驗證后給出結果。對比驗證功能的實現要依靠嵌入式數據庫的支持,CGI程序在完成頁面數據采集后,打開數據庫,對數據庫中的數據進行查詢,查詢完成后,返回查詢結果。如果用戶輸入的信息與數據庫中比對一致,則返回結果,表明用戶擁有權限; 如果用戶輸入的信息未能在數據庫中找到,則返回結果,表明用戶不是有權限的用戶[5]。
3.4.3 SQLite3數據庫設計
用戶登錄管理系統需要用嵌入式數據庫存儲用戶的個人信息,以完成用戶登錄信息的比對。在2440目標板的控制終端輸入如下命令運行數據庫。
$ sqlite3 $ create test.db
$ create table user(name varchar(10),psd varchar(10));
$ insert into user(name,psd) values(“bit”,“123”);
在嵌入式數據庫SQLite3中,建立user表,并添加用戶名和密碼的數據。至此嵌入式數據庫SQLite3的操作就基本完成了。
3.4.4 圖像監控設計
圖像拍攝程序的設計,根據攝像頭的硬件信息和驅動設計即可,利用驅動提供的接口函數完成圖像拍攝的功能。圖像拍攝的程序,每拍攝一張圖像,將其保存為test01.jpg。這里給出將圖像文件test01.jpg存儲和重命名的方法。具體操作過程如下:
cp /Web/test01.jpg /Web/pic/
mv /Web/pic/test01.jpg /Web/pic/`date
\"+%m?%d~%H?%M?%S′″.jpg
上述代碼實現了將“/Web/”目錄下的“test01.jpg”文件復制到“/Web/pic/”目錄下,并根據拍攝的時間進行重命名的功能。圖像拍攝顯示頁面主要完成了拍攝圖像的實時顯示,使用戶可以通過B/S模式實時查看圖像監控的情況。部分代碼如下:
solid ;width:411px;height:308px; \"src=\"test01.jpg\"title=\"\"alt=\"\"hspace=\"184\"> 同時,在圖像顯示頁面添加了拍攝時間的更新。具體代碼如下: 拍攝時間:
4 系統實驗與分析
實驗開始前要做好實驗準備工作。打開2440目標板的電源,啟動系統。打開實驗用的PC機并接入網絡。系統的詳細演示過程如下所示:
首先,在任意瀏覽器的地址欄輸入http://192.168.0.6/即可進入遠程測控系統主頁。
在用戶名和密碼處輸入擁有權限的用戶名以及對應的密碼,點擊提交后,系統會將輸入的信息提交到后臺的嵌入式數據庫中進行比對,如果正確即進入圖像遠程監控系統;否則,提示用戶名或密碼錯誤,重新登錄。
正常登錄后,即可進行圖像監控的控制,點擊拍攝圖像即可控制系統的CMOS攝像頭完成圖像的拍攝,并將拍攝的圖像實時顯示在Web頁面上。點擊退出系統即返回系統登錄界面。
點擊返回監控系統,即返回圖像遠程監控系統頁面,可點擊拍攝進行下一次拍攝,也可以點擊退出,退出圖像遠程監控系統,返回到登錄頁面。
實驗結果表明,圖像遠程監控系統運行正常,功能完整,驗證了整體測控系統的可行性。
5 結 論
本文的主要目標是建立基于802.11協議嵌入式網絡的遠程測控系統。在綜合分析系統功能和性能需求的基礎上,確定了系統的總體設計方案。依據模塊化的思想,設計了系統的硬件平臺和軟件平臺,并給出了具體的設計過程。介紹了圖像遠程監控子系統的功能和設計過程,并利用實驗的方式對系統的功能進行了測試。結果表明,基于802.11協議的嵌入式網絡的遠程測控系統平臺可以實現嵌入式設備遠程訪問,能夠通過B/S模式對遠程設備進行監測和控制。
參考文獻
[1] 杜向黨,張宇,鞏靜靜,等.基于三重網絡的遠程測控系統設計[J].機械與電子,2013(2):47?50.
[2] 劉舉濤,陳華杰,金文,等.基于ModBus通訊協議的遠程測控設計[J].導彈與航天運載技術,2012(2):50?53.
[3] 朱新華.數字化智能電廠遠程測控的設計[J].中國信息化,2013(2):83.
[4] 韓興國,王斌武,鄒愛成,等.基于AT89C55單片機的數控機床遠程測控儀的研制[J].測控技術,2013,32(5):56?58.
[5] 馬衛東,王志穎.基于FSM的現場控制系統通用架構及遠程控制協議設計[J].計算機測量與控制,2013,21(5):1226?1229.
[6] 劉義才,林飛宇.基于W5100的遠程控制器設計[J].現代電子技術,2011,34(5):103?105.