《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA和DVI視頻接收器設(shè)計(jì)
基于FPGA和DVI視頻接收器設(shè)計(jì)
來源:微型機(jī)與應(yīng)用2013年第16期
張君昌1, 張毛毛1, 于 樂2, 于洪偉1
(1.西北工業(yè)大學(xué) 電子信息學(xué)院, 陜西 西安 710129; 2. 中國航空無線電電子研究所,上海
摘要: 給出了一個(gè)符合DVI1.0規(guī)范的基于FPGA的視頻接收器的實(shí)現(xiàn)方法,該方法利用FPGA內(nèi)置的PLL和IODELAY模塊實(shí)現(xiàn)時(shí)鐘恢復(fù)和相位調(diào)整,可節(jié)約數(shù)字時(shí)鐘管理模塊(DCM); 利用FPGA內(nèi)置的ISERDES和DDR實(shí)現(xiàn)串/并轉(zhuǎn)換,并用邏輯來實(shí)現(xiàn)字對(duì)齊,利用FIFO來實(shí)現(xiàn)通道對(duì)齊;最后經(jīng)過解碼,輸出視頻信號(hào)。與采用專用視頻接口接收芯片相比,其充分利用FPGA自身的資源,提高了系統(tǒng)集成度,減少了資源消耗。
Abstract:
Key words :

摘  要: 給出了一個(gè)符合DVI1.0規(guī)范的基于FPGA的視頻接收器的實(shí)現(xiàn)方法,該方法利用FPGA內(nèi)置的PLL和IODELAY模塊實(shí)現(xiàn)時(shí)鐘恢復(fù)和相位調(diào)整,可節(jié)約數(shù)字時(shí)鐘管理模塊(DCM); 利用FPGA內(nèi)置的ISERDES和DDR實(shí)現(xiàn)串/并轉(zhuǎn)換,并用邏輯來實(shí)現(xiàn)字對(duì)齊,利用FIFO來實(shí)現(xiàn)通道對(duì)齊;最后經(jīng)過解碼,輸出視頻信號(hào)。與采用專用視頻接口接收芯片相比,其充分利用FPGA自身的資源,提高了系統(tǒng)集成度,減少了資源消耗。
關(guān)鍵詞: 數(shù)字視頻接口; FPGA; 延時(shí)單元

    DVI(Digital Video Interface)接口[1-3]是由數(shù)字顯示工作組在1999年制定的,利用最小變換差分信號(hào)TMDS作為基本電氣鏈接信號(hào)。圖像源生成的3路紅、綠、藍(lán)信號(hào)和控制信號(hào)在時(shí)鐘的作用下由DVI發(fā)送器進(jìn)行編碼并串行化后,通過TMDS通道發(fā)送給DVI接收器;DVI接收器對(duì)其進(jìn)行串/并轉(zhuǎn)換、通道對(duì)齊、解碼等一系列處理后發(fā)送給顯示設(shè)備,如圖1所示。DVI接口傳送的是數(shù)字信號(hào),因此可以減少模/數(shù)轉(zhuǎn)換的成本,節(jié)約時(shí)間,速度更快,加之它與HDMI在電氣特性上完全兼容,因此升級(jí)更容易。DVI鏈路結(jié)構(gòu)如圖1所示。

    DVI在高速串行遠(yuǎn)距離傳輸后進(jìn)行接收,常規(guī)做法是用接收芯片與FPGA相結(jié)合來進(jìn)行接收,但在用FPGA進(jìn)行視頻信號(hào)處理的場合無疑會(huì)增加系統(tǒng)功耗和成本。因此,提出一種充分利用FPGA自身資源來實(shí)現(xiàn)DVI接收的方法,即采用內(nèi)置TMDS I/O電氣接口的FPGA芯片而無需外接專用芯片來實(shí)現(xiàn)TMDS連接,加之FPGA的可編程性,可使用戶快速實(shí)現(xiàn)設(shè)計(jì),從而縮短設(shè)計(jì)周期。
  DVI的單TMDS只提供24 bit色深,當(dāng)用戶要求色深超過24 bit時(shí),并且系統(tǒng)已經(jīng)確認(rèn)顯卡和顯示器都支持雙鏈路TMDS,此時(shí)系統(tǒng)會(huì)啟動(dòng)雙TMDS鏈路,鏈路0(數(shù)據(jù)通道1~3)傳輸24 bit信息,其他顏色信息由鏈路1(數(shù)據(jù)通道4~6)傳輸。當(dāng)用戶的分辨率和刷新率要求超出單TMDS鏈路的傳輸能力時(shí)(單鏈路的最高像素傳輸頻率為165 MHz),系統(tǒng)會(huì)啟動(dòng)鏈路1,并定義顯示器上每一行的第一個(gè)像素為1,奇數(shù)像素。鏈路0用來傳輸奇數(shù)像素信息,鏈路1用來傳輸偶數(shù)像素信息。由于TMDS鏈路共用一條時(shí)鐘回路,所以雙鏈路工作時(shí),鏈路的時(shí)鐘頻率為像素?cái)?shù)據(jù)帶寬的一半。
  DVI編碼器在時(shí)鐘驅(qū)動(dòng)下, 利用TMDS編碼方式對(duì)8 bit像素信號(hào)和2 bit控制信號(hào)分別進(jìn)行8 bit轉(zhuǎn)10 bit和2 bit轉(zhuǎn)10 bit編碼,最低有效位先送出。這種編碼方式充分體現(xiàn)了TMDS 的兩大優(yōu)勢(shì),即:變換次數(shù)最小化和直流均衡作用。
1 接收器設(shè)計(jì)
1.1 系統(tǒng)架構(gòu)

    DVI接收器的系統(tǒng)結(jié)構(gòu)包括電平轉(zhuǎn)換、時(shí)鐘恢復(fù)、相位調(diào)整、串/并轉(zhuǎn)化、字對(duì)齊、通道對(duì)齊、解碼等幾部分組成,由TMDS通道傳輸過來的串行信號(hào)最終被轉(zhuǎn)化成3路8 bit的像素信號(hào)和2 bit的控制信號(hào),如圖2所示。

1.2 時(shí)鐘恢復(fù)和相位調(diào)整
    時(shí)鐘與同步是DVI接收器設(shè)計(jì)中非常重要的一步,以DVI信號(hào)提供的像素時(shí)鐘為參考時(shí)鐘,在TMDS通道上傳輸?shù)拇袛?shù)據(jù)的時(shí)鐘為參考時(shí)鐘的10倍,在接收端采樣時(shí)要用倍頻后的速率進(jìn)行采樣。文中這幾個(gè)時(shí)鐘信號(hào)由PLL電路產(chǎn)生,采用DDR[4]的方式采樣數(shù)據(jù),可實(shí)現(xiàn)兩倍于以往的串行數(shù)據(jù)傳輸速率,因此只需將參考時(shí)鐘5倍頻即可,這樣可降低器件成本。
    DVI信號(hào)在經(jīng)過長距離傳輸后,數(shù)據(jù)與采樣時(shí)鐘的相位不確定性很大,有較大的相位偏移,對(duì)正確采樣有很大的影響,因此需要進(jìn)行相位調(diào)整[5]。利用FPGA IO 接口模塊內(nèi)置的IODELAY[4]模塊,在算法上利用狀態(tài)機(jī)動(dòng)態(tài)調(diào)整串行數(shù)據(jù)的延時(shí)來獲取最佳的數(shù)據(jù)采樣時(shí)刻。由于之前已可用DCM來實(shí)現(xiàn)相位調(diào)整,IODELAY模塊與DCM模塊相比較,其缺少兩個(gè)輸出,分別為DCM的psdone和DO[0],因此給IODELAY模塊模擬兩個(gè)輸出psdone和DO[0],在調(diào)用IODELAY模塊的代碼中依照它們?cè)贒CM中的時(shí)序來編寫代碼,完成在IODELAY中相同的功能。其中psdone相當(dāng)于DCM模塊中的psdone,表示一級(jí)調(diào)整的完成;DO[0]相當(dāng)于DCM中的DO[0],表示調(diào)整級(jí)數(shù)超過63級(jí)時(shí)溢出,用這兩個(gè)輸出送到相位調(diào)整算法的狀態(tài)機(jī)上來實(shí)現(xiàn)動(dòng)態(tài)調(diào)整。由于通過TMDS通道傳輸?shù)囊曨l數(shù)據(jù)是隨機(jī)的,但4個(gè)控制字是周期發(fā)送的,因此可以用來檢測時(shí)鐘相對(duì)于數(shù)據(jù)的位置。如果收到4個(gè)控制字之一, 就認(rèn)為數(shù)據(jù)有效。如圖3所示,串行數(shù)據(jù)的兩個(gè)采樣窗口之間是抖動(dòng)區(qū)域,抖動(dòng)區(qū)域描述了時(shí)鐘和數(shù)據(jù)在傳輸邊沿的到達(dá)時(shí)間不確定性,有效采樣的部分稱作窗。為保證有效采樣,采樣時(shí)鐘必須調(diào)整到窗的中心。

    相位調(diào)整算法如下:
    (1)如果時(shí)鐘的初始位置在S2處,則增加IODELAY的相位偏移值至T1并記錄下來,再增加相位偏移值至T2并記錄下來,(T2-T1)/2即為最佳的采樣時(shí)刻。
    (2)如果時(shí)鐘的初始位置在S1處,則增加相位偏移至S2處,即從下一個(gè)抖動(dòng)區(qū)開始,同步驟(1)分別增加相位偏移至T1、T2記錄,則(T2-T1)/2為最佳的采樣時(shí)刻。
    相位調(diào)整亦可通過DCM模塊來實(shí)現(xiàn),不需要額外模擬輸出信號(hào)。與通過DCM模塊來實(shí)現(xiàn)相位調(diào)整不同的是,IODELAY實(shí)現(xiàn)相位調(diào)整時(shí)是數(shù)據(jù)在移動(dòng),而DCM則是時(shí)鐘在動(dòng)。利用IODELAY可以節(jié)約FPGA內(nèi)的DCM和BUFG資源,但需要額外提供200 MHz的工作時(shí)鐘,且IODELAY模塊的相位調(diào)節(jié)步長和幅度是固定的,對(duì)于較低頻率的DVI數(shù)據(jù),可能無法完成采樣窗口掃描。
1.3 數(shù)據(jù)串/并轉(zhuǎn)換
    利用FPGAIO接口模塊內(nèi)的ISERDES[5]完成串/并轉(zhuǎn)換,與用一系列寄存器完成串/并轉(zhuǎn)換相比,避免了時(shí)序混亂且節(jié)約資源。要實(shí)現(xiàn)1:10串/并轉(zhuǎn)換,需要將兩個(gè)ISERDES串接起來,即將一個(gè)設(shè)置為主ISERDES,一個(gè)設(shè)置為從ISERDES,然后將主ISERDES的輸出SHIFTOUT1、SHIFTOUT2連接到從ISERDES的SHIFTIN1、SHIFTIN2上,如圖4所示。

 

 

    串/并轉(zhuǎn)換后還需進(jìn)行字對(duì)齊,ISERDES本身的BITSLIP可完成字對(duì)齊,但速度較慢,所以利用多路選擇器邏輯來完成,如圖5所示。其核心思想依然是靠檢測控制字將經(jīng)過串/并轉(zhuǎn)換后的兩次原始10 bit數(shù)據(jù)rawword[9:0]并接組成20   bit rawwords[19:0],然后依次檢測rawwords[9:0]、rawwowds[10:1]、…rawwords[18:9]、rawwords[19:10]是否與控制字相等,若檢測到相等,則必為rawwords[9:0]、rawwowds[10:1]、…rawwords[18:9]、rawwords[19:10]之一,之后即可通過多路選擇器選出具有正確高低字節(jié)的數(shù)據(jù)輸出。
1.4 通道對(duì)齊
    每個(gè)通道會(huì)收到一個(gè)來自于相位調(diào)整狀態(tài)機(jī)的表示字對(duì)齊后的數(shù)據(jù)是否為有效的信號(hào),如果3個(gè)通道都有效,則通道對(duì)齊模塊內(nèi)的FIFO緩存器開始傳送數(shù)據(jù),不斷地寫入和讀出。FIFO是一個(gè)16 B深度的分布式RAM資源,當(dāng)一個(gè)通道的FIFO輸出檢測到控制字時(shí),則該通道的讀出數(shù)據(jù)流被延遲,僅當(dāng)另外兩個(gè)通道檢測到控制字時(shí)才恢復(fù),這樣可消除通道延遲。
1.5 DVI解碼
  在經(jīng)過通道對(duì)齊后,通過DVI解碼規(guī)則可解出8 bit數(shù)據(jù)信號(hào)和2 bit控制信號(hào),解碼規(guī)則如下:DE=0(消隱期)解出2 bit的控制信號(hào),DE=1解出8 bit的像素信號(hào)。
2 仿真結(jié)果
    本設(shè)計(jì)在modelsim6.5版本上進(jìn)行仿真[6],功能仿真如圖6所示。用H264E_VDATA文件作為Y、U、V源文件,用它產(chǎn)生R、G、B信號(hào),經(jīng)過發(fā)送端到達(dá)接收端時(shí),接收端的輸入信號(hào)為圖中的TMDS差分信號(hào)blue_p、blue_n、green_p、green_n、red_p、red_n和時(shí)鐘tmdsclk_p、tmdsclk_n。輸出信號(hào)為3路8位的R、G、B信號(hào)blue_out、green_out、red_out和一路的時(shí)鐘恢復(fù)信號(hào)pixel_clk及控制信號(hào)hsync、vsync、de。
    此設(shè)計(jì)在Xilinx公司的Virtex5-330T FPGA上得到驗(yàn)證。資源利用情況如表1所示。受限于FPGA內(nèi)PLL模塊的最高輸出主頻450 MHz,所以主時(shí)鐘工作頻率為90 MHz,即TMDS串行輸入數(shù)據(jù)的理論最高速率為900 Mb/s。

    實(shí)際測試使用PC機(jī)顯卡輸出的DVI信號(hào)源,DVI傳輸線長1 m,點(diǎn)頻74.5 MHz,視頻分辨率1 280×720。接入FPGA后DVI信號(hào)解碼正確,輸出的并行視頻數(shù)據(jù)接入FPGA內(nèi)的視頻處理模塊后,可采集得到正確的動(dòng)態(tài)視頻畫面,且畫面清晰無噪點(diǎn),證明了文中方法的可行性。
    本文討論了一種符合DVI1.0規(guī)范的、基于FPGA的DVI接收器設(shè)計(jì)與實(shí)現(xiàn)方法。經(jīng)驗(yàn)證可得,此方法可用于DVI視頻的接收解碼,尤其是在利用FPGA進(jìn)行DVI解碼設(shè)計(jì)時(shí),可減少資源消耗,提高集成度,充分利用FPGA自身資源實(shí)現(xiàn)。
參考文獻(xiàn)
[1] 王春軍,潘昉晟.DVI接口在嵌入式系統(tǒng)中的應(yīng)該[J]. 計(jì)算機(jī)工程,2005,31(20):207-208.
[2] 尹淑仙,徐火生.DVI核心技術(shù)剖析與邏輯實(shí)現(xiàn)[J].液晶與顯示,2007,22(6):765-769.
[3] 馮永茂,王瑞光,丁鐵頭.數(shù)字視頻接口-DVI1.0[J]. 電子技術(shù)應(yīng)用,2003,29(9):10-14.
[4] Xilinx. Virtex-5 FPGA user guide[EB/OL].(2009-03-19)[2013-06-01]http://www.xilinx.com.
[5] FENG B, CRABILL E. Video connectivity using TMDS I/O  in Spartan-3A FPGAs[EB/OL].(2008-07-25)[2013-06-01]http://www.xilinx.com.
[6] Xilinx. Virtex-5 libraries guide for HDL designs[EB/OL].(2009-09-16)[2013-06-01]http://www.xilinx.com.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 亚洲国产成a人v在线| 和僧侣的交行之夜樱花| 69堂国产成人精品视频不卡| 好男人社区成人影院在线观看| 久久久999久久久精品| 晚上睡不着来b站一次看过瘾| 亚洲码欧美码一区二区三区| 第四色最新网站| 另类人妖与另类欧美| 蜜桃臀无码内射一区二区三区| 国产成人精品无码播放| 大尺度视频网站久久久久久久久| 在总受文里抢主角攻np| japanese国产在线看| 成人免费在线视频| 中文字幕在线观看亚洲日韩 | 最近中文字幕2019国语7| 亚洲妇熟xxxx妇色黄| 波多野结衣在线免费视频| 你好老叔电影观看免费| 精品999久久久久久中文字幕| 又色又污又黄无遮挡的免费视 | 天天影院成人免费观看| 一本无码人妻在中文字幕免费| 成年女人永久免费观看片| 久久久www成人免费精品| 日本国产成人精品视频| 久久精品99国产精品日本| 日韩资源在线观看| 五月天婷婷免费视频| 欧美xxxxx在线观看| 亚洲午夜久久久影院| 欧美性大战久久久久久| 亚洲成a人片在线观看www| 欧美理论在线观看| 亚洲欧美日韩色| 欧美精品久久久久久久自慰| 亚洲欧美色图小说| 欧美野外疯狂做受xxxx高潮| 亚洲欧美视频一级| 欧美精品国产综合久久|