基于嵌入式Linux的機(jī)房遠(yuǎn)程監(jiān)測系統(tǒng)研究[圖]

相關(guān)專題: 芯片

摘要:為滿足機(jī)房實(shí)時(shí)監(jiān)測環(huán)境參數(shù)和視頻信息的需要,本文綜合運(yùn)用嵌入式技術(shù)、WEB 技術(shù)和信息檢測技術(shù),研究并設(shè)計(jì)一種基于B/S 架構(gòu)的嵌入式機(jī)房遠(yuǎn)程監(jiān)測系統(tǒng)。通過傳感器采集并遠(yuǎn)程傳輸機(jī)房溫度和圖像數(shù)據(jù),在遠(yuǎn)程瀏覽器端動(dòng)態(tài)實(shí)時(shí)顯示,為及時(shí)掌握機(jī)房環(huán)境數(shù)據(jù),實(shí)現(xiàn)機(jī)房科學(xué)管理提供良好的平臺(tái)。

1 引言

信息化高度發(fā)展的今天,機(jī)房作為數(shù)據(jù)傳輸中心、處理中心和數(shù)據(jù)交換中心,在整個(gè)信息網(wǎng)絡(luò)工程中占據(jù)著重要的位置,對機(jī)房環(huán)境以及視頻信息的監(jiān)測具有重要意義。

經(jīng)過調(diào)查分析,機(jī)房環(huán)境遠(yuǎn)程監(jiān)測系統(tǒng)的主要應(yīng)用需求包括: ①溫度是機(jī)房環(huán)境中最重要的參數(shù),合理的溫度保證了機(jī)房設(shè)備的正常運(yùn)行; ②數(shù)據(jù)傳輸質(zhì)量高、實(shí)時(shí)性好,以保證對機(jī)房環(huán)境的實(shí)時(shí)和有效監(jiān)測;③支持遠(yuǎn)程訪問,便于對多個(gè)機(jī)房環(huán)境的集中監(jiān)測。針對上述需求,設(shè)計(jì)了一種基于B /S 架構(gòu)的遠(yuǎn)程監(jiān)測系統(tǒng),以滿足遠(yuǎn)程訪問、低成本、實(shí)時(shí)性好的機(jī)房環(huán)境遠(yuǎn)程監(jiān)測需求。

2 總體方案設(shè)計(jì)

2. 1 系統(tǒng)方案及總體結(jié)構(gòu)

根據(jù)系統(tǒng)應(yīng)用需求,設(shè)計(jì)的機(jī)房遠(yuǎn)程監(jiān)測系統(tǒng)總體結(jié)構(gòu)如圖1 所示。系統(tǒng)由溫度和圖像傳感器、嵌入式服務(wù)器和遠(yuǎn)程計(jì)算機(jī)構(gòu)成。其中,溫度和圖像傳感器負(fù)責(zé)采集現(xiàn)場的溫度和圖像數(shù)據(jù),基于ARM 處理器的嵌入式服務(wù)器是整個(gè)系統(tǒng)的控制中心,它控制、調(diào)度各系統(tǒng)資源,通過有線網(wǎng)絡(luò)將所獲取數(shù)據(jù)傳輸至遠(yuǎn)程監(jiān)控端瀏覽器動(dòng)態(tài)顯示。遠(yuǎn)程監(jiān)控在實(shí)現(xiàn)方式上采用“B /S”模式,在客戶端的瀏覽器上輸入存儲(chǔ)嵌入式服務(wù)器的網(wǎng)頁地址即可對機(jī)房環(huán)境狀況進(jìn)行監(jiān)控。

圖1 遠(yuǎn)程監(jiān)測系統(tǒng)總體結(jié)構(gòu)圖

2. 2 系統(tǒng)硬件平臺(tái)

系統(tǒng)的硬件平臺(tái)選擇主要考慮低功耗、處理能力強(qiáng)、擴(kuò)展性好、穩(wěn)定性高和兼容性好等因素。嵌入式硬件平臺(tái)的配置從根本上決定了整個(gè)系統(tǒng)運(yùn)行性能的好壞。整個(gè)機(jī)房遠(yuǎn)程監(jiān)測系統(tǒng)由下位機(jī)嵌入式服務(wù)器和上位機(jī)遠(yuǎn)程瀏覽器組成。其中下位機(jī)嵌入式服務(wù)器平臺(tái)包括眾多硬件模塊: 嵌入式微處理器S3C2440、存儲(chǔ)器、電源和時(shí)鐘模塊、外圍電路及接口、3. 5 寸液晶顯示屏、ZC0301 攝像頭和DS18B20 溫度傳感器等。下面將對各個(gè)硬件設(shè)備和模塊做具體闡述。

2. 2. 1 中心處理器

S3C2440 處理器是韓國電子公司三星推出的一款基于ARM920T 內(nèi)核的16 / 32 位RISC 嵌入式處理器,ARM920T 核由ARM9TDM1、存儲(chǔ)管理單元(MMU)和高速緩存三部分組成,主頻可達(dá)533MHz。本系統(tǒng)采用S3C2440 為核心,外圍硬件資源包括64M SDRAM, 256M NAND FLASH,2 M NOR FLASH。

2. 2. 2 攝像頭

攝像頭采用基于301PLUS 快速高性能圖像壓縮主控芯片的中芯微ZC0301 攝像頭。其能夠輸出高清晰MJPEG 視頻流數(shù)據(jù),具有圖像信號(hào)處理(ISP)、圖像數(shù)據(jù)壓縮及數(shù)據(jù)傳輸?shù)裙δ埽蛇_(dá)到6: 1 的壓縮率,同時(shí)支持同步和異步數(shù)據(jù)傳輸,兼容性好。其工作電壓為3. 3V,工作電流僅為200mA,耗電量小。

2. 2. 3 溫度傳感器

溫度傳感器采用美國Dallas 公司生產(chǎn)的單總線數(shù)字式溫度傳感器- DS18B20,它結(jié)構(gòu)簡單,不需要外接電路,可用一根I /O 數(shù)據(jù)線既供電又傳輸數(shù)數(shù)據(jù),將溫度信號(hào)直接轉(zhuǎn)換為數(shù)字信號(hào)送給微處理器,電路簡單,成本低,操作方便。DS18B20 與ARM 處理器接口電路如圖2 所示。

圖2 DS18B20 與ARM 處理器接口電路

2. 2. 4 遠(yuǎn)程監(jiān)控端系統(tǒng)配置

遠(yuǎn)程網(wǎng)絡(luò)上的監(jiān)控端為通用的PC 機(jī)和IE 瀏覽器,B /S 模式架構(gòu)為人機(jī)交互提供了友好的交互平臺(tái),用戶通過Internet 進(jìn)行遠(yuǎn)程監(jiān)控。

2. 3 系統(tǒng)軟件平臺(tái)

系統(tǒng)采用源碼開放、安全性及可靠性好、具有廣泛硬件和網(wǎng)絡(luò)支持及完整開發(fā)工具的Linux 系統(tǒng)作為嵌入式系統(tǒng)平臺(tái)。

嵌入式系統(tǒng)的開發(fā)通常采用宿主機(jī)- 目標(biāo)機(jī)的交叉編譯調(diào)試方式。系統(tǒng)構(gòu)建主要包括: 交叉編譯器的選擇和安裝; NFS 網(wǎng)絡(luò)文件系統(tǒng)的配置; 內(nèi)核、Bootloader 和文件系統(tǒng)的編譯和移植等。內(nèi)核采用Linux -2. 6. 30. 4 版本; 系統(tǒng)引導(dǎo)加載程序采用U - boot - 1. 1. 6; 文件系統(tǒng)采用可靠性和可移植性好的YAFFS 文件系統(tǒng)。

3 驅(qū)動(dòng)程序設(shè)計(jì)開發(fā)

在搭建好嵌入式Linux 系統(tǒng)平臺(tái)基礎(chǔ)上,進(jìn)行機(jī)房遠(yuǎn)程監(jiān)測系統(tǒng)數(shù)據(jù)采集相關(guān)開工作。主要包括溫度數(shù)據(jù)采集和圖像采集驅(qū)動(dòng)程序的設(shè)計(jì)和采集程序的設(shè)計(jì)與實(shí)現(xiàn)。設(shè)備驅(qū)動(dòng)程序是操作系統(tǒng)內(nèi)核與機(jī)器硬件之間的接口,它為應(yīng)用程序屏蔽了硬件的細(xì)節(jié)。

3. 1 DS18B20 驅(qū)動(dòng)程序設(shè)計(jì)

DS18B20 通過溫度對振蕩器的頻率影響來測量溫度,而傳感器對溫度的采集則由ARM 控制DS18B20完成。由于DS18B20 采用單總線數(shù)據(jù)傳輸方式,所以ARM 芯片對DS18B20 的每步操作都要保證特定的讀寫時(shí)序,按照單總線的操作協(xié)議來進(jìn)行。

首先初始化總線,跳過Rom(總線上只有一個(gè)DS18B20),啟動(dòng)DS18B20 進(jìn)行溫度轉(zhuǎn)換,復(fù)位,繼續(xù)跳過Rom,發(fā)讀溫度指令,讀取溫度數(shù)據(jù),最后進(jìn)行溫度的進(jìn)一步處理及轉(zhuǎn)換。溫度采集驅(qū)動(dòng)中用到的主要函數(shù):

(1)初始化函數(shù)unsigned char DS18B20 Init (void),此函數(shù)復(fù)位DS18B20 數(shù)據(jù)線,檢測溫度傳感器DS18B20 的存在,主CPU 發(fā)送500 微秒的低電平信號(hào)后釋放,檢測到總線上脈沖的上升沿后,DS18B20 等待50 微秒,發(fā)出200 微秒低脈沖,CPU 收到此信號(hào)表示復(fù)位成功。

(2)void DS18B20 WriteOneByte(unsigned char data)或數(shù)據(jù)到溫度芯片DS18B20,即發(fā)送一個(gè)字節(jié)。

(3)unsigned char DS18B20 ReadOneByte(void),從溫度芯片DS18B20 讀配置或數(shù)據(jù),即讀一個(gè)字節(jié)。

(4)unsigned int DS18B20 ReadTemperature(void)讀溫度函數(shù)。如果電路中只有一個(gè)DS18B20,則不需要多個(gè)器件的ID 識(shí)別,直接進(jìn)行溫度轉(zhuǎn)換,DS18B20 溫度轉(zhuǎn)換需要時(shí)問,所以此處需要延時(shí)一定時(shí)間。

其基本處理流程如圖2 所示。

驅(qū)動(dòng)程序與硬件設(shè)備的接口由file_operation 結(jié)構(gòu)定義,其結(jié)構(gòu)如下:

static struct file_operations s3c2440_18b20_fops = {

. owner = THIS_MODULE,

. open = s3c2440_18b20_open,

. read = s3c2440_18b20_read,

. write = s3c2440_18b20_write,

. release = s3c2440_18b20_release,

} ;

struct file_operations 這個(gè)結(jié)構(gòu)的每一個(gè)成員都對應(yīng)一個(gè)_系統(tǒng)調(diào)用,用戶進(jìn)程利用系統(tǒng)調(diào)用對設(shè)備文件進(jìn)行操作,系統(tǒng)調(diào)用通過設(shè)備文件的主設(shè)備號(hào)找到相應(yīng)的設(shè)備驅(qū)動(dòng)程序,讀取這個(gè)數(shù)據(jù)結(jié)構(gòu)里面相應(yīng)的函數(shù)指針,把控制權(quán)交給該函數(shù)。

3. 2 ZC0301 攝像頭視頻采集程序設(shè)計(jì)

Video4linux 是Linux 內(nèi)核里支持影像設(shè)備的一組API,配合適當(dāng)?shù)牟杉ㄅc相關(guān)驅(qū)動(dòng)程序,可以實(shí)現(xiàn)視頻采集。驅(qū)動(dòng)視頻采集設(shè)備完成視頻采集和處理,需要相應(yīng)的驅(qū)動(dòng)程序和視頻流采集程序。視頻采集程序的內(nèi)容主要包括攝像頭的初始化、打開、關(guān)閉、參數(shù)設(shè)置以及數(shù)據(jù)讀取等。

Video4linux 視頻采集的實(shí)現(xiàn)過程如下:

(1)初始化程序,包括打開視頻設(shè)備文件,讀取視頻采集設(shè)備信息以及設(shè)備緩沖區(qū)信息等; 初始化攝像頭參數(shù)主要通過init_videoIn 函數(shù)來完成。

(2)打開視頻采集設(shè)備。初始化工作完成后,通過V4L_open 函數(shù)檢查攝像頭設(shè)備是否加載,如能夠檢測到攝像頭設(shè)備,使用open 系統(tǒng)調(diào)用以只讀的方式打開視頻設(shè)備。

(3)獲取視頻設(shè)備信息和圖像信息。通過調(diào)用設(shè)備I /O 通道管理函數(shù)ioctl 中的VIDIOCGCAP 參數(shù)獲取視頻采集設(shè)備的名稱、類型、通道數(shù)、圖像寬度和高度等信息參數(shù),調(diào)用ioctl 函數(shù)中的VIDIOCGPICT 參數(shù)讀取視頻采集設(shè)備緩沖video_picture 信息。

(4)視頻采集。在V4L 體系下,采用內(nèi)存映射方式采集視頻。內(nèi)存映射方式視頻讀取的具體操作如下:

①首先使用ioctl 系統(tǒng)調(diào)用VIDOOCGMBUF 命令獲取攝像頭存儲(chǔ)緩沖區(qū)的幀信息,之后初始化video_mbuf,修改video_mmbuf 設(shè)置。

②映射設(shè)備文件到內(nèi)存。

③截取圖像,有單幀截取和連續(xù)幀截取兩種方式。進(jìn)行單幀截取需先準(zhǔn)備內(nèi)存空間; 然后調(diào)用ioctl 函數(shù)的VIDIOCMCAPTURE 命令,以非阻塞形式開始一幀圖像截; 接著調(diào)用ioctl(fd,VIDIOCSYNC,&frame)函數(shù)判斷該幀是否截取完畢; 最后就可將圖像數(shù)據(jù)寫入到Frame Buffer 中。若進(jìn)行連續(xù)幀截取,則需通過循環(huán)語句中,使用VIDIOCMCAPTURE 和VIDIOCSYNC 函數(shù)判斷是否完成截取,并給采集到的每幀圖像賦地址。

(5)關(guān)閉攝像頭。視頻采集完成以后,最后的工作是關(guān)閉視頻采集設(shè)備。以內(nèi)存映射的方法獲取視頻數(shù)據(jù),需要在視頻采集任務(wù)完成之后關(guān)閉內(nèi)存映射,然后調(diào)用close_v4l 函數(shù)關(guān)閉視頻設(shè)備。關(guān)閉視頻設(shè)備需要判斷視頻獲取方式: 如是內(nèi)存映射方式,則通過munmap 函數(shù)。

  4 嵌入式Web 監(jiān)控的實(shí)現(xiàn)

嵌入式Web 監(jiān)控的實(shí)現(xiàn)包括了Boa 服務(wù)器移植、CGI 網(wǎng)頁交互程序設(shè)計(jì)兩個(gè)部分。

4. 1 Boa 服務(wù)器移植

在嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)中,Web 服務(wù)器的性能對系統(tǒng)的整體性能具有直接影響,因此Web 服務(wù)器的選擇和設(shè)計(jì)尤為重要。高效率的Web 服務(wù)器,才能使監(jiān)控系統(tǒng)的能得到充分的發(fā)揮。

Boa 是一款單任務(wù)的HTTP 服務(wù)器,它支持CGI 技術(shù),且具有自動(dòng)生成目錄和解壓文件等功能。在運(yùn)行效率方面,由于其只為CGI 程序創(chuàng)建新的進(jìn)程,因此具有很高的HTTP 請求處理速度。故選用Boa 來構(gòu)建嵌入式服務(wù)器。

服務(wù)器主要作用是為整個(gè)系統(tǒng)提供了一種網(wǎng)絡(luò)接入和信息服務(wù)方式。系統(tǒng)通過應(yīng)用HTTP 協(xié)議聯(lián)網(wǎng),調(diào)用具有數(shù)據(jù)請求和控制功能的CGI 程序,實(shí)現(xiàn)服務(wù)器對客戶端瀏覽器請求的處理,最終實(shí)現(xiàn)信息在瀏覽器的動(dòng)態(tài)顯示,達(dá)到遠(yuǎn)程監(jiān)控的目的。

4. 2 CGI 網(wǎng)頁交互程序設(shè)計(jì)

CGI 技術(shù)即通用網(wǎng)關(guān)接口(Common Network Interface)技術(shù),它支持WEB 數(shù)據(jù)動(dòng)態(tài)刷新、轉(zhuǎn)換和顯示。

基于CGI 接口設(shè)計(jì)的程序運(yùn)行在WEB 服務(wù)器端,像其他類型程序設(shè)計(jì)一樣,其必須通過CGI 標(biāo)準(zhǔn)格式進(jìn)行編寫。CGI 程序的運(yùn)行由瀏覽器端的輸入觸發(fā),它的任務(wù)就是執(zhí)行指令,將所需數(shù)據(jù)轉(zhuǎn)換為環(huán)境變量進(jìn)行處理,并回傳處理結(jié)果。WEB 服務(wù)器與CGI 程序之間通過四種途徑進(jìn)行通信: 環(huán)境變量、命令行、標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出。

CGI 的基本工作過程為: 根據(jù)瀏覽器的請求,CGI 程序通過執(zhí)行Boa 服務(wù)器指令,調(diào)用其它應(yīng)用程序進(jìn)行處理,最后將處理結(jié)果以HTML 形式反饋給瀏覽器顯示。CGI 工作流程示意圖如圖3 所示。

圖3 CGI 工作流程示意圖

4. 3 系統(tǒng)測試

本系統(tǒng)的測試工作主要是在實(shí)驗(yàn)室的局域網(wǎng)環(huán)境下進(jìn)行的。

其中下位機(jī)為以S3C2440 處理器為核心的嵌入式目標(biāo)板,配合ZC0301 攝像頭和數(shù)字溫度傳感器DS18B20,通過構(gòu)建Linux 操作系統(tǒng)并移植Boa,將其配置成為嵌入式服務(wù)器; 下位機(jī)采用通用的PC 機(jī),通過瀏覽器與服務(wù)器進(jìn)行交互。上位機(jī)監(jiān)控端和下位機(jī)嵌入式服務(wù)器通過網(wǎng)線和上位機(jī)相連接,構(gòu)建成為局域網(wǎng)開發(fā)環(huán)境。

通過終端中運(yùn)行Boa 服務(wù)器和數(shù)據(jù)采集程序,在監(jiān)控端瀏覽器內(nèi)輸入網(wǎng)頁: http: / /192. 168. 0. 6,即進(jìn)入登陸界面,如圖4 所示。

圖4 系統(tǒng)登陸主界面

實(shí)時(shí)溫度采集界面如圖5 所示。

圖5 實(shí)時(shí)溫度監(jiān)測界面

5 結(jié)束語

本文設(shè)計(jì)了一種了基于WEB 的嵌入式機(jī)房遠(yuǎn)程監(jiān)測系統(tǒng),在實(shí)驗(yàn)室條件下進(jìn)行測試、調(diào)試和完善。測試結(jié)果表明,監(jiān)測系統(tǒng)能夠?qū)崟r(shí)準(zhǔn)確的采集機(jī)房視頻和溫度數(shù)據(jù),并在遠(yuǎn)程瀏覽器動(dòng)態(tài)流暢顯示,實(shí)現(xiàn)了信息實(shí)時(shí)監(jiān)測,滿足了應(yīng)用的需求。本文的后續(xù)工作是在現(xiàn)有的系統(tǒng)基礎(chǔ)上增加攝像頭的云臺(tái)控制功能以及嵌入式數(shù)據(jù)庫管理功能,提高系統(tǒng)的整體使用價(jià)值。

作者:陳潛 劉云 高利娟 來源:《微計(jì)算機(jī)應(yīng)用》

我推薦大家讀

輕松參與

VS

表達(dá)立場

這是垃圾文章


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國移動(dòng):5G網(wǎng)絡(luò)AI應(yīng)用典型場景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國移動(dòng):6G至簡無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國移動(dòng)算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點(diǎn)本月熱點(diǎn)

     

      最熱通信招聘

    業(yè)界最新資訊


      最新招聘信息