蘇康友 陳家棟 王佳穎 羅煒鋒
摘 要:隨著物聯(lián)網(wǎng)的快速發(fā)展,無(wú)論工業(yè)還是生活中,無(wú)線遠(yuǎn)程監(jiān)控系統(tǒng)都扮演著重要的角色。文中設(shè)計(jì)一種以三星S5P6818處理器為控制核心,采用MJPG-streamer視頻流服務(wù)技術(shù)進(jìn)行視頻數(shù)據(jù)處理的無(wú)線遠(yuǎn)程監(jiān)控系統(tǒng),并搭載Boa服務(wù)器對(duì)視頻流數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)轉(zhuǎn)發(fā),實(shí)現(xiàn)隨時(shí)隨地的網(wǎng)絡(luò)監(jiān)控。
關(guān)鍵詞:物聯(lián)網(wǎng);無(wú)線遠(yuǎn)程;監(jiān)控;三星S5P6818;MJPG-streamer;Boa服務(wù)器
中圖分類號(hào):TP277文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-1302(2019)03-00-02
0 引 言
隨著“中國(guó)制造2025”計(jì)劃的實(shí)施,新一代信息技術(shù)、人工智能等新概念、新內(nèi)容不斷涌現(xiàn)在人們的日常生活中,其中無(wú)線視頻監(jiān)控技術(shù)應(yīng)用廣泛。本文提出一種基于嵌入式的無(wú)線監(jiān)控系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)方案—以嵌入式三星S5P6818為控制核心,Linux為操作系統(tǒng),通過(guò)MJPG-streamer流媒體服務(wù)進(jìn)行數(shù)據(jù)采集與傳輸,從而實(shí)現(xiàn)通過(guò)訪問(wèn)Web服務(wù)器,隨時(shí)隨地進(jìn)行遠(yuǎn)程監(jiān)控。
1 系統(tǒng)構(gòu)成
系統(tǒng)由硬件與軟件兩部分組成。硬件部分主要采用ARM嵌入式處理器、無(wú)線模塊及USB視頻設(shè)備;軟件主要基于Linux系統(tǒng)之上,采用MJPG-streamer流媒體服務(wù)進(jìn)行視頻采集與傳輸,利用Web服務(wù)器對(duì)外提供訪問(wèn)接口,客戶端可通過(guò)訪問(wèn)Web服務(wù)器對(duì)所捕獲的視頻進(jìn)行監(jiān)控。系統(tǒng)設(shè)計(jì)架構(gòu)如圖1所示。
2 硬件系統(tǒng)設(shè)計(jì)
本文系統(tǒng)以三星公司Cortex-A53內(nèi)核高性能八核處理器S5P6818為主控,外接SDRAM,F(xiàn)LASH及電源管理模塊組成系統(tǒng)的核心部分,在此基礎(chǔ)上搭載USB Host,UART,JTAG等功能接口。硬件平臺(tái)總體框架如圖2所示。
3 系統(tǒng)軟件設(shè)計(jì)
Linux是一套免費(fèi)使用且可自由傳播的類Unix操作系統(tǒng),是基于POSIX和UNIX的多用戶、多任務(wù),支持多線程與多CPU的操作系統(tǒng),能運(yùn)行主要的UNIX工具軟件、應(yīng)用程序及網(wǎng)絡(luò)協(xié)議[1]。本文設(shè)計(jì)利用Lunix系統(tǒng)平臺(tái),通過(guò)MJPG-streamer流媒體服務(wù)進(jìn)行數(shù)據(jù)采集與傳輸。
3.1 軟件平臺(tái)設(shè)計(jì)
軟件平臺(tái)設(shè)計(jì)包括底層軟件設(shè)計(jì)與上層軟件設(shè)計(jì)。底層設(shè)計(jì)主要采用U-Boot移植、Linux嵌入式系統(tǒng)移植、Rootfs制作、驅(qū)動(dòng)移植等,完成與硬件平臺(tái)之間的匹配。上層軟件采用Web服務(wù)器的搭建、MJPG-streamer流媒體服務(wù)移植等。其中,MJPG-streamer視頻流服務(wù)是一款基于TCP/IP協(xié)議傳輸?shù)木W(wǎng)絡(luò)視頻流服務(wù),利用V4L2接口采集圖像數(shù)據(jù),將采集到的數(shù)據(jù)進(jìn)行壓縮,并以MJPG格式通過(guò)http向外傳輸,完成實(shí)時(shí)監(jiān)控的功能。系統(tǒng)軟件平臺(tái)如圖3所示。
3.2 V4L2視頻采集流程
攝像頭捕捉的視頻數(shù)據(jù)通過(guò)一個(gè)隊(duì)列形式的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),使用V4L2設(shè)置攝像頭相關(guān)參數(shù),申請(qǐng)若干個(gè)內(nèi)核視頻緩存區(qū),并送進(jìn)隊(duì)列,將這若干個(gè)內(nèi)核緩存區(qū)通過(guò)mmap()函數(shù)映射到用戶空間,對(duì)用戶層讀取攝像頭數(shù)據(jù)[2]。開啟攝像頭捕獲,操作內(nèi)核緩存區(qū)出隊(duì),讀取數(shù)據(jù),讀過(guò)緩沖區(qū)再次入隊(duì),依次循環(huán)。V4L2工作流程如圖4所示。
實(shí)例代碼如下:
int cam_fd = open(“/dev/video3”,O_RDWR);
struct v4l2_format *fmt = calloc(1,sizeof(*fmt));
fmt->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
ioctl(cam_fd,VIDIOC_G_FMT,fmt);
while(1)
{
v4lbuf.index = i%nbuf;
ioctl(cam_fd,VIDIOC_DQBUF, &v4lbuf);
shooting(start[i%nbuf], length[i%nbuf],fb_mem);
v4lbuf.index = i%nbuf;
ioctl(cam_fd,VIDIOC_QBUF,&v4lbuf);
i++;
}
4 結(jié) 語(yǔ)
本文根據(jù)未來(lái)智能化的發(fā)展方向,采用Linux系統(tǒng)通用的視頻采集接口V4L2采集視頻數(shù)據(jù),通過(guò)MJPG-streamer流媒體服務(wù)壓縮轉(zhuǎn)出數(shù)據(jù)流格式,并利用Boa服務(wù)器,實(shí)現(xiàn)了網(wǎng)絡(luò)轉(zhuǎn)發(fā)的無(wú)線遠(yuǎn)程實(shí)時(shí)監(jiān)控系統(tǒng)。下一步的工作是實(shí)現(xiàn)多路視頻監(jiān)控連接,并結(jié)合ZigBee網(wǎng)絡(luò)通信,實(shí)現(xiàn)區(qū)域化的智能視頻監(jiān)控系統(tǒng)。
參 考 文 獻(xiàn)
[1]楊延慶.網(wǎng)絡(luò)攻防平臺(tái)的分析與設(shè)計(jì)[D].西安:西安電子科技大學(xué),2005.
[2]??碎?基于嵌入式Linux的視頻監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2015.
[3]姚莉,鄧丹君.基于A8的嵌入式Linux遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2016,6(5):24-26.
[4]張仕海,周穎.基于ARM的嵌入式視頻監(jiān)控系統(tǒng)的硬件設(shè)計(jì)[J].物聯(lián)網(wǎng)技術(shù),2017,7(5):12-14,17.
[5]趙麗麗,王兵,謝靜雯,等.嵌入式無(wú)線視頻監(jiān)控小車[J].化工自動(dòng)化及儀表,2017(5):492-494.
[6]王小超.基于H264的Android平臺(tái)無(wú)線視頻監(jiān)控系統(tǒng)[J].數(shù)字通信世界,2017(8):70.
[7]安省偉.基于DM8168的無(wú)線視頻監(jiān)控系統(tǒng)設(shè)計(jì)[D].南京:南京郵電大學(xué),2017.
[8]劉磊.基于ARM的可實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)跟蹤的視頻監(jiān)控系統(tǒng)研究[D].蘭州:蘭州理工大學(xué),2018.
[9]郭志濤,韓海凈,孔江浩.基于Android移動(dòng)終端的多功能視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2018,41(16):96-99,103.
[10]曾永安,康韋曉,單亞飛.基于Hi3531A芯片和流媒體服務(wù)器的視頻監(jiān)控系統(tǒng)[J].無(wú)線通信技術(shù),2018,44(2):207-210.