亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        TVP5150和i.MX27的模擬視頻采集系統(tǒng)設(shè)計

        2016-03-10 01:58:55

        李 敏

        (南京理工大學(xué) 自動化學(xué)院, 南京 210000)

        ?

        TVP5150和i.MX27的模擬視頻采集系統(tǒng)設(shè)計

        李敏

        (南京理工大學(xué) 自動化學(xué)院, 南京 210000)

        摘要:對目前可視對講系統(tǒng)的視頻采集技術(shù)進行了研究,探討視頻解碼芯片應(yīng)用于可視對講系統(tǒng)的視頻采集的可行性。以TVP5150為視頻解碼芯片,i.MX27為系統(tǒng)控制核心,利用Linux2.6內(nèi)核,通過I2C總線初始化TVP5150,使用Linux系統(tǒng)中視頻設(shè)備的內(nèi)核驅(qū)動構(gòu)架V4L2,實現(xiàn)了視頻采集功能。

        關(guān)鍵詞:TVP5150;視頻采集;Linux內(nèi)核;i.MX27

        引言

        傳統(tǒng)的對講系統(tǒng)采用模擬音視頻信號傳輸,存在施工布線復(fù)雜、成本高、容易占線、傳輸距離有限、抗干擾能力差、穩(wěn)定性差、無法兼容等缺點,而數(shù)字化技術(shù)的導(dǎo)入彌補了以上缺陷。作為視訊安防領(lǐng)域主流使用的多媒體SoC處理器,i.MX27具有出眾的綜合能力和性價比,適用于中低端多媒體應(yīng)用場合。

        i.MX27在視頻編解碼以及圖像處理方面優(yōu)勢明顯,芯片內(nèi)置硬件編解碼模塊,可以實現(xiàn)H.264全雙工編解碼;片內(nèi)集成多媒體硬件加速器,可以完成視頻圖像的預(yù)處理和后處理。根據(jù)系統(tǒng)的功能需求,綜合考慮芯片性能、外設(shè)擴展等因素,選擇Freescale公司的i.MX27作為系統(tǒng)的處理器芯片。

        1系統(tǒng)原理及總體硬件設(shè)計

        通過攝像頭采集模擬視頻信號,經(jīng)過視頻解碼芯片TVP5150轉(zhuǎn)換成YCbCr數(shù)字視頻信號,然后通過i.MX27的CSI接口完成視頻數(shù)據(jù)的采集工作。圖1是系統(tǒng)原理框圖,包括TVP5150的參數(shù)設(shè)置電路和數(shù)據(jù)采集電路。

        圖1 系統(tǒng)原理框圖

        1.1視頻輸入模塊

        本系統(tǒng)中,通過模擬攝像頭進行視頻采集,模擬攝像頭的輸出信號制式為PAL,再通過解碼芯片將模擬視頻信號轉(zhuǎn)換成i.MX27提供的CSI接口所支持的YCbCr信號。

        本系統(tǒng)使用的是TI公司生產(chǎn)的TVP5150數(shù)字視頻解碼器芯片,輸入為1路S-Video信號,支持NTSC/PAL/SECAM等制式的視頻[1];輸出ITU-R BT.656內(nèi)嵌同步信號的數(shù)據(jù);通過I2C總線接口設(shè)置內(nèi)部寄存器從而控制TVP5150芯片參數(shù)(包括亮度、對比度、色調(diào)、飽和度等)。芯片只需外接一個14.318 MHz晶振,就可以支持各個標準視頻格式,同時提供像素時鐘PIXCLK、行同步信號HSYNC、場同步信號VSYNC,便于外部電路讀取圖像。

        1.2圖像采集控制

        圖像采集控制部分選用多媒體SoC處理器芯片[2]——Freescale公司生產(chǎn)的i.MX27。i.MX27提供的CSI傳感器接口支持CCIR656視頻格式接口;8位數(shù)據(jù)端口,支持YCC、YUV、RGB和Bayer數(shù)據(jù)輸入;支持8位或16位數(shù)據(jù)接收到32位FIFO中打包;FIFO中的像素數(shù)據(jù)可以通過可編程I/O或DMA直接讀取;與eMMA中的PrP預(yù)處理器有專用鏈接,視頻數(shù)據(jù)可以直接傳輸給PrP;傳感器主時鐘頻率可設(shè)置。通過引腳配置,設(shè)置8位數(shù)據(jù)信號輸入,場同步信號VSYNC、行同步信號HSYNC、像素時鐘信號PIXCLK。

        2系統(tǒng)工作流程

        系統(tǒng)上電后,首先完成處理器芯片i.MX27的初始化,然后i.MX27通過I2C總線對TVP5150進行初始化,設(shè)置其工作狀態(tài);完成初始化后,系統(tǒng)開始運行;CSI接口接收從TVP5150傳輸過來的YUV視頻數(shù)據(jù),并且通過DMA通道直接送給預(yù)設(shè)好的存儲區(qū)域。

        2.1TVP5150初始化

        TVP5150內(nèi)部有寄存器,在芯片上電復(fù)位后必須對其初始化才能使其正常工作。i.MX27通過I2C總線設(shè)置TVP5150內(nèi)部寄存器,從而完成初始化及參數(shù)配置。TVP5150中,引腳SCL設(shè)為時鐘輸入,SDA設(shè)為數(shù)據(jù)輸入。當SCL為高電平時,SDA由高電平向低電平跳變,開始數(shù)據(jù)寫入。I2C總線在傳送數(shù)據(jù)時,必須保證在SCL為高電平時SDA上數(shù)據(jù)穩(wěn)定,否則就判斷為開始或結(jié)束信號。I2C主設(shè)備發(fā)送一個字節(jié)后,從設(shè)備需要將數(shù)據(jù)線SDA拉低作為應(yīng)答信號(ACK)返回給主設(shè)備,才能表示發(fā)送成功。

        下面簡要介紹如何利用Linux2.6實現(xiàn)I2C總線功能,初始化TVP5150。

        Linux2.6對I2C總線具有很好的支持,在Linux系統(tǒng)中,抽象出了3個層次:平臺依賴層、硬件抽象層和用戶接口層[3]。

        驅(qū)動中的I2C適配器對應(yīng)于I2C總線上的一個I2C設(shè)備,在本設(shè)計中TVP5150就是一個I2C適配器。

        硬件抽象層為上層提供I2C適配器驅(qū)動和設(shè)備驅(qū)動的注冊、注銷管理等API,其為硬件平臺無關(guān)層,向下屏蔽了物理總線適配器的差異,定義了統(tǒng)一的訪問策略和接口,向上提供了統(tǒng)一的接口,便于I2C設(shè)備驅(qū)動通過總線適配器進行數(shù)據(jù)收發(fā),主體存在于i2c-core.h和i2c-core.c這兩個文件中,本設(shè)計中不需要修改這兩個文件。

        用戶接口層為用戶提供了通過I2C總線訪問具體設(shè)備的接口,I2C設(shè)備驅(qū)動主要包含了數(shù)據(jù)結(jié)構(gòu)i2c_driver和i2c_client,本設(shè)計需要根據(jù)具體設(shè)備實現(xiàn)其中的成員函數(shù)[4]。

        本設(shè)計在tvp5150.c文件中實現(xiàn)了TVP5150用戶接口層的I2C驅(qū)動配置。

        static struct i2c_driver driver = {

        .driver = {

        .name = "tvp5150",//I2C設(shè)備名

        },

        .id = I2C_DRIVERID_TVP5150,//I2C設(shè)備號

        .attach_adapter = tvp5150_attach_adapter,

        //I2C設(shè)備掛載函數(shù)

        .detach_client = tvp5150_detach_client,

        //I2C設(shè)備卸載函數(shù)

        .command = tvp5150_command,//處理命令請求函數(shù)

        };

        在芯片驅(qū)動文件tvp5150.c中,函數(shù)tvp5150_config對寄存器進行了設(shè)置:

        tvp5150_write_reg(0x00, 0x00);

        //設(shè)置芯片從AIP1A通道輸入單路信號

        tvp5150_write_reg(0x03, 0x09);

        /*禁止27引腳輸出,使能YOUT[7:0]視頻數(shù)據(jù)和像素時鐘SCLK輸出,HSYNC、VSYNC/PALI、AVID、FID/GLCO引腳為高阻態(tài),關(guān)閉場消隱信號*/

        tvp5150_write_reg(0x0D, 0x47);

        //設(shè)置輸出格式為ITU-R BT.656

        通過以上設(shè)置,TVP5150已經(jīng)可以正常工作。

        2.2CSI接口的初始化

        CSI模塊以YUV格式接收數(shù)字視頻的輸入以及時序控制信號,TVP5150輸出的YUV420數(shù)字視頻信號輸入到CSI接口,通過時序邏輯輸入到RxFIFO寄存器,在視頻采集模式下不屏蔽CPU的訪問,后續(xù)的DMA通道直接傳輸RxFIFO中的數(shù)據(jù)給CPU。將CSI的控制寄存器1(CSICR1)的第28位PrP_IF_EN置為0,以屏蔽CSI和PrP直連通道。

        2.3應(yīng)用層實現(xiàn)

        V4L2是Linux系統(tǒng)中視頻設(shè)備的內(nèi)核驅(qū)動架構(gòu)[5],對于視頻采集功能,V4L2提供了v4l2 capture驅(qū)動專門處理,catpure驅(qū)動均封裝在內(nèi)核文件mxc_capture.c中,而其下層則是與硬件交互的CSI驅(qū)動。

        應(yīng)用層的具體實現(xiàn)都通過V4L2庫中的用戶編程接口來完成,已經(jīng)屏蔽了所有的硬件。在打開視頻設(shè)備之后,需要對視頻捕獲格式等參數(shù)進行設(shè)置,v4l2提供了兩個重要的結(jié)構(gòu)體來實現(xiàn)[6]。

        (1) struct v4l2_format結(jié)構(gòu)體

        v4l2_format結(jié)構(gòu)體用來設(shè)置視頻捕獲格式,由于后續(xù)的視頻編碼模塊支持的最大分辨率是720×576,因此這里視頻捕獲窗口大小設(shè)為720×576,并且TVP5150A輸出的視頻數(shù)據(jù)是YUV420格式的,因此該結(jié)構(gòu)體各參數(shù)設(shè)置如下:

        fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;

        //設(shè)置工作模式為CAPTURE

        fmt.fmt.pix.pixelformat =V4L2_PIX_FMT_YUV420;

        //設(shè)置采集格式為YUV420

        fmt.fmt.pix.width = 720;//設(shè)置幀寬720像素

        fmt.fmt.pix.height = 576;//設(shè)置幀高576像素

        fmt.fmt.pix.bytesperline = 720;

        fmt.fmt.pix.priv = 0;

        fmt.fmt.pix.sizeimage = 0;

        fmt.fmt.pix.field = V4L2_FIELD_INTERLACED;

        (2) struct v4l2_streamparam結(jié)構(gòu)體

        struct v4l2_streamparam結(jié)構(gòu)體用來設(shè)置視頻流的幀速率。

        parm.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;

        parm.parm.capture.timeperframe.numerator = 1;

        parm.parm.capture.timeperframe.denominator =30;

        //視頻流的幀速率為30 fps

        parm.parm.capture.capturemode = 0;

        設(shè)置好攝像頭的采集參數(shù)之后,需要為視頻幀的存儲申請緩沖區(qū),這里的緩沖區(qū)是個環(huán)形隊列,視頻流開啟后,v4l2驅(qū)動程序會按照設(shè)定的幀速率(這里是30 fps)來更新環(huán)形隊列,用戶空間每次都是從這個環(huán)形緩沖隊列中獲取幀數(shù)據(jù)。這里將環(huán)形隊列大小設(shè)為典型值3,即可以存放3個幀緩沖。

        3功能驗證

        視頻流開啟后,利用Linux提供的mmap I/O讀取方式,循環(huán)地讀取視頻數(shù)據(jù)[7],再利用CSI接口與eMMA中的前處理器PrP的直連通道,將YUV數(shù)據(jù)轉(zhuǎn)換成用于RGB數(shù)據(jù),再傳輸給視頻編碼芯片轉(zhuǎn)換成模擬視頻信號,利用LCD進行視頻顯示。實驗結(jié)果表明,得到的視頻圖像清晰穩(wěn)定。

        結(jié)語

        參考文獻

        [1] TEXAS INSTRUMENTS.TVP5150AM1 Data Manual,2004.

        [2] 何晶,孫義和.多媒體處理器結(jié)構(gòu)綜述[J].計算機工程,2007,33(9):222-224.

        [3] 宋寶華.Linux設(shè)備驅(qū)動開發(fā)詳解[M].北京:人民郵電出版社,2008:208-240.

        [4] JONATHAN CORBET.Linux設(shè)備驅(qū)動程序[M].3版.北京:中國電力出版社,2006:21-298.

        [5] 李珊珊,王旭國.基于V4L2的遠程視頻采集系統(tǒng)設(shè)計與實現(xiàn)[D].武漢:武漢理工大學(xué).2011:1-4.

        [6] COX A.Video 4 Linux Programming[EB/OL].[2015-08]. www.redhat.com.

        [7] 龔周.基于Linux的通用視頻音頻采集系統(tǒng)的設(shè)計[J].電腦知識與技術(shù),2008,3(22):1-6.

        李敏(碩士研究生),主要從事樓宇可視對講系統(tǒng)的研究。

        美滿電子科技宣布,Marvell EZ-Connect MW300和MW302微控制器單芯片系統(tǒng)(SoC)將支持面向IoT設(shè)備的通信協(xié)議Google Weave,其用來通過移動設(shè)備和Web進行設(shè)備配置、手機到設(shè)備到云的通信以及用戶互動。MW300系列微控制器是高集成度SoC,為IoT應(yīng)用而優(yōu)化,配備了全面的軟件開發(fā)工具包,該工具包支持Apple HomeKit以及多種IoT云平臺,例如亞馬遜的AWS-IoT Service。Marvell業(yè)界領(lǐng)先的EZ-Connect微控制器已經(jīng)得到全球領(lǐng)先設(shè)備制造商的采用,用來開發(fā)廣泛的產(chǎn)品,包括家用電器、恒溫器、一氧化碳/煙霧探測器、玩具、無線存儲系統(tǒng)、HomeKit配件以及其他智能連接產(chǎn)品。Marvell客戶現(xiàn)在能夠快速開發(fā)全面支持Google Weave的產(chǎn)品并推向市場。前不久,Marvell剛剛推出Andromeda Box物聯(lián)網(wǎng)平臺,該平臺面向基于安卓的Google Brillo操作系統(tǒng),提供對Google Weave協(xié)議的原生支持。Marvell IoT平臺除了已支持的基于Brillo OS的網(wǎng)關(guān)、集線器和邊緣設(shè)備,現(xiàn)又增加了對基于Weave協(xié)議的終端設(shè)備的支持,Marvell為領(lǐng)先設(shè)備制造商和開發(fā)商提供了一款真正端到端的IoT平臺。

        Marvell EZ-Connect MW300 Wi-Fi微控制器的主要特性:高集成度SoC,采用強大的Cortex-M4F微控制器,支持802.11n Wi-Fi無線連接;安全引導(dǎo)以從根本上可信的硬件為基礎(chǔ),實現(xiàn)了徹底的多層安全解決方案,支持安全持久的存儲和通信。

        Marvell EZ-Connect MW300和MW302無線微控制器SoC面向所有IoT應(yīng)用,包括可穿戴設(shè)備、家居自動化、家居安防、個人醫(yī)療保健、智能家電、智能玩具、配飾與遙控器、汽車、照明、工業(yè)互聯(lián)網(wǎng)以及更多應(yīng)用。

        Analog Video Acquisition System Based on TVP5150A and i.MX27

        Li Min

        (College of Automation,Nanjing University of Science and Technology,Nanjing 210000,China)

        Abstract:In the paper,the video capture technology of video intercom system is researched,and the feasibility of the video decoder chip is discussed.In the system,TVP5150 is used as the video decoder and i.MX27 is used as the control kernel.The kernel of Linux2.6 is used to initialize the TVP5150 through the I2C bus,and the kernel driver architecture V4L2 of the video device with Linux system is used to achieve the function of video acquisition.

        Key words:TVP5150;video acquisition;Linux kernel;i.MX27

        收稿日期:(責(zé)任編輯:楊迪娜2015-08-10)

        中圖分類號:TP332

        文獻標識碼:A

        精品丝袜一区二区三区性色| 成人乱码一区二区三区av| 中文字幕人妻中文| 中出内射颜射骚妇| 精品视频专区| av资源吧首页在线观看| 国内免费自拍9偷1拍| 欧洲美女熟乱av| 中文字幕久久精品一二三区| 亚洲国产一区二区三区亚瑟| 日本激情视频一区在线观看| 国产成人综合久久大片| 中文字幕亚洲精品一区二区三区| 亚洲成a人无码| 久久欧美与黑人双交男男| www久久久888| 亚洲av网一区二区三区成人| 少妇激情av一区二区三区| 人妻聚色窝窝人体www一区| 粉嫩少妇内射浓精videos| 精品熟妇av一区二区三区四区| 男女动态91白浆视频| 欧美肥婆性猛交xxxx| 日本熟妇人妻xxxxx视频| 2020亚洲国产| 亚洲av一二三四五区在线| 人人妻人人澡人人爽人人精品浪潮 | 中文字幕有码在线亚洲| 又硬又粗进去好爽免费| 48沈阳熟女高潮嗷嗷叫| 偷窥村妇洗澡毛毛多| 国产精品专区一区二区av免费看| 91亚洲国产成人精品一区.| 加勒比特在线视频播放| 美女主播网红视频福利一区二区 | 欧美黑人性暴力猛交喷水| 小12箩利洗澡无码视频网站| 国产三级av在线播放| 产美女被爽到高潮免费a| 色吊丝中文字幕| 波霸影院一区二区|