0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

教你用ARM嵌入式設(shè)計(jì)視頻監(jiān)控系統(tǒng)

電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2018-09-03 08:39 ? 次閱讀

目前,嵌入式系統(tǒng)視頻監(jiān)控中的應(yīng)用越來(lái)越廣泛。伴隨著網(wǎng)絡(luò)的強(qiáng)大功能,視頻監(jiān)控更側(cè)重網(wǎng)絡(luò)監(jiān)控方案,要求體積小、遠(yuǎn)程化、成本低、功耗小、操作界面人性化等。本系統(tǒng)基于嵌入式Linux 平臺(tái)上利用USB 攝像頭采集視頻圖像,通過(guò)視頻圖像壓縮及結(jié)合網(wǎng)絡(luò)進(jìn)行視頻圖像傳輸,使遠(yuǎn)程監(jiān)控成為可能。

1 系統(tǒng)概述

視頻圖像監(jiān)控系統(tǒng)由4 部分組成, 分別為視頻圖像采集、視頻圖像處理、視頻圖像傳輸、視頻圖像顯示。視頻圖像采集部分由數(shù)字?jǐn)z像頭、USB 通道和嵌入式處理器構(gòu)成、視頻圖像處理主要是視頻圖像壓縮,由算法實(shí)現(xiàn)、視頻圖像傳輸主要利用視頻服務(wù)器來(lái)實(shí)現(xiàn)、視頻圖像顯示主要是在遠(yuǎn)程的主機(jī)上實(shí)現(xiàn)視頻圖像的瀏覽、保存和處理等,Linux 主機(jī)上由應(yīng)用程序?qū)崿F(xiàn),Windows 主機(jī)上通過(guò)瀏覽器上的JAVA 程序?qū)崿F(xiàn)。系統(tǒng)原理框圖如圖1 所示。

如何用ARM嵌入式設(shè)計(jì)視頻監(jiān)控系統(tǒng)?

圖1 系統(tǒng)框圖

2 系統(tǒng)硬件

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

3 系統(tǒng)軟件

3.1 Linux 內(nèi)核的移植

移植新內(nèi)核主要是為了給LCD 以及攝像頭添加相應(yīng)的驅(qū)動(dòng)支持,在Fedora 9 中打開(kāi)內(nèi)核的目錄,使用缺省配置文件進(jìn)行配置:在內(nèi)核中添加V4L 支持、添加萬(wàn)能USB 攝像頭驅(qū)動(dòng)GSPCA。

3.2 基于V4L2 的圖像采集程序

系統(tǒng)使用的交叉編譯工具為arm-linux-gcc-4.3.2.設(shè)計(jì)使用到的應(yīng)用程序都要通過(guò)該編譯器編譯后下載到開(kāi)發(fā)板上運(yùn)行。將編好的應(yīng)用程序V4L2.c 交叉編譯后下載到板。

V4L(Video for Linux)是Linux 下提供的一個(gè)音視頻接口規(guī)范,所有的音視頻驅(qū)動(dòng)編寫(xiě)都要用到這些接口。

V4L 從2.4.1.x 的內(nèi)核版本中開(kāi)始出現(xiàn), 設(shè)計(jì)使用的Video for Linux2(簡(jiǎn)稱V4L2)是V4L 的改進(jìn)版,修復(fù)了第一代中的部分BUG。

設(shè)計(jì)的圖像采集及處理程序主要基于V4L2 架構(gòu), 通過(guò)對(duì)一些ioctl 函數(shù)的調(diào)用來(lái)實(shí)現(xiàn)視頻設(shè)備的打開(kāi),圖像的采集處理,圖像的顯示等。幾個(gè)主要的ioctl 函數(shù)的簡(jiǎn)介:

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

2)ioctl(fd, VIDIOC_REQBUFS, &req):向內(nèi)存申請(qǐng)緩沖區(qū),申請(qǐng)的buffer 個(gè)數(shù)存在count 中。

3)ioctl(fd, VIDIOC_QUERYBUF, &buf):查詢已經(jīng)分配的V4L2 的視頻緩沖區(qū)的相關(guān)信息, 包括視頻緩沖區(qū)的使用狀態(tài)、在內(nèi)核空間的偏移地址、緩沖區(qū)長(zhǎng)度等。

4)ioctl(fd, VIDIOC_QBUF, &buf):放一個(gè)空的視頻緩沖區(qū)到視頻緩沖區(qū)輸入隊(duì)列中,函數(shù)執(zhí)行成功后,指令的視頻緩沖區(qū)進(jìn)入視頻輸入隊(duì)列,在啟動(dòng)視頻設(shè)備拍攝圖像時(shí),相應(yīng)的視頻數(shù)據(jù)被保存到視頻輸入隊(duì)列相應(yīng)的視頻緩沖區(qū)中。

5)ioctl(fd, VIDIOC_STREAMON, &type):?jiǎn)?dòng)視頻采集命令,應(yīng)用程序調(diào)用VIDIOC_STREAMON 啟動(dòng)視頻采集命令后,視頻設(shè)備驅(qū)動(dòng)程序開(kāi)始采集視頻數(shù)據(jù),并把采集到的視頻數(shù)據(jù)保存到視頻驅(qū)動(dòng)的視頻緩沖區(qū)中。

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

如何用ARM嵌入式設(shè)計(jì)視頻監(jiān)控系統(tǒng)?

圖2 圖像采集處理流程圖

3.3 網(wǎng)絡(luò)服務(wù)器

系統(tǒng)采用Boa 服務(wù)器。Boa 是一種非常小巧的Web 服務(wù)器, 其可執(zhí)行代碼只有大約60 kB 左右。作為一種單任務(wù)Web 服務(wù)器,Boa 只能依次完成用戶的請(qǐng)求,Boa 支持CGI,能夠?yàn)镃GI 程序fork 出一個(gè)進(jìn)程來(lái)執(zhí)行。板上移植該服務(wù)器,Boa 服務(wù)器默認(rèn)開(kāi)機(jī)自動(dòng)運(yùn)行,配置conf 文件。

服務(wù)器端應(yīng)用程序使用servfox, servfox-R1_1_3 解壓修改Makefile 文件:CC=arm-linux-gcc,編譯后得到可執(zhí)行文件servfox,下載到板上,輸入命令chmod +x servfox 為它添加可執(zhí)行屬性。

客戶端程序使用spcawiew, 該程序用于在Linux 主機(jī)上對(duì)服務(wù)器進(jìn)行監(jiān)控,無(wú)需移植。在Linux 上編譯spcaview.由于此軟件包依賴與libsdl,所以在安裝spcaview 之前,需要安裝SDL-1.2.13. 安裝spcaview 軟件后,在源文件目錄上有3 個(gè)可執(zhí)行文件,spcacat :簡(jiǎn)單圖片的抓取工具,不能用于網(wǎng)絡(luò)監(jiān)視客戶端,Spcaserv:流媒體服務(wù)器,Spcaview: 用來(lái)紀(jì)錄數(shù)據(jù)流,也能用來(lái)播放數(shù)據(jù),也能作為網(wǎng)絡(luò)監(jiān)視客戶端用。

4 監(jiān)控過(guò)程

4.1 在Linux 操作系統(tǒng)上的監(jiān)控

正常啟動(dòng)運(yùn)行開(kāi)發(fā)板,運(yùn)行服務(wù)器端程序servfox: servfox-d /dev/video0-s 320x240-w 7070。

在Linux 上運(yùn)行: ./spcaview-g-s 320x240-w 10.1.91.230:7070

其中10.1.91.230 是服務(wù)器的IP 地址,這樣就可以在PC機(jī)上看見(jiàn)USB 攝像頭采集進(jìn)來(lái)的數(shù)據(jù)了。

系統(tǒng)是裝在虛擬機(jī)中的fedora 9 linux 系統(tǒng),可以流暢地觀察到攝像頭監(jiān)控區(qū)域的情況。

4.2 Windows 操作系統(tǒng)上的監(jiān)控

對(duì)于網(wǎng)絡(luò)監(jiān)控的客戶端,能夠跨平臺(tái)的工具目前只有瀏覽器,通過(guò)瀏覽器來(lái)監(jiān)控,無(wú)論是Linux、Windows、MacOS 或者其他的UNIX 系統(tǒng),只要有圖形界面的瀏覽器,在桌面環(huán)境下都可以對(duì)遠(yuǎn)程的攝像頭所"控制"的范圍進(jìn)行監(jiān)控。

Mini2440 上已經(jīng)有Boa 服務(wù)器可供使用,Spcaview 中的http-java-applet 文件夾中已經(jīng)包含了一個(gè)可以監(jiān)控使用的web 頁(yè)面,將該文件夾復(fù)制到Boa 服務(wù)器的主文件夾/www 下。

由于http-java-applet 文件夾內(nèi)含的WEB 主頁(yè)面(Index.html)包含了JAVA 控件,所以先在主機(jī)上安裝JAVA 環(huán)境,讓瀏覽器支持JAVA 插件。

安裝好JRE 后, 在瀏覽器的地址欄上輸入服務(wù)器地址,即可實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。

4.3 遠(yuǎn)程抓拍

通過(guò)web 表單提交CGI 來(lái)運(yùn)行應(yīng)用程序。

通用網(wǎng)關(guān)接口(CGI)規(guī)范允許Web 服務(wù)器執(zhí)行其他的程序并將它們的輸出儲(chǔ)存在發(fā)送給Web 瀏覽器的文本、圖形和音頻中。服務(wù)器與CGI 程序的結(jié)合能夠擴(kuò)充World WideWeb 的能力。

CGI 程序可以由C、Perl 或者UNIX Shell 腳本等流行編程語(yǔ)言編寫(xiě)。

在本設(shè)計(jì)中,網(wǎng)頁(yè)上的按鈕shoot the picture 提交了一個(gè)名為V4L 的CGI 文件v4l.cgi,該文件是用shell 腳本編寫(xiě)的,用于在板上運(yùn)行已編譯好的圖像采集程序并對(duì)抓拍的圖片返回到新打開(kāi)的網(wǎng)頁(yè)中進(jìn)行查看。

Shell 腳本(v4l.cgi)內(nèi)容如下:

#! /bin/sh

/www/http-java-applet/v4l2

echo "Content-type: text/html; charset=gb2312"

echo

echo "……"

echo "

"

exit 0

5 結(jié)束語(yǔ)

系統(tǒng)采用開(kāi)源的Linux 系統(tǒng),降低了開(kāi)發(fā)成本,可以任意裁剪和制定內(nèi)核,方便移植。與傳統(tǒng)PC 機(jī)的監(jiān)控系統(tǒng)相比,本系統(tǒng)具有體積小、成本低、可靠性強(qiáng)等優(yōu)勢(shì)。本系統(tǒng)還具有一定的擴(kuò)展性,可以增加適當(dāng)?shù)墓δ軘U(kuò)展來(lái)滿足用戶更高的要求, 如在圖像采集端加入設(shè)置入侵檢測(cè)或者報(bào)警等控制功能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9097

    瀏覽量

    367581
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19126

    瀏覽量

    305241
  • 視頻監(jiān)控
    +關(guān)注

    關(guān)注

    17

    文章

    1711

    瀏覽量

    64987
  • 攝像頭
    +關(guān)注

    關(guān)注

    60

    文章

    4841

    瀏覽量

    95703
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何利用B/S模式設(shè)計(jì)嵌入式視頻監(jiān)控系統(tǒng)?

    的安防系統(tǒng)中[2]。本文設(shè)計(jì)了一種具有用戶零維護(hù)、價(jià)格低廉、性能穩(wěn)定等特點(diǎn)的嵌入式視頻監(jiān)控系統(tǒng)。該系統(tǒng)
    發(fā)表于 07-30 06:24

    如何設(shè)計(jì)嵌入式無(wú)線視頻監(jiān)控系統(tǒng)

    的新型視頻監(jiān)控系統(tǒng),該系統(tǒng)在解決模擬視頻監(jiān)控系統(tǒng)的部
    發(fā)表于 08-09 07:47

    基于嵌入式WEB的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)該如何去設(shè)計(jì)?

    基于嵌入式WEB技術(shù)的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)特征及原理是什么?基于嵌入式WEB技術(shù)的網(wǎng)絡(luò)視頻
    發(fā)表于 06-02 07:15

    教你做一個(gè)嵌入式linux開(kāi)發(fā)板和web端來(lái)實(shí)現(xiàn)的視頻監(jiān)控系統(tǒng)

    本文章將教你做一個(gè)嵌入式linux開(kāi)發(fā)板和web端來(lái)實(shí)現(xiàn)的視頻監(jiān)控系統(tǒng)。代做/輔導(dǎo):畢業(yè)設(shè)計(jì)/
    發(fā)表于 11-05 07:38

    嵌入式視頻監(jiān)控的相關(guān)資料分享

    嵌入式視頻監(jiān)控目前,嵌入式系統(tǒng)視頻監(jiān)控中的應(yīng)用越來(lái)
    發(fā)表于 11-08 07:10

    基于嵌入式技術(shù)的視頻監(jiān)控系統(tǒng)的設(shè)計(jì)

    摘 要:介紹了一種嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng), 詳細(xì)闡述了系統(tǒng)的總體結(jié)構(gòu)和特點(diǎn)、 硬件的基本框架及各部分功能、 軟件的結(jié)構(gòu)及流程。關(guān)鍵詞:
    發(fā)表于 07-22 23:18 ?27次下載

    B/S模式設(shè)計(jì)的嵌入式視頻監(jiān)控系統(tǒng)技術(shù)

    B/S模式設(shè)計(jì)的嵌入式視頻監(jiān)控系統(tǒng)技術(shù) 摘 要:以ARM9處理器S3C2440為核心芯片搭建硬件平臺(tái),采用
    發(fā)表于 05-06 17:32 ?1032次閱讀
    B/S模式設(shè)計(jì)的<b class='flag-5'>嵌入式</b><b class='flag-5'>視頻</b><b class='flag-5'>監(jiān)控</b><b class='flag-5'>系統(tǒng)</b>技術(shù)

    基于OpenCV的ARM嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)

    基于OpenCV的ARM嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)
    發(fā)表于 09-23 17:13 ?74次下載

    基于嵌入式視頻監(jiān)控服務(wù)器的搭建

    為實(shí)現(xiàn)對(duì)商店、車庫(kù)等小范圍區(qū)域的監(jiān)控,設(shè)計(jì)了一個(gè)基于嵌入式Linux的視頻監(jiān)控系統(tǒng),基于ARM+
    發(fā)表于 11-13 10:37 ?8次下載
    基于<b class='flag-5'>嵌入式</b><b class='flag-5'>視頻</b><b class='flag-5'>監(jiān)控</b>服務(wù)器的搭建

    基于嵌入式WEB的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)探討

    關(guān)鍵詞:Web , 監(jiān)控系統(tǒng) , 嵌入式 , 網(wǎng)絡(luò)視頻 本文介紹了一個(gè)基于嵌入式WEB技術(shù)的網(wǎng)絡(luò)視頻
    發(fā)表于 10-17 14:27 ?549次閱讀

    如何使用ARM進(jìn)行嵌入式監(jiān)控系統(tǒng)的設(shè)計(jì)

    本文利用網(wǎng)絡(luò)和嵌入式設(shè)備實(shí)現(xiàn)遠(yuǎn)程視頻監(jiān)控系統(tǒng)。攝像頭采集模擬的視頻信號(hào)轉(zhuǎn)化為數(shù)字信號(hào)后,通過(guò)局域網(wǎng)傳送到網(wǎng)內(nèi)的任何一臺(tái)計(jì)算機(jī), 從而實(shí)現(xiàn)異
    發(fā)表于 03-13 18:07 ?7次下載
    如何使用<b class='flag-5'>ARM</b>進(jìn)行<b class='flag-5'>嵌入式</b><b class='flag-5'>監(jiān)控</b><b class='flag-5'>系統(tǒng)</b>的設(shè)計(jì)

    基于ARM和Linux的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計(jì)

    基于ARM和Linux的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計(jì)(嵌入式開(kāi)發(fā)板如何刷程序)-本文根據(jù)大樓電梯
    發(fā)表于 07-30 12:56 ?9次下載
    基于<b class='flag-5'>ARM</b>和Linux的<b class='flag-5'>嵌入式</b>遠(yuǎn)程<b class='flag-5'>視頻</b><b class='flag-5'>監(jiān)控</b><b class='flag-5'>系統(tǒng)</b>的設(shè)計(jì)

    基于嵌入式Linux視頻監(jiān)控系統(tǒng)畢業(yè)論文

    基于嵌入式Linux視頻監(jiān)控系統(tǒng)畢業(yè)論文(培訓(xùn)嵌入式開(kāi)發(fā)軟件)-基于嵌入式Linux
    發(fā)表于 07-30 13:46 ?28次下載
    基于<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>視頻</b><b class='flag-5'>監(jiān)控</b><b class='flag-5'>系統(tǒng)</b>畢業(yè)論文

    畢設(shè)教程:基于嵌入式Linux和Web實(shí)現(xiàn)的視頻監(jiān)控系統(tǒng)(Arm/樹(shù)莓派/jetson)

    本文章將教你做一個(gè)嵌入式linux開(kāi)發(fā)板和web端來(lái)實(shí)現(xiàn)的視頻監(jiān)控系統(tǒng)。代做/輔導(dǎo):畢業(yè)設(shè)計(jì)/
    發(fā)表于 11-02 14:21 ?14次下載
    畢設(shè)教程:基于<b class='flag-5'>嵌入式</b>Linux和Web實(shí)現(xiàn)的<b class='flag-5'>視頻</b><b class='flag-5'>監(jiān)控</b><b class='flag-5'>系統(tǒng)</b>(<b class='flag-5'>Arm</b>/樹(shù)莓派/jetson)

    嵌入式視頻監(jiān)控

    嵌入式視頻監(jiān)控目前,嵌入式系統(tǒng)視頻監(jiān)控中的應(yīng)用越來(lái)
    發(fā)表于 11-02 21:06 ?31次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>視頻</b><b class='flag-5'>監(jiān)控</b>