第一篇:基于A8的嵌入式Linux遠程視頻監(jiān)控系統(tǒng)的設計與實現(xiàn)
基于A8的嵌入式Linux遠程視頻監(jiān)控系統(tǒng)的設計與實現(xiàn)
摘 要:將網絡技術和嵌入式技術相結合的遠程視頻監(jiān)控系統(tǒng)是視頻采集技術的發(fā)展趨勢,文中提出了一種基于對等網絡模型的嵌入式遠程視頻監(jiān)控系統(tǒng)的設計方案。該方案將嵌入式系統(tǒng)和Web開發(fā)技術相結合,再利用USB攝像頭作為視頻監(jiān)控系統(tǒng)的終端進行圖像采集,并使用網絡TCP協(xié)議將其遠程發(fā)送給服務器終端。相較于傳統(tǒng)的Client/Server網絡模型,本系統(tǒng)實現(xiàn)采用對等網絡模型,即確定發(fā)送命令的控制程序既可以是客戶端,又可以是服務端。文中選擇嵌入式開發(fā)平臺ARM系列A8處理器進行研究和設計,并采用PC機下的Linux系統(tǒng)作為主機開發(fā)環(huán)境。
關鍵詞:嵌入式;視頻監(jiān)控;網絡遠程控制;對等網絡
中圖分類號:TP39 文獻標識碼:A 文章編號:2095-1302(2016)05-00-03
0 引 言
網絡遠程控制(Network Remote Control,NRC)是利用計算機網絡對遠程計算機進行操作的一種控制方式。計算機技術和網絡技術目前都在高速發(fā)展,現(xiàn)在監(jiān)控系統(tǒng)已經發(fā)展到網絡視頻監(jiān)控系統(tǒng)[1]。網絡視頻監(jiān)控具有數(shù)字視頻監(jiān)控和網絡傳輸技術的優(yōu)點,其具有不受地理位置約束、擴展方便簡單、信息處理較容易等特點,可以使遠程的管理和維護變成現(xiàn)實,只要是網絡覆蓋的地方,就能實現(xiàn)網絡監(jiān)控[2]。嵌入式系統(tǒng)向網絡發(fā)展已成必然趨勢,目前嵌入式系統(tǒng)對網絡協(xié)議如TCP/IP協(xié)議和HTTP協(xié)議的支持也越來越廣泛。系統(tǒng)硬件設備選擇與配置
系統(tǒng)硬件設備選擇凌陽嵌入式A8教學實驗系統(tǒng)進行設計與實現(xiàn)。該實驗箱基于ARM CortexTM-A8內核的處理器S5PV210,該芯片又名“蜂鳥”(Hummingbird),是三星公司推出的一款適用于智能手機和平板電腦等多媒體設備的應用處理器[3]。本系統(tǒng)使用了人機交互模塊的USB接口、多媒體模塊攝像頭接口及通信模塊以太網接口。
1.1 USB攝像頭
攝像頭屬于視頻類設備。在目前的Linux核心中,視頻部分的標準是Video for Linux(簡稱V4L)。這個標準其實定義了一套接口,內核、驅動、應用程序以這個接口為標準進行交流。目前的V4L涵蓋了視、音頻流捕捉及處理等內容,USB攝像頭也屬于它支持的范疇。
本系統(tǒng)所采用的嵌入式Linux操作系統(tǒng)如果需要使用USB攝像頭則必須在內核配置時添加Video4Linux驅動和對USB攝像頭驅動模塊的支持。本系統(tǒng)的設計與實現(xiàn)采用靜態(tài)加載以上驅動。首先進入Linux源代碼所在的目錄,在終端輸入make menuconfig命令,在基于Ncurses內核配置圖形界面進行內核選項的配置。選中多媒體設備選項“Multimedia device->”,進入多媒體設備配置界面,選中“Video For Linux”,加載Video4Linux模塊,就可以使內核實現(xiàn)對Video4Linux驅動的支持,為視頻采集設備提供編程接口。在內核配置主界面,選中USB支持選項“USB support―>”,選中“USB Multimedia device”選項下的“USB OV511 Camera support”,使內核中加入OV511接口芯片的USB數(shù)字攝像頭的驅動支持。OV511 USB 攝像頭驅動配置界面如圖1所示。
圖1 OV511 USB 攝像頭驅動配置界面
1.2 開啟幀緩沖設備
幀緩沖(Frame Buffer,F(xiàn)B)是Linux為顯示設備提供的一個接口,是把顯存抽象后的一種設備,它允許上層應用程序在圖形模式下直接對顯示緩沖區(qū)進行讀寫操作。由于FB設備驅動為受限驅動,因此必須進行設備開啟。本系統(tǒng)開發(fā)環(huán)境采用發(fā)行版Linux操作系統(tǒng)Ubuntu10.10,Ubuntu下啟用FB設備的一般步驟如下所示:
安裝v86d和hwinfo兩個包查看顯卡是否支持,并設置本機支持模式。
修改啟動文件/etc/default/grub,如圖2所示。
圖2 修改啟動文件圖
修改modules文件/etc/initramfs-tools/modules,如圖3所示。
圖3 修改modules文件
更新以上兩個文件并重啟系統(tǒng),即可查看到FB設備,具體如圖4所示。
圖4 查看FB設備系統(tǒng)軟件設計
本系統(tǒng)軟件由攝像頭驅動模塊、圖像采集模塊、網絡傳輸模塊和網絡服務器模塊組成[4]。攝像頭驅動模塊使得攝像頭為應用程序編寫提供系統(tǒng)編程接口。功能主要包括攝像頭設備信息的獲取與設置、設備的打開和關閉、信號通道選擇、窗口初始化等。圖像采集模塊的作用是使用編程接口獲取攝像頭采集來的圖像信息并進行暫時存儲。服務器通過網絡傳輸模塊與遠程監(jiān)控PC機端進行信息交流。
2.1 V4L圖像信息采集流程
V4L圖像信息采集流程分為如下幾步:
(1)打開攝像頭設備
int vd->fd = open(“/dev/video0”,O_RDWR);
(2)讀video_capability 中的信息,成功后可讀取vd->capability各分量ioctl(vd->fd,VIDIOCGCAP,&(vd->capability));
(3)讀video_picture中的信息,成功后可讀取圖像的屬性ioctl(vd->fd,VIDIOCGPICT,&(vd->picture));
(4)初始化channel
int i;
for(i = 0; i capability.channels; i++){
vd->channel[i].channel = i;
第二篇:嵌入式遠程視頻采集系統(tǒng)的設計與實現(xiàn)(基于S3C2410)
嵌入式遠程視頻采集系統(tǒng)的設計與實現(xiàn)(基于S3C2410)
發(fā) 布 時 間 : 2008-11-19 來 源 : 中電網 作 者 : 張永強,趙永勇,李崇德 瀏 覽 :
984
多媒體通信技術的發(fā)展為信息的獲取和傳輸提供了豐富的手段,視頻采集是其中不可缺少的重要組成部分,該系統(tǒng)基于S3C2410的ARM9芯片和嵌入式Linux操作系統(tǒng),采用USB攝像頭捕捉視頻,經MPEG-4算法壓縮編碼,系統(tǒng)直接與網絡相連,用戶使用標準的網絡瀏覽器和流媒體播放程序即可查看遠程視頻影像。硬件系統(tǒng)
系統(tǒng)硬件平臺選用基于ARM9架構嵌入式芯片S3C2410,穩(wěn)定工作在202MHz主頻,板載64MB SDRAM 64MB FLASH,主板資源包括:主USB口、從USB口、10M/100M以太網口,觸摸屏、彩色LCD、鍵盤、8個用戶自定義LED數(shù)碼管,A/D,RTC電路,2個串口、1個JTAG通用接口,音頻模塊,支持MPEG4,MP3編解碼,3個168PIN的擴展插座,32位的數(shù)據(jù)總線,保留充分擴展空間。
其中標配模塊包括:IC卡+PS2模塊、IDE硬盤+CF卡模塊、PCMCIA+SD/MMC模塊。另外可選配模塊有:GPS模塊,GPRS模塊,F(xiàn)PGA模塊,CAN+AD+DA模塊、紅外模塊、藍牙模塊、攝像頭模塊。軟件系統(tǒng)
2.1 內核配置與USB攝像頭驅動
假定已經搭建好嵌入式Linux的開發(fā)環(huán)境,下面第一步工作就是USB攝像頭的安裝與驅動。首先檢查Linux Kernel中是否已經添加了USB模塊的支持,并且加入Video4Linux支持。
Multimedia devices→Video For Linux
Video For Linux→[*]V4L information in proc filesystem
在主菜單的USB Support下還有各種攝像頭的驅動,選中將要使用的攝像頭芯片類型。
<>USB IBM(Xirlink)C-it Camera support<*>USB OV511 Camera support<>USB Philips Cameras <>USB SE401 Camera support<>USB STV680(Pencam)Camera support<>USB 3com HomeConnect(akavicam)support 在USB攝像頭選購時,優(yōu)先考慮Linux內核公開支持的攝像頭芯片,不然要額外編寫相應的USB攝像頭驅動程序,然后進行編譯、安裝。在此選用網眼公司的V3000產品,他采用了OV511的芯片。
確定USB攝像頭被正常驅動后,下一步就是使用Video4Linux提供的API函數(shù)集來編寫視頻采集程序。
2.2 基于V4L設計的視頻采集模塊
在Linux下,所有外設都被看成是一種特殊的文件,稱為設備文件。系統(tǒng)調用是內核和應用程序之間的接口,而設備驅動程序則是內核和外設之間的接口。他完成設備的初始化和釋放、對設備文件的各種操作和中斷處理等功能,為應用程序屏蔽了外設硬件的細節(jié),使得應用程序可以像普通文件一樣對外設進行操作。
Linux系統(tǒng)中的視頻子系統(tǒng)Video4Linux為視頻應用程序提供了一套統(tǒng)一的API,視頻應用程序通過標準的系統(tǒng)調用即可操作各種不同的視頻捕獲設備。Video4Linux向虛擬文件系統(tǒng)注冊視頻設備文件,應用程序通過操作視頻設備文件實現(xiàn)對視頻設備的訪問。
Linux下與Video4Linux相關設備及用途如表1所示。
這里主要針對設備文件/dev/video進行視頻捕捉方面的程序設計。
Linux下視頻采集流程如圖2所示。
其中用到的主要函數(shù)有:
Camera_open():用來開啟視頻設備文件,使用前需要首先聲明一個video_device類型的設備文件。
Camera_get_capability():通過調用ioctl()函數(shù)取得設備文件的相關信息,并存放到video_capability結構里。
Camera_get_picture():通過調用ioctl()函數(shù)取得圖像的相關信息,并且存放到video_picture結構里。
Camera_close():用來關閉設備文件。Camera_grab_image():用來抓取圖像,采用mmap方式,直接將設備文件/dev/video0映射到內存,加速文件I/O操作,還可以使多個線程共享數(shù)據(jù)。
剩下的還有設備初始化、參數(shù)設備等相關函數(shù),不再詳述。
2.3 視頻壓縮編碼模塊
獲取圖像數(shù)據(jù)后,可以直接輸出到FrameBuffer進行顯示,由于本系統(tǒng)要將采集到的視頻影響通過網絡傳輸出去,所以在傳輸之前要對原始的圖像數(shù)據(jù)進行壓縮編碼,在此選用MPEG-4視頻編解碼方案。和其他標準相比,MPEG-4壓縮比更高,節(jié)省存儲空間,圖像質量更好,特別適合在低帶寬條件下傳輸視頻,并能保持圖像的質量。
MPEG-4中基于對象的視頻編碼過程可以分為3步進行:
(1)從原始視頻流中分割視頻對象。
(2)對視頻對象進行編碼,對不同視頻對象的運動信息、形狀信息、紋理信息分配不同的碼字。對輸入的任意形狀的VOP序列,用基于塊的混合編碼技術編碼,處理順序是先IVOP后PVOP,BVOP。在對VOP的形狀信息編碼后,取得任意形狀VOP的采樣,每個VOP劃分為不相交的宏塊,每個宏塊含有4個8×8象素塊進行運動補償以及紋理編碼,已編碼的VOP幀保存在幀存中,在當前VOP幀和已編碼VOP幀之間的計算運動矢量;對將編碼的塊和宏塊,計算他們的運動補償預測誤差;運動補償預測后的IVOP及誤差用8×8塊DCT變換,并進行DCT系數(shù)的量化,然后是游程編碼和熵編碼。
(3)對各個視頻對象的碼流進行復合,每個視頻對象的形狀、運動紋理信息復合成VOL比特流,各視頻對象視頻流復合成統(tǒng)一的碼流輸出。對視頻流進行壓縮編碼以后,接下來就要實現(xiàn)網絡傳輸部分的功能。
2.4 JRTPLIB網絡傳輸模塊
流媒體指的是在網絡中使用流技術傳輸?shù)倪B續(xù)時基媒體,RTP是目前解決流媒體實時傳輸問題的好辦法,JRTPLIB是一個面向對象的RTP庫,他完全遵循RFC1889設計,下面講述如何在Linux平臺上運用RTP協(xié)議進行實時流媒體編程。
2.4.1 初始化 在使用JRTPLIB進行實時流媒體數(shù)據(jù)傳輸之前,首先應該生成RTPSession類的一個實例來表示此次RTP會話,然后調用Create()方法來對其進行初始化操作。RTPSession類的Create()方法只有一個參數(shù),用來指明此次RTP會話所采用的端口號。
2.4.2 數(shù)據(jù)發(fā)送
當RTP會話成功建立起來之后,接下來就可以開始進行流媒體數(shù)據(jù)的實時傳輸了。首先需要設置好數(shù)據(jù)發(fā)送的目標地址,RTP協(xié)議允許同一會話存在多個目標地址,這可以通過調用RTPSession類的AddDestination()、DeleteDestination()和ClearDestinations()方法來完成。目標地址全部指定之后,接著就可以調用RTPSession類的SendPacket()方法,向所有的目標地址發(fā)送流媒體數(shù)據(jù)。
2.4.3 數(shù)據(jù)接收
對于流媒體數(shù)據(jù)的接收端,首先需要調用PollData()方法來接收發(fā)送過來的RTP或者RTCP數(shù)據(jù)報。由于同一個RTP會話中允許有多個參與者(源),因此既可以通過調用GotoFirstSource()和GotoNextSource()方法來遍歷所有的源,也可以通過調用GotoFisstSourceWithDat()和GotoNextSourceWithData()方法來遍歷那些攜帶有數(shù)據(jù)的源。在從RTP會話中檢測出有效的數(shù)據(jù)源之后,接下去就可以調用RTPSession類的GetNextPacket()方法從中抽取RTP數(shù)據(jù)報,當接收到的RTP數(shù)據(jù)報處理完之后,要及時釋放。
JRTPLIB為RTP數(shù)據(jù)報定義了3種接收模塊,通過調用RTPSession類的SetReceiveMode()方法可以設置下列這些接收模式:
RECEIVEMODE_ALL:缺省的接收模式,所有到達的RTP數(shù)據(jù)報都將被接受;RECEIVEMODE_IGNORESOME:除了某些特定的發(fā)送者之外,所有到達的RTP數(shù)據(jù)報都將被接受,而被拒絕的發(fā)送者列表可以通過調用AddToIgnoreList(),DeleteFromIgnoreList()和ClearIgnoreList()方法來進行設置;RECEIVEMODE_ACCEPTSOME:除了某些特定的發(fā)送者之外,所有到達的RTP數(shù)據(jù)報都將被拒絕,而被接受的發(fā)送者列表可以通過調用AddToAcceptList(),DeleteFromAcceptList和ClearAcceptList()方法來進行設置。
2.4.4 控制信息 JRTPLIB是一個高度封裝后的RTP庫,只要PollData()或者SendPacket()方法被成功調用,JRTPLIB就能夠自動對達到的RTCP數(shù)據(jù)報進行處理,并且還會需在要的時候發(fā)送RTCP數(shù)據(jù)報,從而能夠確保整個RTP會話過程的正確性。
在本系統(tǒng)中,使用RTPSession JRTPLIB類庫提供的方法來實現(xiàn)底層的RTP/RTCP操作,并且把他封裝在CrtpTransmitter類中,該類從Media Sink類繼承而來,接收到相應的媒體幀數(shù)據(jù),使用RTPSession類庫的操作把數(shù)據(jù)發(fā)送到網絡上。結語
本系統(tǒng)基于S3C2410平臺和Linux操作系統(tǒng),利用Video4Linux設計采集程序,使用MPEG-4壓縮編碼算法,通過實時流媒體傳輸技術實現(xiàn)了網絡傳輸,整個系統(tǒng)具有穩(wěn)定可靠、安裝簡便、成本低廉等特點,可擴展應用在工業(yè)控制、視頻會議系統(tǒng)、可視電話、遠程監(jiān)控系統(tǒng)等諸多領域。
第三篇:基于ARM嵌入式的遠程監(jiān)控系統(tǒng)設計
基于ARM嵌入式的遠程監(jiān)控系統(tǒng)設計
摘要:基于ARM 內核的嵌入式系統(tǒng)在遠程監(jiān)控報警系統(tǒng)中的設計實現(xiàn)與應用。核心部分主要包 括 ARM 嵌入式平臺設計及 μC-OS 嵌入式實時操作系統(tǒng)移植;人機交互界面 μCGUI 的設計與實現(xiàn);遠程通訊及自動報警等;系統(tǒng)的設計還考慮到了擴展性和通用性以及與其他監(jiān)控設備無縫連接等問題。
關鍵詞: ARM;μC/OS-II;μCGUI;遠程監(jiān)控 引言
監(jiān)控系統(tǒng)現(xiàn)已成為現(xiàn)代化生產、生活中不可缺少的重要組成部分。目前,監(jiān)控系列產品 種類繁多,大部分廣泛應用于交通、醫(yī)院、銀行、家居、學校等安防領域。
隨著嵌入式系統(tǒng)的出現(xiàn),尤其是基于 ARM 內核芯片的嵌入式系統(tǒng)的出現(xiàn),使得監(jiān)控系統(tǒng)的應用領域更為廣泛。本文設計的遠程監(jiān)控報警系統(tǒng)除了作為安防功能外,還可以應用于以下領域:通訊領域:遠程通訊、視頻會議和視頻點播、證券、遠程教育等。醫(yī)療領域:病房監(jiān)護、遠程診斷等。工業(yè)領域:遠程設備診斷、維護、維修,遠程生產監(jiān)控等。家用領域:家用電器遠程維護;電、氣、火等重大事故自動報警等。
系統(tǒng)設計
2.1系統(tǒng)組成
本文設計的遠程監(jiān)控系統(tǒng)主要由中心控制器、數(shù)據(jù)終端、傳感器模塊、通訊模塊、接口模塊等幾部分組成。系統(tǒng)組成圖(如圖 1)。
2.2中心控制器 系統(tǒng)核心負責數(shù)據(jù)采集判斷處理。為了提高系統(tǒng)工作效率,這里使用的是三星公司的 S3C2410芯片作為處理器。S3C2410 芯片是一款高性價比的 ARM 芯片,非常適合作手機、PDA 等手持設備。主要特性包括: ARM920T 內核,最高工作頻率 203MHz,LCD 控制器:可直接驅動真彩液晶屏,最高支持 2048×1024 真彩液晶屏,2 個 USB Host端口,1 個USB Device端口,支持 Nand flash 啟動模式,SD 卡接口,UART、IIC、SPI、IIS 等多種類 型串行接口,4 通道DMA。
本文的監(jiān)控系統(tǒng)的 CPU 核心部分使用的是標準的 SO-DIMM200 金手指接口,便于后期維護和升級。如果該監(jiān)控系統(tǒng)的使用環(huán)境較為苛刻,可以將 CPU替換為S3C2440芯片。S3C2440完全兼容S3C2410全部特性(注意:芯片引腳不完全兼容)。與S3C2410芯片相比,S3C2440的性能更為優(yōu)越:最高工作頻率可達500MHz,內部集成CMOS攝像頭接口,但價格較昂貴。
圖1 監(jiān)控系統(tǒng)組成框圖
2.3數(shù)據(jù)終端 數(shù)據(jù)終端的主要功能是對監(jiān)控數(shù)據(jù)進行分析、處理,及時將數(shù)據(jù)匯報給監(jiān)控人員。同時,監(jiān)控人員可以根據(jù)現(xiàn)場情況,使用數(shù)據(jù)終端對監(jiān)控的設備進行遠程控制。數(shù)據(jù)終端最大優(yōu)勢 就是安全、可靠、便于攜帶。一般情況下為了節(jié)約成本,可以將手機、PDA 等移動通訊設備作為數(shù)據(jù)終端使用。但是如果作為對高危環(huán)境或精密儀器的監(jiān)控系統(tǒng),數(shù)據(jù)終端需要專業(yè)定制。這里使用的是中心控制器的作為數(shù)據(jù)終端,即中心控制器既作為數(shù)據(jù)采集發(fā)送中心,也可數(shù)據(jù)接收處理中心使用。
2.4通訊模塊
通訊模塊主要負責遠程數(shù)據(jù)通訊。帶有 RS232/485、GPRS、CDMA 等一種或多種通訊 方式。需要根據(jù)現(xiàn)場環(huán)境和用戶需要進行定制。通訊模塊與控制器通過接口總線連接,連接 方式為 TTL/RS232/RS485 等。
2.5傳感器模塊
傳感器模塊的主要功能是感知外部環(huán)境,對外部環(huán)境進行實時監(jiān)測。由人體紅外傳感器、振動傳感器、超聲波傳感器、可燃氣體傳感器、溫度傳感器、濕度傳感器等一種或多種傳感 器組成??筛鶕?jù)現(xiàn)場監(jiān)測環(huán)境不同進行定制。
2.6接口模塊
接口模塊主要作為系統(tǒng)擴展功能使用,將控制器的 A/D 轉換、I2C、SPI 等多種接口進行 外部擴展。接口模塊沒有特定的功能,但可以根據(jù)需要與其他設備連接,例如可以與工業(yè)儀 器儀表或設備連接,實時對儀器或設備進行監(jiān)控。
接口模塊雖然不是監(jiān)控系統(tǒng)的主要部分,但是對于整個系統(tǒng)來說卻是不可缺少。因為本文的監(jiān)控系統(tǒng)主要考慮到了系統(tǒng)的可擴展性和與其它系統(tǒng)無縫連接。通過接口模塊可以很方 便的對監(jiān)控系統(tǒng)進行升級,并且可以實現(xiàn)與其他系統(tǒng)或設備的無縫連接。這也是本系統(tǒng)區(qū)優(yōu) 于其他監(jiān)控系統(tǒng)的主要功能。軟件設計
3.1工作軟件
系統(tǒng)的軟件設計較為復雜,這里只給出了整個工作軟件流程(如圖 2)。
圖2 軟件流程圖
3.2操作系統(tǒng)移植
S3C2410 芯片支持多種嵌入式操作系統(tǒng),如 WINCE、uCLinux 等。但考慮到監(jiān)控系統(tǒng) 的實時性要求,這里使用的是 μC/OS-II 嵌入式實時操作系統(tǒng)。μC/OS-II 是一個源碼公開、可移植、可固化、可裁剪、占先式的實時多任務操作系統(tǒng)。其絕大部分源碼是用 ANSI C 寫的。整個嵌入式系統(tǒng)分為兩大層:硬件層和軟件層。這里主要研究軟件層的架構。軟件層主要分為四個部分:實時操作系統(tǒng)內核,與處理器相關部分,與應用程序相關部分,用戶的應用程序。移植 μC/OS-II 系統(tǒng)需要修改的文件有:應用程序相關文件: OS_CFG.H INCLUDE.H; 處理器相關文件: OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C。
3.2.1 與處理器相關的代碼
這是移植中最關鍵的部分。內核將應用系統(tǒng)和底層硬件有機的結合成一個實時系統(tǒng),要 使同一個內核能適用于不同的硬件體系,就需要在內核和硬件之間有一個中間層,這就是與 處理器相關的代碼。處理器不同。這部分代碼也不同。我們在移植時需要自己移植這部分代 碼。
a)OS_CPU.H
包括了用#define 定義的與處理器相關的常量,宏和類型定義,有系統(tǒng)數(shù)據(jù)類型定義,棧 增長方向定義,關中斷和開中斷定義,系統(tǒng)軟中斷的定義等等。
b)OS_CPU_A.ASM
這部分需要對處理器的寄存器進行操作,所以必須用匯編語言來編寫。包括四個子函數(shù): OSStartHighRdy(),OSCtxSw(),OSIntCtxSw(),OSTickISR()。OSStartHighRdy()在多任務系統(tǒng)啟動函數(shù) OSStart()中調用。完成的功能是:設置系統(tǒng)運行標志位 OSRunning = TRUE;將就緒表中最高優(yōu)先級任務的棧指針 Load 到 SP 中,并強制中斷返回。這樣就緒的最高優(yōu)先級任務就如同從中斷里返回到運行態(tài)一樣,使得整個系統(tǒng)得以運轉。OSCtxSw()在任務級任 務切換函數(shù)中調用的。任務級切換是通過 SWI 或者 TRAP 人為制造的中斷來實現(xiàn)的。ISR 的向 量地址必須指向 OSCtxSw()。這一中斷完成的功能:保存任務的環(huán)境變量(主要是寄存器的值, 通過入棧來實現(xiàn)),將當前 SP 存入任務 TCB 中,載入就緒最高優(yōu)先級任務的 SP,恢復就緒最高優(yōu)先級任務的環(huán)境變量,中斷返回。這樣就完成了任務級的切換。OSIntCtxSw()在退出中斷 服務函數(shù) OSIntExit()中調用,實現(xiàn)中斷級任務切換.由于是在中斷里調用,所以處理器的寄存器入棧工作已經做完,就不用作這部分工作了。具體完成的任務;調整棧指針(因為調用函數(shù)會使任務棧結構與系統(tǒng)任務切換時堆棧標準結構不一致),保存當前任務 SP,載入就緒 最高優(yōu)先級任務的 SP,恢復就緒最高優(yōu)先級任務的環(huán)境變量,中斷返回。這樣就完成了中斷級任務切換。OSTickISR()系統(tǒng)時鐘節(jié)拍中斷服務函數(shù),這是一個周期性中斷,為內核提供
時鐘節(jié)拍。頻率越高系統(tǒng)負荷越重。其周期的大小決定了內核所能給應用系統(tǒng)提供的最小時 間間隔服務。一般只限于 ms 級(跟 MCU 有關),對于要求更加苛刻的任務需要用戶自己建立中斷來解決.該函數(shù)具體內容:保存寄存器(如果硬件自動完成就可以省略),調 OSIntEnter(),調用 OSTimeTick(),調用 OSIntExit(),恢復寄存器,中斷返回。
c)OS_CPU_C.C
該文件中共定義了 6 個函數(shù),但是最重要的是 OSTaskStkInit().其他都是對系統(tǒng)內核的擴展 時用的.OSTaskStkInit()是在用戶建立任務時系統(tǒng)內部自己調用的,對用戶任務的堆棧進行初始化。使建立好的進入就緒態(tài)任務的堆棧與系統(tǒng)發(fā)生中斷并且將環(huán)境變量保存完畢時 的棧結構一致。這樣就可以用中斷返回指令使就緒的任務運行起來。
3.2.2與應用相關的代碼
這部分包括兩個文件:OS_CFG.H, INCLUDES.H。用戶根據(jù)自己的應用系統(tǒng)來定制合適 的內核服務功能。OS_CFG.H 來配置內核,用戶根據(jù)需要對內核進行定制,留下需要的部分,去掉不需要的部分,設置系統(tǒng)的基本情況。比如系統(tǒng)可提供的最大任務數(shù)量,是否定制郵箱服務,是否需要系統(tǒng)提供任務掛起功能,是否提供任務優(yōu)先級動態(tài)改變功能等等。INCLUDES.H 系統(tǒng)頭文件,整個實時系統(tǒng)程序所需要的文件,包括了內核和用戶的頭文件。
3.3用戶圖形接口
雖然 μC/OS-II 操作系統(tǒng)具有很高的實時性,但不像 WINCE、uCLinux 等操作系統(tǒng)那樣 有良好的圖形界面支持。所以,在使用液晶和觸摸屏的情況下需要移植用戶圖形接口程序。這里使用的是 μC/GUI。μC/GUI 是一個軟件模塊集合,通過該模塊可以在我們的嵌入式產品 中加入用戶圖形接口(GUI)。μC/GUI 具有很高的執(zhí)行效率,并且與處理器和 LCD 控制器相 獨立。該模塊可以工作在單任務或者多任務環(huán)境,可以支持不同大小的顯示方式。
通過 μC/GUI 我們可以很方便的在液晶屏繪制圖形和界面。如果需要多種字體支持,必 須自己將相應的字體字庫加入到 μC/GUI 中。為了避免出現(xiàn)亂碼,盡量使用 GB2312 國標字庫。
3.4關于字庫的兼容性問題
我們國內通常使用的漢字字庫是 GB 碼,但國際上使用的是 UNICODE 碼,所以如果數(shù)據(jù)終端使用的是手機、PDA 等移動通信設備,那么在數(shù)據(jù)發(fā)送前必須進行字碼轉換,即 GB 碼 轉換為 UNICODE 碼或者 UNICODE 碼轉換為 GB 碼。由于 GB 碼與 UNICODE 碼在排列組合上沒有任何規(guī)律,所以通常字碼轉換的方法就是 查表法。
4結束語
基于 ARM9 嵌入式系統(tǒng)的遠程監(jiān)控系統(tǒng)與以往的監(jiān)控系統(tǒng)不同,高性能的處理器芯片大大提高了系統(tǒng)的性能。使監(jiān)控系統(tǒng)能夠工作在比較惡劣的環(huán)境中。并且在設計上充分考慮到了系統(tǒng)的可擴展性和兼容性問題,實現(xiàn)了本系統(tǒng)與其他系統(tǒng)的無縫連接。以滿足不同工作環(huán) 境的需要。
作者創(chuàng)新觀點:本文設計的遠程監(jiān)控系統(tǒng)應用范圍更廣,更靈活、方便。通過各個功能模塊 的不同組合,可以十分方便快速的應用于各個領系域,真正實現(xiàn)智能化、自動化且具有較高 的性價比。
第四篇:基于web的嵌入式遠程監(jiān)控系統(tǒng)
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第1頁
共33頁
基于web的嵌入式遠程監(jiān)控系統(tǒng)
學生:劉 仁
指導老師:蔡 碩
摘要: 隨針對當前國內國外嵌入式服務器技術研究和發(fā)展情況的分析,本報告提出了將 WEB 服務器、嵌入式系統(tǒng)以及當前的一些嵌入式實驗板板載功能進行融合的設計思想。設計了結合 WEB 服務器技術的嵌入式監(jiān)控系統(tǒng)。該系統(tǒng)具有瀏覽交互式網頁,對嵌入式平臺進行監(jiān)視和控制等功能。通過本套嵌入式WEB 服務器系統(tǒng),用戶可以通過 HTTP 協(xié)議方便的訪問相應的嵌入式平臺進行有效監(jiān)視的同時還可以進行實時的有效控制。該系統(tǒng)對硬件要求極低、響應速度快、安全性好、可擴展性強等優(yōu)點,具有較高的實際應用價值。該系統(tǒng)在智能家居、嵌入式組網等方面的應用將有較廣闊的發(fā)展前途。
關鍵詞:ARM 嵌入式系統(tǒng);嵌入式 web 監(jiān)控;boa 服務器;CGI 編程;Linux 操作系統(tǒng)
關鍵詞:自動化、奏樂器、VHDL、數(shù)字電路
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第2頁
共33頁
Abstract: According to the analysis of the researches about the status of the mbeddedserver of the world.We rise a design of a embedded internet control system basedon the Web service which integrates the web server,embedded technology and thefunctions on the embedded experiment Board.This system has the function of browsing the web pages,monitoring theembedded Board and so on.With this embedded WEB server,the users can watchthe embedded system conveniently according the HTTP protocol.At the sametime the users can also monitor the ystem.This system have a lot of longtageslike a low request of the hardware,limited time of response and a stable status.Wewill see that this kind of system used in the application of intelligent familyelectronics,embedded neting and so on would have a good development.Keywords: ARM Embedded System;Embedded Web Server System;Boa Server;CGI Programing;Linux Operating System
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第3頁
共33頁
引 言
嵌入式系統(tǒng)課程設計是本專業(yè)在學習完 C 語言、LINUX 操作系統(tǒng)、嵌入式系統(tǒng)原理與接口設計、嵌入式操作系統(tǒng)原理之后的專業(yè)課程設計,屬于專業(yè)課內容。通過課程設計建立嵌入式系統(tǒng)主體環(huán)節(jié),嵌入式系統(tǒng)的最小結構和系統(tǒng)應用設計基本技能,培養(yǎng)分析和解決一些簡單的實際問題的能力,為今后畢業(yè)設計奠定基礎。隨著嵌入式技術的發(fā)展和高速寬帶網絡的普及, 利用網絡實現(xiàn)遠程監(jiān)控已為人們廣泛接受, 嵌入式網絡監(jiān)控技術正是在此條件下逐步發(fā)展成熟起來的。用戶使用 Web 瀏覽器, 通過以太網遠程訪問內置 Web 服務器的監(jiān)控攝像機, 不但可以實現(xiàn)對現(xiàn)場的遠程視頻監(jiān)控, 而且可以向監(jiān)控現(xiàn)場發(fā)送指令。在整個系統(tǒng)的實現(xiàn)過程中, 嵌入式 Web 服務器起著十分重要的作用。本課題就是基于該項技術,最終編程實現(xiàn)通過網絡控制下位機嵌入式控制器的電機啟動和停止。
1.1研究目的和意義
1、通過嵌入式課程設計,熟練掌握 C 語言的編程方法?;?WEB 的遠程監(jiān)控的實現(xiàn),CGI 的編寫和使用,將理論聯(lián)系到實踐中去,提高我們的動腦和動手的能力。
2、通過基于 WEB 的嵌入式遠程監(jiān)控系統(tǒng)的設計,掌握 S3C2410 實驗箱,直流電機的工作原理,BOA 服務器的使用,CGI 的使用和簡單程序的編寫及調試方法,最終提高我們的動手實踐能力。
3、本課題的研究目的是用 BOA 服務器、CGI、IE 瀏覽器設計一個通過 IE 瀏覽器監(jiān)控電機的系統(tǒng),能夠通過兩個簡單的按鍵對電機進行啟動和停止的控 3
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第4頁
共33頁
制,并能夠在 IE 瀏覽器上看到電機的當前狀態(tài)。
4、由于基于 WEB 的嵌入式遠程監(jiān)控系統(tǒng)將成為今后遠程監(jiān)控技術發(fā)展的主流方向,所以需要設計出簡單實用,讓人們更滿意的產品。
1.2 本設計任務和主要內容
1.基本要求
本課題主要設計和研究基于WEB的嵌入式遠程監(jiān)控系統(tǒng),要求在保證可靠運行的前提下,電路設計盡量簡潔緊湊,以減小成本、提高系統(tǒng)的效率和安全性。
2.應解決的問題 1)設計系統(tǒng)網絡方案
2)分析網絡程序結構和應用程序的使用方法 3)編程實現(xiàn)嵌入式系統(tǒng)服務器功能 4)編程實現(xiàn)嵌入式系統(tǒng)聯(lián)網功能
5)編程實現(xiàn)通過網絡控制下位機嵌入式控制器的電機啟動和停止
3.擴展功能
演奏時可以通過按鍵選擇是手動演奏還是自動演奏,手動演奏是通過按鍵進行簡易樂曲的演奏。
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第5頁
共33頁總體方案設計
2.1 整體方案設計
系統(tǒng)總體設計是基于嵌入式系統(tǒng)和 WEB 服務器結合的思想開發(fā)的,其網絡拓撲結構如圖 2.1 所示
圖 2.1 系統(tǒng)網絡拓撲圖
針對本次課程設計提出的系統(tǒng)設計如圖 2.2 所示
圖 2.2 系統(tǒng)方案框圖
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第6頁
共33頁
2.2 硬件系統(tǒng)設計
2.3.1 核心處理器的選擇
核心處理芯片需要完成處理和支持整個系統(tǒng)的功能需求,通過運行 BOA 服務器要實施的接收來自各個客戶端的請求和信息,并根據(jù)獲得的請求和信息進行相應的后臺處理以及信息的反饋。為完成上述功能,實現(xiàn)服務器正常運行,對處理芯片進行選型,對比現(xiàn)有處理芯片的優(yōu)缺點,選擇 ARM9 S3C2410X 芯片作為設計開發(fā)嵌入式服務器系統(tǒng)的核心處理芯片。S3C2410X 微處理器是一款由 Samsung 公司為手持設備設計的低功耗、高集成度的基于ARM920T 核的微處理器,為了降低系統(tǒng)總成本和減少外圍器件,這款芯片還集成了以下部件:16KB 指令 Cache、16KB 數(shù)據(jù) Cache、MMU、外部存儲器控制器、LCD 控制器、NAND FLASH 控制器、4 個 DMA 通道、3 個 UART 通道、1 個 IIC 總線控制器、1 個 IIS總線控制器、4 個 PWM 定時器、1 個內部定時器、通用 IO 口、實時時鐘、8 通道 10 位ADC 和觸摸屏接口、USB 主、USB 從、SD/MMC 卡接口等。
2.3 軟件環(huán)境選擇
2.3.1 操作系統(tǒng)的選擇
當選定了硬件系統(tǒng)后,為了配合硬件達到系統(tǒng)的最優(yōu)控制要求,對市面上常用的嵌入式系統(tǒng)進行分析比較。
(1)價格比較:Linux 是完全免費的操作系統(tǒng),只需遵循 GPL 聲明,不需支付任何費用;WinCE 是微軟的商用嵌入式操作系統(tǒng),使用它需要支付 WinCE 及其開發(fā)環(huán)境的費用,開發(fā)出來的每套產品也需交納一定費用。uc/os—II 系統(tǒng),可以免費用于學習或科研,但開發(fā)商使用產品或銷售都是收費的。
(2)開放性比較:Linux 是源代碼完全開放的操作系統(tǒng),可以自由下載,并且
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第7頁
共33頁
在遵循GPL 聲明的前提下可以自由地修改、移植,為系統(tǒng)的開發(fā)和調試帶來極大的便利;winCE是部分源碼開放的商用操作系統(tǒng),如果要修改其中的代碼,需獲得微軟公司的授權;uc/os—II 也是開放的實時操作系統(tǒng)。
(3)文件系統(tǒng)的比較:Linux 支持絕大部分文件系統(tǒng),只需選擇相應的文件系統(tǒng)即可;
WinCE 僅支持 Windows 系列的 FAT16、有限文件系統(tǒng);uc/os—II 本身沒有包括文件系統(tǒng),需購買或移植。Linux 與 ARM 處理器從以上可以看出,Linux 系統(tǒng)在諸多方面都存在優(yōu)勢,而且本身的 ARM 處理器與 Linux 也有著緊密的聯(lián)系。因此采用 Linux 操作系統(tǒng)。2.3.2 服務器的選擇
典型的嵌入式 Web 服務器有 Boa 和 thttpd 兩種,它們和 Apache 等高性能的 Web 服務器主要的區(qū)別在于它們一般是單進程服務器,只有在完成一個用戶請求后才能響應另一個用戶的請求,而無法并發(fā)響應,但這在嵌入式設備的應用場合里已經足夠了。Boa 是一個非常小巧的 Web 服務器,可執(zhí)行代碼只有約 60KB。它是一個單任務 Web服務器,只能依次完成用戶的請求,而不會 fork 出新的進程來處理并發(fā)連接請求。但 Boa支持 CGI,能夠為 CGI 程序 fork 出一個進程來執(zhí)行。Boa 的設計目標是速度和安全,在其站點公布的性能測驗中,Boa 的性能要好于 Apache 服務器。經過上述的對比和判斷,選擇Boa 作為系統(tǒng)的嵌 入式服務器。
綜合以上的討論以及選擇,根據(jù)系統(tǒng)的實際需求,最終確定了采用 S3C2410X 為核心處理器,Linux 為嵌入式操作系統(tǒng),boa 為服務器以及相應的 http 瀏覽器的系統(tǒng)設計方案。
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第8頁
共33頁硬件設計
3.1 系統(tǒng)硬件平臺介紹
我們所介紹的硬件平臺是基于 ARM 體系結構,由北京博創(chuàng)興業(yè)科技有限公司開發(fā)的UP-NetARM2410-S 實驗儀器。UP-NetARM2410-S 的 CPU 為 ARM920T 內核的三星S3c2410 芯片,由于有 MMU(內存管理單元)可以運行標準的 ARM-LINUX 內核。通過這個平臺,我們可以實現(xiàn)嵌入式 LINUX 中的針對無 MMU 的開發(fā)過程。
3.2 s3c2410 芯片介紹
圖 3.1 芯片結構圖
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第9頁
共33頁
3.3 ARM 處理器的外圍設備
3.3.1 電源電路
設備提供 12v 的電源,經 LM1085-3.3V 和 AS1117-1.8V 分別得到 3.3V 和 1.8V 的工作電壓。開發(fā)板上的芯片多數(shù)使用了 3.3V 電壓,而 1.8V 是供給 S3C2410 內核使用的。5V 電壓供給 LCD、電機、總線等電路使用。
圖 3.2 電源電路
3.3.2 硬件復位電路
硬件復位電路由IMP811T構成,實現(xiàn)對電源電壓的監(jiān)控和手動復位操作。2410-S主板復位電路設置專用邏輯:IMP811T 的復位電平可以使CPU JTAG(nTRST和板級系統(tǒng)(nRESET)全部復位;來自仿真器的ICE_nSRST 信號只能使板級復位;來自仿真器的ICE_nTRST 可以使JTAG(nTRST)復位,通過跳線選擇是否使板級nRESET復位。nRESET反相后得到RESET 信號。硬件復位電路如圖3.3所示
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第10頁
共33頁
圖3.3 硬件復位
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第11頁
共33頁軟件設計
4.1 設計思想
基于 web 的嵌入式監(jiān)控系統(tǒng)設計主要的功能有簡單的網頁瀏覽,實現(xiàn)簡單應用功能(客戶端與服務器的交互)以及服務器端的控制功能。因此軟件的設計分為三個部分:boa 服務器的搭建、應用程序設計和驅動程序的加載。
4.2 BOA 服務器的簡介與搭建
4.2.1 嵌入式 Web 服務器 Boa 的特點
Boa 是一款單任務的 HTTP 服務器, 與其他傳統(tǒng)的 Web 服務器不同的是當有連接請求到來時, 它并不為每個連接單獨創(chuàng)建進程, 也不通過復制自身進程來處理多鏈接, 而是通過建立 HTTP 請求列表來處理多路 HTTP 連接請求, 同時它只為 CGI 程序創(chuàng)建新的進程,這樣就在最大程度上節(jié)省了系統(tǒng)資源, 這對嵌入式系統(tǒng)來說至關重要。同時它還具有自動生成目錄、自動解壓文件等功能, 因此 Boa 具有很高的 HTTP 請求處理速度和效率, 在嵌入式系統(tǒng)中具有很高的應用價值。4.2.2 Boa 的功能實現(xiàn)
嵌入式 Web 服務器 Boa 和普通 Web 服務器一樣, 能夠完成接收客戶端請求、分析請求、響應請求、向客 戶端返回請求結果等任務。它的工作過程主要包括:
(a)完成 Web 服務器的初始化工作, 如創(chuàng)建環(huán)境變量、創(chuàng)建 TCP 套接字、綁定端口、開始偵聽、進入循環(huán)結構, 以及等待接收客戶瀏覽器的連接請求;
(b)當有客戶端連接請求時,Web 服務器負責接收客戶端請求, 并保存相關請求信息;
(c)在接收到客戶端的連接請求之后,分析客戶端請求, 解析出請求的方法、基于web的嵌入式遠程監(jiān)控系統(tǒng)
第12頁
共33頁
URL 目標、可選的查詢信息及表單信息, 同時根據(jù)請求做出相應的處理;
(d)Web 服務器完成相應處理后, 向客戶端瀏覽器發(fā)送響應信息, 關閉與客戶機的TCP 連接。嵌入式 Web 服務器 Boa 根據(jù)請求方法的不同,做出不同的響應。如果請求方法為HEAD,則直接向瀏覽器返回響應首部;如果請求方法為 GET,則在返回響應首部的同時,將客戶端請求的 URL 目標文件從服務器上讀出,并且發(fā)送給客戶端瀏覽器;如果請求方法為 POST,則將客戶發(fā)送過來的表單信息傳送給相應的 CGI 程序,作為 CGI 的參數(shù)來執(zhí)行 CGI 程序,并將執(zhí)行結果發(fā)送給客戶端瀏覽器。Boa 的功能實現(xiàn)也是通過建立連接、綁定端口、進行偵聽、請求處理等來實現(xiàn)的。4.2.3 BOA 的搭建與移植
(1)準備源代碼、解壓軟件包,安裝源代碼到 boa 網站 http://004km.cnTB0 = DCM_TCNTB0;/* less than 10ms */ TCMPB0 = DCM_TCNTB0/2;TCON &=~(0xf);TCON |=(0x2);TCON &=~(0xf);TCON |=(0x19);})在 s3c2410_dcm_ioctl 中提供調速功能接口: case DCM_IOCTRL_SETPWM: return dcm_setpwm((int)arg);應用程序 dcm_main.c 中調用:
ioctl(dcm_fd, DCM_IOCTRL_SETPWM,(setpwm * factor));實現(xiàn)直流電機速度的調整。a.編譯直流電機模塊 cd /arm2410s/kernel-2410s
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第20頁
共33頁
make menuconfig 進入 Main Menu / Character devices 菜單,選擇 DC MOTOR 為模塊加載: b.編譯內核模塊: make dep make make modules 直流電機模塊的編譯結果為:
/arm2410s/kernel-2410s/drivers/char/s3c2410-dc-motor.o c.編譯應用程序
cd /arm2410s/exp/basic/10_dcmotor/ make 生成 dcm_main d.掛載驅動模塊
insmod /host/kernel-2410s/drivers/char/s3c2410-dc-motor.o e.運行程序
mount –t nfs 192.168.0.xxx:/arm2410s /host insmod /host/kernel-2410s/drivers/char/s3c2410-dc-motor.o cd /host/exp/basic/10_dcmotor/./dcm_main 程序運行結果:直流電機轉動 1 秒,停轉 1 秒。由于是根據(jù)原有變速程序稍做改動完成的程序,所以遇到的問題不是很多,經過幾次嘗試就得到了期望的結果。
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第21頁
共33頁
5.3 調試結果分析
5.3.1 調試結果
1、靜態(tài)網頁
圖 5.1 靜態(tài)網頁
2、乘法網頁
圖 5.2 乘法網頁
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第22頁
共33頁
3、電機控制網頁
圖 5.3 電機控制網頁
圖 5.4 返回結果
5.3.2 結果分析
經過 x86 下的調試和基于 ARM 的下載與調試后,系統(tǒng)能夠實現(xiàn)靜態(tài)網頁瀏覽,簡單人機交互以及電機控制的功能,系統(tǒng)工作穩(wěn)定,響應速度快,組網方便快捷,如果與 DNS 服務器或者 WINS 服務器相結合即可實現(xiàn)用主機名就能登錄相應平臺的功能。
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第23頁
共33頁設計總結
經過三個周的學習與努力,經過系統(tǒng)分析、方案論證、硬件和軟件設計、調試 等階段完成了基于 web 的嵌入式遠程監(jiān)控系統(tǒng)的設計制作。在這三個周的課程設計中,我得到了老師和同學很大的幫助,有時候覺得進行不下去了,老師或同學一句話就能讓我茅塞頓開。即使聽不懂,他們也會耐心的講解。
在系統(tǒng)的設計制作過程中,確實遇到了各種各樣的問題,如調試思路正確但是沒有能夠進行找到合適的方法進行進一步的實驗,設計中對于程序的編寫以及目錄結構的認知上存在偏差,其主要原因還是基礎功不扎實,把握系統(tǒng)的能力不足,這為我們以后的學習和工作提了一個醒。在問題的解決過程中,也提高了組員的動手動腦能力,學到了許多在書本上學不到的知識。在具體的設計當中解決了諸如 boa 服務器的搭建,C 程序的修改及 CGI編程的理解,程序的調試和系統(tǒng)的整體認識等問題,小組成員收獲很大。
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第24頁
共33頁
致謝
在這次課程設計中,學校和學院給予了大力的支持,提供了與設計有關的環(huán)境,方便了課程設計的順利進行。在這其中我確實學到了很多知識,在此僅代表個人衷心的感謝學校和學院的大力支持。本論文是在指導老師蔡爍的悉心指導和嚴格要求下完成的。在整個課程設計過程中,蔡爍老師時時督促和引導,并在設計過程中進行了方向指導,在總體方向不出錯的基礎上,施展自己的所學,發(fā)揮個人的所長。他不僅在學習上和生活上給予了我們多方面的指導和無微不至的關懷,而且他淵博的學識、嚴謹?shù)闹螌W態(tài)度、孜孜不倦的工作作風和寬以待人的處事風格使我終身受益,并且還從中學會了分析問題和解決問題的方法此外,在本次設計過程中,還得到了其他老師和的熱情關心和幫助,值此論文完成之際,謹向老師表示崇高的敬意和最誠摯的謝意。
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第25頁
共33頁
參考文獻
[1]鄭靈翔編著 《嵌入式 LINUX 系統(tǒng)設計》 北京航空航天大學 2008 年 [2]孫紀坤、張小全編著 《嵌入式 LINUX 系統(tǒng)開發(fā)技術詳解-基于 ARM》人民郵電出版社 2007.9、[3]王進德 編著 《嵌入式 LINUX 程序設計與應用案例》 中國電力出版社 2007.5 [4]鄭慕德 編著 《嵌入式微型計算機系統(tǒng)實例教程-ARM 與 LINUX》 科學出版社2006.7 [5]劉淼 編著 《嵌入式系統(tǒng)接口設計與 LINUX 驅動程序開發(fā)》 北京航空航天大學出版社,2006.5 [6]魏洪興等編著 《嵌入式系統(tǒng)設計與實例開發(fā) II-基于 ARM9 微處理器與 LINUX 操作系統(tǒng)》 清華大學出版社 2005.12 [7]魏洪興等編著 《嵌入式系統(tǒng)設計與實例開發(fā)實驗教材 II-基于 ARM9 微處理器與LINUX 操作系統(tǒng)》清華大學出版社 2005.12 [8]金敏等編著 《嵌入式組成、原理與設計編程》 人民郵電出版社 2007.6
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第26頁
共33頁
附錄 1 主要程序清單
乘法網頁的HTML表單:
?測試
第五篇:基于嵌入式Web的遠程監(jiān)控系統(tǒng)設計
基于嵌入式Web的遠程監(jiān)控系統(tǒng)設計
摘 要:本文結合機房環(huán)境設備的管理需要,分析了遠程監(jiān)控系統(tǒng)的特點,提出基于嵌入式Web服務器的遠程監(jiān)控系統(tǒng)設計思路、體系架構方法,并對基于OPC技術的互聯(lián)與基于嵌入式Web服務器的互聯(lián)作了簡要對比。文章結合CGI程序的設計,著重探討了嵌入式Web服務器的實現(xiàn)方法。關鍵詞:嵌入式平臺,Web服務器,遠程監(jiān)控,CGI程序
⒈引言
隨著計算機和網絡技術的普及,計算機系統(tǒng)的數(shù)量與日俱增,計算機機房已成為各大型單位的信息樞紐。機房中的環(huán)境設備(如空調、UPS電源、配電柜、消防設備等)為網絡系統(tǒng)的安全運行提供了環(huán)境保障。同時,環(huán)境設備自身的安全運行,也成為機房管理的重要內容之一。一旦機房的環(huán)境設備出現(xiàn)故障,就會直接影響計算機系統(tǒng)的正常運行,嚴重的還會造成機房內的相關設備損壞,甚至導致網絡系統(tǒng)癱瘓[1]。因此,對機房環(huán)境設備的運行狀態(tài)進行實時監(jiān)控,是保證機房設備安全運行的關鍵措施。
⒉遠程監(jiān)控系統(tǒng)的需求分析
對機房環(huán)境設備的監(jiān)控主要涉及以下幾個方面的內容:對配電系統(tǒng)、UPS系統(tǒng)、空調系統(tǒng)工作狀態(tài)的監(jiān)視;對機房的溫濕度、生活用水和供暖制冷系統(tǒng)漏水情況等進行監(jiān)測、報警,以及對門禁系統(tǒng)、消防系統(tǒng)、保安系統(tǒng)等的管理。由于這些環(huán)境設備是連續(xù)工作的,因此要求監(jiān)控系統(tǒng)也必須是長時間連續(xù)工作的。這樣就對系統(tǒng)設計的可靠性、安全性、可維護性等方面提出了更高的要求[1],具體表現(xiàn)在以下幾個方面:
⑴高可靠性。要求監(jiān)控系統(tǒng)可長時間不間斷運行,無故障運行時間要長,且系統(tǒng)的維護快速簡便。
⑵高安全性。系統(tǒng)應能夠提供多種安全保護措施,對異常狀態(tài)進行分析、記錄、及時報警,以便讓管理人員能夠盡快了解所發(fā)生的情況并及時處理。
⑶較強的實時性。監(jiān)控系統(tǒng)對信息的傳輸要及時,不能有過大的延時,否則難以及時跟蹤被監(jiān)控對象的當前狀況。
⑷易用性和易維護性。機房環(huán)境設備監(jiān)控系統(tǒng),應以GUI的方式提供良好的人機界面,便于人機交互。同時,監(jiān)控系統(tǒng)要有通用性和靈活性,即可以在對系統(tǒng)進行少量修改或擴充就可增加新的監(jiān)控項目,擴充監(jiān)測點數(shù),以滿足新的監(jiān)控要求。
⑸豐富的系統(tǒng)功能。要求監(jiān)控系統(tǒng)不僅能夠提供一般的報警功能,對采集的當前數(shù)據(jù)進行記錄且保存
歷史數(shù)據(jù),并以圖形方式對環(huán)境設備運行狀態(tài)和參數(shù)進行直觀顯示。
實施監(jiān)控的主要方法,即是在現(xiàn)場控制器的控制之下,實時地采集數(shù)據(jù)并與預設的值進行比較,如果超出相應的閥值則給出報警,以提示有關人員進行相應處理。根據(jù)對環(huán)境設備監(jiān)控的位置不同,可把監(jiān)控系統(tǒng)分為本地監(jiān)控和遠程監(jiān)控兩大類。本地監(jiān)控方式往往需要派人長期現(xiàn)場值守,管理成本較高;而借助于公共的Internet或企業(yè)內部的Intranet網絡實施遠程監(jiān)控則可做到無人值守,從而大幅度地節(jié)約管理成本、提高機房管理水平和效率,因此成為監(jiān)控系統(tǒng)發(fā)展的主流方向。
⒊遠程監(jiān)控系統(tǒng)的設計
基于對遠程監(jiān)控系統(tǒng)的需求分析,進行系統(tǒng)設計時應重點考慮如下幾種因素:首先,要考慮現(xiàn)場總線與數(shù)據(jù)網的互聯(lián)問題。由于被監(jiān)控對象的信號種類較多,所采用的現(xiàn)場總線標準各異,因此不同總線標準之間的轉換以及現(xiàn)場總線與數(shù)據(jù)網之間的互聯(lián)是系統(tǒng)設計時需要重點考慮的問題[2]。其次,實時性要求是遠程監(jiān)控網絡系統(tǒng)區(qū)別于普通網絡系統(tǒng)的基本特征。如果監(jiān)控系統(tǒng)的實時性得不到保障,現(xiàn)場監(jiān)控就失去了實用價值。第三,為滿足監(jiān)控系統(tǒng)的高可靠性要求,應分別對硬件系統(tǒng)和軟件系統(tǒng)進行抗干擾設計。第四,根據(jù)遠程連接方式不同,應采用不同的安全措施以保證信息的安全傳輸。3.1監(jiān)控系統(tǒng)的功能設計
監(jiān)控系統(tǒng)的基本功能主要包括:現(xiàn)場數(shù)據(jù)的實時采集、發(fā)送和顯示;對采集到的數(shù)據(jù)進行處理和存儲;對數(shù)據(jù)處理的結果進行分析、判斷和報警;提供多種業(yè)務支持功能。3.1.1實時數(shù)據(jù)采集
實時數(shù)據(jù)采集是實施系統(tǒng)監(jiān)控的基礎。在環(huán)境設備的監(jiān)控系統(tǒng)中,需要實時采集的數(shù)據(jù)主要包括高低壓配電系統(tǒng)及UPS電源的電壓、電流、電源開關狀態(tài)等參數(shù),空調機的冷熱水溫度、流量、送風量、送風溫度、新風量等狀態(tài)參數(shù),以及機房內部的環(huán)境參數(shù)(如溫度、濕度、水浸、煙感、門禁等)。不同的參數(shù)采用的總線標準不同(如RS232/485總線、Lonworks總線),只有把它們統(tǒng)一到TCP/IP協(xié)議上,才能實現(xiàn)真正意義上的遠程監(jiān)控。
3.1.2報警功能
報警是監(jiān)控系統(tǒng)的基本功能之一。監(jiān)控系統(tǒng)對采集到的數(shù)據(jù)進行分析、處理,如果發(fā)現(xiàn)相關數(shù)據(jù)超限、數(shù)據(jù)異常,則說明環(huán)境設備出現(xiàn)異常情況,此時應發(fā)出相應報警。設計報警功能時,需要考慮被監(jiān)控對象的自身特性、優(yōu)先級別等因素,對多個報警信號進行加權處理,以保證系統(tǒng)的所有重要報警都能被及時處理。
3.1.3多種業(yè)務支持功能
靈活的查詢和豐富的報表功能是對監(jiān)控系統(tǒng)基本功能的擴展。通過對設備運行狀態(tài)的實時數(shù)據(jù)、歷史數(shù)據(jù)進行對比分析,從不同角度向管理者提供設備運行和維護信息,為設備的維護、大修、更新、改造等質量管理提供可靠依據(jù)。3.2監(jiān)控系統(tǒng)的結構設計
遠程監(jiān)控系統(tǒng)由現(xiàn)場數(shù)據(jù)采集設備(可以為多個設備)、本地Web服務器和遠端監(jiān)控主機三部分構成[3]。Web服務器通過現(xiàn)場總線與本地數(shù)據(jù)采集設備直接相連,并負責把本地傳感器采集到的數(shù)據(jù)進行簡單處理,通過網絡發(fā)送到遠端的監(jiān)控主機上,從而為實現(xiàn)無人值守的管理方式創(chuàng)造條件。
遠程監(jiān)控系統(tǒng)在設計時需要解決的關鍵問題,就是將不同類型的現(xiàn)場總線或控制網絡與以太網進行互聯(lián)互通,從而實現(xiàn)監(jiān)控信息的遠程實時傳輸。目前,實施遠程監(jiān)控主要有如下幾種方法:①基于PSTN的傳統(tǒng)方法,即通過Modem連接異地的現(xiàn)場設備;②基于OPC技術。采用支持多種現(xiàn)場總線規(guī)范的OPC Server,通過OPC 接口實現(xiàn)現(xiàn)場總線到Internet或Intranet網絡的無縫連接;③基于嵌入式平臺實現(xiàn)遠程監(jiān)控。在嵌入式平臺上完成對現(xiàn)場數(shù)據(jù)的實時采集,通過現(xiàn)場總線與數(shù)據(jù)網的互連,將Server端的數(shù)據(jù)通過TCP/IP協(xié)議提供給遠端的監(jiān)控主機(即Client端);④采用其它自定義方法實施遠程監(jiān)控。3.2.1基于OPC的監(jiān)控系統(tǒng)
OPC 是以OLE/COM/DCOM機制作為應用程序級的通信標準,采用客戶/服務器模式,把開發(fā)訪問接口的任務放在硬件生產廠家或第三方廠家,以OPC服務器的形式向用戶提供通用的接口,解決了軟、硬件廠商之間的矛盾,提高了系統(tǒng)的開放性和互操作性[4]?;贠PC架構的監(jiān)控系統(tǒng)結構如圖1所示。其中,OPC DA Server為數(shù)據(jù)采集服務器,OPC AE Server為報警服務器。OPC Server 提供多種接口規(guī)范,應用程序和Web瀏覽器(即OPC Client)可以通過這些接口取得與OPC Server相連的硬件設備信息,從而實現(xiàn)OPC Client通過以太網對OPC Server的訪問。同時OPC Server也可以將采集到的數(shù)據(jù)或報警信息通過網絡發(fā)送到客戶端或Web瀏覽器端。
在基于OPC的體系架構中,由于 COM/DCOM 已被視為網絡功能的具體實現(xiàn)方法,使得Client對OPC Server的遠程訪問成為標準的網絡訪問方式。但是OPC技術的缺點也是非常明顯的,由于LE/COM/DCOM機制是一個純軟件的架構,對系統(tǒng)資源配置的要求高。當系統(tǒng)規(guī)模較大或監(jiān)控點數(shù)較多時,系統(tǒng)的實時性將會明顯下降。
3.2.2基于嵌入式平臺的監(jiān)控系統(tǒng)
實時監(jiān)控系統(tǒng)需要長時間不間斷地工作,對系統(tǒng)的可靠性和實時性均有較高要求。為此必須從系統(tǒng)功能、體系架構、軟硬件系統(tǒng)的穩(wěn)定性、設備功耗等方面進行綜合考慮(例如選用工控級的產品),設計小型化的智能型監(jiān)控系統(tǒng)。而建立在RTOS之上的嵌入式系統(tǒng)為控制系統(tǒng)的網絡化、小型化提供了有效途
徑,嵌入式網絡控制已成為監(jiān)控系統(tǒng)未來發(fā)展的重點方向之一。
基于嵌入式平臺的遠程監(jiān)控系統(tǒng)結構如圖2所示。其中,嵌入式Web服務器既是遠程監(jiān)控系統(tǒng)的中心節(jié)點,也是控制網絡與數(shù)據(jù)網絡進行互聯(lián)的網關,通過TCP/IP協(xié)議將其連接到以太網上,監(jiān)控主機則通過以太網(或Internet)在遠程實時地監(jiān)視現(xiàn)場信號的動態(tài)變化,從而實現(xiàn)遠程監(jiān)控的目標。對于能夠直接支持TCP/IP協(xié)議的現(xiàn)場檢測設備,則可以將其直接連接到以太網上,圖中的液體泄漏檢測儀即是如此;對于采用其他總線標準的現(xiàn)場設備,則需要通過嵌入式Web服務器進行信號轉換之后把現(xiàn)場總線連接到以太網上。
圖2 遠程監(jiān)控系統(tǒng)結構圖
⒋嵌入式Web服務器的設計
在基于嵌入式平臺的遠程監(jiān)控系統(tǒng)中,監(jiān)控系統(tǒng)的中心節(jié)點主要承擔兩方面的任務:一方面負責對現(xiàn)場數(shù)據(jù)的采集,即Web服務器以定時巡檢的方式通過現(xiàn)場總線對傳感器的信號進行采集;另一方面負責協(xié)議轉換,把現(xiàn)場總線來的數(shù)據(jù)轉換成TCP/IP協(xié)議的格式,通過以太網將其發(fā)送到遠端的監(jiān)控主機上。在本設計中實現(xiàn)了從RS232、RS485到TCP/IP協(xié)議之間的相互轉換。4.1開發(fā)環(huán)境簡介
考慮到系統(tǒng)開發(fā)的簡便性,本方案選用uCLinux操作系統(tǒng)平臺作為系統(tǒng)的OS環(huán)境,輔助開發(fā)工具選用MiceTek公司的HiTool。嵌入式Web服務器的硬件環(huán)境選用MiceTek公司的Samsung44B0X開發(fā)板,利用其豐富的接口功能,可實現(xiàn)嵌入式Web服務器與傳感器的直接連接。4.2 嵌入式Web服務器的硬件設計
嵌入式Web服務器硬件環(huán)境的自定義,是根據(jù)監(jiān)控系統(tǒng)的需要,重新制作嵌入式系統(tǒng)的主板。該主板的CPU仍選用Samsung的S3C44B0X,1M的BootFlash,8M的SDRAM,并提供10M/100M的以太網端口,2個RS232接口和6個RS485接口。如果待檢測的參數(shù)較少,則選用一塊嵌入式Web服務器主板即可;如果待檢測的參數(shù)較多,則可選用多個同樣的Web服務器主板,并對每個Web服務器進行參數(shù)配置(設置不同的IP地址),構成分布式的Web服務器。如果監(jiān)控系統(tǒng)要求存儲的數(shù)據(jù)量很大,則可以采取以下兩種方法加以解決:一是嵌入式Web服務器外接硬盤;另一種方法是外加一臺由工業(yè)控制級的服務器,對多臺嵌入式Web服務器進行統(tǒng)一管理。4.3 嵌入式Web服務器的軟件實現(xiàn)
嵌入式Web服務器的軟件開發(fā)主要包括以下幾項內容:首先,完成嵌入式操作系統(tǒng)的移植和TCP/IP協(xié)議的剪裁;第二,編寫數(shù)據(jù)采集、數(shù)據(jù)處理應用子程序;第三,編寫遠程通信子程序;第四,報警處理子程序;第五,數(shù)據(jù)查詢和報表生成子程序。這些功能應先在上述的開發(fā)環(huán)境中進行初步實現(xiàn)之后,再移植到自定義的環(huán)境中。
由于嵌入式系統(tǒng)的資源有限,因此對上述功能的實現(xiàn)應盡量簡潔,例如對HTTP協(xié)議的移植,只需要保留基本的Get和Post方法即可,而Options、Head、Put、Delete和Trace方法在此可不考慮實現(xiàn),因為對RAM(或EEPROM)中的數(shù)據(jù)存儲可以采用循環(huán)覆蓋的方式。
在此方案中,嵌入式Web服務器與Web瀏覽器及其他應用程序之間的交互,可以通過調用CGI(Common Gateway Interface)程序來實現(xiàn)。CGI規(guī)定了Web服務器與瀏覽器及其他可執(zhí)行程序的接口協(xié)議標準。當Web瀏覽器將請求信息發(fā)送給Web服務器時,Web服務器觸發(fā)一個可執(zhí)行的CGI程序,該程序根據(jù)用戶請求的內容做出相應的處理,并將處理結果以Web服務器可識別的方式輸出,Web服務器再將該結果回送給Web瀏覽器[5]。
CGI程序中的信息傳遞是通過標準輸入設備stdin和標準輸出設備stdout來完成的。Web服務器在調用CGI程序之前,需要預先設置好所有的環(huán)境變量,以便把客戶的請求轉化為參數(shù)后存入環(huán)境變量,然后就可以調用CGI程序了。CGI程序根據(jù)不同的請求方法確定如何獲取客戶的請求內容,而Web服務器則通過標準輸入設備stdin獲得客戶請求;對于CGI程序的輸出結果,Web服務器則是通過標準輸出設備stdout來獲得,Web服務器對其進行語法分析之后,再傳送給客戶瀏覽器。至于CGI程序的實現(xiàn),本方案選用C語言,以保證CGI程序的快速、高效和安全。
⒌結語
基于嵌入式平臺的監(jiān)控系統(tǒng),以其體積小、可連續(xù)工作時間長、性能穩(wěn)定等特點,得到人們的廣泛認可,成為網絡化遠程監(jiān)控系統(tǒng)的主流方向。在本設計中,借助于相對穩(wěn)定和成熟的軟硬件開發(fā)環(huán)境,設計了一套較為完整和實用化的遠程監(jiān)控方案并加以實現(xiàn)。經使用證明,該設計方案是成功的并取得了較為理想的效果。
參考文獻
[1]關光富,計算機機房環(huán)境設備監(jiān)控系統(tǒng)與設計分析,電工技術雜志,2004.2 [2]周祖德編著,基于網絡環(huán)境的智能控制,國防工業(yè)出版社,2004.1,第1版 [3]宋廣軍,張敬,王睿,基于web的溫濕度遠程監(jiān)控系統(tǒng),微計算機信息,2004.1 [4]孫敏,顧德英,汪晉寬,基于OPC技術的監(jiān)控組態(tài)程序的開發(fā),儀器儀表學報(增刊),2003.8 [5]湯碧玉,曾楠,鄭靈翔等,嵌入式系統(tǒng)中基于Web的遠程監(jiān)控設計與實現(xiàn),廈門大學學報(自然科學版),vol.43(5),2004.9