国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于PCI Express總線的數(shù)字電視傳送流發(fā)送/采集卡設(shè)計(jì)

2014-07-02 00:29:34婁新磊
電視技術(shù) 2014年21期
關(guān)鍵詞:描述符采集卡驅(qū)動(dòng)程序

婁新磊,呂 衛(wèi),宋 垣

(1.天津大學(xué) 電子信息工程學(xué)院,天津 300072;2.南京炮兵學(xué)院廊坊校區(qū),河北 廊坊 065000)

基于PCI Express總線的數(shù)字電視傳送流發(fā)送/采集卡設(shè)計(jì)

婁新磊1,呂 衛(wèi)1,宋 垣2

(1.天津大學(xué) 電子信息工程學(xué)院,天津 300072;2.南京炮兵學(xué)院廊坊校區(qū),河北 廊坊 065000)

提出了一種基于PCI Express總線的數(shù)字電視傳送流發(fā)送/采集卡設(shè)計(jì)方案。詳細(xì)闡述了板卡的整體設(shè)計(jì)、硬件接口以及軟件實(shí)現(xiàn),重點(diǎn)介紹了如何發(fā)揮PCI Express總線高帶寬的優(yōu)勢實(shí)現(xiàn)高速DMA數(shù)據(jù)傳輸。最后,利用Quartus II 13.0開發(fā)環(huán)境下的SignalTap II工具對(duì)自行開發(fā)的PCI-E接口板進(jìn)行了在線調(diào)試,測試表明該設(shè)計(jì)能滿足數(shù)字電視傳送流傳輸系統(tǒng)的要求。

PCI Express總線;FPGA;鏈?zhǔn)紻MA;WinDriver

隨著數(shù)字電視技術(shù)的發(fā)展,數(shù)字電視傳送流采集系統(tǒng)在數(shù)字電視系統(tǒng)中的需求越來越廣泛,并且對(duì)計(jì)算機(jī)總線技術(shù)提出了越來越高的要求。目前,個(gè)人計(jì)算機(jī)與工業(yè)控制計(jì)算機(jī)中常用的總線主要有USB2.0/3.0總線、PCI總線和PCIExpress總線[1]。USB2.0總線和USB3.0總線的理論最大傳輸速率分別可達(dá)到480 Mbit/s和5.0 Gbit/s,但USB總線的CPU占用率較高,不適合多任務(wù)系統(tǒng)的應(yīng)用。PCI總線具有即插即用和傳輸速率高的特點(diǎn),在常用的32 bit數(shù)據(jù)寬度、33 MHz總線時(shí)鐘頻率下可達(dá)到132 Mbit/s的峰值傳輸速率,許多數(shù)據(jù)采集卡都采用了32 bit@33 MHz或更高的32 bit@66 MHz、64 bit@66 MHz的PCI總線接口。然而,作為一種并行總線,PCI總線的引腳數(shù)量多,容易出現(xiàn)接觸不良的故障,而且時(shí)鐘頻率不高,實(shí)現(xiàn)多路數(shù)字電視傳送流發(fā)送/接收的應(yīng)用比較吃力。PCIExpress(簡稱PCI-E)總線繼承了PCI總線多方面的優(yōu)點(diǎn),且數(shù)據(jù)傳輸速率有了很大程度地提高,同時(shí)機(jī)械結(jié)構(gòu)得到簡化,工作更為可靠。針對(duì)PCI-E總線的技術(shù)優(yōu)勢,本文以FPGA為控制器,設(shè)計(jì)了一款基于PCI-E總線的數(shù)字電視傳送流發(fā)送/采集卡,詳細(xì)討論了板卡的整體設(shè)計(jì)方案、硬件設(shè)計(jì)方案、Win?Driver驅(qū)動(dòng)程序和上層應(yīng)用程序設(shè)計(jì),實(shí)現(xiàn)了4路數(shù)字電視傳送流的實(shí)時(shí)傳輸。

1 硬件設(shè)計(jì)

在硬件上,以Altera公司的Cyclone IV GX系列FP?GA為控制器,實(shí)現(xiàn)數(shù)字電視傳送流的接收和發(fā)送、DDR2 SDRAM緩存的控制,并且使用FPGA集成的PCI-E硬核實(shí)現(xiàn)PCI-E總線接口。在主機(jī)端,開發(fā)了Windows 7操作系統(tǒng)下的PCI-E驅(qū)動(dòng)程序和MFC應(yīng)用程序來測試數(shù)字電視傳送流數(shù)據(jù)的接收、發(fā)送等功能。

1.1 硬件整體設(shè)計(jì)

硬件系統(tǒng)的總體設(shè)計(jì)如圖1所示。硬件設(shè)計(jì)主要分為4部分:1)ASI接口部分,該部分包括兩路ASI接收接口和兩路ASI發(fā)送接口,共4路,分為兩組,每組包含一路接收接口和一路發(fā)送接口,ASI接收接口由ASI接收電路和FPGA上的ASI接收器模塊(ASIReceiver)組成,ASI發(fā)送接口由ASI發(fā)送電路和FPGA上的ASI發(fā)送器模塊(ASI Transmitter)組成;2)DDR2 SDRAM緩存部分,該部分由FPGA上的DDR2 SDRAM控制器(DDR2 SDRAM Control?ler)和外部DDR2 SDRAM存儲(chǔ)器組成;3)DMA控制部分,該部分由自定義的邏輯來實(shí)現(xiàn);4)PCI-E總線接口部分,該部分由Altera公司提供的PCI-E IP硬核實(shí)現(xiàn)。

圖1 硬件系統(tǒng)設(shè)計(jì)框圖

硬件系統(tǒng)的數(shù)據(jù)傳輸包括數(shù)字電視傳送流接收通道和數(shù)字電視傳送流發(fā)送通道兩部分。

傳送流接收通道:串行傳送流經(jīng)過ASI接收電路進(jìn)入FPGA,ASI接收器模塊對(duì)其進(jìn)行串并轉(zhuǎn)換、解碼等操作,將串行傳送流轉(zhuǎn)換為并行碼流,然后存入DDR2 SDRAM緩存中。當(dāng)DDR2 DSRAM緩存中數(shù)據(jù)達(dá)到一定量的時(shí)候,中斷產(chǎn)生模塊產(chǎn)生中斷,PC端的中斷服務(wù)程序和上層軟件通過PCI-E總線接口將緩存中的數(shù)據(jù)讀出。

傳送流發(fā)送通道:首先PC端軟件將一定量的傳送流寫入DDR2 SDRAM緩存中,然后ASI發(fā)送器模塊將緩存中的碼流讀出進(jìn)行編碼、并串轉(zhuǎn)換等操作,將并行碼流轉(zhuǎn)換為串行傳送流,并通過ASI發(fā)送電路發(fā)送出去。當(dāng)DDR2 SDRAM緩存中的數(shù)據(jù)減少到一定量的時(shí)候,中斷產(chǎn)生模塊會(huì)產(chǎn)生中斷,PC端軟件檢測到中斷后再將一定量的傳送流寫入DDR2 SDRAM緩存中,如此反復(fù)。

1.2 數(shù)據(jù)緩存

本設(shè)計(jì)使用DDR2 SDRAM存儲(chǔ)器作為數(shù)據(jù)緩存,由FPGA硬件邏輯實(shí)現(xiàn)對(duì)DDR2 SDRAM的控制。緩存部分的設(shè)計(jì)原理如圖2所示,DDR2 SDRAM控制器包含2個(gè)寫端口和2個(gè)讀端口,每個(gè)端口通過1個(gè)FIFO與DDR2 SDRAM控制邏輯連接,4個(gè)端口共享DDR2 SDRAM的帶寬,分時(shí)占用DDR2 SDRAM的數(shù)據(jù)通道。DDR2 SDRAM控制邏輯實(shí)現(xiàn)對(duì)4個(gè)端口的仲裁控制和對(duì)DDR2 SDRAM接口的控制,仲裁控制決定某時(shí)刻DDR2 SDRAM數(shù)據(jù)通道由哪個(gè)端口使用。其中,數(shù)字電視傳送流接收通道使用寫端口1和讀端口1,發(fā)送通道使用寫端口2和讀端口2。本設(shè)計(jì)實(shí)現(xiàn)了2個(gè)傳送流輸入接口和2個(gè)傳送流輸出接口,4個(gè)接口分為兩組,使用兩片DDR2 SDRAM存儲(chǔ)器。

圖2 4端口DDR2 SDRAM控制器

1.3 PCI-E IP硬核介紹

系統(tǒng)選用Cyclone IV GX系列的FPGA,它內(nèi)嵌了一個(gè)PCI-E硬核模塊,符合PCI-E Base Specification V2.0標(biāo)準(zhǔn),支持×4通道,單向鏈路速率可達(dá)到8 Gbit/s[2]。

PCI-E IP硬核結(jié)構(gòu)如圖3所示,其功能模塊分為事務(wù)層、數(shù)據(jù)鏈路層、物理層3部分。事務(wù)層主要負(fù)責(zé)事務(wù)層數(shù)據(jù)包(TLP)的接收、緩存和發(fā)送,事物層接口既可以使用Avalon-ST接口,又可以使用Descriptor/Data接口。數(shù)據(jù)鏈路層位于事物層和物理層之間,作用是保證數(shù)據(jù)包完整性,提供了CRC檢測和恢復(fù)、DLLP的生成與拆解等服務(wù)。物理層位于最底層,分為MAC層和PHY層:MAC層通過鏈路訓(xùn)練與狀態(tài)指示狀態(tài)機(jī)完成鏈路初始化、訓(xùn)練以及維護(hù)工作,實(shí)現(xiàn)了擾碼與解擾碼功能;PHY層實(shí)現(xiàn)了8B/10B編碼與解碼、彈性緩沖、串行化/解串行化等功能。

圖3 PCI-E IP硬核

PCI-E硬核模塊和應(yīng)用程序?qū)又g的接口主要包括事物層接口和配置接口。事務(wù)層接口實(shí)現(xiàn)事物層數(shù)據(jù)包的發(fā)送和接收,本設(shè)計(jì)中使用Avalon-ST接口;配置接口實(shí)現(xiàn)中斷信號(hào)的傳送和PCI-E IP硬核配置空間的訪問。

1.4 DMA控制邏輯設(shè)計(jì)

DMA控制邏輯設(shè)計(jì)原理如圖4所示,該模塊主要有4部分組成:DMA讀模塊、DMA寫模塊、DMA讀/寫仲裁模塊、DMA控制/狀態(tài)寄存器模塊。DMA讀模塊和DMA寫模塊通過Avalon-MM總線與DDR2 SDRAM控制器連接,分別從DDR2 SDRAM中讀取數(shù)據(jù)和寫入數(shù)據(jù);DMA讀/寫仲裁模塊決定某時(shí)刻進(jìn)行DMA讀操作還是DMA寫操作,并通過Avalon-ST總線與PCI-E IP硬核模塊連接;DMA控制/狀態(tài)寄存器模塊包括與DMA操作相關(guān)的控制寄存器和狀態(tài)寄存器,該模塊通過中斷接口從中斷模塊獲取中斷請(qǐng)求,并通過配置接口發(fā)送到PCI-E IP硬核模塊。

圖4 DMA控制邏輯

DMA的傳輸方式可分為兩種:簡單DMA和鏈?zhǔn)紻MA。為了提高DMA傳輸效率,本模塊實(shí)現(xiàn)鏈?zhǔn)紻MA。該DMA模塊工作原理是[3]:首先,在主機(jī)端開辟一塊內(nèi)存區(qū)域存儲(chǔ)描述符表。描述符表描述的是主機(jī)與外設(shè)之間與數(shù)據(jù)傳輸相關(guān)的地址和長度信息,它由一個(gè)表頭和多個(gè)描述符組成,其中的每一個(gè)描述符對(duì)應(yīng)一次DMA操作。描述符表中的內(nèi)容由用戶自己填寫,描述表如表1所示。然后,主機(jī)通過設(shè)置設(shè)備端DMA模塊中的控制/狀態(tài)寄存器告訴設(shè)備要傳輸數(shù)據(jù)的描述符表起始地址和描述符個(gè)數(shù)。最后,主機(jī)端啟動(dòng)DMA傳輸,設(shè)備收到啟動(dòng)DMA傳輸?shù)拿詈螅紫雀鶕?jù)主機(jī)提供的描述符表信息檢索相應(yīng)的描述符,然后根據(jù)每一個(gè)描述符中的地址和長度信息,進(jìn)行相應(yīng)的DMA數(shù)據(jù)傳輸。所有的DMA描述符處理完成后,設(shè)備更新描述符頭部的EPLAST域,主機(jī)通過查詢EPLAST域獲得鏈?zhǔn)紻MA傳輸完成的信息,從而可以啟動(dòng)下一次鏈?zhǔn)紻MA傳輸。

表1 鏈?zhǔn)紻MA描述符表

2 軟件設(shè)計(jì)

2.1 驅(qū)動(dòng)程序設(shè)計(jì)

WinDriver是Jungo公司提供的驅(qū)動(dòng)程序開發(fā)工具包。該軟件提供了對(duì)PCIExpress接口設(shè)備的驅(qū)動(dòng)支持,也可以為兼容DMA功能的底層設(shè)備提供DMA服務(wù)[4]。驅(qū)動(dòng)程序的主要功能是初始化設(shè)備、配置FPGA、設(shè)置DMA操作、設(shè)置中斷操作以及為應(yīng)用程序提供接口函數(shù)。驅(qū)動(dòng)程序的工作流程如圖5所示。

圖5 WinDriver驅(qū)動(dòng)程序的工作流程

首先,通過調(diào)用WDC_DriverOpen(),WDC_PciScan?Devices(),WDC_PciDeviceOpen()等函數(shù)對(duì)設(shè)備進(jìn)行初始化;其次,通過簡單數(shù)據(jù)傳輸函數(shù)例如WDC_Multi?Transfer()完成對(duì)FPGA的初始化、配置等操作,并且根據(jù)需要設(shè)置DMA操作和中斷操作;最后,當(dāng)操作結(jié)束時(shí),調(diào)用WDC_PciDeviceClose(),WDC_DriverClose()等函數(shù)結(jié)束進(jìn)程。

2.2 應(yīng)用程序設(shè)計(jì)

根據(jù)需要在Visual Studio 2010下開發(fā)了基于MFC的應(yīng)用程序用來測試板卡的功能和性能。應(yīng)用程序主要實(shí)現(xiàn)設(shè)備的打開和關(guān)閉、對(duì)FPGA硬件邏輯中寄存器的訪問、數(shù)字電視傳送流的接收和發(fā)送功能。其中,數(shù)字電視傳送流的接收和發(fā)送由4個(gè)獨(dú)立的傳輸線程實(shí)現(xiàn),包括2個(gè)傳送流接收線程和2個(gè)傳送流發(fā)送線程。發(fā)送線程負(fù)責(zé)將一定量的數(shù)據(jù)寫入到板卡的DDR2 SDRAM緩存中,接收線程負(fù)責(zé)從DDR2 SDRAM緩存中讀出數(shù)據(jù)來驗(yàn)證發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的正確性和完整性。該應(yīng)用程序與板卡驅(qū)動(dòng)程序的關(guān)系如圖6所示。

圖6 系統(tǒng)的軟件結(jié)構(gòu)

3 測試結(jié)果與分析

測試時(shí)使用Acterna公司的數(shù)字電視碼流分析儀輸出測試碼流,并監(jiān)視發(fā)送/采集卡的輸出碼流有無誤碼,同時(shí)用Quartus II中的SignalTap II工具監(jiān)測DDR2 SDRAM緩存單元有無上溢/下溢的情況出現(xiàn)。反復(fù)測試表明,在4個(gè)通道傳送流傳輸均無誤的前提下,4個(gè)ASI接口的傳送流傳輸速度均可達(dá)到200 Mbit/s以上。

4 結(jié)束語

本文利用集成了PCI-E硬核的Cyclone IV GX系列FPGA設(shè)計(jì)了一種基于PCI-E總線的數(shù)字電視傳送流發(fā)送/采集卡,完成了FPGA硬件邏輯設(shè)計(jì)和主機(jī)端驅(qū)動(dòng)程序和應(yīng)用程序開發(fā)。該設(shè)計(jì)與使用專用的PCI-E橋接芯片的方案[5]相比,本地總線可支持更大的數(shù)據(jù)寬度,另外硬件成本也顯著降低。與文獻(xiàn)[6-7]提出的設(shè)計(jì)方案相比,本設(shè)計(jì)使用大容量的DDR2 SDRAM作為數(shù)據(jù)緩存,提高了數(shù)據(jù)傳輸?shù)姆€(wěn)定性。

測試表明,該系統(tǒng)性能穩(wěn)定、傳輸速度高,很好地滿足了數(shù)字電視系統(tǒng)基帶信號(hào)傳輸?shù)囊蟆4送?,本設(shè)計(jì)中的數(shù)據(jù)接口靈活性好,既可以擴(kuò)充更多的ASI接口,又可以增加以太網(wǎng)接口、光纖接口等,能夠滿足多種應(yīng)用的需求。

致謝:

[1] 王聰,王彬,薛潔,等.基于PCIe總線協(xié)議的設(shè)備驅(qū)動(dòng)開發(fā)[J].信息技術(shù),2013(3):32-35.

[2]PCIExpress Compiler User Guide[R].[S.l.]:Altera Corporation,2010.

[3] 黃世中,金志剛.利用WinDriver實(shí)現(xiàn)鏈?zhǔn)紻MA[J].電子設(shè)計(jì)工程,2013,21(8):6-9.

[4]WinDriver PCI/ISA/CardBus User,s Manual[R].[S.l.]:Jungo Corpora?tion,2008.

[5]張小佩.基于PCI-E總線的數(shù)字電視傳送流接口卡設(shè)計(jì)[D].天津:天津大學(xué),2012.

[6]鄭佳,任勇峰,李輝景,等.基于FPGA的多數(shù)據(jù)采集卡的研究與設(shè)計(jì)[J].電視技術(shù),2013,37(1):52-54.

[7]殷玉喆,張繼平,胡菊萍,等.YPbPr分量高清晰度視頻分析儀的研制[J].電視技術(shù),2013,37(10):101-104.

《電視技術(shù)》官方微博上線啦!

Design of DTV TS Transm ission/Acquisition Card Based on PCI Express Bus

LOU Xinlei1,LüWei1,SONG Yuan2
(1.School of Electronic Information Engineering,Tianjin University,Tianjin 300072,China;2.Nanjing Artillery Institute,Hebei Langfang 065000,China)

The design of DTV TS transmission/acquisition card based on PCI Express(PCI-E)bus is presented in this paper. The overall design,hardware interface and software program of the card are introduced in detail,focusing on how to implement high-speed DMA data transfer based on the high bandwidth of PCI Express bus.Finally,an online test is done to the card with SignalTap II of Quartus II 13.0.Experimental results show that the design is adequate for transmitting/capturing multiple DTV transport streams.

PCI-E bus;FPGA;chaining DMA;WinDriver

關(guān)注“電視技術(shù)雜志”,獲得更多行業(yè)資訊!

掃描上面二維碼添加電視技術(shù)官方微信,可以獲得更多行業(yè)資訊!

TN873

A

?? 盈

2014-08-11

【本文獻(xiàn)信息】婁新磊,呂衛(wèi),宋垣.基于PCI Express總線的數(shù)字電視傳送流發(fā)送/采集卡設(shè)計(jì)[J].電視技術(shù),2014,38(21).

國家自然科學(xué)基金項(xiàng)目(61271069)

婁新磊(1990—),碩士生,主研嵌入式系統(tǒng)設(shè)計(jì);

呂 衛(wèi),博士,副教授,主研數(shù)字視頻技術(shù)和嵌入式系統(tǒng)設(shè)計(jì);

宋 垣,講師,主研計(jì)算機(jī)仿真。

猜你喜歡
描述符采集卡驅(qū)動(dòng)程序
高精度AD采集卡性能測試及評(píng)價(jià)方法研究
中國測試(2022年2期)2022-03-19 09:57:30
基于結(jié)構(gòu)信息的異源遙感圖像局部特征描述符研究
Linux單線程并發(fā)服務(wù)器探索
面向數(shù)控機(jī)床的多通道傳感數(shù)據(jù)采集卡設(shè)計(jì)
利用CNN的無人機(jī)遙感影像特征描述符學(xué)習(xí)
并行高速采樣在地震物理模擬采集中的應(yīng)用
PCI-e高速數(shù)據(jù)采集卡的驅(qū)動(dòng)與上位機(jī)軟件設(shè)計(jì)
電子器件(2015年5期)2015-12-29 08:43:12
基于PDIUSBD12的USB接口設(shè)計(jì)應(yīng)用研究
驅(qū)動(dòng)程序更新與推薦
驅(qū)動(dòng)程序更新與推薦
邛崃市| 三原县| 河津市| 抚松县| 尖扎县| 天全县| 桦甸市| 资阳市| 松原市| 道孚县| 新河县| 桐柏县| 志丹县| 阿鲁科尔沁旗| 庆城县| 临猗县| 扎赉特旗| 沙洋县| 昭通市| 辽宁省| 安新县| 长海县| 玉龙| 阿合奇县| 元氏县| 武威市| 南城县| 抚远县| 常熟市| 泽库县| 通化县| 麦盖提县| 滨海县| 灵山县| 翼城县| 虞城县| 锦屏县| 隆子县| 双柏县| 云梦县| 阜宁县|