• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于FPGA的USB3.0高清視頻傳輸系統(tǒng)的設(shè)計

      2019-09-20 05:41:54
      測控技術(shù) 2019年3期
      關(guān)鍵詞:視頻格式高清時鐘

      (長沙理工大學(xué) 物理與電子科學(xué)學(xué)院 湖南 長沙 410114)

      隨著信息化時代的到來,人們對視頻畫面的細(xì)膩程度要求越來越高,因此實時傳輸高清視頻圖像成為一種趨勢[1]。USB接口作為生活中最普遍的接口,在圖像傳輸中扮演著不可或缺的角色,而傳統(tǒng)基于USB2.0接口的傳輸模塊一般將視頻壓縮后進(jìn)行傳輸,以犧牲畫面質(zhì)量完成圖像的傳輸,其傳輸效率已經(jīng)不能滿足市場的需求。隨著USB3.0協(xié)議的發(fā)布,其理論速度達(dá)到了5 Gbit/s,以優(yōu)于USB2.0 480 Mbit/s 10倍的速率,成為高清視頻傳輸?shù)男聦?。國?nèi)市場視頻傳輸系統(tǒng)多采用標(biāo)準(zhǔn)串行接口,而采集DVI 接口的高清視頻,以5 Gbit/s的吞吐量傳輸多種格式高清視頻的產(chǎn)品較少,因此研究一種基于USB3.0的高清視頻傳輸系統(tǒng)具有一定的應(yīng)用價值。

      1 系統(tǒng)簡介

      整個系統(tǒng)至下而上是由DVI接口模塊、FPGA控制模塊、SDRAM、USB3.0模塊和上位機組成,系統(tǒng)框圖如圖1所示。

      視頻源通過DVI接口芯片,將視頻轉(zhuǎn)換為行、場、同步信號和RGB數(shù)據(jù)傳輸給FPGA,F(xiàn)PGA控制一片SDRAM進(jìn)行緩存,完成與USB3.0模塊的數(shù)據(jù)交換,之后CYUSB3014芯片將數(shù)據(jù)通過USB micro-B接口和USB3.0協(xié)議發(fā)送至PC端顯示。

      視頻圖像傳輸?shù)幕玖鞒炭煞譃槿剑?/p>

      ① 完成一幀視頻圖像數(shù)據(jù)的采集;

      ② 完成一幀視頻圖像數(shù)據(jù)的緩存;

      ③ 完成一幀視頻圖像數(shù)據(jù)的發(fā)送。

      圖1 系統(tǒng)設(shè)計方案框圖

      循環(huán)此基本流程即可構(gòu)成系統(tǒng)的整個工作流程,同樣,基本流程的的吞吐量就是整個系統(tǒng)的數(shù)據(jù)吞吐量。完成高清視頻傳輸?shù)年P(guān)鍵是系統(tǒng)數(shù)據(jù)傳輸吞吐量,能滿足高清視頻的采集速率,也就是系統(tǒng)緩存和發(fā)送吞吐量滿足視頻數(shù)據(jù)的采集速率。

      完成定性分析之后,需要對每個模塊進(jìn)行一個準(zhǔn)確的定量分析。

      吞吐量的數(shù)學(xué)計算公式[2]為

      (1)

      式中,Total_data為一幀圖像的比特數(shù)(bit);Total_lantency為采集或傳輸一幀圖像需要的時間(s)。

      顯然,直接傳輸24bit的RGB視頻數(shù)據(jù)時,TP_USB3_0

      高清視頻源經(jīng)DVI接口模塊采集視頻數(shù)據(jù)之后傳給FPGA進(jìn)行視頻編碼,F(xiàn)PGA將編碼后的視頻數(shù)據(jù)緩存在SDRAM中[3],并使用兩個容量為1024×32-bit的異步FIFO進(jìn)行視頻數(shù)據(jù)的跨時鐘域交換,然后通過USB3.0芯片將數(shù)據(jù)發(fā)送到PC端進(jìn)行顯示。不同模塊所處的時鐘域如圖2所示。

      圖2 各模塊所處時鐘域

      2 FPGA控制邏輯設(shè)計

      FPGA控制邏輯設(shè)計包括采集DVI視頻數(shù)據(jù)時的視頻格式識別和編碼、控制SDRAM進(jìn)行視頻數(shù)據(jù)緩存、控制異步FIFO進(jìn)行跨時鐘域傳輸[4]。

      2.1 視頻格式識別和編碼

      目前主流的視頻格式如表1所示,每一種都有其固定的頻率和像素點,可根據(jù)其有效像素頻率分別計數(shù)視頻的長度和寬度,通過查表1,可識別目標(biāo)視頻格式,并產(chǎn)生相對應(yīng)的編號,插入到幀頭同步碼中。在PC端解出視頻編碼,產(chǎn)生對應(yīng)的視頻格式緩存區(qū),并顯示。

      2.2 帶寬計算

      在SDRAM緩存一幀圖像的前提下,USB3.0模塊要在下一幀圖像到來之前將當(dāng)前圖像傳輸完。最大分辨率1920像素×1080像素視頻格式一幀的像素點為2200×1125個,頻率為60 Hz,所以實際像素時鐘頻率為f1=2200×1125×60=148.5 MHz,一幀圖像連續(xù)傳輸2200×1125個像素點,每個像素點占24-bit,而實際上每幀有效像素點只有1920×1080個,經(jīng)過RGB轉(zhuǎn)YUV后每個像素點只有16-bit,F(xiàn)IFO將兩個16-bit數(shù)據(jù)合成一個32-bit數(shù)據(jù)再傳到USB3.0模塊,而且經(jīng)過FIFO存儲后它們不是幀數(shù)據(jù)那樣的間斷,而是連續(xù)的,所以一幀的時間內(nèi),只傳輸了1920×1080/2個32-bit數(shù)據(jù),傳輸一幀的時間T1=1/60,因此f2=(1920×1080)/(2×T1)=62.208 MHz,f2為1920×1080視頻格式的有效像素時鐘頻率,同理,其余的視頻格式的有效像素時鐘頻率也可以計算出來,如表1。

      表1 不同視頻格式的幀有效像素時鐘

      從表1中可以看出,幀有效像素時鐘頻率最高為62.208 MHz,Slave FIFO接口速度為100 MHz,USB3.0模塊完全滿足傳輸條件。當(dāng)Slave FIFO運行在100 MHz時,由于使用了8B/10B編碼,USB3.0接口的傳輸速度V=100 MHz×10/8×32=4 Gbit/s,V是FX3這款芯片能達(dá)到的最高傳輸吞吐率。

      2.3 SDRAM控制邏輯

      SDRAM可將采集到的不連續(xù)的視頻數(shù)據(jù),按幀緩存有效視頻數(shù)據(jù),保證視頻數(shù)據(jù)的完整性和連續(xù)性。選用三星公司的K4S643232H-UC60芯片,容量為64 Mbit,其工作頻率可達(dá)到166 MHz,為保證系統(tǒng)穩(wěn)定,將其工作頻率定為150 MHz。FPGA將采集到的RGB 24-bit數(shù)據(jù)轉(zhuǎn)為YUV 16-bit后,1080p格式的視頻一幀圖像大小Total_bit=1920×1080×16-bit,而SDRAM有21-bit的行列地址線,存儲空間為221×32-bit,所以一片SDRAM可儲存2.02幀圖像;因為在下一幀圖像到來之前,USB3.0模塊能傳完當(dāng)前圖像,因此只需一片SDRAM每次緩存一幀圖像即可實現(xiàn)圖像的傳輸[3]。

      SDRAM狀態(tài)機控制器總共有4個狀態(tài):WAIT_WR_SDR、WR_SDR、WAIT_RD_SDR和RD_SDR,初始狀態(tài)為WAIT_WR_SDR,如圖3所示。SDRAM使用頁突發(fā)的方式進(jìn)行讀寫,每次讀寫一整行256個32-bit數(shù)據(jù)。視頻傳輸?shù)年P(guān)鍵是在讀和寫操作的同時要檢測同步碼,以保證SDRAM中緩存的為一幀完整的圖像[5]。

      WAIT_WR_SDR狀態(tài):當(dāng)(WR_FIFO_RDY==1 && SDRAM_RD_REQ==0),令WR_EN=1,進(jìn)入WR_SDR狀態(tài);當(dāng)(WR_FIFO_RDY==0 && SDRAM_RD_REQ ==1),進(jìn)入WAIT_RD_SDR狀態(tài)。

      圖3 SDRAM讀寫控制狀態(tài)機

      WR_SDR狀態(tài):在FPGA寫入圖像數(shù)據(jù)到SDRAM中任一周期,如果檢測到同步碼,則令WR_EN=0,wr_addr=0,進(jìn)入到WAIT_RD_SDR狀態(tài);否則,則完成當(dāng)前寫操作后令WR_EN=0并進(jìn)入WAIT_RD_SDR狀態(tài)。

      WAIT_WR_SDR狀態(tài):當(dāng)(RD_FIFO_RDY==1 && SDRAM_WR_REQ==0),則RD_EN=1,進(jìn)入RD_SDR狀態(tài);當(dāng)(RD_FIFO_RDY==0 && SDRAM_WR_REQ ==1),進(jìn)入WAIT_WR_SDR狀態(tài)。

      RD_SDR狀態(tài):在FPGA從SDRAM中讀出圖像數(shù)據(jù)的任一周期,如果檢測到同步碼,則令RD_EN=0,rd_addr=0,進(jìn)入到WAIT_WR_SDR狀態(tài);否則,則完成當(dāng)前讀操作后令RD_EN=0并進(jìn)入WAIT_WR_SDR狀態(tài)。

      3 USB3.0模塊的設(shè)計

      3.1 CYUSB3014固件程序設(shè)計

      CYUSB3014內(nèi)集成了運行頻率可達(dá)到200 MHz的ARM926EJ-S內(nèi)核,512 KB的嵌入式SRAM[6]。在Cypress官方SDK中的Eclipse開發(fā)環(huán)境下進(jìn)行固件開發(fā)。固件程序是指由內(nèi)核控制和調(diào)用芯片資源,接收并處理外部命令的代碼。固件的整體框架如圖5所示[7],主要功能為:實現(xiàn)USB3.0協(xié)議、GPIF II接口的時序配置和DMA通道的配置[7]。

      圖4 USB3.0模塊連接框圖

      圖5 FX3固件框架

      3.2 GPIF II接口

      GPIF II是一種可編程、位寬為32-bit的接口,由一套可編程的存儲器映射的寄存器定義,運行頻率可達(dá)到100 MHz,可連接多種類型外部器件[7]。本系統(tǒng)使用FPGA為控制芯片,并選用Slave FIFO接口模式。

      使用Cypress提供的GPIF II designer軟件實現(xiàn)特定的GPIF II接口寄存器配置,經(jīng)過編譯,生成C頭文件,將包含GPIF II寄存器配置的C頭文件加載到Eclipse下的固件工程中,實現(xiàn)EZ-USB FX3的數(shù)據(jù)傳輸通[8]。設(shè)計流程如圖6所示[7]。

      圖6 GPIF II設(shè)計流程圖

      3.3 DMA通道

      DMA的配置包含Socket(套接字)、DMA Descriptor(DMA描述符)、DMA Buffer(DMA緩存區(qū))以及GPIF Thread(DMA線程)四個要素。Socket是外設(shè)硬件模塊(如GPIF、USB和SPI)與 FX3 RAM之間的連接點;DMA Descriptor是一組位于FX3 RAM的寄存器,存儲了DMA緩沖區(qū)的地址和數(shù)據(jù)及下一描述符的指針,以構(gòu)建成DMA描述符鏈;DMA Buffer是RAM的一部分,用來暫時存放通過FX3的數(shù)據(jù);GPIF Thread是用來將外部數(shù)據(jù)引腳連接至Socket的專用數(shù)據(jù)路徑。例如,將視頻數(shù)據(jù)流從GPIF II接口傳輸給USB模塊;因為不需要修改數(shù)據(jù)流中的任何數(shù)據(jù),所以配置為自動DMA通道。傳輸視頻數(shù)據(jù)流使用FX3超高速stream模式,此時需要配置兩個DMA通道,一個是GPIF II端口到USB端口的P2U通道,一個是USB端口到GPIF II端口的U2P通道,通道的傳輸吞吐率由緩沖區(qū)的數(shù)量決定,由于FX3硬件資源有限,且主要是實現(xiàn)視頻流從下位機傳輸?shù)缴衔粰C的過程,因此將P2U通道定位優(yōu)先通道,配置8個緩存區(qū),U2P通道配置4個緩存區(qū),如圖7所示[8]。

      圖7 串流輸入的DMA傳輸設(shè)置

      4 上位機設(shè)計

      使用Cypress官方提供的示例驅(qū)動,實現(xiàn)CYUSB3014芯片的枚舉與通信。使用Microsoft Visual Studio 2010軟件編寫應(yīng)用程序,在Cypress公司提供的USB Control Center工具的基礎(chǔ)上[9],添加了視頻顯示界面,如圖8所示。上位機功能包括檢測并枚舉USB設(shè)備、下載固件到USB芯片RAM或Flash中、對下位機傳來的數(shù)據(jù)進(jìn)行幀頭檢測、將視頻數(shù)據(jù)去幀頭后按幀保存并顯示圖像;使用Cypress官方測速工具Streamer測試Stream_IN或Stream_OUT模式時的傳輸速率和丟包現(xiàn)象。上位機是按字節(jié)讀取CYUSB3014中的數(shù)據(jù),每次1 B,每2 B為一個像素點數(shù)據(jù),如果是800×600格式的視頻,則將幀頭之后的數(shù)據(jù)保存到數(shù)組RGB_buff[600,1600]中,此時數(shù)組中保存的為一幀圖像的數(shù)據(jù)。

      5 仿真與系統(tǒng)測試

      系統(tǒng)測試分為兩個階段,首先是分模塊進(jìn)行測試,使用Xilinx的Chipsocpe工具和示波器調(diào)試每個模塊,確保硬件電路的正常,然后進(jìn)行FPGA時序仿真,編寫邏輯代碼,進(jìn)行系統(tǒng)聯(lián)調(diào)。

      5.1 硬件與FPGA固件調(diào)試

      視頻圖像在傳輸過程中不能丟失數(shù)據(jù),否則在PC端顯示時,畫面會產(chǎn)生抖動、錯位等很明顯的問題。因此先用FPGA產(chǎn)生DVI格式的自加數(shù)據(jù)給上位機顯示,以便于觀察圖像數(shù)據(jù)的完整性和正確性,如圖9所示,圖像正確顯示且無丟數(shù)、錯位現(xiàn)象。

      圖9 DVI測試數(shù)據(jù)

      用帶DVI接口的臺式機主機播放高清視頻模擬視頻源,測試視頻格式分辨率為1920×1080@60Hz,用示波器觀察TFP401A的時鐘、行和場同步信號頻率輸出,經(jīng)測試TFP401A正常工作,如圖10所示。

      圖10 1920×1080@60Hz的行同步信號和像素時鐘

      5.2 系統(tǒng)測試

      啟動傳輸,如圖11所示,圖像正常顯示,無丟數(shù)、錯位現(xiàn)象。

      圖12為Chipscope在線邏輯分析儀抓取FPGA讀出SDRAM中同步碼的時刻,意味著一幀視頻圖像數(shù)據(jù)傳輸完成,此時對SDRAM讀地址復(fù)位清零;同步碼為0xF08421、0xAA5580、0x3BE6E6,連續(xù)3個數(shù)據(jù)是為了不與像素數(shù)據(jù)重復(fù),其中0xAA5580中的8’h80代表該視頻流格式為1920×1080。使用Cypress官方測速工具Streamer測試Stream_IN模式時的傳輸速率,如圖13所示,V_Stream_IN=330800(KB/s)/1024=323.05 MB/s。

      圖12 SDRAM讀出同步碼

      圖13 Stream_IN模式時傳輸速率

      6 結(jié)束語

      為解決USB2.0帶寬不夠、速度較慢,其余接口便攜性不好而無法或不適合傳輸高清視頻的問題,設(shè)計了基于FPGA的USB3.0的高清視頻傳輸系統(tǒng),經(jīng)過實際測試,所設(shè)計的傳輸系統(tǒng),可傳輸8種主流分辨率的視頻格式,靈活便攜,較傳統(tǒng)的USB2.0傳輸系統(tǒng)相比,極大提升了傳輸性能,滿足了項目可靠、高速、便捷的設(shè)計要求,且USB3.0模塊采用兩層板設(shè)計,減少了成本。同時,因為采用模塊化,預(yù)留了DVI輸出接口,可從上位機傳輸高清視頻到顯示器上,功能更加完善。

      猜你喜歡
      視頻格式高清時鐘
      別樣的“時鐘”
      古代的時鐘
      視頻教學(xué)資源的格式轉(zhuǎn)換技巧
      4K高清監(jiān)控需要兩條腿走路
      有趣的時鐘
      時鐘會開“花”
      數(shù)碼單反拍攝高清視頻時同期聲的收錄探索
      新媒體研究(2015年7期)2015-12-19 09:09:57
      4K概念松下旗艦無反相機GH4
      中國攝影(2014年9期)2014-09-24 22:30:53
      iPad看外語片用iPad視頻轉(zhuǎn)換器加字幕
      廣播電視技術(shù)中的常用視頻技術(shù)
      科技傳播(2011年10期)2011-06-14 02:29:04
      浮梁县| 鲜城| 大田县| 公安县| 武汉市| 广河县| 蒙城县| 庆安县| 五寨县| 罗平县| 仪征市| 潞西市| 松阳县| 巴里| 偏关县| 屏山县| 隆尧县| 孟州市| 来凤县| 古田县| 米脂县| 彰武县| 遵义县| 隆尧县| 乡宁县| 监利县| 石城县| 彰化市| 沙湾县| 托克逊县| 绥化市| 南城县| 和平县| 沾益县| 多伦县| 静乐县| 济阳县| 大方县| 琼中| 雷波县| 临安市|