在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于V4L技術和攝像頭的Linux驅動程序的設計與實現

電子設計 ? 來源:電子技術 ? 作者:余雅琴,王超,胡晨 ? 2021-03-23 15:47 ? 次閱讀

作者:余雅琴,王超,胡晨,王素

引言

隨著多媒體技術、網絡技術的迅猛發展和后PC機時代的到來,利用嵌人式系統實現遠程視頻監控、可視電話和視頻會議等應用已成為可能。為了實現這些應用,實時獲得視頻數據是一個重要環節。針對這一點本文在嵌入式系統平臺上,基于Video4Linux(簡稱V4L)技術,實現了攝像頭驅動開發,詳細敘述了V4L技術和攝像頭在Blackfin536 DSP平臺上的Linux驅動程序設計。

1 Video4Linux

V4L是Linux的影像串流系統與嵌入式影像系統的基礎。Linux在TV、多媒體上的應用是目前相當熱門的研究領域,而其中最關鍵的技術則是Linux的V4L。V4L是Linux kernel里支持影像設備的一組APIs,配合適當的攝像頭與攝像頭驅動程序,可以讓我們實現影像采集、AM/FM無線廣播、影像CODEC、頻道切換等功能;而目前最主要的則是應用在影像串流系統與嵌入式影像系統里,其應用范圍相當廣泛,例如:遠距離教學系統、遠距離診斷系統、視頻會議等。

目前,V4L這套接口已發展為V4L 2,前者比后者簡單,但存在兩個不足之處:驅動程序設計時不能同時打開多個設備;現存的V4L API不能很好地支持帶編碼能力的設備。本文為便于研究攝像頭驅動開發,還是使用V4L。

V4L主要結構體如下:

基于V4L技術和攝像頭的Linux驅動程序的設計與實現

camera_open,camera_close是打開和關閉視頻采集設備;camera_read,是讀取視頻圖像;視頻驅動主要的控制接口都是通過 ioctl來實現的,如圖像的格式、亮度、色度等信息都是通過ioctl函數獲取和設置的。ioctl命令部分如下:

V4L支持兩種方式捕獲圖像:mmap(卻嬗成浞絞?和read(直接讀取方式),本系統采用mmap。需預先設置好圖像的大小和深度,接著使用 VIDIOCGMBUF命令,它會返回用于mmap的緩存(buffer)的大小以及每幀緩存的偏移地址(offset)。驅動程序里的映射函數為 static intbf536_v411_mmap(Struct file*filp,structvm_area_struct*vma);抓幀完成后,在應用程序里通過內存映射,讀取圖像數據。

2 硬件平臺

本系統采用CMOS模擬傳感器,經TI公司的TVP5150A視頻解碼芯片把模擬信號轉成 ITU-R BT.656視頻信號,再送給ADI公司的Blackfin536 DSP處理器進行圖像處理,如圖1所示。TVP5150向DSP提供采樣時鐘信號CLK(27MHz),8根數據線傳輸內嵌同步控制碼流的ITU-R BT.656格式的數據,DSP通過I2C接口對視頻解碼器進行配置。視頻數據由DMA搬運到SDRAM

3 驅動程序設計

3.1 驅動程序核心結構體的介紹

本系統的軟件平臺是嵌入式uclinux,因此,攝像頭作為一個設備驅動加載到uclinux內核中。一般而言,每個設備驅動都會有它的核心結構體,攝像頭驅動的核心結構體設計如下:struct camera device

該結構體儲存了幾乎全部與攝像頭視頻圖像相關的信息。其中的結構體videoDev和videoV4l1是與V4L相關聯的,ppiDev是與ADSP- BF537處理器硬件配置相關的,而frame[CAMERA_NUMFRAMES]則與采集時當前視頻幀數據相關聯。此外,camera_device 該核心結構體還定義了表示奇偶場的成員變量frame_field,表示當前幀的抓取狀態的成員變量grabbing等。

3.2 硬件配置

本系統在開發過程中,最主要的難點在于硬件的配置,正確配置TVP5150、PPI、DMA需要搞清楚整個攝像頭的工作原理,以及各種圖像格式的基本知識。本文主要給出PPI和DMA的幾個關鍵配置選項。

3.2.1 PPI配置

TVP5150A視頻解碼芯片把模擬信號轉換成ITu-RBT.656視頻信號,ITU-R BT.65*:2:2并行接口的數字演播室標準。對于PAL制系統(NTSC系統類似),一幀圖像包括兩場視頻數據(奇偶場),每一場圖像由四部分構成:有效視頻數據,水平消隱,垂直消隱以及控制字。而PPI接口在ITU-656輸入模式下可以支持3種數據傳輸,若選擇有效視頻數據,則可以實現PPI 與TVP5150A解碼器的無縫連接。且傳輸的有效視頻數據就是UYVY422格式,所以配置PPI控制寄存器為ITu-656輸入、傳輸有效視頻數據。 PPI傳輸的有效視頻數據每場都由288行組成,每行有1440個取樣字,其中720個亮度Y取樣字,360個藍色色差Cb,360個紅色色差Cr,按 Cb、Y、Cr、Y的次序排列。而UYVY422格式數據是:每個像素點都取亮度值,而藍色色差和紅色色差是每兩個像素點才各取一個,兩者交替取,所以圖像像素是720×576。這樣可以確定ppi frame=576(整幅圖像的行數)。而ppi count不用配置,因為在ITU-R BT.656視頻信號中有H和V信號。

3.2.2 DMA配置

本系統采用二維DMA來提高數據的傳輸速度,采用16位傳輸,且傳輸完一場視頻數據后產生中斷。dma_x_count=720(相當于每行數據需傳輸的次數,每行720個像素點,每個像素點2個字節。每行要傳720×2個字節,而dma是16位傳輸,所以x_count=720)。 dma_x_modify=2(相鄰兩次傳輸數據的偏移地址,以字節為單位,因為是16位傳輸,所以為2)。

由于PAL制視頻數據是隔行掃描,每幀分為奇偶兩場,兩場在時域上是分開的,但是在數據處理時需要將兩場合成一幀進行處理,因此為了減少CPU的處理時間,可以利用DMA直接進行場合成。在一場的傳輸中,DMA在傳輸完一行數據后,預留下一行的存儲空間,將數據存放到第三行的地址。在一場數據傳輸完后,下一場的數據就填充上一場預留的存儲空間,也是隔行存儲,這樣兩場數據就合成一幀數據了。所以,dma_y_modify=1442(一行720像素點,占720×2字節。而一行末地址到下一行首地址還需2字節。所以720×2+2=1442)。同時,兩場數據存放的起始地址的設置間隔也是1442字節。

3.3 中斷服務子程序

本系統的中斷服務子程序主要是一場數據采集完后,產生中斷,并根據數據的奇偶場做出相應的處理。其流程如圖2所示。

4 結束語

本文介紹了在Blackfin DSP和Linux的平臺下,攝像頭驅動的體系結構和具體實現。此驅動由測試程序測試,可以正常工作。此驅動尚存在不足之處,那就是在驅動的抓幀過程中沒有采用乒乓操作,但是采用了兩個幀緩存來存取數據,因此乒乓操作可以在上層應用中完成。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11407

    瀏覽量

    212115
  • 攝像頭
    +關注

    關注

    60

    文章

    4913

    瀏覽量

    97292
  • 多媒體
    +關注

    關注

    0

    文章

    508

    瀏覽量

    37404
收藏 人收藏

    評論

    相關推薦

    Xilinx Linux 如何理解V4L2的管道驅動程序

    設備(/dev/video )控制。這兩種設備,都是在視頻管道(Video pipeline)驅動程序里創建的。所以,理解V4L2的管道(pipeline)驅動程序是理解Xilinx所有Video IP 在
    的頭像 發表于 09-30 13:44 ?5104次閱讀
    Xilinx <b class='flag-5'>Linux</b> 如何理解<b class='flag-5'>V4L</b>2的管道<b class='flag-5'>驅動程序</b>

    Linux攝像頭應用編程

    V4L2是Video for linux2的簡稱,為linux中關于視頻設備的內核驅動。在Linux中,視頻設備是設備文件,可以像訪問普通文
    的頭像 發表于 08-26 21:39 ?3253次閱讀
    <b class='flag-5'>Linux</b>下<b class='flag-5'>攝像頭</b>應用編程

    【Intel Edison試用體驗】連接攝像頭

    攝像頭實現即插即用,不用到處去找設備驅動,所以還是用V4L的好。接口當然優先選USB接口,別的呢,也不是不可以,只是得折騰許多時光!咱用的是羅技的
    發表于 07-18 15:40

    求助ov7670攝像頭驅動程序

    求助ov7670攝像頭驅動程序,哪位大神有分享一下啊在下郵箱[email protected]謝謝
    發表于 01-29 06:35

    什么是V4L2?有何作用

    1.什么是V4L2Video for(4) Linux 2 的簡稱,V4L的升級版。V4L2是linux
    發表于 01-17 09:05

    良田攝像頭萬能驅動程序下載

    良田攝像頭萬能驅動程序下載
    發表于 01-11 21:52 ?86次下載
    良田<b class='flag-5'>攝像頭</b>萬能<b class='flag-5'>驅動程序</b>下載

    良田攝像頭211驅動程序下載

    良田科技萬能攝像頭驅動程序自動檢測攝像頭芯片,集成了301、303、168、268、325、211、308、380等市面基本所有方案。用良田科技萬能攝像頭
    發表于 02-24 21:34 ?3次下載

    飛視攝像頭驅動程序下載

    飛視攝像頭驅動程序下載
    發表于 02-25 08:59 ?266次下載
    飛視<b class='flag-5'>攝像頭</b><b class='flag-5'>驅動程序</b>下載

    USB攝像頭驅動程序和圖像采集程序實現方法

    本文首先介紹了基于AT91RM9200的圖像采集平臺的硬件設計,然后描述了嵌入式Linux和USB驅動程序的軟件架構,重點分析了通用的USB攝像頭驅動程序和圖像采集
    發表于 08-18 09:26 ?138次下載

    攝像頭的WINCE驅動及操作說明

    第1章 使用方法1.1 需要的文件攝像頭程序需要的文件為驅動程序安裝程序camera.cab文件。針對的攝像頭是多彩的DLV-C33
    發表于 11-18 16:58 ?73次下載

    基于V4L2的Linux攝像頭驅動實現

    設計實現了普通USB攝像頭驅動程序及圖像采集程序。在gplugD 平臺上移植并測試,該驅動可以方便應用到各種嵌入式手持設備中,實時性良好。
    發表于 03-01 15:53 ?53次下載
    基于<b class='flag-5'>V4L</b>2的<b class='flag-5'>Linux</b><b class='flag-5'>攝像頭</b><b class='flag-5'>驅動</b>的<b class='flag-5'>實現</b>

    Linux下USB攝像頭驅動程序開發解析

    一、 Linux系統中的USB攝像頭驅動程序 USB攝像頭以其良好的性能和低廉的價格得到廣泛應用。同時因其靈活、方便的特性,易于集成到嵌入式系統中。但是如果使用現有的符合Video
    發表于 11-07 11:45 ?3次下載
    <b class='flag-5'>Linux</b>下USB<b class='flag-5'>攝像頭</b><b class='flag-5'>驅動程序</b>開發解析

    Linux系統中如何安裝攝像頭驅動

    說開發商唯利是圖,沒有好處的事,他們的確不怎么積極。Linux 的用戶比較少,所以他們也不把用戶當回事。 目前看來攝像頭(Webcam)在 Linux驅動基本成熟,缺少的是應用
    發表于 11-07 11:45 ?5次下載

    V4L2學習筆記

    1.什么是V4L2Video for(4) Linux 2 的簡稱,V4L的升級版。V4L2是linux
    發表于 01-17 13:43 ?12次下載
    <b class='flag-5'>V4L</b>2學習筆記

    嵌入式Linux攝像頭驅動程序設計與實現

    電子發燒友網站提供《嵌入式Linux攝像頭驅動程序設計與實現.pdf》資料免費下載
    發表于 10-12 09:31 ?2次下載
    嵌入式<b class='flag-5'>Linux</b>的<b class='flag-5'>攝像頭</b><b class='flag-5'>驅動程序</b>設計與<b class='flag-5'>實現</b>
    主站蜘蛛池模板: 中文字幕一二三区乱码老 | 中国一级特黄aa毛片大片 | 精品亚洲综合在线第一区 | 中国女人a毛片免费全部播放 | 欧美高清视频一区 | 男人j进女人j的视频一进一出 | 成 人 免费 黄 色 视频 | 日日爱夜夜爱 | 天天操天天操天天操 | 91大神精品视频 | 国产特黄一级毛片特黄 | 国产成人乱码一区二区三区 | 欧美一区二区三区免费 | 五月天狠狠操 | 国产精品亚洲精品日韩动图 | 亚洲一区二区免费 | 婷婷丁香色综合狠狠色 | 色综合成人网 | 人与牲动交xxxxbbbb高清 | 色狠狠综合网 | 国模欢欢炮交啪啪150 | 天天干天天操天天干 | 有没有免费的视频在线观看 | 日韩欧美一区二区三区视频 | 亚洲色图综合网 | 四虎影院大全 | 久久精品综合网 | 久久精品国产精品亚洲婷婷 | 福利视频午夜 | 深深激情网 | 亚洲骚片 | 亚洲一区二区三区免费 | 色妞综合| 日日做夜夜爽夜夜爽 | 俺去在线| 欧美另类亚洲一区二区 | 亚洲视频一区在线观看 | 福利视频自拍 | 女人69xxx| 美女被拍拍拍拍拍拍拍拍 | 亚洲一区免费在线观看 |