吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于EZ-USB芯片與Virtex II FPGA實現解碼器的設計

電子設計 ? 來源:今日電子 ? 作者:王昕,周開倫,焦孟 ? 2021-03-17 16:57 ? 次閱讀

H.264/AVC標準具有一系列優于MPEG4和H.263的新特性,在相同的重建圖像質量下,H.264比H.263節約50%左右的碼率。但是節約碼率的代價是增加了算法復雜度。由于僅用軟件已經無法實現實時地解碼過程。所以必須利用硬件加速,這正是本解碼器設計的初衷。

雖然H.264相較同質量的H.263圖像,碼率節約一半,但是由于本解碼器的目標是解決H.264的高清圖像(1080i)的解碼工作,同時也要適用于普遍的視頻外設,所以選用的接口既需要完成高速的碼流源文件的傳輸工作也要易于插拔。而USB接口恰好符合這兩個條件。高質量的源碼文件數據量較大,對傳輸接口要求較高。并且在FPGA仿真環境下,USB接口還要擔負起向PC上位機回傳解碼結果的任務。這就要求傳輸速度至少要保證超越解碼速度。和USB 1.1接口相比,USB 2.0接口的傳輸更加符合本設計的要求。

經過計算可知,傳輸接口需要至少30MB/s的傳輸速率,才能保證對1080i的圖像進行解碼。

器件選型

使用FPGA進行仿真和驗證基本已成為IC設計過程中必不可少的環節,尤其對于大規模的設計。本解碼器IC的設計使用Virtex II FPGA作為仿真環境。對于本設計,利用FF1517 BGA封裝的XC2V6000已經充分滿足設計要求。在考慮設計成本的前提下,該款FPGA是相對高性價比的選擇。

Cypress公司的EZ-USB FX2是一款集成了USB 2.0的微處理器,它集成了USB 2.0收發器、SIE(串行接口引擎)、增強的8051微控制器和可編程的外圍接口。FX2的這種優化設計,幾乎能達到56MB/s的數據傳輸率,而USB 2.0允許的最大帶寬是480Mb/s,即60MB/s。該芯片在對傳輸帶寬影響很小的前提下,增加了許多集成的控制功能。GPIF和Slave FIFO模式為外部的FPGA、DSP和ATA等提供了簡單和無縫的連接接口。

系統構架

本設計的主體如圖1所示,在FPGA的仿真平臺中,Virtex II包括了解碼器主體和FPGA的接口模塊。USB 2.0芯片68013A作為獨立部分,負責FPGA和PC之間的USB數據傳輸。FPGA片外的SRAMDRAM作為FPGA的擴展存儲設備,用于存放解碼器所需的源碼文件,解碼后的文件以及解碼器中用到的軟件程序文件。

基于EZ-USB芯片與Virtex II FPGA實現解碼器的設計

圖1 FPGA仿真傳輸示意圖

本設計中,解碼器端具備強大的功能,內嵌有一個CPU。可以進行主動識別命令的功能。所以PC端和解碼器處于對等的地位。PC端的工作包括發送命令頭,發送命令,發送碼流,接收回傳解碼結果等;FPGA端的工作包括接收并識別命令頭與PC命令,接收并向SRAM和DRAM中存儲碼流,讀取SRAM和DRAM中的解碼結果并且回傳給PC端。

USB 2.0芯片的工作方式及固件編寫

1 芯片工作方式的確定

在設計中,存在兩個過程涉及到大批量的數據文件傳輸:PC向下傳輸源碼文件,FPGA向上位PC傳輸解碼結果文件。其對USB傳輸要求最高。如果當傳輸的源碼文件無法適應解碼速度時,會導致解碼器停頓;如果當回傳解碼結果滯后時,會造成未被傳輸的解碼結果被覆蓋。任何一種情況的出現,都將直接導致解碼器工作失敗。

在傳輸要求甚高的情況下,選用EZ-USB FX2提供的Slave FIFO的BULK(批量傳輸)模式,能很好的滿足傳輸要求。在這種模式下,USB芯片內存單元中劃分出6個端點(endpoint),以下簡稱為EP。EP0和EP1被保留作為芯片配置FIFO。EP2、4、6、8可作為用戶傳輸,并且4個EP采用雙重FIFO(double FIFO)的方式組織構成。

舉例來說,如圖2所示,USB執行OUT傳輸,將EP2端點設成512字節雙重FIFO。在外部器件看來,USB端只要有1個512字節的FIFO為“半滿”,就可以繼續發送數據。當操作的FIFO寫“滿”時,FX2自動將其轉換到外部接口端,排除等候讀取;并將USB接口隊列中下一個為“空”的FIFO轉移到USB接口上,供其繼續寫數據。外部接口端與此類似,只要有1個FIFO為“半滿”,就可以繼續讀取數據。當前操作的FIFO讀“空”時,FX2自動將其轉換到USB接口端,排除等候寫并將外部接口隊列中下一個為“滿”的FIFO轉移到接口上,供外部器件使用。

圖2 EndPoint示意圖

圖3所示為雙重FIFO的工作過程。當一個512字節的FIFO滿時,FPGA可以取出里面的數據,同時PC可以向另一個FIFO寫入數據(一組實箭頭)。當一個512字節的FIFO空時,PC可以寫入數據。同時FPGA可以讀取另一個仍然有數據的FIFO(一組虛箭頭)。

圖3 雙重EP運作模式

2 固件程序設計

在通過編寫固件程序初始化USB設備過程中,以下重要的配置寄存器需要設置。

IFCONFIG;設置USB時鐘由外部提供,并且選用Slave FIFO模式。

EPXCFG(X=2,4,6,8);配置4個EP(端點FIFO)的模式。

EPXFIFOCFG(X=2,4,6,8);配置4個EP的自動傳輸模式以及傳輸位寬。

其他一些寄存器,根據實際的需要可以單獨配置。本設計中配置EP2用于傳輸命令頭,EP4用于傳輸源碼文件,EP6用于傳輸命令,EP8用于傳輸解碼結果文件。

在完成固件程序的設計之后,可以利用FX2自帶的Control Panel將固件程序的編譯結果下載到68013A的芯片中,或者存放在外部的I2C中,以便下次復位時,芯片自己讀取。

3 電路設計原理圖

圖4為本設計的電路設計原理圖,原件按左起以及上起順序分別為:CY7C68013A芯片、電源耦合電容組、USB 2.0標準接口、標準RS232串行口、外部晶體振蕩器和HIN232串口芯片。本設計是按照這一電路原理圖制作電路板圖,完成USB 2.0的功能的。

圖4 電路設計原理圖

FPGA上解碼器與USB接口模塊的設計

SLAVE FIFO的模式下,FPGA可以主動決定是否有必要讀取USB內部FIFO中的數據,而不僅僅是被動的接受PC發送的數據。如圖5所示,控制方式:SLOE、SLRD和SLWR作為EP的讀寫信號與使能控制信號。FIFOADR[1:0]作為4個EP的選擇信號,即選擇當前操作的目標EP。PKTEND是FPGA主動命令USB芯片向上位PC發送數據的控制端。FLAGX(X=A,B,C,D)表示當前選中的FIFO的空滿信息。FD(8位或者16位)為雙向的數據傳輸口。FPGA接口控制這些端口,達到對USB進行操作的目的。

圖5 解碼器與USB接口

FPGA接口中,本設計還定義了一個深度為256,寬度為32位的FIFO(內部FIFO)。原因在于:本設計中SRAM和DRAM部分要不斷地被解碼器調用,這樣就導致存儲單元被占用。此時USB是無法對存儲單元操作的。所以在FPGA接口中,先將多個USB傳輸的數據FD(8位或者16位)拼接成32位數據存入內部FIFO,當SRAM和DRAM空閑時,再向其傳輸。這樣的處理,使得USB傳輸不依賴于存儲單元的工作狀態,進一步提高了USB傳輸的速度,以滿足傳輸的要求。

設計驗證及結果分析

當開發完Windows操作系統下的USB驅動程序后,本設計成功的利用EZ-USB芯片與Virtex II FPGA完成了視頻數據的傳輸工作。并且在FPGA工作的66MHz以下的頻率時,完成了對H.264格式視頻的實時傳輸、解碼。傳輸速率的檢測中,USB對大批量數據的傳輸可以達到33MB/s以上的速度,完全適應解碼器的要求。

設計分析:本設計利用了兩級的FIFO,充分的發揮了USB 2.0的速度優勢。設計方案解除了傳輸與解碼過程中的瓶頸,實現了無縫連接。不足之處是由于USB芯片的Slave FIFO模式限制,PC與解碼器直接必須使用命令交互的方式進行通信,占用了一定的帶寬。在命令過于頻繁的狀態下,效率不高,但對大批量數據傳輸影響很小。

結束語

驗證平臺下成功,并且實際通過多種壓縮率的源碼文件測試,實現了平均33MB/s,最高40MB/s的速率。完成并且超過了設計要求。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7649

    瀏覽量

    152109
  • FPGA
    +關注

    關注

    1630

    文章

    21796

    瀏覽量

    606010
  • 解碼器
    +關注

    關注

    9

    文章

    1147

    瀏覽量

    40932
收藏 人收藏

    評論

    相關推薦

    EZ-USB上SPI的軟件實現

    本應用指南介紹了如何在Cypress Semiconductor的EZ-USB上用軟件實現SPI(串行外設接口)。
    發表于 09-22 17:42

    如何將EZ-USB FX3代碼移植到FX2

    親愛的專家我們有一個使用EZ-USB FX2LP的產品。我們想用這個芯片來編程系統中的Xilinx FPGA PROM。我找到了一個848 68,它解釋了如何使用EZ-USB FX3做
    發表于 10-16 20:02

    EZ-USB接口設備的軟配置技術

    設備的軟配置方式和固件裝載技術是開發EZ-USB接口設備的關鍵問題。1 EZ-USB處理  EZ-USB的串行接口引擎能自動完成數據收發控制、位填充、數據編碼、CRC校驗、PID包
    發表于 12-03 15:23

    基于EZ-USB的電腦眼接口

    為核心的數字圖像設備(電腦眼)與USB接口進行了研究,并利用Anchor公司的EZ-USB 2131Q芯片設計了一種基于外接RAM的單片方案,實現了電腦眼的
    發表于 12-10 10:19

    使用AnclChips EZ-USB自動矢量中斷

    AnclChips EZ-USB芯片支持一種稱為AutoVectoring的功能。 此功能允許多個USB中斷源共享單個中斷向量。 由AnclChips提供的示例向您展示了如何實現您的程
    發表于 09-04 07:29

    EZ-USB系列2100技術參考手冊

    1 Introducing EZ-USB ......................................................................1-11.1
    發表于 06-16 10:35 ?94次下載

    介紹EZ-USB(TM)系列2100 USB控制的特性及應

    1 Introducing EZ-USB ......................................................................1-11.1
    發表于 06-16 10:58 ?32次下載

    基于EZ-USB的數據傳輸接口設計

    利用EZ-USB接口芯片AN2131Q實現了基于TMS320C5409的水聲信號采集及混沌特性研究系統中的高速數據通信,提出了一種采用FIFO緩存芯片
    發表于 06-20 08:41 ?32次下載

    The ez-usb integrated circuit

    The ez-usb integrated circuit (Technical Reference):Like a well designed automobile or appliance, a
    發表于 10-16 18:15 ?20次下載

    基于EZ-USB的電磁眼接口

    基于EZ-USB的電磁眼接口 摘要:對以CMOS視頻傳感為核心的數字圖像設備(電腦眼)與USB接口進行了研究,并利用Anchor公司的EZ-USB2131Q
    發表于 03-03 19:40 ?801次閱讀
    基于<b class='flag-5'>EZ-USB</b>的電磁眼接口

    USB概述與EZ-USB 2131Q芯片

    USB概述與EZ-USB 2131Q芯片,通用串行總線(Universal Serial Bus)適用于USB的外圍設備連接到主機,通過PCI總線和PC內部的系統總線連接,
    發表于 01-08 13:19 ?2950次閱讀
    <b class='flag-5'>USB</b>概述與<b class='flag-5'>EZ-USB</b> 2131Q<b class='flag-5'>芯片</b>

    CY3674 EZ-USB? FX1 / CY3684 EZ-USB FX2LP? Development Kit

    The EZ-USB DVK is the best starting point for developing EZ-USB based products. It is designed
    發表于 06-21 15:39 ?29次下載

    USB3.0 EZ-USB? FX3 SuperSpeed USB 控制

    USB3.0 EZ-USB? FX3 SuperSpeed USB 控制
    發表于 10-10 09:28 ?19次下載
    <b class='flag-5'>USB</b>3.0 <b class='flag-5'>EZ-USB</b>? FX3 SuperSpeed <b class='flag-5'>USB</b> 控制<b class='flag-5'>器</b>

    USB EZ-USB? FX2LP? GPIF 設計指南-AN66806

    USB EZ-USB? FX2LP? GPIF 設計指南-AN66806
    發表于 10-10 15:03 ?46次下載
    <b class='flag-5'>USB</b> <b class='flag-5'>EZ-USB</b>? FX2LP? GPIF 設計指南-AN66806

    USB 利用 EZ-USB? FX3 從器件 FIFO 接口進行設計-AN65974

    USB 利用 EZ-USB? FX3 從器件 FIFO 接口進行設計-AN65974
    發表于 10-10 15:13 ?20次下載
    <b class='flag-5'>USB</b> 利用 <b class='flag-5'>EZ-USB</b>? FX3 從器件 FIFO 接口進行設計-AN65974
    百家乐官网平游戏| 星期八百家乐的玩法技巧和规则| 百家乐官网网哪一家做的最好呀| 天堂鸟百家乐官网的玩法技巧和规则| 百家乐官网闲和庄| 大发888体育投注| 酉阳| 时时博娱乐城评级| 德州扑克发牌视频| 元游棋牌游戏大厅| 535棋牌游戏| 博久百家乐官网论坛| 鸡泽县| 百家乐官网投注双赢技巧| 百家乐官网园zyylc| 南溪县| 正规百家乐官网游戏下载| 百家乐官网程序开户发| 百威百家乐官网的玩法技巧和规则| 百家乐l23| 至尊百家乐娱乐平台| 百家乐筹码托盘| 大发888下载df888| 玫瑰国际娱乐城| 红宝石百家乐官网娱乐城| 温州百家乐官网的玩法技巧和规则 | 百家乐官网suncity| 多伦多百家乐官网的玩法技巧和规则 | 做生意什么花风水好| 乐宝百家乐娱乐城| 百家乐游戏作弊| 云鼎娱乐场网址| 大理市| 太原百家乐官网的玩法技巧和规则 | 百家乐官网计划工具| 百家乐平注法到| 皇冠网游戏小说| 海立方百家乐官网海立方| 百家乐现场投注平台| 水果机游戏| 启东市|