freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于arm的遠程監(jiān)控系統(tǒng)設(shè)計畢業(yè)設(shè)計論文(參考版)

2025-07-01 04:23本頁面
  

【正文】 int length。在此,我要感謝我的指導(dǎo)老師對我這幾個月的教導(dǎo),在論文設(shè)計過程中,我有遇到很多難題,比如時間上的沖突、內(nèi)容上的不嚴謹、處理上的一些細節(jié)性錯誤,還好老師指出我相關(guān)方面的錯誤,并督導(dǎo)我積極改正。到后來在編寫的過程中,遇到很多困難,還好周圍的同學(xué)很熱情,遇到什么問題就會想同學(xué)請教,后面導(dǎo)師也經(jīng)常給我們做指導(dǎo),提出我們在設(shè)計過程中犯的錯誤并指導(dǎo)我們改正。在論文設(shè)計的這段過程中,我感覺自己收獲很多。在這個設(shè)計過程中,主要完成了如下工作:(1)通過大量實驗,對 ARM 平臺構(gòu)架以及 Linux 系統(tǒng)有了個更加深入的了解;(2)完成了 Bootloader 和 Linux 的移植,這樣可以很大程度上的節(jié)省硬件設(shè)計, 更多依賴軟件實現(xiàn);(3)使用軟件程序?qū)D像數(shù)據(jù)進行采集與處理;(4)完成了數(shù)據(jù)的 TCP/IP 網(wǎng)絡(luò)傳輸,避開使用傳統(tǒng)的串行或者并行傳輸,可 以減少工作量和減少傳輸錯誤。 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(論文) 33 圖 終端得到的界面 程序仿真調(diào)試 啟動目標板 Linux 系統(tǒng),進行 NFS 連接,進入多媒體設(shè)備模塊文件夾和USB 攝像頭驅(qū)動模塊文件夾,并加載各模塊。 基于 ARM 的遠程視頻監(jiān)控系統(tǒng)32      第 6 章 視頻采集模塊的編譯與仿真 在視頻采集系統(tǒng)程序編譯鏈接完成后,在/ylinux/kernel/drivers/media/video/文件夾中生成 模塊,在/ylinux/kernel/drivers/usb/ 文件夾中生成 模塊,在/ylinux/kernel/drivers/caiji/文件夾中生成了 模塊。 return 0。send(consocketfd,ptrmpeg4_data,ptrlen,0)!=ptrlen) { rest=0。 //發(fā)送 MPEG4 數(shù)據(jù)到監(jiān)控端 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(論文) 31 if(restamp。ptt,NULL,(void)*handle_connection,(void*)conme)。 if(set_camera_info(camera)0) { get_camera_info(camera)。 //獲取視頻設(shè)備的參數(shù) camera=camera。 } rest=open_camera(camera,camera)。 } if(listen(serverfd,LENGTH_OF_LISTEN_QUEUE)0) //對端口進行監(jiān)聽 { printf(listen the port is failure\n)。serveraddr,sizeo(serveraddr))) //綁定套接字 接口 { printf(bind to the port is failure\n)。 //分配 32 位 IP 網(wǎng)絡(luò)地址 =AF_INET。 //清空套接字空間 =htons(SERVER_PORT)。 } bzero(amp。 if(serverfd=socket(AF_INET,SOCK_STREAM,0)0) //創(chuàng)建套接字 { printf(創(chuàng)建套接字失敗)。TCP/IP 網(wǎng)絡(luò)數(shù)據(jù)傳輸具體實現(xiàn)流程如圖 所示: N 圖 數(shù)據(jù)傳輸具體實現(xiàn)流程圖 整個程序代碼如下所示:includeincludeincludei/includesys/includeincludesys/includedefine SERVER_PORT 2022 //定義服務(wù)器端口為 2022int main(int argc,char **argv){傳輸開始前創(chuàng)建套接字,指定本地地址,建立套接字連接,監(jiān)聽連接視頻設(shè)備初始化檢測有無用戶連接 創(chuàng)建線程,開始數(shù)據(jù)傳輸基于 ARM 的遠程視頻監(jiān)控系統(tǒng)30 int serverfd,clientfd。DM9200 芯片的主要寄存器分數(shù)據(jù)讀寫端寄存器、DM9200 狀態(tài)寄存器和 DM9200 狀態(tài)存儲器,這些寄存器主要用于發(fā)送和接收數(shù)據(jù)包時對 DM9200 芯片內(nèi)部的處理。TCP/IP 是“transmission Control Protocol/Inter Protocol”的簡寫,中文意思是傳輸控制協(xié)議/網(wǎng)絡(luò)協(xié)議,Linux 系統(tǒng)下的 TCP/IP 網(wǎng)絡(luò)協(xié)議棧各層之間通過一系列互相連接的軟件來實現(xiàn),調(diào)用順序和結(jié)構(gòu)層次如圖 所示。 return 0。 avcodec_close(codectx)。 av_free(output_buffer)。 } //采集完畢后,關(guān)閉相關(guān)設(shè)備 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(論文) 27 av_free_pCodec(amp。 DoSomethingWithTheImage(pFrameRGB)。 //輸出圖像大小 //圖像數(shù)據(jù)的采集 while(GetNextFrame(pFormatCtx, codetx, videoStream, pFrame)) { img_convert((AVPicture *)pFrameRGB, PIX_FMT_RGB24, (AVPicture*)pFrame。 //使用 malloc 函數(shù)分配 size=codetxwidth*codetxheight。 //編碼器打開失敗 } //為輸出圖像數(shù)據(jù)設(shè)置緩沖區(qū)并分配內(nèi)存空間 output_bufsize=202200。 //設(shè)置每秒 55 幀的壓縮速率 codetxheight=300。 //設(shè)置圖像寬度 codetxbit_rate=500000。 //若分配的空間無法打開,則退出 } pFrame=avcodec_alloc_frame()。 } codetx=avcodec_alloc_context()。 //獲取編碼器編號 if(pCodec==NULL) { 圖像數(shù)據(jù)輸入 保存圖像 FFmpeg 初始化 相關(guān)參數(shù)設(shè)置 圖像格式轉(zhuǎn)換 視頻數(shù)據(jù)填充Ffmpeg 視頻編碼保存視頻文件壓縮后的圖像數(shù)據(jù)輸出基于 ARM 的遠程視頻監(jiān)控系統(tǒng)26 printf(“wrong codec number”)。mpeg4_encoder)。 avcodec_init()。 AVCodecContext *codetx。下圖介紹了視頻編碼器在整個系統(tǒng)中的使用處,如圖 所示:圖 視頻編碼過程圖 接受處理端 FFmpeg 解碼 TCP/IP 網(wǎng)絡(luò)通信協(xié)議 S3C2440A FFmpeg 編碼器 視頻信號采集端 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(論文) 25視頻編碼流程如圖 所示: 圖 視頻編碼流程圖 編碼程序設(shè)計如下所示:include ffmpeg/ //包含所有 FFmpeg 的音頻、視頻庫文件include ffmpeg/ //包含 demuxers 和 muxer 庫includeffmpeg/ //包含一些工具庫includeffmpeg/ //圖像壓縮庫include int main(int argc, char *argv[]) { { AVCodec *pCodec。在這個設(shè)計中,采用的是 MPEG4 編碼器,MPEG4 是一套廣泛用于視頻、音頻的圖像編碼軟件,其中支持MPEG4 編碼標準的編碼軟件重要有 FFmpeg、OpenDIVX、Xvidcore 等,在本研究中使用的是基于 linux 操作系統(tǒng)的 FFmpeg 編碼器。}該函數(shù)調(diào)用成功后就可以實現(xiàn)對內(nèi)存空間的寫入,把采集到的視頻限號存儲在 flash 存儲器中。 return 1。該過程的具體實現(xiàn)過程如下所示:int vd_mmap_init(vd_device * vds){ if(vd_mbuf(fd)0) return 1。使用內(nèi)存映射讀取能直接繞過內(nèi)核緩沖區(qū),提高視頻采集速度,所以在本設(shè)計中使用的是 mmap()內(nèi)存映射讀取。buf)。fmt)。std_id)。} return 0。(vdscapablity))0){ printf(“it’s a error vd_vcbs”)。 return 0。 /*退出主程序,視頻設(shè)備文件打開失敗 */ } if(vd_vcbs(vddev)) /*讀取攝像頭相關(guān)信息*/ return 1。 /*給設(shè)備文件命名*/ if((vdsfd=open(vddev,O_RDWR)),0) { perror(“vd_open is not avaliable”)。 =SDL_CreateRGBSurfaceFrom(, , 基于 ARM 的遠程視頻監(jiān)控系統(tǒng)22,); memset(, 0, )。 = (unsigned char *)malloc()。 = 0x00ff0000。 = 0x00ff00ff。 = * 4。②視頻采集窗口屬性設(shè)置:視頻采集窗口設(shè)置主要是指對圖像采集窗口大小的設(shè)置,使取景限定在一個范圍內(nèi),主要是對結(jié)構(gòu)體 v4l2_crop 的設(shè)置,處理程序如下所示: = 。f,0,sizeof(f))。     /* FIXME: Should be one dump per type */dbgarg (cmd, type=%s\n, prt_names(type,v4l2_type_names_FIXME))。設(shè)置程序如下: struct v4l2_format *f = (struct v4l2_format *)arg。圖 模塊設(shè)置設(shè)置成功后,Video4linux 驅(qū)動選取成功,在后面的采集過程中,可以直接調(diào)用視頻采集的相關(guān)函數(shù)。 視頻采集系統(tǒng)的應(yīng)用程序設(shè)計 Video4Linux 設(shè)備驅(qū)動加載Video4linux,是 linux 中的內(nèi)核驅(qū)動,主要是關(guān)于視頻設(shè)備的,視頻設(shè)備的正常使用很大程度上依賴于對 Video4Linux 模塊的支持,它是 Linux 系統(tǒng)中關(guān)于視頻設(shè)備的內(nèi)核驅(qū)動,它為所用到的 USB 芯片攝像頭提供統(tǒng)一的編程接口。圖 終端機上顯示圖基于 ARM 的遠程視頻監(jiān)控系統(tǒng)18 加載攝像頭驅(qū)動程序前面在選擇數(shù)碼攝像頭時提到本系統(tǒng)使用的是 OV511+芯片,因為 對采用 OV511+芯片的攝像頭能夠提供良好的驅(qū)動支持,我們在使用時,只需在內(nèi)核編譯階段添加數(shù)碼攝像頭驅(qū)動程序,就可以實現(xiàn)對數(shù)碼攝像頭的各種操作。對于嵌入式 Linux 來說,它絕大部分的文件都保存在 flash 中,所以本設(shè)計中將建立一個與 flash 相對應(yīng)的 JFFS2 文件,過程如下: 開辟一個文件系統(tǒng)并掛載 dd if=/dev/zero of=fs bs=1024 count=6000 mount o loop fs ramfs 文件系統(tǒng)制作掛載后,拷貝 busybox 生成的_install 下面的所有命令到掛載點,并且在掛載  點下新建文件夾: mkdir bin home lib proc tmp root user tools usr etc構(gòu)建根文件系統(tǒng)的目的是為了使不同的文件能夠存儲在不同的目錄下。連接開發(fā)板后,就可以得到如下界面圖 :圖 連接開發(fā)板后的界面圖基于 ARM 的遠程視頻監(jiān)控系統(tǒng)16 嵌入式 Linux 的編譯本文選擇的是 版本內(nèi)核,其編譯過程主要如下所示:拷貝 內(nèi)核壓縮包到 fedora 14
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1