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

正文內(nèi)容

基于arm平臺與嵌入式linux的圖像采集應(yīng)用-在線瀏覽

2025-01-10 08:42本頁面
  

【正文】 GPS 都是嵌入式系統(tǒng)應(yīng)用的典型例子。隨著嵌入式技術(shù)和應(yīng)用的不斷發(fā)安徽理丁大學(xué)碩十學(xué)位論文展與普及,嵌入式處理 器也從最初的 4位、 8位,發(fā)展到現(xiàn)在的 16 位、 32 位,甚至 64位。因此,嵌入式處理器種類繁多,數(shù)量龐大。 根據(jù)特點和應(yīng)用領(lǐng)域的不同,可以將嵌入式系統(tǒng)的處理器可以分為以下 4大類: ★嵌入式微處理 器 (MicroProcessor Unit, MPU); ★嵌入式微控制器 (Mierocontroller Unit, MCU); ★嵌入式數(shù)字信號處理器 (Digital Signal Processor, DSP); ★嵌入式片上系統(tǒng) (System On Chip, SoC)。通常包括與硬件相關(guān)的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等 browser。 2. 3. 1 嵌入式操作系統(tǒng)分類 目前嵌入式系統(tǒng)的軟件主要有兩大類:實時系統(tǒng)和分時系統(tǒng)。實時嵌入系統(tǒng)是為執(zhí)行特定功能而設(shè)計的,可以嚴(yán)格的按時序執(zhí)行功能。在實時系統(tǒng)中,如果系統(tǒng)在指定的時間內(nèi)未能實 現(xiàn)某個確定的任務(wù),會導(dǎo)致系統(tǒng)的全面失敗,則系統(tǒng)被稱為硬實時系統(tǒng)。一個硬實時系統(tǒng)往往在硬件上需要添加專門用于時問和優(yōu)先級管理的控制芯片,而軟實時系統(tǒng)則主要在軟件方面通過編程實現(xiàn)時限的管理。 2. 3. 2 嵌入式 Linux 操作系統(tǒng) 1. Linux 操作系統(tǒng) 在介紹嵌入式 Linux 之前,先介紹一下 Linux 操作系統(tǒng)。它起源于芬蘭一個名為 Linus Torvalds 的業(yè)余愛好者。內(nèi)核的發(fā)布由LinusTorvalds 和 Alan Cox 等領(lǐng)導(dǎo)的內(nèi)核開發(fā)小組控制,可以通過訪問內(nèi)核網(wǎng)站下載內(nèi)核源代碼。其它一些商業(yè)公司如 IBM、 Sun 和 Oracle 等也開始開發(fā)基于 Linux平臺的應(yīng)用軟件。高性能的 ARM處理器與其它外圍器件構(gòu)成了一個嵌入式多媒體開發(fā)平臺,可以滿足復(fù)雜計算和圖形顯示的需求。嵌入式處理器的功能和性能,直接影響著整個系統(tǒng)的設(shè)計,嵌入式處理器的選擇,制約了其配 套的外圍器件的選擇。 2) 選擇最符合應(yīng)用需求的處理器。 4) 選擇提供配套開發(fā)工具的處理器。 2)SDRAM 控制器。 4)4 個具有 PWM 功能的計時器和一個內(nèi)部時鐘,看門狗計數(shù)器。 6)2 個 USB 主機(jī)接 VI, 1個 USB 從設(shè)備接 13。 計算機(jī)學(xué)院《嵌入式系統(tǒng)》課程設(shè)計報告 7 3. 3 USB 攝像頭的選擇 攝像頭分為數(shù)字?jǐn)z像頭和模擬攝像頭兩大類。數(shù)字?jǐn)z像頭可以直接捕捉影像,然后通過串、并口或者 USB 接口傳到計算機(jī)里。 數(shù)字?jǐn)z像頭的一般結(jié)構(gòu)如圖 3所示: 圖 2 4 嵌入式操作系統(tǒng)的實現(xiàn) 4. 1 嵌入式系統(tǒng)開發(fā)環(huán)境的建立 4. 1. 1 主機(jī)開發(fā)環(huán)境的建立 主機(jī)采用 WindowsXP+VMware+Linux 的開發(fā)環(huán)境。通過虛擬機(jī)軟件,可以在一臺物理計算機(jī)上模擬出一臺或多臺虛擬的計算機(jī),對于用戶而言,它只是運行在用戶物理計算機(jī)上的一個應(yīng)用程序,但是對于在虛擬機(jī)中運行的應(yīng)用程序而言, 它就像是在真 J下的計算機(jī)中進(jìn)行工作。給開發(fā)帶來了很大的方便。交叉編譯環(huán)境主要包括以下幾個部分: 針對目標(biāo)系統(tǒng)的編譯器 gee 針對目標(biāo)系統(tǒng)的二進(jìn)制工具 binutils 目標(biāo)系統(tǒng)的標(biāo)準(zhǔn) c 庫 glibe 目標(biāo)系統(tǒng)的內(nèi)核頭文件 計算機(jī)學(xué)院《嵌入式系統(tǒng)》課程設(shè)計報告 8 4. 2 嵌入式 linux操作系統(tǒng)移植 4. 2. 1 Linux 內(nèi)核版本及結(jié)構(gòu) Linux 內(nèi)核主要有 5個子系統(tǒng)組成:進(jìn)程調(diào)度,內(nèi)存管理,虛擬文件系統(tǒng),網(wǎng)絡(luò)接口和進(jìn)程之間的通信。 / drivers y日錄包含了內(nèi)核葉 I所有的設(shè)備驅(qū)動 }W弘。 / include 子目錄包含了建立內(nèi)核代碼時所需要的大部分 庫文件,這個模塊利用其他模塊重建內(nèi)核。 / ipc 子目錄包含了進(jìn)程間通信代碼。 / mm 子目錄包含了所有內(nèi)存管理代碼。 一般在每個目錄下包含一個 depend 文件和一個 Makefile 文件。 4. 2. 2 Linux 2. 4. 18 內(nèi)核版本的移植 所謂嵌入式 Linux 系統(tǒng)移植,就是把 Linux 內(nèi)核進(jìn)行裁減修改,構(gòu)造合適的文件系統(tǒng),并且設(shè)置好相應(yīng)的 bootloader 用于引導(dǎo) kernel,從而使整個系統(tǒng)可以在開發(fā)板上正常運行。修改根目錄 Makefile 文件。 修改 arch 目錄下面的 Makefile,指定交叉編譯器。嵌入式Linux 下的文件系統(tǒng)結(jié)構(gòu)如圖 11 所示 : 圖 3 4. 3. 2 構(gòu)建嵌入式 Linux文件系統(tǒng) 1. busybox 簡介 Busybox 是用于制作可執(zhí)行命令工具集的工具,它被非常形象地稱為嵌入式Linux 系統(tǒng)中的 “瑞士軍刀”,因為它將許多常用的 UNIX 命令和工具結(jié)合到了一個單獨的可執(zhí)行程序中。 2.建立 Linux 文件系統(tǒng) 在 busybox 的編譯過程中,可以非常方便地加減它的“插件”,最后的符號鏈接也可以由編譯系統(tǒng)自動生成。 4. 4 USB 攝像頭設(shè)備驅(qū)動移植 Linux 設(shè)備驅(qū)動程序概述 計算機(jī)學(xué)院《嵌入式系統(tǒng)》課程設(shè)計報告 10 系統(tǒng)調(diào)用是操作系統(tǒng)內(nèi)核和應(yīng)用程序之問的接口,沒備驅(qū)動程 序是操作系統(tǒng)內(nèi)核和機(jī)器硬件之間的接口。設(shè)備驅(qū)動程序是內(nèi)核的部分.它完成以下的功能: 1.對設(shè)備初始化和釋放。 3.讀取應(yīng)用程序傳送給設(shè)備文件的數(shù)據(jù)和回送應(yīng)用程序請求的數(shù)據(jù)。 4. 4. 2 USB 攝像頭驅(qū)動程序的移植 目前市場流行的攝像頭型號主要是中星微的 ZC0301/ 02/ 03,占據(jù)了約90%的市場份額 ,而廣大嵌入式愛好者推崇的則是 OmniVision 公司的 OV51 l,主要是因為 2. 4 內(nèi)核版本以后支持了 OV511 的驅(qū)動,以至各種研究學(xué)習(xí)資料較多,應(yīng)用也非常方便。 2.圖像采集程序設(shè)計 在 Linux 下,視頻采集設(shè)備的正常使用依賴于對 Vide04 Linux 標(biāo)準(zhǔn)的支持。 Vide04Linux 定義的數(shù)據(jù)結(jié)構(gòu)及使用函數(shù)如下: struct__v41_struct { Int fd; struct video_capability capability; struct video_buffer buffer; struct video_window window; struct video_channel channel[8]; struct video_picture picture; struct video_mmap mmap; struet video_mbuf mbuf; unsigned char *map; }; typedef struct_v41_struet v41_deviee; extem int v41_open(char*, v41_deviee*); extem int v41_elose(v41__deviee*); extem int v41_get_eapability(v41_device*); 計算機(jī)學(xué)院《嵌入式系統(tǒng)》課程設(shè)計報告 11 extem int v41_set_norm(v41_device*, int); extem int v41_get_picture(v41_deviee*); extem int v41_grab_init(v41_deviee*, int,int); extem int v41_grab_frame(v41_device*, int); extem int v41_grab_sync(v41_device*); extem int v41_mmap_init(v41_deviee*); extem int v41_get_mbuf(v41__device*); extern int v41_get_picture(v41_deviee*); extern hat v41_grab_picture(v41_device*, unsigned int); extern int v41 set_buffer(v41_device*); extem int v41get_buffer(v41_device*); extem int v41_switch__ehannel(v41_device*, int); Vide04Linux 中截取圖象的方法有兩種: 1. mmap(內(nèi)存映射 )方式 2. 直接讀設(shè)備方法 利用 mmap 方式截取視頻圖像的程序設(shè)計的主要過程如下: (1)打開視頻: intv41_pen(char *dev,v41 一 device *vd) { if(!dev) dev=” / dev/ videoO” ; if((vdfd=open(dev,O_RDWR))O){ pcrror(” v41_open:” ); return1; } if(v41_getcapability(vd)) return1; if(v41_get_picture(vd)) retun1; return 0; } (2)讀 videocapability 中信息 int v41_get_capability(v41_device *vd) { if(ioctl(vdfd, VIDIOCGCAP,amp。 } 關(guān)閉設(shè)備 : Int v41_close(v41_device *vd) { closc(vdfd); retun 0: } 計算機(jī)學(xué)院《嵌入式系統(tǒng)》課程設(shè)計報告 12 5 圖形用戶界面的實現(xiàn) 5. 1 MiniGLⅡ的特點 MiniGUI 原是由魏永明支持的遵循 GPL 條款發(fā)布的一個自由軟件項目,其目標(biāo)是為實時嵌入式系統(tǒng)提供一個輕量級的圖形用戶界面支持系統(tǒng)。 MiniGUI 是一種針對嵌入式設(shè)備的、跨操作系統(tǒng)的圖形用戶界面支持系統(tǒng),它 是嵌入式圖形中間層軟件。它為用戶定義了一組輕量級的窗口和通信設(shè)備接口,利用這些接口,每個應(yīng)用程序可以建立多個窗口,而且可以在這些窗口中繪制圖形,也可以利用 MiniGUI 建立菜單、按鈕、列表框等常見的GUI 元素。 圖 4 計算機(jī)學(xué)院《嵌入式系統(tǒng)》課程設(shè)計報告 13 5. 3 MiniGLⅡ程序開發(fā) 5. 3. 1 MiniGUI 體系結(jié)構(gòu) 從整體結(jié)構(gòu)上看, MiniGUl 是分層設(shè)計的,體系結(jié)構(gòu)如下圖 : 圖 5 在最低層, GAL 和 IAL 提供底層圖形接口以及輸入設(shè)備的驅(qū)動;中間層是MiniGUl 的核心層,包括窗口系統(tǒng)必不可少的各個模塊;最頂層是 API,為用戶提供編程接口。mdow(hWnd); PostQuitMessage(hWnd); return 0; ) return DefaultMainWinProc(hWnd, message, wPamm, IParam); } int MiniGUIMain(int argc, cxmst char* argvf[])//主程序入口 { ......... //定義變量 ifdef LITE VERSION SetDesktopRect(0, 0, 1024, 768); endif Createlnfo. dwStyle= Ws_VISIBLE|WS— BORDER l ws cAPTION; hMainWnd=CreateMainWindow(amp。服務(wù)器首先啟動,通過調(diào)用 socket0,建立一個 socket,然后調(diào)用 bind0 將該 socket 和本地網(wǎng)絡(luò)地址綁定在一起,再調(diào)用listen0 使 socket 做好偵聽的準(zhǔn)備,并規(guī)定它的請求隊列的長度,之后調(diào)用accept0 來接收連接。連接建立后,客戶機(jī)和服務(wù)器之間就可以通過調(diào)用 send0 和 recv0 來發(fā)送和接收數(shù)據(jù)。 6. 2. 2 socket通信的實現(xiàn) 為實現(xiàn) PC 機(jī)和硬件平臺的網(wǎng)絡(luò)通信,首先在編譯內(nèi)核時必須選中對網(wǎng)絡(luò)功能的支持,并在制作嵌入式文件系統(tǒng)時加入對網(wǎng)絡(luò)功能的支持。 程序?qū)崿F(xiàn)的流程圖如下圖所示: 圖 7 計算機(jī)學(xué)院《嵌入式系統(tǒng)》課程設(shè)計報告 16 6. 2. 3 運行結(jié)果 圖 8 可以看到 PC機(jī)與硬件平臺成功建直了連接,叮以進(jìn)行通信,達(dá)到了預(yù)期目標(biāo)。 7 總結(jié)與展望 本系統(tǒng)采用高性能、低功耗、低價格的 ARM 處理器和源代碼開放的 Linux操作系統(tǒng),并結(jié)合內(nèi)置 DSP編碼單元的 USB 攝像頭構(gòu)建了一個完整的圖像采集與傳輸系統(tǒng),增強(qiáng)了系統(tǒng)的抗干擾能力和數(shù)據(jù)傳輸?shù)目煽啃?,克服了使用?shù)據(jù)采集卡帶來的諸多問題。由于所采用的軟件全部是開放源碼而且免費獲得,所以對于需要便攜好而又要有較高的數(shù)據(jù)處理能力且成本要求嚴(yán)格的方面尤其適合。 但由于時間的倉促和技術(shù)水平的有限,本系統(tǒng)也存在有不足之處,例如在網(wǎng)絡(luò)傳輸方面使用網(wǎng)線連接設(shè)備,勢必限制了該系統(tǒng)在很多具體場合的應(yīng)用。這也是后續(xù)開發(fā)中要 參考文獻(xiàn) [1]張旭 ,亓學(xué)廣 ,
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1