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

正文內(nèi)容

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

2025-01-12 17:55上一頁面

下一頁面
  

【正文】 e 結(jié)構(gòu)的一個(gè) 對(duì)象 實(shí)例來表示。 //type of bus device is on 確定設(shè)備位于哪種總線 . struct device_driver *driver。 設(shè)備 模型的上層建筑 總線、設(shè)備、驅(qū)動(dòng)在內(nèi)核中的結(jié)構(gòu), 全 都定義在include/linux/。// 鏈表頭, 用于 存放 該 kset 中所有 kobject spinlock_t list_lock。 /* kobject 集合 */ struct kobj_type * ktype /* kobject 類型 */ struct dentry * dentry。 kobject 定義在 include/linux/ struct kobject { const char * k_name。 [10] 設(shè)備模型 設(shè)計(jì)的初衷 是為了 節(jié)能,有助于電源管理。驅(qū)動(dòng)程序在中斷處理過程中做得越少越好,這樣 linux 內(nèi)核能夠很快 從中斷 狀態(tài) 返回 。讓硬件在需要的時(shí)候 會(huì) 向內(nèi)核發(fā)出 中斷請(qǐng)求信號(hào),內(nèi)核負(fù)責(zé)把信號(hào) 傳遞給 對(duì)應(yīng)的設(shè)備驅(qū)動(dòng) 程序 。 Ioctl()與具體的設(shè)備 對(duì)象關(guān)系密切 ,需要結(jié)合具體的設(shè)備 來 分析。 int (*check_flags) (int)。 int( *release) (struct inode *,struct file *)。 ssize_ t( *read) (struct file *,size_t,loff_t *)。這部分描述了驅(qū)動(dòng)程序如何與設(shè)備進(jìn)行交互。所有已經(jīng) 加載 (即 注冊(cè))的硬件設(shè)備的主設(shè)備號(hào)能夠 從 文件系統(tǒng)中 /proc/devices 文件中得到。 Linux 抽象了對(duì)硬件的處理,所有的設(shè)備都看做文件:它們可以使用和操作普通 文件相同的系統(tǒng)調(diào)用接口來完成打開、讀寫 、關(guān)閉和 I/O 控制 等 ,而 驅(qū)動(dòng)程序的 本質(zhì) 就是 將 這些系統(tǒng)調(diào)用 接口 函數(shù) 具體實(shí)現(xiàn) 。 1. 設(shè)備的分類 Linux 支持三種硬件設(shè)備: 塊設(shè)備、 字符設(shè)備、網(wǎng)絡(luò)設(shè)備。設(shè)備驅(qū)動(dòng)程序是 作為 內(nèi)核 與 機(jī)器硬件之間的接口,而系統(tǒng)調(diào)用 則 是內(nèi)核和應(yīng)用程序的接口。第三格式是指廠家用自己的圖像壓縮算法對(duì) RGB 數(shù)據(jù)壓縮后得到的圖片格式。 目前主要有國(guó)內(nèi)的中星微,臺(tái)灣的松翰、凌越 和凌陽這些企業(yè)生產(chǎn)攝像頭的DSP 芯片。 圖像傳感器( SENSOR)是一種半導(dǎo)體芯片,其表面包含有幾十萬到幾百萬的光電二極管。 攝像頭分為數(shù)字?jǐn)z像頭和模擬攝像頭兩大類。 ARM 9 優(yōu)秀的流水線設(shè)計(jì)是這些功能的重要保證。 采用 RISC 架構(gòu)的 ARM 微處理器一般具有如下特點(diǎn): ( 1)支持 Thumb (16 位 )/ARM (32 位 )雙指令集,能很好的兼容 8 位 /16 位器件; ( 2)大量使用寄存器,指令執(zhí)行速度更快; ( 3)加載存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)處理的操作只針對(duì)寄存器的內(nèi)容,而不直接對(duì)存 儲(chǔ)器進(jìn)行操作; ( 4)簡(jiǎn)單的尋址模式,所有加載和存儲(chǔ)的地址都只由寄存器的內(nèi)容和指令域決定,執(zhí)行效率高; 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 10 ( 5 )統(tǒng)一的和固定的指令域,簡(jiǎn)化了指令的譯碼; ( 6 )每一條數(shù)據(jù)指令都對(duì)算術(shù)邏輯單元 (A L U) 和移位器進(jìn)行控制,以實(shí)現(xiàn)對(duì) A L U和移位器的最大利用; ( 7 )地址自動(dòng)增加和自動(dòng)減少的尋址模式實(shí)現(xiàn)了程序循環(huán)的優(yōu)化; ( 8 )多存儲(chǔ)器加載和存儲(chǔ)指令實(shí)現(xiàn)了最大數(shù)據(jù)吞吐量; ( 9 )所有指令的條件執(zhí)行實(shí)現(xiàn)了最快速的代碼執(zhí)行。常用的命令有 ls, cd, rm, cp, mv, du, man, mount 等。在 linux shell 中對(duì) gcc 提供了強(qiáng)大的命令支持,在實(shí)際編程中可以靈活運(yùn)用。 GNU 工具鏈 交叉編譯工具鏈 交叉編譯工具鏈?zhǔn)且粋€(gè)由編譯器、鏈接器和解釋器組成的集成開發(fā)環(huán)境。除此之外,硬件資源的局限性會(huì)給嵌入式軟件帶來一定的約束,比如內(nèi)存的使用。 整體 程序分為服務(wù)器端和客戶端。 ⑶ Usb 攝像頭驅(qū)動(dòng)和網(wǎng)卡驅(qū)動(dòng)的移植 將開發(fā)板自帶的有線網(wǎng)卡驅(qū)動(dòng)源代碼以及在網(wǎng)上將萬能 usb 攝像頭驅(qū)動(dòng)程序源代碼 gspca webcam drivers 下載下來, gspca webcam drivers 是 linux 下攝像頭支持的最廣泛的一個(gè)驅(qū)動(dòng) , 這是由一個(gè)法國(guó)醫(yī)生 (北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 5 動(dòng),針對(duì) FL2440 開發(fā)板修改后,把它們放在相應(yīng)的內(nèi)核目錄 下,修改相應(yīng)的 Kconfig,Makefile 和編譯器,內(nèi)核選項(xiàng)等修改后,通過 make menuconfig 命令進(jìn)入內(nèi)核配置界面,選擇模塊的方式,重新編譯內(nèi)核,最終得到它們相應(yīng)的驅(qū)動(dòng) (. ko 文件 )。 RS232 串口把 宿主機(jī) 和開 發(fā)板連接起來 ,主要用作調(diào)試和通信使用 。本畢業(yè)設(shè)計(jì)主要是針對(duì)病人監(jiān)測(cè)而提出的初步解決方案。 它一般由 嵌入式操作系統(tǒng)、外圍硬件設(shè)備、嵌入式微處理器 以及應(yīng)用程序等部分組成,用于實(shí)現(xiàn) 特定的功能。 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 2 1 概述 課題任務(wù)與目的 課題任務(wù) 圖像采集系統(tǒng)作為一種比較通用的圖像采集裝置,在各個(gè)行業(yè)有著廣泛應(yīng)用,本題目設(shè)計(jì)以嵌入式系統(tǒng)為核心的圖像采集系統(tǒng),具有一定的通用性。 嵌入式 Linux 開發(fā)的主要部分是驅(qū)動(dòng)開發(fā),即對(duì)新的硬件芯片進(jìn)行內(nèi)核的支持,是當(dāng)前的嵌入式的熱門。 本畢業(yè)設(shè)計(jì)選用 FL2440 平臺(tái) , 以完成一個(gè) 嵌入式 圖像采集 系統(tǒng) 為目標(biāo),該平臺(tái)使用三星 S3C2440A 片上系統(tǒng) 為 底板 ,選用 版本 內(nèi)核 ,涉及的工作主要是 linux USB 驅(qū)動(dòng) 移植,數(shù)據(jù)采集程序,用于發(fā)送視頻的通信服務(wù)器端和 數(shù)據(jù)接收的客戶端編寫 。 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) II 05 周 08 周: 嵌入式圖像采集系統(tǒng)的 軟件設(shè)計(jì)。 4.部分實(shí)驗(yàn)及調(diào)試。 3.設(shè)計(jì)圖像采集和存儲(chǔ)的軟件。 設(shè)計(jì)圖像傳感器與嵌入式系統(tǒng)的接口 。這部分工作完成后,就為上層應(yīng)用程序的開發(fā)屏蔽了硬件平臺(tái)的復(fù)雜性與多樣性,極大提 高了產(chǎn)品開發(fā)的效率。 [1]因?yàn)榍度胧绞袌?chǎng)遠(yuǎn)大于 pc 市場(chǎng), Linux 在嵌入式市場(chǎng)的大作為也吸引了許多大公司、科研單 位 和 高校進(jìn)行研究。 實(shí)現(xiàn)嵌入式圖像采集系統(tǒng) 需要作很多的硬件和軟件工作,通過 本畢業(yè)設(shè)計(jì), 本人參考 閱讀了大量的 linux 源代碼和 USB 的規(guī)范,對(duì) usB 總線協(xié)議有了 一定的理解, 會(huì)熟練使用 嵌入式交叉 開發(fā)環(huán)境, 對(duì) linux c 語言編程開發(fā), 多線程編程和 跨平臺(tái)的 圖形開發(fā)框架 qt 都有深入的理解 和掌握。 嵌入式系統(tǒng) 的定義 是指以應(yīng)用為核心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可剪裁,對(duì)功能、可靠性、成本、體積和功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。 本人通過本畢業(yè)設(shè)計(jì)初步掌 握嵌入式系統(tǒng)設(shè)計(jì)的全部流程,也掌握了監(jiān)控系統(tǒng)的設(shè)計(jì)思路和解決方案 。傳輸模塊使用有線網(wǎng)卡,采用 基于 IEEE 以太局域網(wǎng) 標(biāo)準(zhǔn) , 對(duì) 數(shù)據(jù) 進(jìn)行發(fā)送和接收 。 ⑴ 嵌入式 Linux 環(huán)境的建立 本文選用的是 FL2440 開發(fā)板,飛凌公司 的開發(fā)板自帶了 建立嵌入式 Linux 環(huán)境所需要的開發(fā)包,依次 將 bootloader, kernel, yaffs 文件系統(tǒng)下載到開發(fā)板 上對(duì)開發(fā)板。采用 套接字 編程,初步利用利用TCP/ IP 協(xié)議基于線程對(duì)數(shù)據(jù)進(jìn)行無線傳輸。 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 7 3 嵌入式 ArmLinux 交叉 開發(fā)環(huán)境 的配置 交叉開發(fā)環(huán)境概述 嵌入式系統(tǒng)的開發(fā)環(huán)境和通用計(jì)算機(jī)是大不相同的,從硬件資源上說它有很大的局限性,比如存儲(chǔ)空間小,處理器頻率低,沒有鍵盤和鼠標(biāo)等設(shè)備,這限制了已有的開發(fā)工具的在其上的使用。在本開發(fā)板中,使用串口和 usb 接 口連接的方式來進(jìn)行調(diào)試和測(cè)試工作。 Gcc 編譯器編譯的過程一般分為四個(gè)階段, 分別為預(yù)處理、編譯、匯 編和鏈接。 Shell 中文的意思是外殼,實(shí)際上是操作系統(tǒng)內(nèi)核和用戶進(jìn)行交互的接口, shell 和 windows 下面的 dos 命令行非常相似。基于 ARM 技術(shù)的微處理器占據(jù)了 32 位RISC 微處理器 75%以上的市場(chǎng)份額, ARM 技術(shù)正在逐步滲入到我們生活的各個(gè)方面。 ARM 9 處理器是為了有效地提供高性能處理能力而設(shè)計(jì)的,其實(shí) ARM 公司并不是不能設(shè)計(jì)出運(yùn)行在更高頻率的處理器,但是要同時(shí)保證處理器具有超高性能、低功耗和小面積等特點(diǎn)就不是那么容易了。攝像頭在人們的日常生活中扮演著越來越重要的角色。 圖 31 USB 數(shù)字?jǐn)z像頭的結(jié)構(gòu)框圖 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 12 在組成攝像頭的所有重要部件當(dāng)中,最為核心的兩個(gè)部件是圖像傳感器芯片和 DSP 芯片。DSP 芯片類型的不同將直接影響圖片格式的差異。中星微的 zc301p 和松翰的 sn9c105 采用的是 JPEG 格式;凌陽的 spca506 和spca508 采用 YUV 格式;松翰的 sn9c101 和凌陽的 spca56la 采用第三格式。 Linux 下驅(qū)動(dòng)程序和 dos 或windows 下的區(qū)別 很大 。 [6] Linux 設(shè)備驅(qū)動(dòng)的特點(diǎn)是可以以模塊的形式加載各種設(shè)備驅(qū)動(dòng),因此允許驅(qū)動(dòng)的開發(fā)人員隨著內(nèi)核版本的更新,在最新版本的內(nèi)核上對(duì)各種新的硬件進(jìn)行設(shè)備驅(qū)動(dòng)的編寫和開發(fā),這對(duì)嵌入式系統(tǒng)非常重要, 因?yàn)?嵌入式設(shè)備往往具有大量獨(dú)有的外設(shè),開發(fā)人員需要把主要的精力放在 設(shè)備驅(qū)動(dòng)方面。用戶一般希望能用同樣的應(yīng)用程序接口和命令來訪問設(shè)備和普通文件。設(shè)備文件的主設(shè)備號(hào)必須與設(shè)備驅(qū)動(dòng)程序在登陸該設(shè)備 時(shí)申請(qǐng)的主設(shè)備號(hào)一致,否則設(shè)備驅(qū)動(dòng)程序?qū)o法被 用戶 程序 訪問到。 ⑶ 驅(qū)動(dòng)程序與設(shè)備的接口。 loff_t( *llseek) (struct file *,loff_t,int)。 int( *flush) (struct file *)。 unsigned long( *get_unmapped_area) (struct file *,unsigned long,unsigned long,unsigned long,unsigned long)。 4. 設(shè)備的控制操作 除了 設(shè)備的 讀 和 寫 以外,有時(shí) 應(yīng)用程序需 對(duì) 硬件 設(shè)備進(jìn)行控制,這 時(shí)需要 函數(shù) ioctl()來完成。 中斷是一種更有效的方法,如果硬件支持中斷則可以按照中斷的 方式 進(jìn)行操作。 體系結(jié)構(gòu)決定了 如何將中斷發(fā)送給 cpu,在大多數(shù)體系結(jié)構(gòu)中,中斷用特殊模式發(fā)送,并且會(huì)阻止 系統(tǒng) 其他中斷 的產(chǎn)生。用樹的形式將全部設(shè)備結(jié)構(gòu)完整、有效的展現(xiàn)出來,包括所有總線和內(nèi) 部連接;將設(shè)備與對(duì)應(yīng)驅(qū)動(dòng)聯(lián)系起來;將設(shè)備按照類型進(jìn)行分類;從樹的葉子向根的方向依次遍歷,確保以正確的順序關(guān)閉各個(gè)設(shè)備的電源。雖然 設(shè)備種類的千奇百怪, 但是一些公有屬性比如引用計(jì)數(shù)、設(shè)備上鎖、用來形成樹狀結(jié)構(gòu)的鏈表指針等,都是放在數(shù)據(jù)結(jié)構(gòu) kobject 中。 /* 父對(duì)象 */ struct kset * kset。 struct list_head list。 }。 /* position on parent bus */ //唯一確定 此 總線上的設(shè)備的字符串 . ...... struct bus_type *bus。設(shè)備被抽象為 struct device 結(jié)構(gòu)體。 }。 kset 結(jié)構(gòu) 被設(shè)計(jì)為 kobject 的集合, kobject 通過 kset 組織成層次化的 樹 結(jié)構(gòu),kset 是具有相同的類型的 kobject 的集合。 /* 設(shè)備名稱 ,最長(zhǎng)為 20。舉例:內(nèi)核需要在關(guān)閉 usb 攝像頭之后,才能關(guān)閉 usb 控制器,再之后才能夠關(guān)閉 PCI 總線。 由于各種熱插拔設(shè)備特別是 usb 設(shè)備的大量使用,內(nèi)核需要處理在系統(tǒng)運(yùn)行時(shí)設(shè)備的動(dòng)態(tài)插入和拔除,以及設(shè)備間復(fù)雜的依賴關(guān)系。在 系統(tǒng)的 proc/interrupts 文件中可以看到驅(qū)動(dòng)程序?qū)?yīng)的中斷號(hào)和類型。輪詢方式意味著需經(jīng)常對(duì)設(shè)備的狀態(tài)進(jìn)行讀取,直到設(shè)備狀態(tài)表明請(qǐng)求已經(jīng)完成為止。 一般在 驅(qū)動(dòng)程序中, open()需要完成 如下 工作:首先檢查設(shè)備的相關(guān)錯(cuò)誤,如設(shè)備尚未準(zhǔn)備就緒等; 對(duì)于 第一次打開 的設(shè)備 ,則需要 對(duì)硬件設(shè)備 初始化;識(shí)北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 17 別次設(shè)備號(hào); 若 有必要 的話需 更新讀寫操作的當(dāng)前位置 f_ops 指針; 對(duì)fileprivate_data 里的數(shù)據(jù) 進(jìn)行分 配和填寫 ; 引用 計(jì)數(shù) 值 增加一。 int( *lock) (struct file *,int,struct file_lock *)。 unsigned int( *poll) (struct file *,struct poll_table_struct *)。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1