基于USB 2.0集成芯片的H.264解碼器芯片設計_第1頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于usb 2.0集成芯片的h.264解碼器芯片設計h.264/avc標準具有一系列優于mpeg4和h.263的新特性,在相同的重建圖像質量下,h.264比h.263節省50左右的碼率。但是節省碼率的代價是增強了算法復雜度。因為僅用軟件已經無法實現實時地解碼過程。所以必需利用硬件加速,這正是本設計的初衷。雖然h.264相較同質量的h.263圖像,碼率節省一半,但是因為本解碼器的目標是解決h.264的高清圖像(1080i)的解碼工作,同時也要適用于普遍的視頻外設,所以選用的接口既需要完成高速的碼流源文件的傳輸工作也要易于插拔。而接口恰好符合這兩個條件。高質量的源碼文件數據量較大,對傳輸接口要求較

2、高。并且在的環境下,usb接口還要擔負起向pc上位機回傳解碼結果的任務。這就要求傳輸速度起碼要保證超越解碼速度。和usb 1.1接口相比,usb 2.0接口的傳輸越發符合本設計的要求。經過計算可知,傳輸接口需要起碼30mb/s的傳輸速率,才干保證對1080i的圖像舉行解碼。器件選型用法fpga舉行仿真和驗證基本已成為ic設計過程中必不行少的環節,尤其對于大規模的設計。本解碼器ic的設計用法virtex ii fpga作為仿真環境。對于本設計,利用ff1517 bga封裝的xc2v6000已經充分滿足設計要求。在考慮設計成本的前提下,該款fpga是相對高性價比的挑選。公司的ez-usb fx2是

3、一款集成了usb 2.0的微處理器,它集成了usb 2.0、sie(串行接口引擎)、增加的8051微控制器和可編程的外圍接口。fx2的這種優化設計,幾乎能達到56mb/s的數據傳輸率,而usb 2.0允許的最大帶寬是480mb/s,即60mb/s。該芯片在對傳輸帶寬影響很小的前提下,增強了許多集成的控制功能。gpif和slave fifo模式為外部的fpga、和ata等提供了容易和無縫的銜接接口。系統構架本設計的主體1所示,在fpga的仿真平臺中,virtex ii包括了解碼器主體和fpga的接口模塊。usb 2.0芯片68013a作為自立部分,負責fpga和pc之間的usb數據傳輸。fpga

4、片外的sram與dram作為fpga的擴展存儲設備,用于存放解碼器所需的源碼文件,解碼后的文件以及解碼器中用到的軟件程序文件。圖1 fpga仿真傳輸暗示圖本設計中,解碼器端具備強大的功能,內嵌有一個cpu。可以舉行主動識別指令的功能。所以pc端和解碼器處于對等的地位。pc端的工作包括發送指令頭,發送指令,發送碼流,接收回傳解碼結果等;fpga端的工作包括接收并識別指令頭與pc指令,接收并向sram和dram中存儲碼流,讀取sram和dram中的解碼結果并且回傳給pc端。usb 2.0芯片的工作方式及固件編寫1 芯片工作方式確實定在設計中,存在兩個過程涉及到大批量的數據文件傳輸:pc向下傳輸源碼

5、文件,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所

6、示,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字節

7、的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的自動傳輸模式以及傳輸位寬。其他一些寄存器,按照實際的需要可以單獨配置。本設

8、計中配置ep2用于傳輸指令頭,ep4用于傳輸源碼文件,ep6用于傳輸指令,ep8用于傳輸解碼結果文件。在完成固件程序的設計之后,可以利用fx2自帶的control panel將固件程序的編譯結果下載到68013a的芯片中,或者存放在外部的i2c中,以便下次復位時,芯片自己讀取。3 設計原理圖圖4為本設計的電路設計原理圖,原件按左起以及上起挨次分離為:cy7c68013a芯片、電源耦合組、usb 2.0標準接口、標準rs232串行口、外部晶體和hin232串口芯片。本設計是根據這一電路原理圖制作電路板圖,完成usb 2.0的功能的。圖4 電路設計原理圖fpga上解碼器與usb接口模塊的設計sla

9、ve fifo的模式下,fpga可以主動打算是否有須要讀取usb內部fifo中的數據,而不僅僅是被動的接受pc發送的數據。5所示,控制方式:sloe、slrd和slwr作為ep的讀寫信號與使能控制信號。fifoadr1: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(內

10、部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的速度優勢。設計計劃解除了傳輸與解碼過程中的瓶頸,實現了無縫銜接。不足之處是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論