• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于嵌入式Linux的機房遠程監測系統研究

    基于嵌入式Linux的機房遠程監測系統研究

    作者: 時間:2012-08-06 來源:網絡 收藏

    3. 2 ZC0301 攝像頭視頻采集程序設計

    Video4linux 是 內核里支持影像設備的一組API,配合適當的采集卡與相關驅動程序,可以實現視頻采集。驅動視頻采集設備完成視頻采集和處理,需要相應的驅動程序和視頻流采集程序。視頻采集程序的內容主要包括攝像頭的初始化、打開、關閉、參數設置以及數據讀取等。

    Video4linux 視頻采集的實現過程如下:

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

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

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

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

    ①首先使用ioctl 調用VIDOOCGMBUF 命令獲取攝像頭存儲緩沖區的幀信息,之后初始化video_mbuf,修改video_mmbuf 設置。

    ②映射設備文件到內存。

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

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

    4 Web 監控的實現

    Web 監控的實現包括了Boa 服務器移植、CGI 網頁交互程序設計兩個部分。

    4. 1 Boa 服務器移植

    監控中,Web 服務器的性能對系統的整體性能具有直接影響,因此Web 服務器的選擇和設計尤為重要。高效率的Web 服務器,才能使監控系統的能得到充分的發揮。

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

    服務器主要作用是為整個系統提供了一種網絡接入和信息服務方式。系統通過應用HTTP 協議聯網,調用具有數據請求和控制功能的CGI 程序,實現服務器對客戶端瀏覽器請求的處理,最終實現信息在瀏覽器的動態顯示,達到監控的目的。

    4. 2 CGI 網頁交互程序設計

    CGI 技術即通用網關接口( Common Network Interface) 技術,它支持WEB 數據動態刷新、轉換和顯示。

    CGI 接口設計的程序運行在WEB 服務器端,像其他類型程序設計一樣,其必須通過CGI 標準格式進行編寫。CGI 程序的運行由瀏覽器端的輸入觸發,它的任務就是執行指令,將所需數據轉換為環境變量進行處理,并回傳處理結果。WEB 服務器與CGI 程序之間通過四種途徑進行通信: 環境變量、命令行、標準輸入和標準輸出。

    CGI 的基本工作過程為: 根據瀏覽器的請求,CGI 程序通過執行Boa 服務器指令,調用其它應用程序進行處理,最后將處理結果以HTML 形式反饋給瀏覽器顯示。CGI 工作流程示意圖如圖3 所示。

    圖3 CGI 工作流程示意圖
    圖3 CGI 工作流程示意圖

    4. 3 系統測試

    本系統的測試工作主要是在實驗室的局域網環境下進行的。

    其中下位機為以S3C2440 處理器為核心的嵌入式目標板,配合ZC0301 攝像頭和數字溫度傳感器DS18B20,通過構建 操作系統并移植Boa,將其配置成為嵌入式服務器; 下位機采用通用的PC 機,通過瀏覽器與服務器進行交互。上位機監控端和下位機嵌入式服務器通過網線和上位機相連接,構建成為局域網開發環境。

    linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 隆德县| 巍山| 微山县| 竹山县| 花莲县| 清丰县| 从化市| 潍坊市| 安陆市| 克什克腾旗| 通海县| 边坝县| 沁水县| 灵川县| 平原县| 增城市| 吴堡县| 新郑市| 文成县| 名山县| 化州市| 灌南县| 吐鲁番市| 隆昌县| 化州市| 内丘县| 河津市| 滕州市| 台山市| 宁海县| 邯郸县| 山阳县| 津市市| 磐安县| 岗巴县| 天台县| 阿克陶县| 海伦市| 嘉善县| 合肥市| 广东省|