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

正文內(nèi)容

畢業(yè)設(shè)計論文---基于嵌入式系統(tǒng)的圖像采集系統(tǒng)(編輯修改稿)

2025-01-08 17:55 本頁面
 

【文章內(nèi)容簡介】 以 太 局 域 網(wǎng) 應(yīng) W軟件層 應(yīng) 用 程 序 文 件 系 統(tǒng) 攝 像 頭 驅(qū) 動 網(wǎng) 卡 驅(qū) 動 L i n u x內(nèi) 核 硬件層A R M平 臺 U S B攝 像 頭 以 太 網(wǎng) 卡 監(jiān) 控P C 圖 21 總系統(tǒng)構(gòu)成 硬件設(shè)計 將飛凌公司的 FL2440 開發(fā)板作為主板,使用 USB 攝像頭進(jìn)行圖像的采集,作為采集模塊,并通過 USB 傳輸?shù)街靼?。傳輸模塊使用有線網(wǎng)卡,采用 基于 IEEE 以太局域網(wǎng) 標(biāo)準(zhǔn) , 對 數(shù)據(jù) 進(jìn)行發(fā)送和接收 。 RS232 串口把 宿主機(jī) 和開 發(fā)板連接起來 ,主要用作調(diào)試和通信使用 。整個硬件設(shè)計如圖 2 所示。 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計 4 宿主機(jī) R S 2 3 2 接口 F la s h S DRAM 以太網(wǎng)接口 AR M 9 2 0 T U S B 接口 監(jiān)控電腦 攝像頭 F L2 4 4 0 圖 22 系統(tǒng)硬件圖 ⑴ 主控制板 主控制板 芯片底板為 S3C2440A,它是功能強大的 SOC。內(nèi)置的 ARM920T 內(nèi)核的 32 位 RISC 微處理器 S3C2440,主頻 最高可達(dá) 400MHz, 可以完成 JPEG 圖像壓縮以及 傳輸 的 基本 要求。 FL2440 對 S3C2440A 進(jìn)行了擴(kuò)充,其外設(shè)資源 包括 256MB NAND Flash、 64MB SDRAM,串口和 USB 等接口電路 。 ⑵ 數(shù)字?jǐn)z像頭 采用 中星微 的 ZC301PH USB 攝像頭, 該攝像頭通過 內(nèi)部 A/ D 轉(zhuǎn)換 和 DSP 芯片,輸出 JPEG 圖像流 , 圖像 分辨率 最高 能達(dá)到 640480,最小為 160X 120。 軟件設(shè)計 程序 開發(fā)環(huán)境是在 ubuntu Linux 系統(tǒng)下 搭建 的,所以首先需要 在 pc 上 搭建好 嵌入式 Linux 的環(huán)境, 然后 才 可以調(diào)試、編譯 和運行 應(yīng)用程序 。 ⑴ 嵌入式 Linux 環(huán)境的建立 本文選用的是 FL2440 開發(fā)板,飛凌公司 的開發(fā)板自帶了 建立嵌入式 Linux 環(huán)境所需要的開發(fā)包,依次 將 bootloader, kernel, yaffs 文件系統(tǒng)下載到開發(fā)板 上對開發(fā)板。 ⑶ Usb 攝像頭驅(qū)動和網(wǎng)卡驅(qū)動的移植 將開發(fā)板自帶的有線網(wǎng)卡驅(qū)動源代碼以及在網(wǎng)上將萬能 usb 攝像頭驅(qū)動程序源代碼 gspca webcam drivers 下載下來, gspca webcam drivers 是 linux 下攝像頭支持的最廣泛的一個驅(qū)動 , 這是由一個法國醫(yī)生 (北京聯(lián)合大學(xué) 畢業(yè)設(shè)計 5 動,針對 FL2440 開發(fā)板修改后,把它們放在相應(yīng)的內(nèi)核目錄 下,修改相應(yīng)的 Kconfig,Makefile 和編譯器,內(nèi)核選項等修改后,通過 make menuconfig 命令進(jìn)入內(nèi)核配置界面,選擇模塊的方式,重新編譯內(nèi)核,最終得到它們相應(yīng)的驅(qū)動 (. ko 文件 )。 亦可用驅(qū)動補丁直接將 gspca 驅(qū)動加進(jìn)內(nèi)核中,此方法較簡單。 ⑷ 基于 V4L 的視頻采集程序 視頻采集是整個視頻采集模塊的核心。 Video4Linux(簡稱 V4L)是 Linux 專門針對視頻設(shè)備提供的應(yīng)用程序接口,是 Linux 對視頻設(shè)備的內(nèi)核級驅(qū)動。通過它可以執(zhí)行打開、讀寫及關(guān)閉等操作。視頻采集程序的流程如圖 23 所示。 開始 加載驅(qū)動 打開攝像頭 讀取設(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ù)流。采用 套接字 編程,初步利用利用TCP/ IP 協(xié)議基于線程對數(shù)據(jù)進(jìn)行無線傳輸。 整體 程序分為服務(wù)器端和客戶端。通信流程如圖 24 所示。 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計 6 客戶端 接 收 并 放 入接收緩沖區(qū) 解壓縮 顯示 結(jié)束 開始 采集區(qū) 視頻緩沖區(qū) 有用戶需要嗎 網(wǎng)絡(luò)緩沖區(qū) 發(fā)送給相關(guān)用戶接收 緩沖器 服務(wù)器端 無 有 圖 24 網(wǎng)絡(luò)傳輸流程圖 在服務(wù)端,利用 pthread_create()創(chuàng)建 server_th 線程,使用 socket()創(chuàng)建流式套接字,用 bind()函數(shù) 綁定 端地址與 和套接字 ,用 listen()將剛創(chuàng)建的套接字轉(zhuǎn)化 到 監(jiān)聽模式下, 提醒 內(nèi)核應(yīng)接受 來自客戶端的 連接請求。而此時,服務(wù)器的狀態(tài)從 close 轉(zhuǎn)換到了 listen 監(jiān)聽 狀態(tài)。 在客戶端 PC,創(chuàng)建 socket(),使用 connect()函數(shù) 連接服務(wù)器端 。當(dāng) TCP 的三次握手完成后,服務(wù)器 端采集程序 將 圖像 數(shù)據(jù)從 圖像 緩沖區(qū) 映射到 網(wǎng)絡(luò)傳輸緩沖區(qū),最后將 圖像數(shù)據(jù) 發(fā)送給客戶端程序??蛻舳顺绦?通過接收圖像,把 數(shù)據(jù) 存放在 數(shù)據(jù)緩沖區(qū)中,對其 處理 后,顯示在監(jiān)控 PC 上。 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計 7 3 嵌入式 ArmLinux 交叉 開發(fā)環(huán)境 的配置 交叉開發(fā)環(huán)境概述 嵌入式系統(tǒng)的開發(fā)環(huán)境和通用計算機(jī)是大不相同的,從硬件資源上說它有很大的局限性,比如存儲空間小,處理器頻率低,沒有鍵盤和鼠標(biāo)等設(shè)備,這限制了已有的開發(fā)工具的在其上的使用。除此之外,硬件資源的局限性會給嵌入式軟件帶來一定的約束,比如內(nèi)存的使用。經(jīng)過的嵌入式開發(fā)人員的長期探索,提出了一中 方便和 有效的開發(fā)模式 ,即宿主機(jī) 目標(biāo)板交叉開發(fā)環(huán)境模式。 宿主機(jī) 目標(biāo)板交叉開發(fā)環(huán)境模式主要有兩部分組成:一是宿主機(jī),就是平時使用的桌面計算機(jī)。二是 目標(biāo)板,指的是嵌入式開發(fā)板。通過交叉開發(fā)環(huán)境的方式,在宿主機(jī)上利用已有的成熟的開發(fā)工具,專門針對目標(biāo)板定制一套系統(tǒng),包括引導(dǎo)程序,內(nèi)核,文件系統(tǒng),然后下載目標(biāo)板上測試執(zhí)行,最后利用宿主機(jī)上的調(diào)試工具對目標(biāo)板上運行的程序進(jìn)行遠(yuǎn)程調(diào)試。 Linux 系統(tǒng)作為一款非常優(yōu)秀的開源操作系統(tǒng),使用了大量的 GNU 軟件,包括shell、 glibc、 gcc、 gdb 等,還有強大的 程序,比如 vim 和 emacs。 通常,宿主機(jī)和目標(biāo)板的連接方式有四種,分別是串口、以太網(wǎng)接口、 usb 接口和 JATG 接口。在本開發(fā)板中,使用串口和 usb 接 口連接的方式來進(jìn)行調(diào)試和測試工作。 GNU 工具鏈 交叉編譯工具鏈 交叉編譯工具鏈?zhǔn)且粋€由編譯器、鏈接器和解釋器組成的集成開發(fā)環(huán)境。和本地編譯類似,交叉編譯的過程也是由編譯、鏈接等階段組成,源程序通過交叉編譯器編譯生成目標(biāo)模塊 ,并由交叉鏈接器最后鏈接成可在目標(biāo)平臺上執(zhí)行得代碼。 交叉編譯工具鏈主要包括: ⑴ 標(biāo)準(zhǔn)庫 ⑵ 編譯器 ⑶ 鏈接器 ⑷ 匯編器 ⑸ 調(diào)試器 交 叉編譯相關(guān)工具 ⑴ glibc 庫 glibc 是 gnu 發(fā)布的 libc 庫,也即 c 運行庫。 glibc 是 linux 系統(tǒng)中最底層的 api(應(yīng)北京聯(lián)合大學(xué) 畢業(yè)設(shè)計 8 用程序開發(fā)接口), 幾乎其它任何的運行庫都會依賴于 glibc。 ⑵ gcc 編譯器 Gcc 是一個跨平臺的編譯器,它是 GNU Compiler Collection 的縮寫,目前被許多unix/linux 系統(tǒng)作為默認(rèn)的編譯器 。 Gcc 最初被命名為 GNU C Compiler,后來,隨著支持的編譯語言越來越多,編程更加強大的 GNU Compiler Collection。目前, gcc 已經(jīng)被移植到多種處理器架構(gòu)上,并且在商業(yè)、專利和開源軟件商廣泛使用 。 Gcc 編譯器編譯的過程一般分為四個階段, 分別為預(yù)處理、編譯、匯 編和鏈接。在 linux shell 中對 gcc 提供了強大的命令支持,在實際編程中可以靈活運用。 ⑸ binutils 開發(fā)工具包 Binutils 是一組開發(fā)工具包,包括鏈接器、匯編器和其他用于目標(biāo)文件和檔案的工具。 Binutils 中的不少工具和 gcc 相似, binutils 工具包是嵌入式系統(tǒng)開發(fā)中必須掌握的,主要包括 addr2line、 ar、 as、 c++filt、 gprof、 ld、 nm、 objcopy、 objdump、 ranlib、readelf、 size、 strings、 strip、 libiberty、 libbfd 和 libopcodes。 ⑹ gdb 調(diào)試器 GDB 全名是 Gnu Debugger,是 GNU C 自帶的調(diào)試工具, 它是一款非常強大的調(diào)試器,功能上可以與 visual studio 媲美,它支持多種硬件平臺,目前支持的主要調(diào)試語言有 c/c++、 java 等 ⑺ KDEVELOP IDE KDevelop 的是一個自由,開放源碼的 Linux, Solaris 和 FreeBSD 的 IDE(集成開發(fā)環(huán)境), Max OS X 和其他 Unix 系統(tǒng)。它是一個功能全面,可擴(kuò)展的 IDE,可以使用 C / C++和其他編程語言的插件,功能非常強 大,可以媲美 VC++ IDE。 本畢業(yè)設(shè)計的軟件編程都是用 Kdevelop IDE 進(jìn)行編譯調(diào)試 的。 ⑻ linux shell 簡介 linux 有多個版本的 shell,一般默認(rèn)的是 bash shell。 Shell 中文的意思是外殼,實際上是操作系統(tǒng)內(nèi)核和用戶進(jìn)行交互的接口, shell 和 windows 下面的 dos 命令行非常相似。常用的命令有 ls, cd, rm, cp, mv, du, man, mount 等。 交叉編譯 的構(gòu)建 交叉編譯的過程本身并不復(fù)雜,完成交叉編工具鏈的制作卻是比較困難的,網(wǎng)上又有很多交叉編譯的構(gòu)建 方法可以提供參考。制作交叉編譯工具鏈之前,需要明確目標(biāo)平臺,本平臺的嵌入式開發(fā)是在 arm 平臺下,所以選擇交叉編譯工具為armlinuxgcc, armlinuxgdb 等。 對于本平臺的所開發(fā)的系統(tǒng),直接選用網(wǎng)上配置好的交叉編譯工具鏈,雖然不夠靈活,已經(jīng)滿足本系統(tǒng)的開發(fā)需求。 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計 9 系統(tǒng)硬件平臺配置 FL2440 硬件平臺的主要配置介紹: ⑴ S3C2440A 處理器,主頻 400MHz,可倍頻至 533MHz; ⑵ 64M 字節(jié) SDRAM,可擴(kuò)展到 256M ; ⑶ 4M NOR Flash, 256M 字節(jié) NAND Flash; ⑷ 12MHz 系統(tǒng)外部時鐘源; 的 RTC 時鐘源; ⑸ 支持 或 5V 電壓供電; ⑹ 兩個三線串口,一個 TTL 串口; ⑺ 一個 100M 網(wǎng)口,采用 DM9000AE,帶聯(lián)接和傳輸指示燈; ⑻ 四個 USB HOST 接口;一個 USB Device 接口; ARM9 處理器介紹 本論文從應(yīng)用領(lǐng)域、設(shè)計需求和開發(fā)的難易程度等因素進(jìn)行考慮,最終選用三星公司的嵌入式微處理器 S3C2440。下面分別介紹 ARM 處理器的優(yōu)點和具用 ARM9內(nèi)核的 S3C2440 的特點。 ARM 處理器以其完整的體系結(jié)構(gòu)發(fā)展系列,以 及極小的體積、極低的功耗、極低的成本和極高的性能,并能及時根據(jù)嵌入對象的不同進(jìn)行功能上的擴(kuò)展的優(yōu)勢,從眾多種類的嵌入式微處理器中脫穎而出?;?ARM 技術(shù)的微處理器占據(jù)了 32 位RISC 微處理器 75%以上的市場份額, ARM 技術(shù)正在逐步滲入到我們生活的各個方面。 采用 RISC 架構(gòu)的 ARM 微處理器一般具有如下特點: ( 1)支持 Thumb (16 位 )/ARM (32 位 )雙指令集,能很好的兼容 8 位 /16 位器件; ( 2)大量使用寄存器,指令執(zhí)行速度更快; ( 3)加載存儲結(jié)構(gòu),數(shù)據(jù)處理的操作只針對寄存器的內(nèi)容,而不直接對存 儲器進(jìn)行操作; ( 4)簡單的尋址模式,所有加載和存儲的地址都只由寄存器的內(nèi)容和指令域決定,執(zhí)行效率高; 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計 10 ( 5 )統(tǒng)一的和固定的指令域,簡化了指令的譯碼; ( 6 )每一條數(shù)據(jù)指令都對算術(shù)邏輯單元 (A L U) 和移位器進(jìn)行控制,以實現(xiàn)對 A L U和移位器的最大利用; ( 7 )地址自動增加和自動
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1