【正文】
只包含必需設(shè)備的驅(qū)動(dòng)程序。如果該設(shè)備正常,則對(duì)這個(gè)設(shè)備及其他必需的條件(如中斷、DMA通道)進(jìn)行申請(qǐng)并初始化。因?yàn)樵O(shè)備驅(qū)動(dòng)程序一般支持同一類(lèi)型的若干設(shè)備,所以一般在系統(tǒng)調(diào)用中斷服務(wù)子程序時(shí),都帶有一個(gè)或多個(gè)參數(shù),以唯一標(biāo)識(shí)請(qǐng)求服務(wù)的設(shè)備。函數(shù)原型:ssize_t(*read)(struet flle*,char*,size_st,loff_t*):(4)write入口點(diǎn):向設(shè)備寫(xiě)數(shù)據(jù),對(duì)于有緩沖區(qū)的I/O操作,一般向緩沖區(qū)里寫(xiě)入數(shù)據(jù)。這個(gè)節(jié)點(diǎn)是通過(guò)mknod命令建立的,其中指定了主設(shè)備號(hào)和次設(shè)備號(hào)。Linux內(nèi)核是依據(jù)設(shè)備號(hào)來(lái)操作設(shè)備文件的,在內(nèi)核中,攝像頭對(duì)應(yīng)的設(shè)備文件名為/dev/video0,主設(shè)備號(hào)是81,次設(shè)備號(hào)根據(jù)攝像頭數(shù)目來(lái)確定,本系統(tǒng)中僅使用一個(gè)攝像頭,所以可以通過(guò)mknod /dev/video0 C 81 0末創(chuàng)建節(jié)點(diǎn)。為攝像頭建立設(shè)備號(hào),mknod /dev/video0 c 81 0。}Return 0。if(ioctl(vd224。channel[i].channel=i:if(ioetl(vd224。通常最快的磁盤(pán)訪(fǎng)問(wèn)還是慢于最慢的內(nèi)存訪(fǎng)問(wèn),所以mmap ()方式加速了I/O訪(fǎng)問(wèn)。內(nèi)存映射方式下真正進(jìn)行視頻截取的是ioctl系統(tǒng)調(diào)用的VIDIOCMCAPTURE命令,若函數(shù)成功調(diào)用,再用VIDIOCSYNC命令來(lái)判斷圖像截耿是否已經(jīng)完畢,若該函數(shù)調(diào)用成功,則表明一幀圖像的截取己完成,便丌始下一幀圖像數(shù)據(jù)的截取,并將當(dāng)前截耿的幀號(hào)按緩沖區(qū)總幀數(shù)的模加上1。接著,利用ioct1 ( fd, VIDIOCGCAP, amp。 TCP/IP協(xié)議簡(jiǎn)介T(mén)CP/IP協(xié)議是針對(duì)NI司NJT發(fā)的體系結(jié)構(gòu)和協(xié)議標(biāo)準(zhǔn),廣泛地應(yīng)用于組建網(wǎng)絡(luò)中。如果沒(méi)有收到確認(rèn),TCP會(huì)自動(dòng)重發(fā)數(shù)據(jù)。HTTP 協(xié)議是架構(gòu)在TCP/IP 協(xié)議上的應(yīng)用級(jí)協(xié)議,其目的是方便和加速對(duì)分布式協(xié)同工作的超媒體信息系統(tǒng)的訪(fǎng)問(wèn)。imagebmp,imageptr,640,480,20)))0){printf(Error:write jpeg error!)。解壓后執(zhí)行./configure,生成Makefile 文件。以下是效果圖:畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說(shuō)明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個(gè)人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。作者簽名: 日期: 年 月 日學(xué)位論文版權(quán)使用授權(quán)書(shū)本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國(guó)家有關(guān)部門(mén)或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。整個(gè)設(shè)置完后,就可以搜索攝像頭,找到攝像頭后,就能在相應(yīng)的PC 機(jī)上動(dòng)態(tài)顯示攝像頭采集的圖像信息,如圖1 所示,畫(huà)面清晰,圖像采樣大小為320240。為了播放實(shí)時(shí)視頻,可以通過(guò)在目標(biāo)板的 ARM Linux 系統(tǒng)中移植一個(gè)視頻服務(wù)器的應(yīng)用程序來(lái)實(shí)現(xiàn)。例如webserver 在80 號(hào)端口監(jiān)聽(tīng),當(dāng)有客戶(hù)向80 號(hào)端口發(fā)出連接請(qǐng)求時(shí),服務(wù)器將接受請(qǐng)求且由服務(wù)器進(jìn)程派生出子進(jìn)程和新的套接口(由accept()的返回值指向)來(lái)與客戶(hù)連接并通信。TCP必須能記錄發(fā)送和接收的數(shù)據(jù)流的狀態(tài)信息。(1)面向連接TCP協(xié)議是面向連接,客戶(hù)程序要與服務(wù)程序建立一個(gè)連接才能通過(guò)這個(gè)連接傳輸數(shù)據(jù),并在結(jié)束時(shí)斷開(kāi)這個(gè)連接。在LCD上的顯示如圖所示6 視頻網(wǎng)絡(luò)傳輸模塊研究與實(shí)現(xiàn)要實(shí)現(xiàn)監(jiān)控現(xiàn)場(chǎng),除了完成視頻采集的編程,還需要把視頻圖像數(shù)據(jù)通過(guò)網(wǎng)絡(luò)傳輸出去,因此需要在完成視頻采集的基礎(chǔ)上建立網(wǎng)絡(luò)服務(wù)器,實(shí)現(xiàn)客戶(hù)端和服務(wù)器之間的數(shù)據(jù)通信。 fd是設(shè)備打開(kāi)后返回的文件描述符(打開(kāi)錯(cuò)誤返回一1)。然后使用函數(shù)vdmap=(unsigned char*)mmap(0,vd,PROT_READ|PROT_WRITE,MAP—SHARED,vdfd,ff_t offset)使設(shè)備內(nèi)容映射到內(nèi)存區(qū),其中第一個(gè)參數(shù)為共享內(nèi)存的起始地址,一般設(shè)為0,表示由系統(tǒng)分配;第二個(gè)參數(shù)為映射到調(diào)用進(jìn)程地址空間的字節(jié)數(shù),它從被映射文件開(kāi)頭offset個(gè)字節(jié)丌始算起;第三個(gè)參數(shù)指定共享內(nèi)存的訪(fǎng)問(wèn)權(quán)限(PROT_READ(可讀),PROT_WRITE(可寫(xiě)),PROT_EXEC(可執(zhí)行));第四個(gè)參數(shù)可以是MAP_SHARED或者M(jìn)AP_PRIVATE;第五個(gè)參數(shù)為設(shè)備描述符。通常有兩種視頻采集方式:一種是通過(guò)read()直接讀取,另外一種通過(guò)mmap()內(nèi)存映射讀取。c即ability中的信息。}Return 0;}(3) 設(shè)置videopicture中分量的值,先為分量賦新值,再調(diào)用VIDIOCGPICT。(vd224。Linux下與Video4Linux相關(guān)設(shè)備及用途如表所示設(shè)備名稱(chēng)Minor range功能/dev/video063視頻捕捉接口/dev/radio64127AM/FM音頻接口/dev/vtx193224文字電視廣播/dev/vbi224239原始VBI數(shù)據(jù)這里主要針對(duì)設(shè)備文件/dev/video進(jìn)行視頻捕捉方面的程序設(shè)計(jì)。這個(gè)標(biāo)準(zhǔn)為應(yīng)用程序定義了一系列的接口函數(shù),內(nèi)核、驅(qū)動(dòng)和應(yīng)用程序都是依靠這個(gè)標(biāo)準(zhǔn)來(lái)進(jìn)行交流。通常一個(gè)硬件的驅(qū)動(dòng)程序就是指一個(gè)驅(qū)動(dòng)模塊。獨(dú)占設(shè)備必須標(biāo)記設(shè)備可再次使用。在Linux操作系統(tǒng)中,并不是直接從中斷向量表中調(diào)用設(shè)備驅(qū)動(dòng)程序的中斷服務(wù)子程序,而是由Linux系統(tǒng)束接收硬件中斷,再由系統(tǒng)調(diào)用中斷服務(wù)子程序。設(shè)備文件的主設(shè)備號(hào)必須與設(shè)備驅(qū)動(dòng)程序在登記時(shí)申請(qǐng)的設(shè)備號(hào)一致,否則用戶(hù)進(jìn)程將無(wú)法訪(fǎng)問(wèn)驅(qū)動(dòng)程序。從內(nèi)核的角度來(lái)看,驅(qū)動(dòng)程序是一個(gè)設(shè)備的代表。建立一個(gè)目錄,將需要放到文件系統(tǒng)的文件復(fù)制到這個(gè)目錄。Linux在安裝新的文件系統(tǒng)時(shí),把它安裝到指定的安裝目錄,從而合并到這個(gè)單一的文件系統(tǒng)樹(shù)上。本系統(tǒng)中主要需要對(duì)一下參數(shù)進(jìn)行配置:處理器結(jié)構(gòu)、網(wǎng)絡(luò)功能、設(shè)備驅(qū)動(dòng)、可執(zhí)行文件格式等。(4)修改內(nèi)核啟動(dòng)時(shí)使用的命令行初始參數(shù)。VIVi是韓國(guó)的而mizi公司開(kāi)發(fā)的BootLoader,適用于A(yíng)RM9處理器。 BootLoader的移植圖是一個(gè)典型的嵌入式應(yīng)用系統(tǒng)固態(tài)存儲(chǔ)設(shè)備的空間分配示意圖。微內(nèi)核模塊化體系結(jié)構(gòu)Linux操作系統(tǒng)本身的微內(nèi)核體系結(jié)構(gòu)相當(dāng)簡(jiǎn)單,網(wǎng)絡(luò)和文件系統(tǒng)以模塊形式置于微內(nèi)核的上層,驅(qū)動(dòng)程序和其它部件可在運(yùn)行時(shí)作為可加載模塊編譯到或者是添加到內(nèi)核,這為構(gòu)造定制的可嵌入系統(tǒng)提供了高度模塊化的構(gòu)件方法,使添加部件非常容易。這點(diǎn)優(yōu)勢(shì)是其他商用操作系統(tǒng)無(wú)法比擬的。目標(biāo)系統(tǒng)硬件開(kāi)發(fā)板用來(lái)運(yùn)行嵌入式Linux操作系統(tǒng)、用戶(hù)系統(tǒng)應(yīng)用程序等,而主機(jī)平臺(tái)用來(lái)進(jìn)行嵌入式操作系統(tǒng)內(nèi)核編譯,文件系統(tǒng)的制作和系統(tǒng)應(yīng)用程序開(kāi)發(fā)和調(diào)試等。系統(tǒng)硬件平臺(tái)如圖21所示用戶(hù)終端監(jiān)控終端數(shù)據(jù)壓縮數(shù)據(jù)傳輸層USB攝像頭S3C2410XSRAM電源及復(fù)位電路控制臺(tái)NAND Flash存儲(chǔ)設(shè)備SDRAMJtag接口圖21 系統(tǒng)硬件平臺(tái)結(jié)構(gòu)圖通過(guò)對(duì)嵌入式操作系統(tǒng)Linux體系結(jié)構(gòu)的分析,結(jié)合ARM處理器及其外圍設(shè)備的的特性,本系統(tǒng)中將軟件的體系結(jié)構(gòu)分為兩層:內(nèi)核空間和用戶(hù)空間。(4) 基于Vidoo4Linux的視頻采集程序的研究與實(shí)現(xiàn)。另外,對(duì)于異常入侵及各類(lèi)故障缺乏足夠的事后分析手段,所以要實(shí)現(xiàn)變電站綜合全面的自動(dòng)化管理,就需要一個(gè)功能完備的遠(yuǎn)程智能視頻監(jiān)控系統(tǒng)。所以選擇以L(fǎng)inux作為項(xiàng)目所需的操作系統(tǒng)。關(guān)鍵詞:視頻監(jiān)控 嵌入式系統(tǒng) ARM9 Linux V4L視頻采集Abstract With the rapid development of the electronic technology, multimedia technology and network technology, video surveillance system is going to the embedded, digital, networked direction. Taking full