基于嵌入式LINUX的視頻監(jiān)控系統(tǒng)設(shè)計(jì)開(kāi)題報(bào)告_第1頁(yè)
基于嵌入式LINUX的視頻監(jiān)控系統(tǒng)設(shè)計(jì)開(kāi)題報(bào)告_第2頁(yè)
基于嵌入式LINUX的視頻監(jiān)控系統(tǒng)設(shè)計(jì)開(kāi)題報(bào)告_第3頁(yè)
基于嵌入式LINUX的視頻監(jiān)控系統(tǒng)設(shè)計(jì)開(kāi)題報(bào)告_第4頁(yè)
基于嵌入式LINUX的視頻監(jiān)控系統(tǒng)設(shè)計(jì)開(kāi)題報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、畢業(yè)設(shè)計(jì)(論文)材料之二(2)安徽工程科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)開(kāi)題報(bào)告題目: 基于嵌入式Linux的 視頻監(jiān)控系統(tǒng) 課 題 類(lèi) 型: 科研 論文 模擬 實(shí)踐學(xué) 生 姓 名: 學(xué) 號(hào): 專(zhuān) 業(yè) 班 級(jí): 教 學(xué) 單 位: 指 導(dǎo) 教 師: 開(kāi) 題 時(shí) 間: 2010 年 3 月 1 日一、畢業(yè)設(shè)計(jì)(論文)內(nèi)容及研究意義(價(jià)值)本課題主要研究嵌入式Linux應(yīng)用系統(tǒng)的開(kāi)發(fā)過(guò)程。其主要包括:(1)、交叉編譯環(huán)境的搭建;(2)、嵌入式Linux的移植;(3)、文件系統(tǒng)的制作;(4)、USB攝像頭的驅(qū)動(dòng)設(shè)計(jì);(5)、視頻圖像的采集、壓縮、傳輸?shù)燃夹g(shù)。(6)、嵌入式WEB服務(wù)器的建立為了更加高效地對(duì)監(jiān)

2、控現(xiàn)場(chǎng)進(jìn)行實(shí)時(shí)監(jiān)控和遠(yuǎn)程監(jiān)控,同時(shí)考慮到各方面的成本因素而提出基于嵌入式Linux的視頻監(jiān)控系統(tǒng)。該系統(tǒng)可應(yīng)用于各種小區(qū)、商場(chǎng)、醫(yī)院看護(hù)等公共場(chǎng)所的領(lǐng)域,實(shí)現(xiàn)視頻監(jiān)控的網(wǎng)絡(luò)化,數(shù)字化,相比傳統(tǒng)的監(jiān)控模式,使監(jiān)控現(xiàn)場(chǎng)的管理更加便捷,效率更高。二、畢業(yè)設(shè)計(jì)(論文)研究現(xiàn)狀和發(fā)展趨勢(shì)(文獻(xiàn)綜述)嵌入式Linux(EMBEDED LINUX)是指對(duì)標(biāo)準(zhǔn)Linux經(jīng)過(guò)小型化裁剪處理之后,能夠固化在容量只有幾KB或者幾MB字節(jié)的存儲(chǔ)器芯片或者單片機(jī)中,是適合于特定嵌入式應(yīng)用場(chǎng)合的專(zhuān)用Linux操作系統(tǒng)。在目前已經(jīng)開(kāi)發(fā)成功的嵌入式系統(tǒng)中,大約有一半使用的是Linux,這與它自身的優(yōu)良特性是分不開(kāi)的。嵌入式L

3、inux同Linux一樣,具有低成本、多種硬件平臺(tái)支持、優(yōu)異的性能和良好的網(wǎng)絡(luò)支持等優(yōu)點(diǎn)。另外,為了更好地適應(yīng)嵌入式領(lǐng)域的開(kāi)發(fā),嵌入式Linux還在Linux基礎(chǔ)上做了部分改進(jìn),如改善了內(nèi)核結(jié)構(gòu),提高了系統(tǒng)的實(shí)時(shí)性等。目前國(guó)內(nèi)外不少大學(xué)、研究機(jī)構(gòu)、和知名公司都加入了嵌入式Linux的研究開(kāi)發(fā)工作,較成熟的嵌入式Linux產(chǎn)品也不斷涌現(xiàn)。視頻監(jiān)控系統(tǒng)在電信、銀行、交通、電力、水利、石化、智能大廈等諸多領(lǐng)域有著廣泛的應(yīng)用。隨著計(jì)算機(jī)技術(shù)、多媒體技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,視頻監(jiān)控系統(tǒng)正向數(shù)字化、網(wǎng)絡(luò)化、集成化和智能化方向發(fā)展。以嵌入式視頻Web服務(wù)器為核心的視頻監(jiān)控系統(tǒng)是視頻監(jiān)控系統(tǒng)中主流的研究現(xiàn)狀,把

4、視頻壓縮和Web服務(wù)器集中到一個(gè)很小的設(shè)備中,可以方便地接入計(jì)算機(jī)網(wǎng)絡(luò),用戶(hù)只要通過(guò)Web訪問(wèn)就可以方便地觀看Web服務(wù)器上的攝像機(jī)圖像。以嵌入式視頻web服務(wù)器為核心的視頻監(jiān)控系統(tǒng)布控區(qū)域廣闊,系統(tǒng)擴(kuò)展能力強(qiáng), 可組成非常復(fù)雜的監(jiān)控網(wǎng)絡(luò)。采用基于嵌入式Web服務(wù)器為核心的監(jiān)控系統(tǒng),在組網(wǎng)方式上與傳統(tǒng)的模擬監(jiān)控和基于PC平臺(tái)的監(jiān)控方式有極大的不同?;赪eb服務(wù)器輸出己完成模擬到數(shù)字的轉(zhuǎn)換并壓縮,采用統(tǒng)一的協(xié)議(如TCP/IP協(xié)議)在網(wǎng)絡(luò)上傳輸,因此支持跨網(wǎng)關(guān)、跨路由器的遠(yuǎn)程視頻傳輸,性能穩(wěn)定可靠,無(wú)需專(zhuān)人管理。數(shù)字視頻監(jiān)控系統(tǒng)設(shè)備中具有圖像識(shí)別和特征提取的功能,通過(guò)圖像分析實(shí)現(xiàn)運(yùn)動(dòng)探測(cè)和報(bào)警

5、,使其更具視頻數(shù)字化、系統(tǒng)的網(wǎng)絡(luò)化、應(yīng)用的多媒體化、管理的智能化,這將成為今后數(shù)字視頻監(jiān)控系統(tǒng)的主要發(fā)展趨勢(shì)。另外,新的視頻監(jiān)控系統(tǒng)的研究也受到關(guān)注,比如對(duì)于一種新的錄像監(jiān)控系統(tǒng)數(shù)字硬盤(pán)錄像機(jī) (DigitalvideoRecord,DvR)的研究陽(yáng)】。數(shù)字硬盤(pán)錄像機(jī)摒棄了傳統(tǒng)的模擬數(shù)據(jù),采用了數(shù)字化的方式記錄數(shù)據(jù)。具有存儲(chǔ)量大,成本低,檢索方便的特點(diǎn),在許多領(lǐng)域受到重用。 三、畢業(yè)設(shè)計(jì)(論文)研究方案及工作計(jì)劃(含工作重點(diǎn)與難點(diǎn)及擬采用的途徑)1、設(shè)計(jì)思路: 系統(tǒng)的主體設(shè)計(jì)思想是將視頻終端和嵌入式Web服務(wù)器整合在一起,攝像頭傳送來(lái)的視頻信號(hào)經(jīng)過(guò)壓縮后,通過(guò)內(nèi)部總線(xiàn)傳送到內(nèi)置的Web服務(wù)器。

6、該服務(wù)器可直接接上Internet,網(wǎng)絡(luò)上用戶(hù)可以直接用瀏覽器(如IE瀏覽器)觀看服務(wù)器上的監(jiān)控圖像。這種方案是當(dāng)前應(yīng)用較為廣泛的方法,使用了近來(lái)發(fā)展迅速的嵌入式技術(shù)、網(wǎng)絡(luò)化技術(shù)以及圖像處理的技術(shù),具有較高的技術(shù)水平。由于把視頻采集壓縮和Web功能集成到一個(gè)設(shè)備內(nèi)直接連入網(wǎng)絡(luò),達(dá)到即插即看,省掉很多復(fù)雜的電路,安裝也很方便(僅需設(shè)置IP地址),用戶(hù)無(wú)需使用專(zhuān)用軟件,在具有網(wǎng)絡(luò)接口的地方都可以直接使用。這種視頻監(jiān)控系統(tǒng)除應(yīng)用于遠(yuǎn)程網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng)中,也可以應(yīng)用在其它如小區(qū),醫(yī)院病床監(jiān)護(hù)等各種設(shè)備之間距離較大的情況。本文將設(shè)計(jì)一個(gè)基于嵌入式Linux的嵌入式視頻監(jiān)控系統(tǒng),即對(duì)嵌入式Linux在視頻監(jiān)控

7、系統(tǒng)中的應(yīng)用展開(kāi)研究。本系統(tǒng)的主要硬件組成為基于三星S3C2440的mini2440開(kāi)發(fā)系統(tǒng)和USB攝像頭。操作系統(tǒng)采用在嵌入式技術(shù)中流行的嵌入式Linux。系統(tǒng)將實(shí)現(xiàn)實(shí)驗(yàn)現(xiàn)場(chǎng)的網(wǎng)絡(luò)化實(shí)時(shí)視頻監(jiān)控,同時(shí)具有網(wǎng)絡(luò)化遠(yuǎn)程控制功能。當(dāng)然在此基礎(chǔ)上也可實(shí)現(xiàn)對(duì)多個(gè)視頻前端的訪問(wèn)和控制。本文將對(duì)嵌入式Linux在ARM開(kāi)發(fā)平臺(tái)上內(nèi)核、文件系統(tǒng)的開(kāi)發(fā)和移植,視頻前端設(shè)備(USB攝像頭)驅(qū)動(dòng)程序的開(kāi)發(fā),視頻圖像的采集和壓縮,服務(wù)器的建立及視頻圖像的網(wǎng)絡(luò)傳輸?shù)妊芯績(jī)?nèi)容進(jìn)行了詳細(xì)的論述,并對(duì)系統(tǒng)建成后在實(shí)際中的應(yīng)用進(jìn)行了測(cè)試和實(shí)驗(yàn)。2、應(yīng)用的技術(shù)分析: 集計(jì)算機(jī)技術(shù)、通信技術(shù)、微電子技術(shù)等多種技術(shù)為一體的嵌入式技

8、術(shù)進(jìn)入到了一個(gè)飛速發(fā)展的階段,嵌入式系統(tǒng)已被廣泛應(yīng)用到了航空、消費(fèi)電子、信息家電、網(wǎng)絡(luò)通信等各個(gè)領(lǐng)域。ARM9 S3C2440是嵌入式處理器是性?xún)r(jià)比較優(yōu)秀的芯片,在各個(gè)領(lǐng)域的開(kāi)發(fā)應(yīng)用有著廣闊的應(yīng)用前景。同時(shí)ARM9 S3C2440微處理器與Linux的結(jié)合越來(lái)越緊密,逐漸在嵌入式領(lǐng)域得到廣范的應(yīng)用。目前,在便攜式消費(fèi)類(lèi)電子產(chǎn)品、無(wú)線(xiàn)設(shè)備、汽車(chē)、網(wǎng)絡(luò)、存儲(chǔ)產(chǎn)品等都可以看到S3C2440與Linux相結(jié)合的身影。 Samsung S3C2440A是一個(gè)很不錯(cuò)的嵌入式微處理器,價(jià)格相當(dāng)較便宜、內(nèi)部資源多、最主要的是國(guó)內(nèi)很多人使用,相關(guān)的資料比較多?;緟?shù):ARM920T內(nèi)核, 400M主頻,最高可

9、達(dá)到533M,支持NAND FLASH、NORFLASH、SDRAM、支持STN/TFT LCD、4通道DMA、3通道UART、2通道SPI、IIC總線(xiàn)、IIS/AC97音頻控制器、SD/MMC控制器、2通道USB HOST 1通道USB DEVICE、4通道PWM、8通道A/D轉(zhuǎn)換、觸摸屏控制器、RTC、CMOS攝像頭、多功能I/O及多種電源管理在眾多嵌入式操作系統(tǒng)中,Linux目前發(fā)展最快、應(yīng)用最為廣泛1。性能優(yōu)良、源碼開(kāi)放的Linux具有體積小、內(nèi)核可裁減、網(wǎng)絡(luò)功能完善、可移植性強(qiáng)等諸多優(yōu)點(diǎn),非常適合作為嵌入式操作系統(tǒng)。一個(gè)最基本的Linux操作系統(tǒng)應(yīng)該包括:引導(dǎo)程序、內(nèi)核與根文件系統(tǒng)三

10、部分。USB設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)包括主機(jī)端設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)、主機(jī)控制器驅(qū)動(dòng)程序設(shè)計(jì)和設(shè)備端驅(qū)動(dòng)程序設(shè)計(jì)三部分組成。主機(jī)端設(shè)備驅(qū)動(dòng)程序就是通常說(shuō)的設(shè)備驅(qū)動(dòng)程序,它是主機(jī)環(huán)境中為用戶(hù)應(yīng)用程序提供一個(gè)訪問(wèn)USB外設(shè)的接口。Linux為這部分驅(qū)動(dòng)程序提供編程接口,驅(qū)動(dòng)程序設(shè)計(jì)者只要按照需求編寫(xiě)驅(qū)動(dòng)程序框架,通過(guò)調(diào)用操作系統(tǒng)提供的API接口函數(shù)可以完成對(duì)USB外設(shè)的特定訪問(wèn)。視頻采集是基于Video4Linux的視頻采集模塊來(lái)實(shí)現(xiàn),Linux系統(tǒng)中的視頻子系統(tǒng)Video4Linux為視頻應(yīng)用程序提供了一套統(tǒng)一的API,視頻應(yīng)用程序通過(guò)調(diào)用即可操作各種不同的視頻捕獲設(shè)備,包括電視卡、視頻捕獲卡和USB攝像頭

11、等。對(duì)于攝像頭的視頻采集,需要使用Video4Linux提供的設(shè)備接口/dev/video0,若文件中沒(méi)有這個(gè)設(shè)備文件,則先建立該設(shè)備節(jié)點(diǎn)文件。要實(shí)現(xiàn)監(jiān)控現(xiàn)場(chǎng),除了完成視頻采集的編程,還需要把視頻圖像數(shù)據(jù)通過(guò)網(wǎng)絡(luò)傳輸出去,因此需要在完成視頻讀取的基礎(chǔ)上建立WEB服務(wù)器,一是為了實(shí)現(xiàn)對(duì)硬件設(shè)備的擴(kuò)展和訪問(wèn),二是為了實(shí)現(xiàn)客戶(hù)端和服務(wù)器之間的數(shù)據(jù)通訊3、技術(shù)方案比較: 本課題的主要要方案選擇是在操作系統(tǒng)的選擇。除了WinCE的實(shí)時(shí)性稍差外,大多數(shù)嵌入式操作系統(tǒng)的實(shí)時(shí)性都很強(qiáng),所以也可稱(chēng)為實(shí)時(shí)操作系統(tǒng)Real Time Operating System.目前最重要的RTOS主要包括:(1)、傳統(tǒng)的經(jīng)典

12、RTOS:最主要的便是Vxworks操作系統(tǒng),以及其Tornado開(kāi)發(fā)平臺(tái)。Vxworks因出現(xiàn)稍早,實(shí)時(shí)性很強(qiáng)(據(jù)說(shuō)可在1ms內(nèi)響應(yīng)外部事件請(qǐng)求),并且內(nèi)核可極微(據(jù)說(shuō)最小可8K),可靠性較高等,所以在北美,Vxworks占據(jù)了嵌入式系統(tǒng)的多半疆山。特別是在通信設(shè)備等實(shí)時(shí)性要求較高的系統(tǒng)中,幾乎非Vxworks莫屬。Vxworks的很多概念和技術(shù)都和Linux很類(lèi)似,主要是C語(yǔ)言開(kāi)發(fā)。但Vxworks因價(jià)格很高,所以一些小公司或小產(chǎn)品中往往用不起。不適合我做課題。(2)、 Windows CE嵌入式操作系統(tǒng):Microsoft也看準(zhǔn)了嵌入式的巨大市場(chǎng),MS永遠(yuǎn)是最厲害的,WinCE出來(lái)只有幾

13、年時(shí)間,但目前已占據(jù)了很大市場(chǎng)份額,特別是在PDA、 、顯示儀表等界面要求較高或者要求快速開(kāi)發(fā)的場(chǎng)合,WinCE目前已很流行(據(jù)說(shuō)有一家賣(mài)工控機(jī)的公司板子賣(mài)得太好,以至來(lái)不及為客戶(hù)裁減WinCE)。WinCE目前主要為版(.NET),開(kāi)發(fā)平臺(tái)主要為WinCE Platform Builder,有時(shí)也用EVC環(huán)境開(kāi)發(fā)一些較上層的應(yīng)用, 雖然有著良好的性能,但開(kāi)發(fā)成本過(guò)高不適宜我們學(xué)習(xí)。(3)、嵌入式移植在其上,可使用更多的Linux功能(當(dāng)然uClinux更可跑在ARM 9上)。很多人預(yù)測(cè),嵌入式Linux預(yù)計(jì)將占嵌入式操作系統(tǒng)的50%以上份額,非常重要。由于開(kāi)源免費(fèi)等等的優(yōu)勢(shì),適合本課題實(shí)現(xiàn),

14、是理想的方案選擇。4、設(shè)計(jì)重點(diǎn)難點(diǎn): 本課題重點(diǎn)和難點(diǎn)在于交叉編譯環(huán)境的搭建,Linux內(nèi)核的編譯,根文件系統(tǒng)的制作,視頻采集的實(shí)現(xiàn),視頻圖像的壓縮和傳輸?shù)戎R(shí)要點(diǎn)。5、總體描述與系統(tǒng)框架: 系統(tǒng)描述如圖1所示:用戶(hù)瀏覽器WEB服務(wù)器Inernet視頻壓縮設(shè)備驅(qū)動(dòng)USB攝像頭服務(wù)器/mini2440Linux內(nèi)核文件系統(tǒng)圖1. 總體描述系統(tǒng)框架如圖2所示:Mini2440開(kāi)發(fā)板USB攝像頭板級(jí)支持包(BSP)USB驅(qū)動(dòng)其他驅(qū)動(dòng)以太網(wǎng)驅(qū)動(dòng)TCP/IP網(wǎng)絡(luò)系統(tǒng)文件系統(tǒng)Linux內(nèi)核WWW瀏覽器視頻監(jiān)控應(yīng)用軟件圖2. 系統(tǒng)框架6、各子模塊的實(shí)現(xiàn)方法:(1)、建立嵌入式linux開(kāi)發(fā)環(huán)境:在XP系統(tǒng)中

15、虛擬一個(gè)linux開(kāi)發(fā)環(huán)境,在linux系統(tǒng)下載arm-Linux-gcc交叉編譯工具并配置交叉編譯環(huán)境。(2)、Linux內(nèi)核的移植:配置標(biāo)準(zhǔn)的Linux內(nèi)核,編譯,下載至開(kāi)發(fā)板中。(3)、文件系統(tǒng)的制作:用busybox編譯一個(gè)根文件系統(tǒng),創(chuàng)建映像文件。(4)、USB驅(qū)動(dòng)設(shè)計(jì),修改配置Linux內(nèi)核并編譯。(5)、視頻壓縮:將USB攝像頭傳來(lái)的每一幀圖像壓縮成JPEG格式的圖片。(6)、嵌入式WEB服務(wù)器的設(shè)計(jì):用Boa配置編譯并移植到開(kāi)發(fā)板中。(7)、用戶(hù)瀏覽器訪問(wèn)服務(wù)器實(shí)現(xiàn)監(jiān)控:通過(guò)局域網(wǎng)設(shè)置IP地址與嵌入式Linux系統(tǒng)的IP地址屬同一網(wǎng)段即可訪問(wèn)服務(wù)器。7、預(yù)期結(jié)果: 制作出一個(gè)能

16、實(shí)際應(yīng)用的基于嵌入式Linux的視頻監(jiān)控系統(tǒng)。USB攝像頭能捕獲現(xiàn)場(chǎng)視頻并傳至WEB服務(wù)器,同時(shí)客戶(hù)端的瀏覽器能訪問(wèn)服務(wù)器對(duì)監(jiān)控現(xiàn)場(chǎng)進(jìn)行實(shí)時(shí)監(jiān)控。8、工作計(jì)劃:l 第1周畢業(yè)實(shí)習(xí)(1)l 第2周畢業(yè)實(shí)習(xí)(2) l 第3周 需求分析,并開(kāi)始撰寫(xiě)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)l 第4周 系統(tǒng)可行性分析l 第5周 Linux操作系統(tǒng)的安裝與使用l 第6周 開(kāi)發(fā)環(huán)境的搭建,并練習(xí)操作l 第7周 嵌入式Linux內(nèi)核編譯移植l 第8周 文件系統(tǒng)制作移植l 第9周 linux環(huán)境下編程練習(xí)l 第10周驅(qū)動(dòng)編寫(xiě)準(zhǔn)備練習(xí)l 第11周USB攝像頭驅(qū)動(dòng)編寫(xiě)l 第12周分析實(shí)現(xiàn)視頻壓縮技術(shù)l 第13周分析實(shí)現(xiàn)視頻傳輸技術(shù)l 第14

17、周嵌入式WEB服務(wù)器的實(shí)現(xiàn)與移植l 第15周應(yīng)用系統(tǒng)的實(shí)現(xiàn)l 第16周整機(jī)功能調(diào)試l 第17周修改調(diào)試,并完善設(shè)計(jì)說(shuō)明書(shū)(1)l 第18周修改調(diào)試,并完善設(shè)計(jì)說(shuō)明書(shū)(2)四、主要參考文獻(xiàn) 1 廖日坤. ARM嵌入式應(yīng)用開(kāi)發(fā)技術(shù)白金手冊(cè)M.北京:中國(guó)電力出版社,2005.2 鄭靈翔.嵌入式Linux系統(tǒng)設(shè)計(jì)M.北京:北京航空航天大學(xué)出版社, 2008.3 孫瓊. 嵌入式Linux應(yīng)用程序開(kāi)發(fā)詳解M.北京:人民郵電出版社, 2006.4 薛圓圓.USB應(yīng)用開(kāi)發(fā)技術(shù)大全M.北京:人民郵電出版社,2007.5 華清遠(yuǎn)見(jiàn)嵌入式培訓(xùn)中心.嵌入式Linux C語(yǔ)言應(yīng)用程序設(shè)計(jì).北京:人民郵電出版社,2007

18、.6 Brian W.Kernighan .The C Programming Language(2nd Edition)M.美國(guó):Prentice Hall,1988.7 W. Richard Stevens, Stephen A. Rago. Advanced Programming in the UNIX Environment 2nd EditionM. 美國(guó):Addison Wesley,2005.8 郭聳. 基于嵌入式Linux 和Web 服務(wù)器的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)J. 哈爾濱商業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2005.9 梅飛. 嵌入式Linux 網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)設(shè)計(jì)J. 現(xiàn)代電子技術(shù),

19、2007.10 譚曉. 嵌入式Linux 平臺(tái)的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)J.電子技術(shù),2006.11 詹亮. 基于嵌入式Linux的遠(yuǎn)程視頻監(jiān)控系統(tǒng)研究J. 成都紡織高等專(zhuān)科學(xué)校學(xué)報(bào),2008.12 孫江波. 基于嵌入式Linux的視頻監(jiān)控系統(tǒng)設(shè)計(jì)J. 武漢工業(yè)學(xué)院學(xué)報(bào),2006.13 孫健. 基于嵌入式Linux 的視頻監(jiān)控系統(tǒng)的設(shè)計(jì)J. 電腦知識(shí)與技術(shù),2008.14 張倩. 基于嵌入式Linux的視頻監(jiān)控系統(tǒng)J. 天津工業(yè)大學(xué)學(xué)報(bào),2007.15 郝衛(wèi)東. 基于Linux的嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)研究與設(shè)計(jì)J,計(jì)算機(jī)系統(tǒng)與應(yīng)用,2008.附錄1 外文文獻(xiàn)File I/O3.3 open Funct

20、ionA file is opened or created by calling the open function.#include <fcntl.h>int open(const char *pathname, int oflag, . /* mode_t mode */ );Returns: file descriptor if OK, 1 on errorWe show the third argument as ., which is the ISO C way to specify that the number and types of the remaining

21、arguments may vary. For this function, the third argument is used only when a new file is being created, as we describe later. We show this argument as a comment in the prototype. The pathname is the name of the file to open or create. This function has a multitude of options, which are specified by

22、 the oflag argument. This argument is formed by ORing together one or more of the following constants from the <fcntl.h> header:O_RDONLYOpen for reading only.O_WRONLYOpen for writing only.O_RDWR Open for reading and writing. Most implementations define O_RDONLY as 0, O_WRONLY as 1, and O_RDWR

23、as 2, for compatibility with older programs. One and only one of these three constants must be specified. The following constants are optional:O_APPENDAppend to the end of file on each write. We describe this option in detail in .O_CREATCreate the file if it doesn't exist. This option requires a

24、 third argument to the open function, the mode, which specifies the access permission bits of the new file. (When we describe a file's access permission bits in , we'll see how to specify the mode and how it can be modified by the umask value of a process.)O_EXCLGenerate an error if O_CREAT

25、is also specified and the file already exists. This test for whether the file already exists and the creation of the file if it doesn't exist is an atomic operation. We describe atomic operations in more detail in .O_TRUNCIf the file exists and if it is successfully opened for either write-only

26、or readwrite, truncate its length to 0.O_NOCTTYIf the pathname refers to a terminal device, do not allocate the device as the controlling terminal for this process. We talk about controlling terminals in .O_NONBLOCKIf the pathname refers to a FIFO, a block special file, or a character special file,

27、this option sets the nonblocking mode for both the opening of the file and subsequent I/O. close FunctionAn open file is closed by calling the close function.#include <unistd.h>int close(int filedes);Returns: 0 if OK, 1 on errorClosing a file also releases any record locks that the process may

28、 have on the file. When a process terminates, all of its open files are closed automatically by the kernel. Many programs take advantage of this fact and don't explicitly close open files. read FunctionData is read from an open file with the read function.#include <unistd.h>ssize_t read(in

29、t filedes, void *buf, size_t nbytes);Returns: number of bytes read, 0 if end of file, 1 on errorIf the read is successful, the number of bytes read is returned. If the end of file is encountered, 0 is returned.There are several cases in which the number of bytes actually read is less than the amount

30、 requested:· When reading from a regular file, if the end of file is reached before the requested number of bytes has been read. For example, if 30 bytes remain until the end of file and we try to read 100 bytes, read returns 30. The next time we call read, it will return 0 (end of file).·

31、 When reading from a terminal device. Normally, up to one line is read at a time. (We'll see how to change this in Chapter 18.)· When reading from a network. Buffering within the network may cause less than the requested amount to be returned.· When reading from a pipe or FIFO. If the

32、pipe contains fewer bytes than requested, read will return only what is available.· When reading from a record-oriented device. Some record-oriented devices, such as magnetic tape, can return up to a single record at a time.· When interrupted by a signal and a partial amount of data has al

33、ready been read. We discuss this further in .The read operation starts at the file's current offset. Before a successful return, the offset is incremented by the number of bytes actually read. POSIX.1 changed the prototype for this function in several ways. The classic definition is int read(int

34、 filedes, char *buf, unsigned nbytes);· First, the second argument was changed from a char * to a void * to be consistent with ISO C: the type void * is used for generic pointers.· Next, the return value must be a signed integer (ssize_t) to return a positive byte count, 0 (for end of file

35、), or 1 (for an error).· Finally, the third argument historically has been an unsigned integer, to allow a 16-bit implementation to read or write up to 65,534 bytes at a time. With the 1990 POSIX.1 standard, the primitive system data type ssize_t was introduced to provide the signed return valu

36、e, and the unsigned size_t was used for the third argument. write FunctionData is written to an open file with the write function.#include <unistd.h>ssize_t write(int filedes, const void *buf, size_t nbytes);Returns: number of bytes written if OK, 1 on errorThe return value is usually equal to

37、 the nbytes argument; otherwise, an error has occurred. A common cause for a write error is either filling up a disk or exceeding the file size limit for a given process For a regular file, the write starts at the file's current offset. If the O_APPEND option was specified when the file was open

38、ed, the file's offset is set to the current end of file before each write operation. After a successful write, the file's offset is incremented by the number of bytes actually written.附錄2譯文文件I/O3.3 open函數(shù)調(diào)用o p e n函數(shù)可以打開(kāi)或創(chuàng)建一個(gè)文件。#include <sys/types.h>#include <sys/stat.h>#include &

39、lt;fcntl.h>int open(const charp a *t hname, int oflag,./*, mode_t mode */ ) ;返回:若成功為文件描述符,若出錯(cuò)為- 1我們將第三個(gè)參數(shù)寫(xiě)為. . .,這是ANSI C說(shuō)明余下參數(shù)的數(shù)目和類(lèi)型可以變化的方法。對(duì)于o p e n函數(shù)而言,僅當(dāng)創(chuàng)建新文件時(shí)才使用第三個(gè)參數(shù)。(我們將在稍后對(duì)此進(jìn)行說(shuō)明。)在函數(shù)原型中此參數(shù)放置在注釋中。pathname是要打開(kāi)或創(chuàng)建的文件的名字。oflag參數(shù)可用來(lái)說(shuō)明此函數(shù)的多個(gè)選擇項(xiàng)。用下列一個(gè)或多個(gè)常數(shù)進(jìn)行或運(yùn)算構(gòu)成o f l a g參數(shù)(這些常數(shù)定義在< f c n t l

40、 . h >頭文件中): O_RDONLY 只讀打開(kāi)。 O_WRONLY 只寫(xiě)打開(kāi)。 O_RDWR 讀、寫(xiě)打開(kāi)。很多實(shí)現(xiàn)將ORDONLY定義為0,OWRONLY定義為1,ORDWR定義為2,以與早期的系統(tǒng)兼容。在這三個(gè)常數(shù)中應(yīng)當(dāng)只指定一個(gè)。下列常數(shù)則是可選擇的: O_APPEND 每次寫(xiě)時(shí)都加到文件的尾端。3.11節(jié)將詳細(xì)說(shuō)明此選擇項(xiàng)。 O_CREAT 若此文件不存在則創(chuàng)建它。使用此選擇項(xiàng)時(shí),需同時(shí)說(shuō)明第三個(gè)參數(shù)m o d e,用其說(shuō)明該新文件的存取許可權(quán)位。( 4.5節(jié)將說(shuō)明文件的許可權(quán)位,那時(shí)就能了解如何說(shuō)明mode,以及如何用進(jìn)程的umask值修改它。) O_EXCL 如果同時(shí)指定

41、了OCREAT,而文件已經(jīng)存在,則出錯(cuò)。這可測(cè)試一個(gè)文件是否存在,如果不存在則創(chuàng)建此文件成為一個(gè)原子操作。3.11節(jié)將較詳細(xì)地說(shuō)明原子操作。 O_TRUNC 如果此文件存在,而且為只讀或只寫(xiě)成功打開(kāi),則將其長(zhǎng)度截短為0。 O_NOCTTY 如果pathname指的是終端設(shè)備,則不將此設(shè)備分配作為此進(jìn)程的控制終端。9.6節(jié)將說(shuō)明控制終端。 O_NONBLOCK 如果pathname指的是一個(gè)F I F O、一個(gè)塊特殊文件或一個(gè)字符特殊文件,則此選擇項(xiàng)為此文件的本次打開(kāi)操作和后續(xù)的I / O操作設(shè)置非阻塞方式。3.5 close函數(shù)可用close函數(shù)關(guān)閉一個(gè)打開(kāi)文件:#include <unistd.h&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論