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

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文---基于嵌入式系統(tǒng)的圖像采集系統(tǒng)(更新版)

  

【正文】 long)。 ssize_t( *readv) (struct file *,const struct iovec *,unsigned long,loff_t *)。 同樣,一般 通過(guò)調(diào)用 file_operations 結(jié)構(gòu)中函數(shù) release()來(lái)完成 釋放設(shè)備 ,這個(gè)方法一般 等同于 close(),作用正好與 open()相反 ,通常需要完成一下工作:使用計(jì)數(shù)減一,釋放 fileprivate_data 中分配的內(nèi)存;如果 被釋放 設(shè)備 是最后一個(gè) ,則設(shè)備 關(guān)閉 。如果設(shè)備驅(qū)動(dòng)程序被連接進(jìn)入內(nèi)核,輪詢方式會(huì)帶來(lái)災(zāi)難性的后果: cpu 將無(wú)所事事,直到設(shè)備完成此請(qǐng)求。 在驅(qū)動(dòng)初始化 一般 已經(jīng)完成 對(duì)中斷資源的請(qǐng)求 。為此, 之后引進(jìn)了新的 內(nèi)核設(shè)備模型。 [11] 設(shè)備模型可以初略劃分為兩個(gè)層次:其中,總線、設(shè)備、 驅(qū)動(dòng) 3 個(gè)數(shù)據(jù)結(jié)構(gòu)構(gòu)成了設(shè)備模型的上層建筑,通常開(kāi)發(fā)設(shè)備驅(qū)動(dòng)接觸的就是這三個(gè)概念; kobject、kset、 kobj_type 這三個(gè)數(shù)據(jù)結(jié)構(gòu)構(gòu)成了設(shè)備模型的經(jīng)濟(jì)基礎(chǔ), 經(jīng)濟(jì)基礎(chǔ)決定了上層建筑,也就是決定了總線、設(shè)備和驅(qū)動(dòng)的組織關(guān)系。 */ 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 19 struct kref kref。 Kobject 相當(dāng)于葉子節(jié)點(diǎn), kset 相當(dāng)于內(nèi)節(jié)點(diǎn),兩者的連接形成了一個(gè)樹(shù)狀結(jié)構(gòu)。 kobj_type 結(jié)構(gòu)關(guān)注的是對(duì)象的類(lèi)型,它是具有相同操作的 kobject 的集合,負(fù)責(zé)管理這一類(lèi) kobject 在 sysfs 下的操作,該結(jié)構(gòu)定義在 include/linux/ struct kobj_type { void (*release)(struct kobject *kobj)。這個(gè)結(jié)構(gòu)體 中每個(gè)項(xiàng)都 是 很重要 的 ,而最基本的要關(guān)注的有以下幾個(gè): parent,kobj,bus_id,bus_type,device_driver,driver_data,void(*release)(struct device *dev). 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 20 結(jié)構(gòu)體全部部分在 /usr/src/struct device { . ..... struct device *parent。 //代表這個(gè)設(shè)備并且連接它到層次中的 kobject. 注意 , 作為一個(gè)通用的規(guī)則 , devicekobjparent 等同于 deviceparentkobj. char bus_id[BUS_ID_SIZE]。 struct attribute **default_attrs。 // ksetkobj 所屬的類(lèi)型。 /* 列表頭 */ struct kobject * parent。 [12] 設(shè)備模型的首要任務(wù)是把設(shè)備連接起來(lái),形成樹(shù)狀結(jié)構(gòu)。這樣做的優(yōu)點(diǎn)是:代碼重復(fù)最??;提供如引用計(jì)數(shù)這樣的統(tǒng)一機(jī)制;列舉系統(tǒng)中所有的 設(shè)備 ,觀察其狀態(tài),查看其連接總線。設(shè)備驅(qū)動(dòng) 所控制的中斷號(hào) (IRQ)必須在取得對(duì)此中斷的所有權(quán)之前找到 。 輪詢方式比較消耗內(nèi)核資源 。對(duì)于塊設(shè)備, 使用 函數(shù)block_read()和 block_write()來(lái) 對(duì) 數(shù)據(jù) 進(jìn)行 讀寫(xiě) 。 ssize_ t ( *sendpage) (struct file *,struct page *,int,size_t,loff_t *,int)。 int( *open) (struct inode *,struct file *)。以下是file_operations 的數(shù)據(jù)結(jié)構(gòu)定義: struct file_operations { struct module *owner。這部分利用驅(qū)動(dòng)程序?qū)υO(shè)備進(jìn)行初始化。次設(shè)備號(hào)主要用來(lái)區(qū)分具有相同主設(shè)備號(hào)且由相同設(shè)備驅(qū)動(dòng)控制的不同設(shè)備。 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 15 2. 設(shè)備文件 從用戶的角度,在使用不同的設(shè)備時(shí),需要使用不同的操作方法,是非 常麻煩的。 ⑷ 檢測(cè)和處理設(shè)備出現(xiàn)的錯(cuò)誤。驅(qū)動(dòng)程序工作在內(nèi)核空間,應(yīng)用程序一般運(yùn)行于用戶 空間( 32 位 Linux 操作系統(tǒng)一般把內(nèi)存地址的 0~3g空間作為用戶空間, 3~4G 空間作為內(nèi)核空間) 。 USB 攝像頭的圖像格式主要有以下 幾種: JPEG 格式、 YUV 格式和第三格式。 數(shù)字信號(hào)處理芯片 DSP 一般包括這三個(gè)模塊:鏡像信號(hào)處理器 ISP( image signal processor), JPEG 圖像解碼器( JPEG encoder), USB 設(shè)備控制器( USB device controller),主要功能是通過(guò)一系列復(fù)雜的數(shù)學(xué)算法運(yùn)算,對(duì)數(shù)字圖像信號(hào)進(jìn)行優(yōu)化處理(如壓縮編碼),并把處理后的信號(hào)通過(guò) USB 等接口傳到 PC 等設(shè)備。 USB 數(shù)字?jǐn)z像頭的結(jié)構(gòu)框圖如 圖 31 所示。近年來(lái),互聯(lián)網(wǎng)技術(shù)的發(fā)展,圖像傳感器技術(shù)的成熟,使得攝像頭的圖像質(zhì)量得到明顯改善,同時(shí)攝像頭的價(jià)格也大幅度下降。即當(dāng) ARM C or e 電壓為 1. 2 V 的時(shí)候,可以運(yùn)行到 300 MHz ;在 1. 3 V 的情況下,可以運(yùn)行到 4 00 MHZ 。 ARM 處理器以其完整的體系結(jié)構(gòu)發(fā)展系列,以 及極小的體積、極低的功耗、極低的成本和極高的性能,并能及時(shí)根據(jù)嵌入對(duì)象的不同進(jìn)行功能上的擴(kuò)展的優(yōu)勢(shì),從眾多種類(lèi)的嵌入式微處理器中脫穎而出。 ⑻ linux shell 簡(jiǎn)介 linux 有多個(gè)版本的 shell,一般默認(rèn)的是 bash shell。目前, gcc 已經(jīng)被移植到多種處理器架構(gòu)上,并且在商業(yè)、專(zhuān)利和開(kāi)源軟件商廣泛使用 。 通常,宿主機(jī)和目標(biāo)板的連接方式有四種,分別是串口、以太網(wǎng)接口、 usb 接口和 JATG 接口??蛻舳顺绦?通過(guò)接收?qǐng)D像,把 數(shù)據(jù) 存放在 數(shù)據(jù)緩沖區(qū)中,對(duì)其 處理 后,顯示在監(jiān)控 PC 上。 開(kāi)始 加載驅(qū)動(dòng) 打開(kāi)攝像頭 讀取設(shè)備信息 設(shè)置設(shè)備信息 選擇采集方式 內(nèi) 存 映 射 或直接讀取 獲取視頻數(shù)據(jù) 采集完成 關(guān)閉攝像頭 結(jié)束 否 是 圖 23 視頻采集流程圖 ⑷ 網(wǎng)絡(luò)傳輸程序 本文選用的是基于 的以太局域網(wǎng),可支持高達(dá) 54Mbps 的 速率 ,而 FL2440選用的以太網(wǎng)卡,可支持高達(dá) 100Mbps 的數(shù)據(jù)流。 軟件設(shè)計(jì) 程序 開(kāi)發(fā)環(huán)境是在 ubuntu Linux 系統(tǒng)下 搭建 的,所以首先需要 在 pc 上 搭建好 嵌入式 Linux 的環(huán)境, 然后 才 可以調(diào)試、編譯 和運(yùn)行 應(yīng)用程序 。 以 太 局 域 網(wǎng) 應(yīng) W軟件層 應(yīng) 用 程 序 文 件 系 統(tǒng) 攝 像 頭 驅(qū) 動(dòng) 網(wǎng) 卡 驅(qū) 動(dòng) L i n u x內(nèi) 核 硬件層A R M平 臺(tái) U S B攝 像 頭 以 太 網(wǎng) 卡 監(jiān) 控P C 圖 21 總系統(tǒng)構(gòu)成 硬件設(shè)計(jì) 將飛凌公司的 FL2440 開(kāi)發(fā)板作為主板,使用 USB 攝像頭進(jìn)行圖像的采集,作為采集模塊,并通過(guò) USB 傳輸?shù)街靼濉?對(duì)于本畢設(shè)的研究,結(jié)合了 arm9 微處理器 、網(wǎng)絡(luò)、圖像處理和傳輸技術(shù)于一體的嵌入式網(wǎng)絡(luò)視頻圖像監(jiān)測(cè)系統(tǒng)的研究,意義 非常明顯 。 課題目的 在當(dāng)前的數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)高速發(fā)展的后 pc 時(shí)代,嵌入式系統(tǒng)已經(jīng)廣泛的滲透到科學(xué)研究、工程設(shè)計(jì)、軍事技術(shù)以及人們生活的各個(gè)方面之中。 Linux 的入門(mén)是一項(xiàng)艱辛的工作,由于 linux 的開(kāi)源特性, linux 社區(qū)中上有大量的參考資料,對(duì)于本畢業(yè)設(shè)計(jì)的完成有很大的幫助,本畢業(yè)設(shè)計(jì)也是站在巨人的肩膀上,對(duì)嵌入式 linux 系統(tǒng)的圖像采集系統(tǒng)做一個(gè)初步的探索。 目前, Linux 應(yīng)用相當(dāng)廣泛,如 信息家電,移動(dòng)計(jì)算設(shè)備,網(wǎng)絡(luò)設(shè)備,工控,仿真,醫(yī)療儀器等 智能信息和通信產(chǎn)品。 將 Linux內(nèi)核應(yīng)用到一個(gè)特定的嵌入式 圖像采集 系統(tǒng)首要的工作就是 Linux系統(tǒng)移植和驅(qū)動(dòng)開(kāi)發(fā)。 嵌入式圖像采集系統(tǒng)的硬件設(shè)計(jì) 。 2.設(shè)計(jì)圖像傳感器與嵌入式系統(tǒng)的接口。 5.撰寫(xiě)畢業(yè)設(shè)計(jì)論文,答辯。 設(shè)計(jì)圖像采集和存儲(chǔ)的軟件 。 畢業(yè)設(shè)計(jì) 論文的主要內(nèi)容為: 研究 linux 內(nèi)核的 usb 驅(qū)動(dòng)模型,給出嵌入式 linux 開(kāi)發(fā)環(huán)境的 搭建 方法 和編寫(xiě) linux 驅(qū)動(dòng)代碼的方法 ,并移植開(kāi)源的 gspca 驅(qū)動(dòng)到內(nèi)核中 。 圖像采集系統(tǒng)作為視頻監(jiān)測(cè)的一個(gè)部分,在安全防范領(lǐng) 域有著廣泛的應(yīng)用,也是嵌入式 Linux 的 一個(gè)應(yīng)用方向。 基本要求: 1. 設(shè)計(jì)系統(tǒng)的總體方案。 [3] 嵌入式最 大的 特色是與人們的生活密切相關(guān), 基于 嵌入式技術(shù)的電子產(chǎn)品 已經(jīng)普及 到大眾生活各個(gè)角落 , 像 MP3, 手機(jī),上網(wǎng)本 等 娛樂(lè) 設(shè)備, 智能 家電、 車(chē)載 GIS導(dǎo)航儀。 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 3 2 總體方案設(shè)計(jì) 系統(tǒng)的總體方案設(shè)計(jì) 整個(gè)系統(tǒng)由硬件和軟件兩部分組成。整個(gè)硬件設(shè)計(jì)如圖 2 所示。 亦可用驅(qū)動(dòng)補(bǔ)丁直接將 gspca 驅(qū)動(dòng)加進(jìn)內(nèi)核中,此方法較簡(jiǎn)單。通信流程如圖 24 所示。經(jīng)過(guò)的嵌入式開(kāi)發(fā)人員的長(zhǎng)期探索,提出了一中 方便和 有效的開(kāi)發(fā)模式 ,即宿主機(jī) 目標(biāo)板交叉開(kāi)發(fā)環(huán)境模式。和本地編譯類(lèi)似,交叉編譯的過(guò)程也是由編譯、鏈接等階段組成,源程序通過(guò)交叉編譯器編譯生成目標(biāo)模塊 ,并由交叉鏈接器最后鏈接成可在目標(biāo)平臺(tái)上執(zhí)行得代碼。 ⑸ binutils 開(kāi)發(fā)工具包 Binutils 是一組開(kāi)發(fā)工具包,包括鏈接器、匯編器和其他用于目標(biāo)文件和檔案的工具。 交叉編譯 的構(gòu)建 交叉編譯的過(guò)程本身并不復(fù)雜,完成交叉編工具鏈的制作卻是比較困難的,網(wǎng)上又有很多交叉編譯的構(gòu)建 方法可以提供參考。 目前, ARM 處理器有 ARM7 , ARM9 , ARM9E , ARM10 , ARM1 1 和 S e c ur C or e等系列。 ARM 9 的多媒體處理能力和低功耗等特點(diǎn)使得 ARM 9 處理器必將被廣泛應(yīng)用于各種無(wú)線產(chǎn)品和消費(fèi)類(lèi)電子產(chǎn)品中,包括 P D A 、數(shù)字電視、機(jī)頂盒、家用路由器、MP 4 播放器、商業(yè)銀行終端等。模 擬攝像頭可以將視頻采集設(shè)備產(chǎn)生的模擬視頻信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),進(jìn)而將其儲(chǔ)存在計(jì)算機(jī)里。光電二極管受到光照射時(shí),就會(huì)產(chǎn)生電荷。雖然市場(chǎng)上攝像頭種類(lèi)繁多,但絕大部分采用了以上公司的 DSP 芯片。同一種圖像格式的攝像頭由于采用芯片型號(hào)的不同,捕獲的圖像數(shù)據(jù)流可能也會(huì)存在微小的差異。設(shè)備驅(qū)動(dòng)為應(yīng)用程序屏蔽了硬件的細(xì)節(jié) , 硬件設(shè)備 對(duì)于應(yīng)用程序來(lái)說(shuō) 只是一個(gè)設(shè)備文件,應(yīng)用程序可以像操作普通程序一樣對(duì)硬件設(shè)備進(jìn)行操作。字符設(shè)備是指那些無(wú)緩沖 可以 直接 進(jìn)行 讀寫(xiě)的設(shè)備,如系統(tǒng)的串口 通信 設(shè)備。 Linux 中的所有 外圍和內(nèi)部硬件設(shè)備都用 特殊的設(shè)備文件來(lái)表示。 當(dāng)應(yīng)用程序 通過(guò)系統(tǒng)調(diào)用 對(duì)某個(gè)設(shè)備文件 操作時(shí) , linux 內(nèi)核會(huì)根據(jù)設(shè)備文件的 設(shè)備類(lèi)型和主設(shè)備號(hào)調(diào)用 對(duì)應(yīng) 的驅(qū)動(dòng)程序,并從用戶態(tài)轉(zhuǎn)換到內(nèi)核態(tài),在由驅(qū)動(dòng)程序 找到對(duì)應(yīng) 的次設(shè)備號(hào),最終完成對(duì)硬件的操作。 這與具體的設(shè)備密切相關(guān)。 ssize t( *write) (struct file *,const char *,size_t,loff_t *)。 int( *fsync) (struct file *,struct dentry *,int)。 } 當(dāng)應(yīng)用程序?qū)υO(shè)備文件進(jìn)行諸如 open、 close、 read、 write 等操作 時(shí) , linux內(nèi)核將通過(guò) file_operations 結(jié)構(gòu)訪問(wèn)驅(qū)動(dòng)程序提供的函數(shù)。 5. 設(shè)備的輪詢與中斷操作 當(dāng)設(shè)備執(zhí)行某個(gè)命令時(shí),設(shè)備驅(qū)動(dòng)可以從輪詢或者中斷中選擇一種以判斷設(shè)備是否已經(jīng)完成了此命令。 [9]此 過(guò)程由內(nèi)核 中設(shè)備驅(qū)動(dòng) 注冊(cè) 的中斷來(lái)協(xié)助完成。為了在 接收中斷后能夠 完成更多的 工作,設(shè)備驅(qū)動(dòng) 還需要 能夠使用內(nèi)核的底層處理 例程, 或者任務(wù)隊(duì)列來(lái)對(duì)北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 18 之后 需要調(diào)用的那些 任務(wù)例程 進(jìn)行排隊(duì)。通過(guò)建立表示系統(tǒng)設(shè)備拓?fù)潢P(guān)系的樹(shù)結(jié)構(gòu),能夠在內(nèi)核中實(shí)現(xiàn)智能的電源管理。 /* 指向設(shè)備對(duì)象名稱(chēng)的指針。 /* sysfs 的目錄項(xiàng) */ wait_queue_head_t poll。 struct kobject kobj。 Linux中的任一設(shè)備在設(shè)備模型中都有一個(gè) device描述,設(shè)備是計(jì)算機(jī)的基礎(chǔ),操作系統(tǒng)就是一個(gè)大的接口,最后溯源都會(huì)到對(duì)于設(shè)備的操作,而對(duì)于設(shè)備的理解的程度則也是和對(duì)計(jì)算機(jī)系統(tǒng)理解程度成正比的。 // which driver
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1