【正文】
工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 31 =AF_INET。 } bzero(amp。 TCP/IP 網(wǎng)絡(luò)數(shù)據(jù)傳輸具體實(shí)現(xiàn)流程如圖 所示: 傳輸開(kāi)始前 創(chuàng)建套接字,指定本地地址,建立套接字連接,監(jiān)聽(tīng)連接 基于 ARM 的遠(yuǎn)程視頻監(jiān)控系統(tǒng) 30 N 圖 數(shù)據(jù)傳輸具體實(shí)現(xiàn)流程圖 整個(gè)程序代碼如下所示: include include includei/ includesys/ include includesys/ include define SERVER_PORT 20xx //定義服務(wù)器端口為 20xx int main(int argc,char **argv) { int serverfd,clientfd。 TCP/IP 是“ transmission Control Protocol/Inter Protocol”的簡(jiǎn)寫(xiě),中文意思是傳輸控制協(xié)議 /網(wǎng)絡(luò)協(xié)議, Linux 系統(tǒng)下的 TCP/IP 網(wǎng)絡(luò)協(xié)議棧各層之間通過(guò)一系列互相連接的軟件來(lái)實(shí)現(xiàn),調(diào)用順序和結(jié)構(gòu)層次如圖 所示。 avcodec_close(codectx)。 } //采集完畢后,關(guān)閉相關(guān)設(shè)備 av_free_pCodec(amp。 //輸出圖像大小 //圖像數(shù)據(jù)的采集 while(GetNextFrame(pFormatCtx, codetx, videoStream, pFrame)) { img_convert((AVPicture *)pFrameRGB, PIX_FMT_RGB24, (AVPicture*)pFrame。 //編碼器打開(kāi)失敗 } //為輸出圖像數(shù)據(jù)設(shè)置緩沖區(qū)并分配內(nèi)存空間 output_bufsize=20xx00。 //設(shè)置圖像寬度 codetxbit_rate=500000。 } codetx=avcodec_alloc_context()。mpeg4_encoder)。 AVCodecContext *codetx。在這個(gè)設(shè)計(jì)中,采用的是 MPEG4編碼器, MPEG4 是一套廣泛用于視頻、音頻的圖像編碼軟件, 其中支持 MPEG4編碼標(biāo)準(zhǔn)的編碼軟件重要有 FFmpeg、 OpenDIVX、 Xvidcore 等,在本研究中使用的是基于 linux 操作系統(tǒng)的 FFmpeg 編碼器。 return 1。使用內(nèi)存映射讀取能直接繞過(guò)內(nèi)核緩沖區(qū),提高視頻采集速度,所以在本設(shè)計(jì)中使用的是 mmap()內(nèi)存映射讀取。fmt)。 } return 0。 return 0。 /*給設(shè)備文件命名 */ if((vdsfd=open(vddev,O_RDWR)),0) { perror(“vd_open is not avaliable”)。 = (unsigned char *)malloc()。 = 0x00ff00ff。 ②視頻采集窗口屬性設(shè)置:視頻采集窗口設(shè)置主要是指對(duì)圖像采集窗口大小的設(shè)置,使取景限定在一個(gè)范圍內(nèi),主要是對(duì)結(jié)構(gòu)體 v4l2_crop 的設(shè)置,處理程序如下所示: = 。 /* FIXME: Should be one dump per type */ dbgarg (cmd, type=%s\n, prt_names(type, v4l2_type_names_FIXME))。 基于 ARM 的遠(yuǎn)程視頻監(jiān)控系統(tǒng) 20 圖 模塊設(shè)置 設(shè)置成功后 , Video4linux 驅(qū)動(dòng)選取成功,在后面的采集過(guò)程中,可以直接調(diào)用視頻采集的相關(guān)函數(shù)。 圖 終端機(jī)上顯示圖 加載攝像頭驅(qū)動(dòng)程序 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 19 前 面在選擇數(shù)碼攝像頭時(shí)提到本系統(tǒng)使用的是 OV511+芯片,因?yàn)?對(duì)采用 OV511+芯片的攝像頭能夠提供良好的驅(qū)動(dòng)支持,我們?cè)谑褂脮r(shí),只需在內(nèi)核編譯階段添加數(shù)碼攝像頭驅(qū)動(dòng)程序,就可以實(shí)現(xiàn)對(duì)數(shù)碼攝像頭的各種操作。連接開(kāi)發(fā)板后,就可以得到如下界面圖 : 圖 連接開(kāi)發(fā)板后的界面圖 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 17 嵌入式 Linux 的編譯 本文選擇的是 版本內(nèi)核,其編譯過(guò)程主要如下所示: 拷貝 內(nèi)核壓縮包到 fedora 14 虛擬操作系統(tǒng)中,在命令窗口中執(zhí)行如下命令: : cd desktop tar xvzf C/ 待解壓成功后,進(jìn)入 內(nèi)核包中,找到 Makefile 文件,對(duì) Makefile進(jìn)行如下修改: ARCH ?= $(SUBARCH) 修改為 ARCH ? =arm CROSS_COMPILE ?= 修改為 CROSS_COMPILE ? =armlinuxgcc 編譯內(nèi)核代碼 cd make clean make S3C2410dk_defconfig 以菜單形式配置源代碼,主要包括對(duì)個(gè)驅(qū)動(dòng)程序的添加于卸除,執(zhí)行如下命令 make menuconfig 內(nèi)核最終編譯 make uImage 最終得到的 uImage 文件就是我們最終用來(lái)下載到開(kāi)發(fā)板上的內(nèi)核代碼。 ( 4) 視頻網(wǎng)絡(luò)傳輸程序設(shè)計(jì) 經(jīng)過(guò)采集、處理后的數(shù)據(jù),最終需想辦法傳輸?shù)娇刂茩C(jī)端,本文沒(méi)有采取傳統(tǒng)串行傳輸,而是采用了內(nèi)建視頻流媒體服務(wù)器,從而將視頻信號(hào)傳遞給遠(yuǎn)端用戶,它以 TCP/IP 協(xié)議棧為基礎(chǔ)構(gòu)建,需要實(shí)現(xiàn) TCP 和 UDP 等協(xié)議,有 IP 地址,使任何一個(gè)客戶機(jī)都能訪問(wèn)這些數(shù)據(jù)信息。 ( 2) 視頻采集系統(tǒng)的應(yīng)用程序設(shè)計(jì) 該模塊主要功能是實(shí)現(xiàn)對(duì)視頻采集端數(shù)據(jù)的采集、存儲(chǔ)本文在這一塊弱化了對(duì)硬件的需求,沒(méi)有選擇專(zhuān)用的視頻采集卡,而是通過(guò) Linux 系統(tǒng)支持的Video4linux 驅(qū)動(dòng),用編程軟件來(lái)實(shí)現(xiàn)整個(gè)功能。下面給出設(shè)計(jì)中拓展的的 DM9200 芯片的結(jié)構(gòu)圖 。其電路結(jié)構(gòu)如圖 所示: 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 13 圖 SDRAM 電路結(jié)構(gòu)圖 ( 4) DM9200 網(wǎng)卡功能介紹 DM9200 是一款由 DAVICOM 公司生產(chǎn)的高度集成、低功耗的快速以太網(wǎng)控制器,該芯片配有一個(gè)標(biāo)準(zhǔn)的 10M/100M 網(wǎng)絡(luò)適應(yīng)功能,物理層支持以太網(wǎng)數(shù)據(jù)接口。 HY57V561620B 是提供完全同步 操作引 用一個(gè)積極邊緣的這個(gè)時(shí)鐘。其電路結(jié)構(gòu)簡(jiǎn)圖如圖 所示: 圖 JTAG 接口電路結(jié)構(gòu)簡(jiǎn)圖 ( 2) FSLAH 在本設(shè)計(jì)中選用 FSLAH 型號(hào)為 K9F1208, K9F1208 是 Samsung 公司生產(chǎn)的FLASH JTAG CPU S3C2440A 以太網(wǎng)控制器 DM9200 USB SDRAM 數(shù)碼攝像頭 遠(yuǎn)程客戶端 基于 ARM 的遠(yuǎn)程視頻監(jiān)控系統(tǒng) 12 512 Mb(64M8 位 )NAND Flash 存儲(chǔ)器。具體電路結(jié)構(gòu)如圖 所示 : 圖 圖 基于 ARM 的遠(yuǎn)程視頻監(jiān)控系統(tǒng) 10 ( 3) 復(fù)位系統(tǒng) 在該設(shè)計(jì)中用到的開(kāi)發(fā)平臺(tái)其使用的是專(zhuān)用復(fù)位芯片 MAX811,來(lái)實(shí) 現(xiàn)低電平復(fù)位,其電路結(jié)構(gòu)如圖 所示: 圖 復(fù)位系統(tǒng)電路結(jié)構(gòu)圖 ( 4) 網(wǎng)絡(luò)接口 本開(kāi)發(fā)板在在設(shè)計(jì)時(shí),拓展了一個(gè) DM9200 網(wǎng)卡芯片,用以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)的支持,它可適應(yīng) 10M/100M 網(wǎng)絡(luò),在使用時(shí)可以直接用普通的網(wǎng)線連接,即可實(shí)現(xiàn)與開(kāi)發(fā)板的網(wǎng)絡(luò)連接。 ( 1) CPU 處理器 本開(kāi)發(fā)板使用的是 Samsung 公司的 S3c2440A 處理器,主頻 400MHZ,最 高可達(dá)到 533MHZ。 ARM920T 實(shí)現(xiàn)了 MMU、 AMBA BUS 和 Harvard 高速緩沖體系結(jié)構(gòu)。為了降低整體系統(tǒng)使用成本, S3C2440A 為使用者 提供了豐富的內(nèi)部設(shè)備。在嵌入式領(lǐng)域可以選擇的操作系統(tǒng)很多,比如:嵌入式 Linux、VxWorks、 Windows CE 等。 ( 1) 處理器選擇 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 5 在本設(shè)計(jì)中選用的是 ARM920T 微處理器,由于其具有高執(zhí)行速度、低功耗能耗、價(jià)格相對(duì)較低等優(yōu)點(diǎn)而在我們?nèi)粘I钪械玫搅藦V泛的應(yīng)用,它主要應(yīng)用于以下領(lǐng)域: ? 無(wú)線通 信領(lǐng)域、常用消費(fèi)電子、智能家居、各種成像設(shè)備等產(chǎn)品提供可運(yùn)行的復(fù)雜操作系統(tǒng)的開(kāi)放應(yīng)用平臺(tái)。 ARM 處理器目前有多個(gè)系列,主要包括 ARM 7系列、 ARM9 系列、 ARM10系列、 SecuCore 系列。 基于 ARM 的遠(yuǎn)程視頻監(jiān)控系統(tǒng) 4 第 2 章 基于 S3C2410 的硬件開(kāi)發(fā)平臺(tái) ARM 體系結(jié)構(gòu)簡(jiǎn)介 ARM( Advanced RISC Machine) 處理器是由總部在英國(guó)的一家名為 ARM公司設(shè)計(jì)的一款微機(jī)處理器,其實(shí) ARM 公司本身不直接生產(chǎn),其靠轉(zhuǎn)讓設(shè)計(jì)許可證來(lái)由與其合作的公司生產(chǎn)各具特色的處理器芯片,這使得世界上很多大半導(dǎo)體生產(chǎn)商直接從 ARM 公司購(gòu)買(mǎi)其設(shè)計(jì)的微處理器核,然后根據(jù)各自不同的適用范圍,加入合 適的的外圍電路,以此形成自己的獨(dú)特特色的 ARM 微處理器芯片從而進(jìn)入消費(fèi)市場(chǎng)。 ( 2) 視頻編碼系統(tǒng)設(shè)計(jì) 對(duì)于采集到的視頻數(shù)據(jù),必須對(duì)其進(jìn)行編碼處理后再通過(guò)網(wǎng)絡(luò)傳輸?shù)街骺貦C(jī)上。在本系統(tǒng)中將會(huì)著重介紹視頻采集系統(tǒng)的軟件模塊功能實(shí)現(xiàn)。嵌入式系統(tǒng)因?yàn)榫哂袑?shí)時(shí)性好、穩(wěn)定性強(qiáng)等特點(diǎn),所以在視頻監(jiān)控中得到快速發(fā)展。 傳統(tǒng)的視頻監(jiān)控系統(tǒng)是伴隨著電視機(jī)、電腦等電子產(chǎn)品的出現(xiàn)而出現(xiàn),它出基于 ARM 的遠(yuǎn)程視頻監(jiān)控系統(tǒng) 2 現(xiàn)后被廣泛的應(yīng)用于超市、銀行、安保、學(xué)校等公共場(chǎng)所。由于 Linux 系統(tǒng)源代碼開(kāi)放、可以隨意定制、易于在不同開(kāi)發(fā)板上移植等一系列優(yōu)點(diǎn),使得它在嵌入式系統(tǒng)中獲得了越來(lái)越廣泛的應(yīng)用。 因?yàn)閿z像機(jī)和電視的出現(xiàn) ,最初的模擬監(jiān)控系統(tǒng)出現(xiàn)。 圖像在圖像的客觀事物 ,傳神的描繪 ,是直觀的和詳細(xì)的信息表達(dá) ,是一種重要的信息載體的人類(lèi)。 關(guān)鍵詞: 嵌入式系統(tǒng); ARM;視頻監(jiān)控系統(tǒng): LINUX 系統(tǒng):圖像采集與傳輸 基于 ARM 的遠(yuǎn)程視頻監(jiān)控系統(tǒng) II ABSTRACT Practical application demand of the work video surveillance equipment, this paper designs a work video monitoring system based on ARM embedded technology, the bination of image acquisition pression, embedded systems and work technology, design a set of embedded work video monitoring system, to realize image video data collection, pression and work transmission. The system based on S3C2440 ARM920t chip and embedded Linux operating system, use USB digital camera to capture video, after pression, and then directly connected to the work, sends the collected data to the specified PC. Paper first describes the background significance of the subject, for the main implement process of the design system to do the introduction。