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

        ?

        基于UVC協(xié)議的USB3.0視頻采集系統(tǒng)設(shè)計

        2016-11-26 08:17:50李江波馬春庭王全賴彬

        李江波,馬春庭,王全,賴彬

        (1.軍械工程學院,石家莊 050000;2.中國人民解放軍 73136部隊)

        基于UVC協(xié)議的USB3.0視頻采集系統(tǒng)設(shè)計

        李江波1,2,馬春庭1,王全2,賴彬2

        (1.軍械工程學院,石家莊050000;2.中國人民解放軍73136部隊)

        以MT9M034作為光電成像元件,CYUSB3014作為主控芯片,通過GPIF II接口采集CMOS圖像傳感器的數(shù)據(jù),并為每一幀數(shù)據(jù)添加UVC視頻數(shù)據(jù)標頭,將其轉(zhuǎn)換為符合UVC協(xié)議標準的視頻數(shù)據(jù),最后通過USB3.0接口以乒乓DMA的方式將其傳送至PC,實現(xiàn)了免驅(qū)動、高速率、高分辨率的UVC視頻設(shè)備。實驗結(jié)果表明,該系統(tǒng)運行穩(wěn)定,傳輸速率高,更換CMOS圖像傳感器可以制成不同規(guī)格的UVC視頻設(shè)備,具有良好的推廣價值。

        視頻采集;CYUSB3014;MT9M034;UVC

        引 言

        隨著科技的不斷發(fā)展,圖像傳感器在性能上有了極大的提升,但普通用戶對圖像傳感器的使用還存在諸多不便,例如對于某種圖像傳感器,用戶必須安裝相應的驅(qū)動程序;更換高速率、高分辨率的圖像傳感器時必須要更換相應驅(qū)動程序。而這些困難對于不熟悉圖像傳感器原理的用戶是難以在短時間內(nèi)克服的,在這種情況下,研究一種通用的、使用方便的視頻采集系統(tǒng)具有重要意義[1]。

        UVC(USB Video Class)是微軟與另外幾家設(shè)備廠商聯(lián)合推出的、為USB視頻設(shè)備定義的協(xié)議標準,目前已成為USB org標準之一。當前主流的操作系統(tǒng)(如Windows XP SP2 and later、Linux 2.4.6 and later、MacOS 10.5 and later)均已內(nèi)置UVC設(shè)備驅(qū)動,因此符合UVC規(guī)格的硬件設(shè)備不需要安裝任何驅(qū)動程序即可在終端(如PC)正常使用。本文以Aptina公司的CMOS圖像傳感器MT9M034采集外部視頻數(shù)據(jù),以CyPress公司的USB3.0控制器芯片CYUSB3014作為傳輸控制芯片,將原始視頻數(shù)據(jù)轉(zhuǎn)換為符合UVC協(xié)議的視頻數(shù)據(jù),經(jīng)USB3.0接口上傳至PC機實時顯示。該設(shè)計可對各種類型的圖像傳感器進行調(diào)試,也可制成不同規(guī)格的UVC視頻設(shè)備。其優(yōu)點在于連接PC時不用安裝驅(qū)動,利用現(xiàn)有的VLC媒體播放器或AMCAP軟件可以方便地設(shè)置圖像傳感器的各類參數(shù),極大地方便用戶對各類圖像傳感器的調(diào)試和使用。

        1 系統(tǒng)總體設(shè)計

        該系統(tǒng)[2-8]由兩部分組成,以圖像傳感器MT9M034模組作為視頻采集單元,以CYUSB3014開發(fā)板作為傳輸控制單元。系統(tǒng)結(jié)構(gòu)如圖1所示。

        圖1 系統(tǒng)結(jié)構(gòu)框圖

        該系統(tǒng)通過USB3.0接口將視頻數(shù)據(jù)傳送到PC機, CYUSB3014完成兩項任務:

        ①通過GPIF II接口采集圖像傳感器發(fā)出的視頻數(shù)據(jù),并在固件中將視頻數(shù)據(jù)轉(zhuǎn)換為符合UVC協(xié)議的格式,之后以DMA方式通過USB3.0接口傳送至PC機。

        ②以USB控制傳輸?shù)姆绞脚cPC進行命令互動,固件程序通過I2C接口對圖像傳感器內(nèi)部寄存器進行配置,并在圖像傳感器正常工作后,通過I2C接口向其發(fā)送控制命令。

        該系統(tǒng)連接上PC后,USB3.0接口提供的5 V電源使得該系統(tǒng)正常啟動,之后PC會自動識別該系統(tǒng),并可通過VLC媒體播放器軟件對該系統(tǒng)進行操作。

        該系統(tǒng)應用框圖如圖2所示。

        圖2 系統(tǒng)應用框圖

        1.1 視頻采集單元

        選用Aptina公司的MT9M034圖像傳感器的原因是,MT9M034在高分辨率、低照度條件下具有良好的感光性、寬動態(tài)范圍(WDR 120 dB)和高清畫質(zhì)(720P/60 HD),不受惡劣光照條件的約束,可以放置于任何地方,消除了低照度條件下對視頻畫面造成的不良影響。MT9M034模組的連接示意圖如圖3所示。

        圖3 MT9M034模組連接示意圖

        MT9M034通過12位同步并行數(shù)據(jù)接口DQ[0:11]輸出YUY2格式的視頻數(shù)據(jù),每個像素占用2個字節(jié),分辨率為1280×720,幀頻為60 fps。

        MT9M034模組正常工作時所需電壓為1.8 V和2.8 V,由USB3.0接口電源線(5 V)經(jīng)電源芯片RT9167/A轉(zhuǎn)換后提供。電源模塊如圖4所示,以1.8 V為例。

        1.2 傳輸控制單元

        該單元[9-11]是整個系統(tǒng)的核心,而CYUSB3014又是該單元的核心,擁有主頻為200 MHz的32位ARM 926EJ-S處理器,能在多種外設(shè)(如USB、GPIF II、SPI、UART)之間實現(xiàn)高效靈活的DMA連接。固件程序只需設(shè)定好外設(shè)數(shù)據(jù)傳輸?shù)呐渲?DMA模塊便可接管這些外設(shè),實現(xiàn)特定的功能。下面以該單元實現(xiàn)的功能流程為例,分別予以分析:

        圖4 電源模塊示意圖

        ①要使MT9M034模組輸出視頻數(shù)據(jù),必須進行初始化,故而CYUSB3014需通過I2C接口對其內(nèi)部寄存器進行配置;

        ②要使PC能夠自動識別該系統(tǒng)為UVC設(shè)備,CYUSB3014必須提供UVC特定的USB描述符進行枚舉,并對PC中關(guān)于UVC設(shè)備視頻屬性或控制屬性的SET/ GET(設(shè)置/獲得)請求作出響應;

        ③要通過GPIF II接口采集MT9M034模組的視頻數(shù)據(jù),CYUSB3014必須根據(jù)MT9M034的輸出引腳特性, 對GPIF II接口進行相應的配置;

        ④要使視頻能夠高速傳輸,CYUSB3014需構(gòu)建DMA通道,將GPIF II模塊的視頻數(shù)據(jù)直接轉(zhuǎn)移至DMA緩沖區(qū),并配置DMA,使得視頻數(shù)據(jù)可以被修改;

        ⑤要使視頻數(shù)據(jù)的格式符合UVC協(xié)議,CYUSB3014需在每一幀數(shù)據(jù)前添加UVC視頻數(shù)據(jù)標頭;

        ⑥要使該單元既能夠響應PC的UVC請求,又能夠向PC實時傳送視頻數(shù)據(jù),固件程序在啟動完畢后,必須建立至少兩個應用線程:一個線程負責實時視頻傳輸,另一個線程負責等待PC的UVC請求,并在請求來臨時能夠調(diào)用相應的函數(shù)響應用戶請求。

        下面根據(jù)分析得到的6點要求,對傳輸控制單元進行詳細闡述。該單元的內(nèi)部流程如圖5所示。

        1.2.1 初始化MT9M034

        通過I2C總線接口將數(shù)據(jù)寫入MT9M034內(nèi)部寄存器中,將其配置為12位并行輸出,輸出格式為YUY2, 720P(1280×720)高清畫質(zhì)。

        注意:MT9M034的從設(shè)備地址為8位,內(nèi)部寄存器的地址和值均為16位。當MT9M034的SADDR引腳接地時,其I2C從地址為0x20(寫地址)和0x21(讀地址),反之則為0x30(寫地址)和0x31(讀地址)。

        圖5 單元內(nèi)部流程圖

        1.2.2 識別UVC設(shè)備

        ①根據(jù)USB規(guī)范中UVC描述符的定義,UVC設(shè)備需具有以下4種邏輯元素:IT為輸入端;OT為輸出端;PU為處理單元;EU為擴展單元。四者在UVC描述符中互相連接,如圖6所示。

        圖6 四種邏輯元素連接圖

        輸入端(IT)描述符用來描述圖像傳感器的相關(guān)信息;輸出端(OT)描述符用來描述IT、PU、EU和PC之間的接口關(guān)系,如定義使用了哪個USB端點;處理單元(PU)描述符用來描述視頻數(shù)據(jù)的各項屬性,如亮度、對比度、色調(diào)等;擴展單元(EU)描述符可以自主添加任何想要實現(xiàn)的特性,此處為空。

        此外,UVC描述符中重要的還有:視頻控制(VC)接口描述符,定義了控制屬性(如亮度、對比度、PTZ、白平衡等);視頻流(VS)接口描述符,定義了視頻屬性(如寬度、高度、幀頻、分辨率等)。

        圖7 UVC設(shè)備枚舉流程圖

        注意:只有使用UVC協(xié)議規(guī)定的USB描述符進行枚舉,PC的操作系統(tǒng)才能識別為UVC設(shè)備。

        UVC設(shè)備枚舉流程如圖7所示。

        ②枚舉之后,PC中的UVC驅(qū)動程序還會繼續(xù)向UVC設(shè)備發(fā)送一系列請求,來確定設(shè)備狀態(tài),如查詢UVC設(shè)備是否支持某種分辨率輸出或者設(shè)置為MJPEG格式輸出等,所有的請求都會通過USB控制端點(EP0)發(fā)送給CYUSB3014,故而固件程序必須能夠?qū)SB描述符中UVC設(shè)備的控制屬性和傳輸能力作出正確的描述和準確的控制。

        下面以更改UVC設(shè)備輸出視頻格式為MJPEG為例,以流程圖的形式對這一過程進行說明,如圖8所示。

        1.2.3 配置GPIF II接口

        CYUSB3014的GPIF II接口用于采集外部硬件的數(shù)據(jù),先連硬件,后配軟件。將MT9M034輸出引腳連接至CYUSB3014的GPIF II接口的對應引腳,如圖9所示。

        根據(jù)CYUSB3014的例程,其中對如何配置GPIF II接口有詳細說明,這里只需根據(jù)MT9M034 的Frame-Valid、Line-Valid、PCLK、DQ[0:11]引腳信號時序圖,在例程基礎(chǔ)上進行修改,下面分別予以闡述:

        圖8 PC應用程序更改UVC設(shè)備屬性流程圖

        圖9 GPIF II接口引腳連接圖

        ①將GPIF II接口配置為12位數(shù)據(jù)總線,由于12位總線是非字節(jié)對齊方式,故而將GPIF II接口配置為16位數(shù)據(jù)總線,多余的4位用零填充。

        ②由于GPIF II接口無流量控制功能,而MT9M034輸出數(shù)據(jù)時,幀(Frame-Valid)與幀之間、行(Line-Valid)與行之間有少許時間間隔,是斷續(xù)狀態(tài),但一整行數(shù)據(jù)輸出時是連續(xù)的,為保證數(shù)據(jù)完整性,一行數(shù)據(jù)輸出時采集過程不能中斷。如前所述,MT9M034輸出分辨率為1280×720,即每行1280個像素,而YUY2格式下每一個像素占用2個字節(jié),所以每一次行數(shù)據(jù)傳輸需要2 560個字節(jié)的存儲空間。

        圖10 數(shù)據(jù)傳輸框圖

        ③每一幀數(shù)據(jù)采集完畢后都向CPU發(fā)送中斷,以便CPU及時準確地修改每一幀數(shù)據(jù),使其符合UVC協(xié)議標準。

        根據(jù)以上3點,結(jié)合GPIF II例程,借助GPIF II Designer軟件可以方便地設(shè)計出符合要求的GPIF II配置文件。

        1.2.4 構(gòu)建和配置DMA通道

        CYUSB3014數(shù)據(jù)的輸出和輸入與下面4個術(shù)語有關(guān):

        ①插座:外部硬件與CYUSB3014內(nèi)部RAM的連接點,CYUSB3014上的每個外設(shè)接口(如USB、GPIF、SPI 等)都有與其自身相連的插座,如GPIF插座包括一組寄存器,用于指向有效的DMA描述符,并可以使能或標記中斷。

        ②DMA描述符:一組位于CYUSB3014內(nèi)部RAM的寄存器,保存有DMA緩沖區(qū)的地址和長度數(shù)據(jù),以及指向下一DMA描述符的指針。

        ③DMA緩沖區(qū):屬于內(nèi)部RAM,可以存儲GPIF II接口采集的視頻數(shù)據(jù)。

        ④GPIF線程:是GPIF II模塊的數(shù)據(jù)專用通道,用于將采集的外部視頻數(shù)據(jù)與GPIF插座連接起來。

        插座可以通過各種事件發(fā)信號,也可以通過中斷向CPU發(fā)信號,均由固件配置。例如將視頻數(shù)據(jù)從GPIF II模塊傳至USB模塊,GPIF插座通知USB插座:我已將某DMA緩沖區(qū)填滿,可以取出數(shù)據(jù);或者USB插座通知GPIF插座:我已清空某DMA緩沖區(qū)。

        插座填滿或清空DMA緩沖區(qū)后,需要一段延時用于從一個DMA描述符轉(zhuǎn)移至另一個描述符,在此期間,插座不能傳輸數(shù)據(jù)。而GPIF II模塊支持多線程傳輸,GPIF線程的切換沒有延遲,所以通常采用多個GPIF線程傳輸視頻數(shù)據(jù),這樣可以屏蔽切換DMA描述符時GPIF插座所需要的延時。另外,切換DMA描述符時,對應的DMA緩沖區(qū)也相應切換,采用乒乓方式進行數(shù)據(jù)傳輸。

        GPIF線程的切換策略在CyPress公司發(fā)布的CYUSB3014的開發(fā)例程中有詳細介紹,此處只需在其基礎(chǔ)上略做修改即可,采用兩個GPIF線程傳輸數(shù)據(jù)的流程如圖10所示。

        1.2.5 添加UVC視頻數(shù)據(jù)標頭

        YUY2格式是YUY格式中4∶2∶2的采樣版本,UVC規(guī)范支持這一格式。亮度值Y是對所有像素采樣,而色度值U和V僅對偶數(shù)像素采樣,每個像素占用兩個字節(jié)。

        注意:UVC規(guī)范中,每一次的USB傳輸操作都需要添加UVC視頻數(shù)據(jù)標頭。USB批量傳輸數(shù)據(jù)包大小為1024字節(jié),一次USB傳輸操作包括16個批量數(shù)據(jù)包,因此一次USB傳輸操作可以傳送16×1024=16 384字節(jié)。而CYUSB3014架構(gòu)要求DMA緩沖區(qū)大小區(qū)為16字節(jié)的倍數(shù),由于DMA緩沖區(qū)需要保留供CPU填充數(shù)據(jù)標頭的12字節(jié)空間,不再是16字節(jié)的倍數(shù),所以DMA緩沖區(qū)大小應為16 384-16=16 368字節(jié)。而一幀視頻數(shù)據(jù)為1280×720×2=1 843 200字節(jié),1 843 200÷(1024× 16)=112.61,即當幀數(shù)據(jù)結(jié)束時,對應的DMA緩沖區(qū)未飽和,此時固件需要強制打包DMA緩沖區(qū),觸發(fā)發(fā)送事件。因而每一幀數(shù)據(jù)總共需要113次USB傳輸操作,即需添加113次數(shù)據(jù)標頭。

        數(shù)據(jù)標頭描述一幀數(shù)據(jù)的各類屬性,如表1所列。

        表1 數(shù)據(jù)標頭屬性

        添加數(shù)據(jù)標頭的方法:采用手動DMA通道操作,當GPIF插座采集數(shù)據(jù)填滿某一DMA緩沖區(qū)后,產(chǎn)生中斷通知CPU;CPU將12字節(jié)的數(shù)據(jù)標頭添加至該DMA緩沖區(qū)前面空閑的16字節(jié)位置,之后將新的DMA描述符(指向該DMA緩沖區(qū)前偏移16字節(jié)的位置)傳遞給USB模塊;USB模塊接到通知后,根據(jù)新的DMA描述符將視頻數(shù)據(jù)取走。

        1.2.6 建立兩個線程

        CYUSB3014固件負責視頻流的采集、修改與發(fā)送,首先配置CPU及I/O引腳,之后初始化I2C、DMA通道、USB端點等模塊,確保枚舉為UVC設(shè)備。然后調(diào)用函數(shù)(Cy U3PKernelEntry)啟動Thread X實時操作系統(tǒng)(RTOS)。該固件會創(chuàng)建兩個應用線程:UVCApp Thread 和UVCApp EP0Thread,RTOS調(diào)配資源維護這兩個應用線程的正常運轉(zhuǎn)。

        UVCApp Thread線程用于管理和傳輸視頻流,它調(diào)用CYUSB3014內(nèi)部模塊的啟動函數(shù),枚舉器件,然后開始視頻傳輸。UVCApp Thread線程在流事件發(fā)生后,會調(diào)配DMA緩沖區(qū)開始視頻傳輸,并在每一幀后或停止視頻流時清除FIFO。該線程在沒有視頻流事件時,主應用線程將在該處循環(huán)等待,直到發(fā)生視頻流事件為止。當終止視頻流時,會復位與視頻流事件相關(guān)的變量,并復位相關(guān)的DMA通道,等待下一個視頻流事件的發(fā)生。

        UVCAppEP0Thread線程用于等待接收特定的UVC請求,并調(diào)用相應的函數(shù)處理這些請求。該線程根據(jù)通過EP0端口發(fā)送來的UVC特定控制請求(SET_CUR、GET_CUR、GET_MIN和GET_MAX),對亮度、PTZ和PROBE/COMMIT控制,通過I2C接口對圖像傳感器傳送相匹配的命令。

        CYUSB3014固件程序運行流程如圖11所示。

        圖11 固件程序流程圖

        2 硬件實驗結(jié)果

        使用上述方法進行設(shè)計,將名為cyfxuvc.img的固件程序輸入該系統(tǒng),然后接入PC的USB3.0接口,借助PC操作系統(tǒng)內(nèi)置的UVC驅(qū)動,可以將該系統(tǒng)識別為UVC設(shè)備。之后打開VLC媒體播放器應用程序,選擇視頻源為該UVC設(shè)備,按下播放按鈕,VLC媒體播放器就會向CYUSB3014發(fā)送請求視頻數(shù)據(jù)命令,CYUSB3014將視頻數(shù)據(jù)從圖像傳感器MT9M034發(fā)送至PC,VLC媒體播放器對視頻數(shù)據(jù)進行解析并顯示圖像。

        結(jié) 語

        針對圖像傳感器使用不便的缺點,運用USB3.0傳輸控制芯片CYUSB3014將圖像傳感器輸出的視頻數(shù)據(jù)轉(zhuǎn)換為符合UVC協(xié)議標準的數(shù)據(jù)并傳輸至PC實時顯示,實現(xiàn)了免驅(qū)動、高速率、高分辨率的圖像傳感器測試模塊設(shè)計。

        實驗結(jié)果表明,該系統(tǒng)運行穩(wěn)定,傳輸速率高,更換CMOS圖像傳感器可以制成不同規(guī)格的UVC視頻設(shè)備,具有良好的推廣價值。

        [1]殷開亮.基于UVC協(xié)議的USB3.0圖像采集系統(tǒng)設(shè)計[D].蘇州:蘇州大學,2014.

        [2]梁曉芬.USB3.0超高速數(shù)據(jù)采集卡的設(shè)計與實現(xiàn)[D].西安:中國科學院研究生院(西安光學精密機械研究所),2014.

        [3]岳孝忠.基于USB3.0的高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計與研究[D].太原:中北大學,2015.

        [4]朱鴿,鄭杰,肖宇峰.基于UVC協(xié)議的ROS視頻監(jiān)控系統(tǒng)設(shè)計[J].微型機與應用,2015,34(19):14-16,23.

        [5]段建波.基于USB3.0高分辨率攝像頭圖像采集系統(tǒng)設(shè)計[D].寧波:寧波大學,2014.

        [6]楊成禹,莊曉奇.基于ARM的圖像采集與傳輸系統(tǒng)設(shè)計[J].電子測量技術(shù),2015,38(12):59-62.

        [7]衛(wèi)建華,鄧云兵,高燚,等.基于ARM的嵌入式視頻采集系統(tǒng)的設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2016,39(3):30-34.

        [8]曾程.基于USB2.0免驅(qū)攝像頭固件的設(shè)計[D].武漢:華中師范大學,2011.

        [9]Cypress Semiconductor.Getting Started with EZ-USB FX3 [EB/OL].[201605].http://www.cypress.com/?rID= 72599.

        [10]Cypress Semiconductor.How to Implement an Image Sensor interface Using EZ-USB FX3 in a USB video class(UVC) Framework[EB/OL].[2016-05].http://www.cypress. com/?rID=72599.

        [11]Cypress Semiconductor.EZ-USB FX3 HD 720p Camera Kit[EB/OL].[2016-05].http://www.cypress.com/? rID=72599.

        USB3.0 Video Acquisition System Based on UVC Protocol

        Li Jiangbo1,2,Ma Chunting1,Wang Quan2,Lai Bin2

        (1.Ordnance Engineering College,Shijiazhuang 050000,China;2.No.73136 Unit of PLA)

        A USB3.0 video acquisition system based on UVC protocol is designed.The MT9 M034 is used as the photoelectric device and the CYUSB3014 is used as the controller chip.CYUSB3014 acquires the data from CMOS image sensor,then converts the data to video that conforms to the UVC protocol.At last,the video data is transferred to PC through the USB3.0 interface in the way of ping-pong DMA,so a UVC video equipment of free-drive,high-speed,high-resolution is achieved.The experiment results show that the system runs stably,has high transmission rate,and can be made into different specifications of UVC video equipment by replacing the CMOS image sensor.The system has a good value for promotion.

        video acquisition;CYUSB3014;MT9M034;UVC

        TP274

        A

        (責任編輯:薛士然2016-05-05)

        日本人妻三级在线观看| 国产在线观看免费一级| 亚洲精品成人网线在线播放va| 久久aⅴ无码av高潮AV喷| 午夜桃色视频在线观看| 亚洲精品中文字幕视频色| 免费人成黄页在线观看国产| 日韩精品极视频在线观看免费| 国内自拍速发福利免费在线观看| 性色av一二三天美传媒| 香港三级日本三级a视频| 蜜桃麻豆www久久囤产精品| 久久精品国产亚洲av高清色欲| 精品少妇大屁股白浆无码| 亚洲AV无码AV色| 精品少妇一区二区三区四区 | 91桃色在线播放国产| 男男啪啪激烈高潮无遮挡网站网址| 亚洲麻豆视频免费观看| 国产激情一区二区三区| 久久www免费人成—看片| 男女性高爱潮免费观看| 久久精品国产亚洲AⅤ无码| 久久精品视频中文字幕无码| 最新亚洲视频一区二区| 亚洲国产精品18久久久久久| 亚洲综合av一区二区三区| 在线视频精品免费| 国产精品久久婷婷婷婷| 色噜噜精品一区二区三区| 亚洲av激情一区二区| 熟女少妇精品一区二区| 韩国精品一区二区三区无码视频 | 第九色区Aⅴ天堂| 亚洲精品国产av成人网| 婷婷五月深深久久精品| 免费人成视频xvideos入口| 久久国产成人午夜av影院| 一区二区三区福利在线视频| 五月婷婷开心五月播五月| 国产精品无码制服丝袜|