0 引言
1 video4linux
目前,v4l這套介面已發展為v4l 2,前者比後者簡單,但
存在兩個不足之處:驅動程式設計時不能同時開啟多個裝置;現存的v4l api不能很好地支援帶編碼能力的裝置。
本文為便於研究攝像頭驅動開發,還是使用v4l。
v4l主要結構體如下:
v4l支援兩種方式捕獲影象:mmap(卻嬗成浞絞?和read(直接讀取方式),本系統採用mmap。需預先設定好影象的大小和深度,接著使用 vidiocgmbuf命令,它會返回用於mmap的快取(buffer)的大小以及每幀快取的偏移位址(offset)。驅動程式裡的對映函式為 static intbf536_v411_mmap(struct file*filp,structvm_area_struct*vma);抓幀完成後,在應用程式裡通過記憶體對映,讀取影象資料。
2 硬體平台
3 驅動程式設計
3.1 驅動程式核心結構體的介紹
本系統的軟體平台是嵌入式uclinux,因此,攝像頭作為乙個裝置驅動載入到uclinux核心中。一般而言,每個裝置驅動都會有它的核心結構體,攝像頭驅動的核心結構體設計如下:struct cameradevice
3.2 硬體配置
本系統在開發過程中,最主要的難點在於硬體的配置,正確配置tvp5150、ppi、dma需要搞清楚整個攝像頭的工作原理,以及各種影象格式的基本知識。本文主要給出ppi和dma的幾個關鍵配置選項。
3.2.1 ppi配置
3.2.2 dma配置
3.3 中斷服務子程式
本系統的中斷服務子程式主要是一場資料採集完後,產生中斷,並根據資料的奇偶場做出相應的處理。其流程如圖2所示。
4 結束語
本文介紹了在blackfin dsp和linux的平台下,攝像頭驅動的體系結構和具體實現。此驅動由測試程式測試,可以正常工作。此驅動尚存在不足之處,那就是在驅動的抓幀過程中沒有採用桌球操作,但是採用了兩個幀快取來訪問資料,因此桌球操作可以在上層應用中完成。
如何利用Video4Linux獲取攝像頭資料
1.攝像頭的安裝 在 linux下常用的攝像頭驅動是spca5xx,這是乙個通用驅動,讀者可以在以下 下到這個驅動 這個 還給出了這款驅動支援的攝像頭的種類。另外,ov511晶元直接就支援linux,使用者款晶元的攝像頭有網眼v2000。我使用的是網眼v2000的攝像頭,和z star 301p 現...
基於Linux的智慧型家居的設計 4
3 開發環境的搭建 本次課題使用的開發環境比較特殊,沒有乙個現成的整合開發環境,需要自己一步一步的搭建開發環境,開發環境的搭建的過程十分複雜,而且如果沒有這個開發環境本次課題就無法進行。因此,在進行設計時,必須要進行開發環境的搭建。3.1 虛擬機器安裝和系統安裝 在pc機上安裝vmware work...
Linux常用命令4(基於Centos)
這些命令是我在centos7.4主機上實踐記錄下來的。1 ps ef grep 程序 檢視程序的各項資訊 如pid 2 netstat anp 檢視埠開放資訊 3 rm f 強制刪除 5 yum y install 安裝軟體 加上 y可以省去讓你選擇yes的部分 yum search gcc gre...