摘要: 提出一種基于ARM 嵌入式開發(fā)平臺視頻監(jiān)控的實現(xiàn)方案。通過V4L2 在Linux 下構(gòu)建視頻圖像采集和顯示,然后使用servfox 和spcaview 構(gòu)建視頻服務器,系統(tǒng)可在Linux 和Windows 操作系統(tǒng)下通過窗口或者網(wǎng)頁進行視頻監(jiān)控和圖像抓拍。測試表明系統(tǒng)的監(jiān)控圖像清晰,并具有體積小、成本低、可靠性強等優(yōu)點。
目前,嵌入式系統(tǒng)在視頻監(jiān)控中的應用越來越廣泛。伴隨著網(wǎng)絡的強大功能,視頻監(jiān)控更側(cè)重網(wǎng)絡監(jiān)控方案,要求體積小、遠程化、成本低、功耗小、操作界面人性化等。本系統(tǒng)基于嵌入式Linux 平臺上利用USB 攝像頭采集視頻圖像,通過視頻圖像壓縮及結(jié)合網(wǎng)絡進行視頻圖像傳輸,使遠程監(jiān)控成為可能。
1 系統(tǒng)概述
視頻圖像監(jiān)控系統(tǒng)由4 部分組成, 分別為視頻圖像采集、視頻圖像處理、視頻圖像傳輸、視頻圖像顯示。視頻圖像采集部分由數(shù)字攝像頭、USB 通道和嵌入式處理器構(gòu)成、視頻圖像處理主要是視頻圖像壓縮,由算法實現(xiàn)、視頻圖像傳輸主要利用視頻服務器來實現(xiàn)、視頻圖像顯示主要是在遠程的主機上實現(xiàn)視頻圖像的瀏覽、保存和處理等,Linux 主機上由應用程序?qū)崿F(xiàn),Windows 主機上通過瀏覽器上的JAVA 程序?qū)崿F(xiàn)。系統(tǒng)原理框圖如圖1 所示。
圖1 系統(tǒng)框圖
2 系統(tǒng)硬件
CPU 處理器使用Samsung S3C2440A, 主頻400 MHz,最高533 MHz;64 M SDRAM、32 bit 數(shù)據(jù)總線、SDRAM 時鐘頻率100 MHz;256 M/1 GB Nand Flash, 掉電非易失、2 M NorFlash,掉電非易失;統(tǒng)寶3.5 真彩LCD,屏集成4 線電阻式觸摸屏, 屏幕分辨率可以達到1024×768 象素;100 M 以太網(wǎng)RJ-45 接口(采用DM9000 網(wǎng)絡芯片)、串行口、USB Host、USB Slave B 型接口、SD 卡存儲接口、路立體聲音頻輸出接口, 麥克風接口、JTAG 接口、4 USER Leds、6 USER buttONs(帶引出座)、I2C 總線AT24C08 芯片、20 pin 攝像頭接口;攝像頭用良田,兼容SN9C20X 系列芯片的驅(qū)動,本系統(tǒng)的內(nèi)核中集成了該驅(qū)動。
3 系統(tǒng)軟件
3.1 Linux 內(nèi)核的移植
移植新內(nèi)核主要是為了給LCD 以及攝像頭添加相應的驅(qū)動支持,在Fedora 9 中打開內(nèi)核的目錄,使用缺省配置文件進行配置:在內(nèi)核中添加V4L 支持、添加萬能USB 攝像頭驅(qū)動GSPCA。
3.2 基于V4L2 的圖像采集程序
系統(tǒng)使用的交叉編譯工具為arm-linux-gcc-4.3.2.設計使用到的應用程序都要通過該編譯器編譯后下載到開發(fā)板上運行。將編好的應用程序V4L2。c 交叉編譯后下載到板。
V4L(Video for Linux)是Linux 下提供的一個音視頻接口規(guī)范,所有的音視頻驅(qū)動編寫都要用到這些接口。
V4L 從2.4.1.x 的內(nèi)核版本中開始出現(xiàn), 設計使用的Video for Linux2(簡稱V4L2)是V4L 的改進版,修復了第一代中的部分BUG。
設計的圖像采集及處理程序主要基于V4L2 架構(gòu), 通過對一些ioctl 函數(shù)的調(diào)用來實現(xiàn)視頻設備的打開,圖像的采集處理,圖像的顯示等。幾個主要的ioctl 函數(shù)的簡介:
1)ioctl(fd,VIDIOC_S_FMT, &fmt):用于設置圖像的格式。
2)ioctl(fd, VIDIOC_REQBUFS, &req):向內(nèi)存申請緩沖區(qū),申請的buffer 個數(shù)存在count 中。
3)ioctl(fd, VIDIOC_QUERYBUF, &buf):查詢已經(jīng)分配的V4L2 的視頻緩沖區(qū)的相關(guān)信息, 包括視頻緩沖區(qū)的使用狀態(tài)、在內(nèi)核空間的偏移地址、緩沖區(qū)長度等。
4)ioctl(fd, VIDIOC_QBUF, &buf):放一個空的視頻緩沖區(qū)到視頻緩沖區(qū)輸入隊列中,函數(shù)執(zhí)行成功后,指令的視頻緩沖區(qū)進入視頻輸入隊列,在啟動視頻設備拍攝圖像時,相應的視頻數(shù)據(jù)被保存到視頻輸入隊列相應的視頻緩沖區(qū)中。
5)ioctl(fd, VIDIOC_STREAMON, &type):啟動視頻采集命令,應用程序調(diào)用VIDIOC_STREAMON 啟動視頻采集命令后,視頻設備驅(qū)動程序開始采集視頻數(shù)據(jù),并把采集到的視頻數(shù)據(jù)保存到視頻驅(qū)動的視頻緩沖區(qū)中。
圖像采集處理流程圖如圖2 所示。
圖2 圖像采集處理流程圖
3.3 網(wǎng)絡服務器
系統(tǒng)采用Boa 服務器。Boa 是一種非常小巧的Web 服務器, 其可執(zhí)行代碼只有大約60 kB 左右。作為一種單任務Web 服務器,Boa 只能依次完成用戶的請求,Boa 支持CGI,能夠為CGI 程序fork 出一個進程來執(zhí)行。板上移植該服務器,Boa 服務器默認開機自動運行,配置conf 文件。
服務器端應用程序使用servfox, servfox-R1_1_3 解壓修改Makefile 文件:CC=arm-linux-gcc,編譯后得到可執(zhí)行文件servfox,下載到板上,輸入命令chmod +x servfox 為它添加可執(zhí)行屬性。
客戶端程序使用spcawiew, 該程序用于在Linux 主機上對服務器進行監(jiān)控,無需移植。在Linux 上編譯spcaview.由于此軟件包依賴與libsdl,所以在安裝spcaview 之前,需要安裝SDL-1.2.13. 安裝spcaview 軟件后,在源文件目錄上有3 個可執(zhí)行文件,spcacat :簡單圖片的抓取工具,不能用于網(wǎng)絡監(jiān)視客戶端,Spcaserv:流媒體服務器,Spcaview: 用來紀錄數(shù)據(jù)流,也能用來播放數(shù)據(jù),也能作為網(wǎng)絡監(jiān)視客戶端用。
4 監(jiān)控過程
4.1 在Linux 操作系統(tǒng)上的監(jiān)控
正常啟動運行開發(fā)板,運行服務器端程序servfox: servfox-d /dev/video0-s 320x240-w 7070。
在Linux 上運行: 。/spcaview-g-s 320x240-w 10.1.91.230:7070
其中10.1.91.230 是服務器的IP 地址,這樣就可以在PC機上看見USB 攝像頭采集進來的數(shù)據(jù)了。
系統(tǒng)是裝在虛擬機中的fedora 9 linux 系統(tǒng),可以流暢地觀察到攝像頭監(jiān)控區(qū)域的情況。
4.2 Windows 操作系統(tǒng)上的監(jiān)控
對于網(wǎng)絡監(jiān)控的客戶端,能夠跨平臺的工具目前只有瀏覽器,通過瀏覽器來監(jiān)控,無論是Linux、Windows、MacOS 或者其他的UNIX 系統(tǒng),只要有圖形界面的瀏覽器,在桌面環(huán)境下都可以對遠程的攝像頭所“控制”的范圍進行監(jiān)控。
Mini2440 上已經(jīng)有Boa 服務器可供使用,Spcaview 中的http-java-applet 文件夾中已經(jīng)包含了一個可以監(jiān)控使用的web 頁面,將該文件夾復制到Boa 服務器的主文件夾/www 下。
由于http-java-applet 文件夾內(nèi)含的WEB 主頁面(Index.html)包含了JAVA 控件,所以先在主機上安裝JAVA 環(huán)境,讓瀏覽器支持JAVA 插件。
安裝好JRE 后, 在瀏覽器的地址欄上輸入服務器地址,即可實現(xiàn)遠程監(jiān)控。
4.3 遠程抓拍
通過web 表單提交CGI 來運行應用程序。
通用網(wǎng)關(guān)接口(CGI)規(guī)范允許Web 服務器執(zhí)行其他的程序并將它們的輸出儲存在發(fā)送給Web 瀏覽器的文本、圖形和音頻中。服務器與CGI 程序的結(jié)合能夠擴充World WideWeb 的能力。
CGI 程序可以由C、Perl 或者UNIX Shell 腳本等流行編程語言編寫。
在本設計中,網(wǎng)頁上的按鈕shoot the picture 提交了一個名為V4L 的CGI 文件v4l。cgi,該文件是用shell 腳本編寫的,用于在板上運行已編譯好的圖像采集程序并對抓拍的圖片返回到新打開的網(wǎng)頁中進行查看。
Shell 腳本(v4l。cgi)內(nèi)容如下:
#! /bin/sh
/www/http-java-applet/v4l2
echo “Content-type: text/html; charset=gb2312”
echo
echo “……”
echo “
上一篇:ARM單片機測高測距小車的研究與設計
下一篇:基于CAN 總線的智能斷路器網(wǎng)絡模型
推薦閱讀
史海拾趣
CLARE公司的創(chuàng)業(yè)之路始于對電子行業(yè)深厚的技術(shù)積累和敏銳的市場洞察力。公司的創(chuàng)始人憑借其深厚的專業(yè)知識和經(jīng)驗,準確把握了行業(yè)的發(fā)展趨勢,成功開發(fā)了一系列具有競爭力的電子產(chǎn)品。這些產(chǎn)品在市場上獲得了良好的反響,為CLARE公司奠定了堅實的技術(shù)和市場基礎。
在電子行業(yè)的發(fā)展過程中,Bogen Communications Inc公司意識到單打獨斗難以取得長久的成功。因此,公司積極尋求與其他企業(yè)和機構(gòu)的合作,共同開發(fā)新技術(shù)、新產(chǎn)品。通過與合作伙伴的緊密合作,公司不僅獲得了更多的資源和技術(shù)支持,還成功地將產(chǎn)品推向了更廣闊的市場。
隨著技術(shù)的不斷進步和市場需求的增長,DSP Group開始將業(yè)務擴展到半導體領域。公司推出了一系列高性能、低功耗的DSP芯片,廣泛應用于移動通信、智能家居、汽車電子等領域。這一舉措不僅進一步鞏固了DSP Group在DSP領域的領先地位,還為公司帶來了可觀的收益和市場份額。
在電子行業(yè)中,產(chǎn)品質(zhì)量的穩(wěn)定性是企業(yè)生存的關(guān)鍵。C-TON深知這一點,因此從公司成立之初就高度重視品質(zhì)管理。公司建立了一套嚴格的質(zhì)量檢測體系,確保每一件產(chǎn)品都符合高標準的質(zhì)量要求。此外,C-TON還不斷引進先進的生產(chǎn)設備和技術(shù),提升生產(chǎn)效率和產(chǎn)品質(zhì)量。這些努力使得C-TON的產(chǎn)品在市場上獲得了良好的口碑,也為其贏得了眾多忠實客戶。
在汽車制造領域,福特一直是技術(shù)創(chuàng)新的領導者。20世紀60年代,福特開始將電子設備集成到汽車中,包括車載電話、導航系統(tǒng)以及早期的娛樂系統(tǒng)。這些創(chuàng)新不僅提升了駕駛的便捷性和舒適性,也預示著未來汽車電子化、智能化的趨勢。雖然這些技術(shù)并不直接屬于航空通信范疇,但它們展示了福特在電子技術(shù)應用方面的前瞻性和實力。
隨著環(huán)保意識的不斷提高,ELM Technology Corporation積極響應國家號召,將環(huán)保理念融入企業(yè)發(fā)展中。公司投入大量資金研發(fā)環(huán)保型電子產(chǎn)品,努力降低產(chǎn)品對環(huán)境的影響。同時,ELM還積極參與各類環(huán)?;顒樱苿与娮有袠I(yè)的綠色發(fā)展。這種對環(huán)保的執(zhí)著追求讓ELM在行業(yè)中樹立了良好的形象。
今天在協(xié)會翻出了一大堆電源,只有幾個是atx的電源,都是20針接口的,這個在網(wǎng)上有人解釋,把綠線和地線(黑線)短接就行了,但是還有大部分電源不知如何改裝,那位高人幫忙看看,圖片如下: 整體圖 上面唯一的標簽 所有接口… 查看全部問答∨ |
|
Wince 6.0中PPPOE撥號成功后IP地址存在注冊表的什么位置? Wince 6.0中PPPOE撥號成功后IP地址存在注冊表的什么位置?當然還有子網(wǎng)掩碼,默認網(wǎng)關(guān)等,謝謝… 查看全部問答∨ |
我在做wince5.0平臺下的MFC編程,在獲取圖片的縮略圖時遇到了問題, 我的想法是使用IImagingFactory的函數(shù)GetThumbnail獲取圖片的縮略圖,然后加載到CImageList中去, 但是在CImageList->add出了問題,因為GetThumbnail返回的是 IImage** thumbImage ...… 查看全部問答∨ |
wince上支持CSocket嗎,如果不支持,請問用什么方式完成通信。 我現(xiàn)在使用模擬器訪問一臺郵件服務器,但是CSocket連接不通。… 查看全部問答∨ |
關(guān)于代碼從rom拷到ram中運行的疑問!請教大家。。。。。 我用的是z8 cpu 片內(nèi)1k ram,8k的rom,在引導程序里我已經(jīng)用代碼把rom中的數(shù)據(jù)拷貝到ram中去了,如下所示: IF COPYPRAM LD R0,#high(_low_pramseg) LD&nb ...… 查看全部問答∨ |
最近碰到了一個問題,想編寫一個虛擬打印機驅(qū)動,但是不知道從哪下手,不知哪位大哥有相關(guān)的資料或者是代碼給小弟參考參考?謝謝!請發(fā)到hjy82919@163.com… 查看全部問答∨ |
用C#和MSComm控件和萬用表通信,收不到數(shù)據(jù) 因項目需要,我需要從一塊帶RS232串口的數(shù)字萬用表讀取電壓數(shù)據(jù)。該萬用表串口設置如下:波特率 19200,停止位 1,數(shù)據(jù)位 7,奇偶校驗 odd。 我用C#和MSComm控件寫了個簡單的接收程序。部分代碼如下: //串口設置 axMSC ...… 查看全部問答∨ |
如果用FSMC來接LCD(320*240TFT),全速72M或90M,能否放動畫?或者每秒在不影響系統(tǒng)其他外設的情況下能放多少幀?… 查看全部問答∨ |
設計資源 培訓 開發(fā)板 精華推薦
- 保障工業(yè)核心命脈:深度解讀工業(yè)交換機QoS的“智能流量治理”之道
- WAIC 直擊|Arm 鄒挺:突破基礎設施、數(shù)據(jù)安全與人才三重挑戰(zhàn),釋放 AI 發(fā)展新潛能
- 鎧俠第九代 BiCS FLASH? 512Gb TLC 存儲器開始送樣
- 基于PPEC32系列芯片的10kW純正弦波車載逆變器應用方案
- 新唐科技推出全新KM1M4BF6x系列單電機控制MCU
- 伺服電機中的回原點方式
- 芯科集成CX3288系列車規(guī)MCU在旋轉(zhuǎn)變壓器的應用
- AI玩具DC-DC芯片,安全與成本雙突圍
- 訂單暴增800%!消費芯片新風口:東北裝空調(diào)
- 機器人也能純視覺控制?MIT華人博士團隊登上Nature主刊
- 泰克《MIPI物理層測試》下載有禮!
- 情人節(jié)禮物:愛要怎么說出口?
- Nexperia有獎直播|電動汽車中車規(guī)功率MOSFET和氮化鎵器件的介紹及應用
- 2024年STM32巡回研討會即將開啟?。?月3日-9月13日)
- 邀請好友體驗WEBENCH,禮品豐厚你有他也有!
- 西門子精彩視頻限時免費|利用電子產(chǎn)品生命周期管理 (PLM) 更快地交付更多產(chǎn)品
- 下午2點微信群語音答疑:Vicor電源專家答網(wǎng)友的電源設計問題
- 【電源技術(shù)需求調(diào)查,為2024年蓄力!】活動開始啦~
- 共抗疫情 少出門多學習: 多部TI實用課程奉上, 身體不能在路上就讓靈魂在路上