新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM嵌入式的視頻監控系統的設計

        基于ARM嵌入式的視頻監控系統的設計

        作者: 時間:2012-04-23 來源:網絡 收藏

        目前,系統在監控中的應用越來越廣泛。伴隨著網絡的強大功能,監控更側重網絡監控方案,要求體積小、遠程化、成本低、功耗小、操作界面人性化等。本系統Linux 平臺上利用USB 攝像頭采集圖像,通過視頻圖像壓縮及結合網絡進行視頻圖像傳輸,使遠程監控成為可能。

        本文引用地址:http://www.104case.com/article/171573.htm

        1 系統概述

        視頻圖像由4 部分組成, 分別為視頻圖像采集、視頻圖像處理、視頻圖像傳輸、視頻圖像顯示。視頻圖像采集部分由數字攝像頭、USB 通道和處理器構成、視頻圖像處理主要是視頻圖像壓縮,由算法實現、視頻圖像傳輸主要利用視頻服務器來實現、視頻圖像顯示主要是在遠程的主機上實現視頻圖像的瀏覽、保存和處理等,Linux 主機上由應用程序實現,Windows 主機上通過瀏覽器上的JAVA 程序實現。系統原理框圖如圖1 所示。


        圖1 系統框圖

        2 系統硬件

        CPU 處理器使用Samsung S3C2440A, 主頻400 MHz,最高533 MHz;64 M SDRAM、32 bit 數據總線、SDRAM 時鐘頻率100 MHz;256 M/1 GB Nand Flash, 掉電非易失、2 M NorFlash,掉電非易失;統寶3.5 真彩LCD,屏集成4 線電阻式觸摸屏, 屏幕分辨率可以達到1024×768 象素;100 M 以太網RJ-45 接口(采用DM9000 網絡芯片)、串行口、USB Host、USB Slave B 型接口、SD 卡存儲接口、路立體聲音頻輸出接口, 麥克風接口、JTAG 接口、4 USER Leds、6 USER buttONs(帶引出座)、I2C 總線AT24C08 芯片、20 pin 攝像頭接口;攝像頭用良田,兼容SN9C20X 系列芯片的驅動,本系統的內核中集成了該驅動。

        3 系統軟件

        3.1 Linux 內核的移植

        移植新內核主要是為了給LCD 以及攝像頭添加相應的驅動支持,在Fedora 9 中打開內核的目錄,使用缺省配置文件進行配置:在內核中添加V4L 支持、添加萬能USB 攝像頭驅動GSPCA。

        3.2 V4L2 的圖像采集程序

        系統使用的交叉編譯工具為arm-linux-gcc-4.3.2.使用到的應用程序都要通過該編譯器編譯后下載到開發板上運行。將編好的應用程序V4L2.c 交叉編譯后下載到板。

        V4L(Video for Linux)是Linux 下提供的一個音視頻接口規范,所有的音視頻驅動編寫都要用到這些接口。

        V4L 從2.4.1.x 的內核版本中開始出現, 使用的Video for Linux2(簡稱V4L2)是V4L 的改進版,修復了第一代中的部分BUG。

        的圖像采集及處理程序主要V4L2 架構, 通過對一些ioctl 函數的調用來實現視頻設備的打開,圖像的采集處理,圖像的顯示等。幾個主要的ioctl 函數的簡介:

        1)ioctl(fd,VIDIOC_S_FMT, fmt):用于設置圖像的格式。

        2)ioctl(fd, VIDIOC_REQBUFS, req):向內存申請緩沖區,申請的buffer 個數存在count 中。

        3)ioctl(fd, VIDIOC_QUERYBUF, buf):查詢已經分配的V4L2 的視頻緩沖區的相關信息, 包括視頻緩沖區的使用狀態、在內核空間的偏移地址、緩沖區長度等。

        4)ioctl(fd, VIDIOC_QBUF, buf):放一個空的視頻緩沖區到視頻緩沖區輸入隊列中,函數執行成功后,指令的視頻緩沖區進入視頻輸入隊列,在啟動視頻設備拍攝圖像時,相應的視頻數據被保存到視頻輸入隊列相應的視頻緩沖區中。

        5)ioctl(fd, VIDIOC_STREAMON, type):啟動視頻采集命令,應用程序調用VIDIOC_STREAMON 啟動視頻采集命令后,視頻設備驅動程序開始采集視頻數據,并把采集到的視頻數據保存到視頻驅動的視頻緩沖區中。

        圖像采集處理流程圖如圖2 所示。


        圖2 圖像采集處理流程圖

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

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 双桥区| 江北区| 巴林右旗| 岳阳市| 葵青区| 崇仁县| 蛟河市| 苍溪县| 铁岭县| 江西省| 连云港市| 安化县| 仁布县| 大厂| 宾川县| 边坝县| 越西县| 高州市| 阳春市| 南安市| 嘉荫县| 墨江| 开远市| 阳东县| 东阳市| 晋城| 轮台县| 什邡市| 漳州市| 定日县| 滁州市| 曲麻莱县| 延津县| 巴楚县| 榆树市| 平原县| 噶尔县| 东光县| 集安市| 湘潭市| 平果县|