新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于Video4Linux的攝像頭驅動設計

        基于Video4Linux的攝像頭驅動設計

        作者: 時間:2009-09-15 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/166878.htm

        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.656是4: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信號。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 定南县| 达州市| 阜南县| 桦甸市| 柳江县| 新沂市| 太仓市| 凤凰县| 铜陵市| 金湖县| 宁德市| 甘谷县| 奉化市| 梅河口市| 将乐县| 海林市| 藁城市| 礼泉县| 南华县| 安化县| 青神县| 永嘉县| 镇宁| 荣成市| 灵璧县| 锡林郭勒盟| 东兰县| 霍山县| 余庆县| 乐亭县| 石泉县| 肇源县| 阆中市| 嘉峪关市| 内黄县| 十堰市| 白玉县| 福贡县| 连山| 哈巴河县| 依兰县|