【正文】
本次試驗,主要是針對視頻方面,選擇了對V4L的靜態(tài)加載、對spca5xx攝像頭驅動的動態(tài)加載,這樣就結束了對內核的配置。嵌入式系統(tǒng)對文件的操作是通過層次結構實現(xiàn)的。JFFS2文件系統(tǒng)是專門為NAND閃存設計的嵌入式文件系統(tǒng),根據(jù)NAND閃存以頁面為單位存取的特點,將文件組織成固定大小的數(shù)據(jù)段。在調試過程中gdb通過調試stub來完成通信功能,調試stub是嵌入式操作系統(tǒng)中的一小段代碼,它提供了運行gdb的宿主機和嵌入式系統(tǒng)進程之間交互的一個媒介。 char *videodevice 。 struct video_param videoparam。 int channel。 int bppIn。struct video_capability videocap :描述攝像頭基本信息,如設備名稱、支持的最大分辨率、信號源信息、信道數(shù)等。 int i。 vdvideodevice = (char *) realloc (vdvideodevice, 16)。 vdhdrheight = height。 i++) { vdptframe[i] = NULL。我們可以使用open函數(shù)來對設備進行打開操作,open帶有兩個參數(shù),第一個為設備文件名稱,本實驗的攝像頭設備名稱是/dev/video0,第二個則是打開的類型。}(3)獲取攝像頭參數(shù)成功打開攝像頭后,需要獲取攝像頭的一些參數(shù),利用ioctl函數(shù)控制I/O通道來實現(xiàn)。return 1 。return 1 。 munmap (vdpFramebuffer, vdmmapsize)。 vdcameraname = NULL。vdgrabmutex)。(vdvideombuf),0,sizeof(vdvideombuf)來清零緩沖區(qū)。vd=vdhdrheight。vdsignalquit)usleep (1000)。 headerframedeltatimes= (int) (headerframeseqtimestimecourant)。/*截取視頻幀*/if((ioctl(vdfd,VIDIOCMCAPTURE,amp。參數(shù)表為read(fd,(void*)pFramebuff,(size_t) framesizeln)。return 0 。headerframe= (struct frame_t*) vdptframe [vdframe_cour]。headerframenbframe=frame++。網(wǎng)域表明一個插口是用于哪一種網(wǎng)絡,類型表明網(wǎng)絡中通信所遵循的模式,有面向連接的和無連接的兩種模式??梢栽谝慌_普通的服務器上架設視頻服務器,在視頻服務器上架設網(wǎng)站、添加需要的文件,再通過視頻服務器管理軟件管理和維護視頻服務器,保證視頻服務器的正常、穩(wěn)定運行。與其他傳統(tǒng)的Web 服務器不同的是當有連接請求到來時,它并不為每個連接單獨創(chuàng)建進程,也不通過復制自身進程來處理多鏈接,而是通過建立HTTP 請求列表來處理多路HTTP 連接請求,同時它只為CGI 程序創(chuàng)建新的進程,這樣就在最大程度上節(jié)省了系統(tǒng)資源,這對嵌入式系統(tǒng)來說至關重要,同時它還具有自動生成目錄、自動解壓文件等功能。如果不需要錯誤日志,則用/dev/null。如果沒有以/開始,則表示從服務器的根路徑開始。我們采用的編譯器是armlinuxgcc。 Boa視頻服務器啟動嵌入式Boa視頻服務器正常運行一段時間后就需要維護和整理,Boa和一般服務器一樣,它會自動記載所有訪問記錄和出錯日志。在視頻監(jiān)控演示中,通過實現(xiàn)一個普通的網(wǎng)絡視頻監(jiān)控系統(tǒng)來讓用戶對系統(tǒng)有一個直觀的印象和感受。 PC上訪問服務器第六章 系統(tǒng)功能測試第一節(jié) 測試環(huán)境及內容測試使用基于Intel Xscale芯片的嵌入式實驗平臺和一臺普通的計算機。第三節(jié) 建立網(wǎng)站構架好一個嵌入式視頻服務器后,還不能直接使用服務器中的資源,還需要一個連接用戶和服務器的統(tǒng)一接口,這就是網(wǎng)站。這樣還不能直接編譯,把define TIMEZONE_OFFSET(foo) footm_gmtoff修改成define TIMEZONE_OFFSET(foo) (foo)tm_gmtoff,最后執(zhí)行make命令編譯boa視頻服務器。如果沒有以/開始,則表示從服務器的根路徑開始。如果沒有以/開始,則表示從服務器的根路徑開始。嵌入式Web服務器Boa和普通Web服務器一樣,具有完成接收客戶端請求、分析請求、響應請求、向客戶端返回請求結果等任務??墒?,對于有些特定情況來說,不必要也不允許使用這樣強大的服務器,比如嵌入式設備。否則將連接不成功。pthread_mutex_unlock (amp。headerframeseqtimes=ms_time ()。amp。對于攝像頭設備的讀取,需要先分配內存空間,用來存儲從攝像頭讀取過來的視頻數(shù)據(jù),然后直接調用read系統(tǒng)調用讀取視頻數(shù)據(jù),返回值為實際讀取的視頻幀大小,也正是在視頻傳輸過程中發(fā)送的視頻數(shù)據(jù)大小。if (debug) printf (“cmcapture err \n”)。headerframeh=vdhdrheight。vdgrabmutex)。vd=vdformatln。第二個參數(shù)為映射到調用進程地址空間的字節(jié)數(shù),它從被映射文件開頭offset個字節(jié)開始算起。嵌入式Linux系統(tǒng)支持兩種視頻數(shù)據(jù)采集的方式:內存映射、直接讀取視頻。 i OUTFRMNUMB。 vdpFramebuffer = NULL。(5) 關閉攝像頭在Linux編程過程中,必須養(yǎng)成一個好的編程習慣,就是在開啟一個設備后一定要關閉它,這樣可以避免很多諸如內存泄露等嚴重的問題。(vdvideowin))==1) { printf (“Fail to get video_window! /n”)。其中,cmd包括VIDIOCGCAP(獲得video_capbility中有關攝像頭的信息)、VIDIOCGPICT(獲取圖像信息)、VIDIOCSPICT(改變圖像信息)、VIDIOCGMBUF(獲取攝像頭存儲緩沖區(qū)幀信息)、VIDIOCAMCAPTURE(獲取視頻圖像)、VIDIOSYNC(判斷攝像頭是否截取成功)等。Open函數(shù)執(zhí)行結束后會返回攝像頭的文件描述符,如果返回值為1,則說明打開設備出錯。 vdframelock[i] = 0。 vdbppIn = GetDepth (vdformatIn)。 snprintf (vdvideodevice, 12, %s, device)。 if (width == 0 || height == 0) return 1。struct video_picture videopict :攝像頭采集圖像的屬性,如亮度、色調、對比度、色度、深度等。 int hdrheight。 unsigned char *pFramebuffer。 char *cameraname。 struct video_capability videocap。第四章 視頻采集功能的設計視頻采集程序是基于V4L開發(fā)的,包括攝像頭的初始化、打開/關閉、參數(shù)設置和數(shù)據(jù)讀取等操作。JFFS2采用一種多策略混合的垃圾回收算法,結合了貪心策略的高效性和隨機選擇的平均性,達到了兼顧損耗平均和系統(tǒng)開銷的目的。嵌入式文件系統(tǒng)是嵌入式操作系統(tǒng)的一部分,它的任務是對邏輯文件進行管理,其工作包括提供對邏輯文件的操作(復制、刪除、修改等)接口,方便用戶操作文件和目錄。首先執(zhí)行makedep命令,讀取配置過程生成的配置文件,來創(chuàng)建對應于配置的依賴關系樹,從而決定哪些需要編譯而哪些不需要。本設計中的Intel Xcale就是采用Blob作為Bootloader。第二階段則通常用C語言來實現(xiàn),這樣可以實現(xiàn)復雜的功能,而且代碼會具有更好的可讀性和可移植性。BootLoader的這種模式通常在第一次安裝內核與根文件系統(tǒng)時被使用,此外,以后的系統(tǒng)更新也會使用BootLoader的這種工作模式。(4)從特定的位置把操作系統(tǒng)和文件系統(tǒng)調入內存,并設置一些操作系統(tǒng)所必需的參數(shù),然后把CPU控制權交給操作系統(tǒng)。在一般嵌入式系統(tǒng)中,系統(tǒng)復位或者加電后通常從地址0x00000000處開始執(zhí)行,而這個地址一般正是存放的BootLoader啟動代碼。這里所說的跨平臺編譯器和一般的編譯器功能類似,都是把源代碼通過編譯器編譯成目標文件,然后通過鏈接器、可重定位器程序和定位器把目標文件重新定位成可執(zhí)行文件。由于在目前的主流嵌入式ARM中大多不具有MMU,因此只用IM左右的內核就能實現(xiàn)網(wǎng)絡功能和任務調度的Linux系統(tǒng)就可以適用于從高端服務器到嵌入式應用的各級平臺。Linux系統(tǒng)不僅能夠運行于PC平臺,還在嵌入式系統(tǒng)方面大放光芒。LAN91C111的工作流程是,驅動程序將要發(fā)送的數(shù)據(jù)包按指定格式寫入芯片并啟動發(fā)送命令,LAN91C111會自動把數(shù)據(jù)包轉換成物理幀格式在物理信道上傳輸;反之芯片收到物理信號后自動將其還原成數(shù)據(jù),并按指定格式存放在芯片RAM中以便主機程序取用。PXA270芯片在片內具有獨立的SDRAM刷新控制邏輯,可方便地與SDRAM接口。首先介紹CPU核心總線[4],總線是CPU和其他設備的橋梁。核心板(8層PCB電路)系統(tǒng)包括:CPU: INTEL PXA270(520M),支持GDB調試;SDRAM: 64M 工作在104M外頻上;FLASH: 32M INTEL Nor FLASH。而且針對嵌入式系統(tǒng),XScale構架還引入了Pentium處理器工藝和系統(tǒng)結構技術,實現(xiàn)了Pentium微處理器體系結構的一系列高性能技術,達到了高性能、低功耗和小體積等嵌入式系統(tǒng)要求的特性。ARM公司本身不直接從事芯片生產(chǎn),而是依靠轉讓設計許可,由合作公司生產(chǎn)各具特色的芯片。第二章 嵌入式ARM系統(tǒng)硬件結構簡介第一節(jié) 視頻監(jiān)控系統(tǒng)結構簡介網(wǎng)絡視頻監(jiān)控系統(tǒng)是基于嵌入式技術設計的。所以,從市場需求、技術創(chuàng)新、行業(yè)需要等方面,網(wǎng)絡視頻監(jiān)控系統(tǒng)都需要我們仔細研究和學習,有極大的現(xiàn)實意義。其中,%%的市場份額。用戶需要一次性支付199美元,用以購買攝像頭、無線門磁探測器以及相關軟硬件,美國的寬帶互聯(lián)網(wǎng)用戶和CingularWireless公司的無線上網(wǎng)手機用戶都可以享用該服務。雖然它利用了當今最前沿的技術,卻解決了一直以來都沒有完美解決的老問題——安全問題。也許,數(shù)字視頻監(jiān)控系統(tǒng)唯一的缺點就是它的復雜和昂貴。與此同時,現(xiàn)代網(wǎng)絡和數(shù)字技術的快速發(fā)展也為視頻監(jiān)控技術的發(fā)展奠定了堅實的基礎。關鍵詞:ARM 嵌入式 Linux 視頻監(jiān)控AbstractAccording to the requirements of home network monitoring system, based on the ARM network video surveillance solution. The program requires realtime transmission of video, realtime monitoring. Intel Xscale chip and embedded Linux system platform, the platform to build a network video server, and use it as the intermediary, the USB camera collected the video data transmission to a network server, finally sent to the application for monitoring remote PC, remote PC will be able to see the monitor side of the video images in real time.The paper first describes the development of embedded network video surveillance technology, status and prospects, and then describes the characteristics of embedded hardware system architecture and embedded Linux operating system on the overall structure of the embedded hardware, and general and plete the system the hardware has a detailed understanding of the actual records piling and porting of embedded operating system kernel, introduces the the Bootloader basic principles and the boot process, the video capture program to pile and transplantation, the use of embedded general driver. Subsequently, a detailed description of the overall block diagram of the video capture program and functionspecific block of code, network munications programming