《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 基于Z1510的音視頻壓縮卡的設計與實現

基于Z1510的音視頻壓縮卡的設計與實現

2008-07-17
作者:張兆林, 李 勇

  摘 要: 隨著數字音視頻" title="音視頻">音視頻日益廣泛的應用,解決音視頻數據的存儲和傳輸,唯一的途徑就是對音視頻數據進行壓縮。基于Z1510編碼芯片設計了實時MPEG-1音視頻壓縮卡,它較傳統的PCI接口的MPEG音視頻壓縮卡具有支持熱插拔和即插即用的特點,同時該系統還具備很好的擴展性。
  關鍵詞: Z1510 DSP USB 音視頻壓縮


  隨著計算機、多媒體和數據通信等技術的高速發展,對計算機音視頻的需求和應用越來越多,如視頻監控、視頻會議等。計算機音視頻提供給人的信息很多,但其數據量很大,不利于傳輸和存儲,從而使其應用受到不少限制。為解決音視頻數據的存儲和傳輸,唯一的途徑就是對音視頻數據進行壓縮。
  基于Z1510專用音視頻壓縮芯片設計的具有USB接口的實時MPEG-1音視頻壓縮卡,較傳統的PCI接口的MPEG-1音視頻卡具有支持熱插拔和即插即用等特點,同時該系統還具備很好的可擴展性。本文就來介紹這個系統的設計與實現。
1 硬件設計
  本系統主要由音視頻A/D" title="A/D">A/D轉換單元、音視頻壓縮單元、系統控制單元和UBS接口單元四大部分組成,如圖1所示。模擬音視頻信號經AK4550、SAA7113音視頻A/D轉換器后送入Z1510音視頻壓縮芯片,壓縮編碼后生成的MPEG-1碼流經USB端口輸出。整個壓縮系統的控制由TMS320F2812和EPM7128AE共同完成,壓縮后的數據通過USB接口芯片PDIUSBD12輸出。


1.1 音視頻壓縮部分的電路設計
  本系統中的MPEG-1壓縮芯片選用以色列Emblaze Semiconductor公司的Z1510。Z1510是一款高性能低成本的音視頻壓縮編碼芯片,它可完成MPEG-1音視頻壓縮、MJPEG視頻編碼以及全分辨率靜態圖像捕獲,還可對CD-ROM和VCD進行格式化。Z1510壓縮芯片有三種系統配置(Master、Direct-data、Indirect-data),總共有20余種工作模式,不同的工作模式可通過加載不同的代碼來實現。Z1510可廣泛地應用于VCD刻錄機、數字靜態照相機、基于PC機的視頻獲取卡、MP3播放器以及安全監控系統中。它主要由視頻接口、視頻壓縮核、DSP輔助系統、存儲器接口、主機接口和串行接口、DMA控制器等六大模塊組成。
  Z1510的音視頻輸入是通過視頻端口和串行接口完成的。視頻輸入端口主要接收視頻A/D轉換器產生的ITU-R BT.601或ITU-R BT.656格式的數字視頻信號和相應的時鐘同步信號。Z1510有五個串行端口,包括三個輸入端口(Audio0、Audio1和CD-Drive)和兩個輸出端口(CD-Drive和SVCD decoder),每一個端口均可作為主設備端口和從設備端口,本系統中應用的Audio1端口作為主設備端口,接收未壓縮的數字音頻信號,同時為音頻A/D轉換器提供相應的同步時鐘信號" title="時鐘信號">時鐘信號。
  由于本系統使用的數字視頻數據是ITU BT.656格式,因而只需將SAA7113的VPO(7~0)和LLC管腳與Z1510視頻端口的數字視頻輸入管腳VID(7~0)和視頻輸入時鐘管腳VICLK相連即可,不需向Z1510提供行同步信號(VIVS_N)和幀同步信號(VIVS_N)。SAA7113的LLC管腳輸出的27MHz時鐘信號,一路未經分頻的信號作為Z1510內部的數字視頻流的采樣時鐘信號,輸入Z1510的視頻輸入時鐘管腳VICLK,另一路輸入分頻器MK2703的X1/CLK管腳,經分頻器分頻后,由ACLK管腳輸出,作為音頻編碼芯片的系統時鐘信號MCLK,分別輸入AK4550的MCLK和Z1510的AMCLK。27MHz的數字視頻流采樣時鐘信號在Z1510內部進行分頻后,為工作在從模式下的AK4550提供移位時鐘信號SCLK和左右聲道時鐘信號LRCK,分別輸入AK4550的SCLK和LRCK管腳,而AK4550產生的數字音頻流直接輸入Z1510的Audio1端口的ASDI1管腳。
  Z1510的主時鐘信號頻率為穩定的27MHz,該時鐘信號頻率在芯片內部被PLL1倍頻為81MHz,驅動Z1510的視頻壓縮內核及SDRAM。而PLL2連接到DSP內核,該PLL由軟件配置PLL寄存器,工作在94.5MHz,用于音頻壓縮和系統數據流復合。系統主時鐘由一個27MHz的晶體振蕩器直接提供,該晶振同時也為EPM7128AE和TMS320F2812提供時鐘信號。
  Z1510的MEMORY接口支持SDRAM的讀寫,其外接的SDRAM主要用于存儲操作過程中輸入的數據和對壓縮后的音視頻數據進行緩存,共支持四種SDRAM配置:1M×16 2bank、8M×16 2bank、4M×16 4bank、8M×16 4bank,其中系統的最小配置為1M×16 2bank SDRAM。在所有的配置中,SDRAM的頻率至少為125MHz;同時在設計硬件時,除相應的數據線和地址線相連外,SDRAM的輸入管腳CS#、DQM必須接地,CKE接電源。在本設計中,SDRAM選用的是現代公司的HY57V161610DTC-8。
  在Z1510進行MPEG-1壓縮時,它是工作在LAVE(Live Audio Video Encoding)模式。在此模式下,Z1510只能配置為間接工作(Indirect-data)狀態,此時Z1510作為從設備,受主機控制,主機可以通過其HOST接口訪問它內部的配置和狀態寄存器,并且可以通過局部FIFO獲得壓縮后的視頻碼流。
  Z1510的HOST接口的主要信號有:
  ·HAD[15..0] 數據總線;
  ·HCONFIG[9,8] 總線數據類型選擇;
  ·HWR_N,HRD_N 讀寫控制,HCS_N器件片選信號;
  ·HALE在復用" title="復用">復用總線模式下,鎖定低8位地址HAD[7~0];在非復用總線模式下,指示當前數據總線上發送的是寄存器地址還是寄存器數據。
  ·HINT_N 中斷請求信號,低電平有效。
  Z1510可以選擇復用或非復用的Intel和Motorola總線模式,非復用總線又可分為8位和16位的總線模式。經過與DSP的讀寫時序比較和實際調試,發現DSP讀寫模式與Motorola的16位非復用讀寫模式相似,使用較為方便,譯碼也較為簡單,因而將主機端口配置為Motorola的16位非復用總線模式。在16位非復用總線模式下,對Z1510內部寄存器的訪問由兩個寄存器完成。首先IOAR地址寄存器響應Z1510的第一個分配地址(HALE=0)和其中的數據,獲得所需要的內部寄存器地址。接著是IODR數據寄存器響應Z1510的第二個分配地址(HALE=1)和其中的數據,內容是IOAR指向的寄存器的DATA內容。因此在對Z1510的寄存器進行讀寫時,相當于只占用了DSP外部拓展存儲空間的兩個地址位。
  在存儲空間分配中,Z1510分在TMS320F2812外部拓展存儲空間(XINTF)的0區(0x00 2000~0x00 3FFF),因此需將HALE管腳在CPLD內部通過進位鏈與DSP的A0相連,而片選信號HCS_N需由A12、A13、A14、A15和DSP的信號經譯碼實現,HWR_N和HRD_N信號由A12、A13、A14、A15和DSP的信號經譯碼實現。
1.2 系統控制單元
  本系統使用TI公司的TMS320F2812和Altera公司的MAX7000系列的EPM7128AE實現系統的管理和控制。
  TMS320F2812是基于TMS320C28xTM DSP內核的芯片,時鐘頻率高達150MHz,具有18K的SARAM和128K的片內Flash,另外還具有1M的外部擴展存儲空間(XINTF)。TMS320F2812的外部擴展存儲空間只可用作數據空間或程序空間,不支持I/O" title="I/O">I/O空間,它分為0、1、2、6、7五個區,沒有DS、PS、IS三個信號線,取而代之的是三個區選信號,其中0區和1區共用一個區選信號,6區和7區共用一個區選信號。本系統的控制就是通過DSP的外部擴展存儲空間(XINTF)實現的。Z1510在復位后要根據不同的工作模式進行代碼加載,以便初始化片內的DSP核和視頻壓縮核,變換后的代碼量有100多K,因此在DSP的外部擴展存儲空間中設計了一片FLASH芯片MBM29LV800,用來存放代碼。
  在設計中,由于SAA7113的片選信號直接拉高,而它的配置是通過TMS320F2812的GPIO模擬I2C總線實現的,因此不占用存儲空間;Z1510的控制接口地址與數據復用和USB接口芯片PDIUSBD12一樣,都只有一個地址位(占用兩個位置);只有外界FLASH芯片MBM29LV800(512K×16位)占用存儲空間較多,因此系統主要存儲空間分配如下:
  Z1510 占用Zone0   0x00 2000~0x00 2001
  USB接口 占用Zone1   0x00 4000~0x00 4001
  FLASH 占用Zone2   0x08 0000~0x0F FFFF
  DSP的時鐘由27MHz晶體振蕩器提供,它同時給Z1510、CPLD和DSP提供時鐘,可以較好地保證系統操作的同步。晶振的輸出電壓一般為5V或3.3V,TMS320 F2812的外接時鐘信號電壓不應超過1.8V,因此需要在時鐘信號線上串、并聯電阻進行分壓。CPLD雖然外接3.3V的I/O電壓,但它可以承受5V的時鐘電壓,因此可將時鐘信號直接輸入。
  由于本系統采用專門的視頻壓縮芯片,CPLD主要完成一些邏輯仲裁、地址解碼邏輯、控制信號的產生等,無需進行一些較復雜的運算,因而選用內核電壓和I/O電壓均為3.3V且具有128個宏單元的EPM7128AE來實現。
1.3 接口單元
  Z1510在進行標準的MPEG-1音視頻壓縮時,系統比特率一般在1.5Mbps以下。雖然最高速度12Mbps的USB1.1里的開銷包括了命令包、幀標記和握手協議傳輸等,但仍可達2Mbps的系統比特率,可以滿足系統設計需要。在綜合考慮性價比后,選用了Philips公司的USB1.1接口芯片PDIUSBD12。PDIUSBD12看起來就像是一個帶八位數據總線和一個地址位的存儲器,它提供的微處理器接口可以兼容大部分的DSP環境,其接口信號包括八位數據線D0~D7和ALE、A0、,USB控制器可以分為地址/數據復用模式或單地址/數據模式,如表1所示。DSP的數據地址總線是分離的,USB控制器采用單地址/數據總線模式更容易與DSP接口。


2 軟件設計
  本系統的軟件設計主要分兩大部分:對硬件的初始化(SAA7113、Z1510)和PC機與系統的實時通信。系統上電后,由電源輸出端的RC電路觸發CPLD里的D觸發器,對DSP進行復位,然后由DSP對其它器件進行復位和初始化。
2.1 硬件初始化
  對SAA7113的初始化可通過將DSP的McBSP用作通用I/O腳模擬I2C總線來實現,DSP作為主器件,SAA7113作為從器件,用McBSP的CLKR模擬SCL,FSR模擬SDA。首先設置DSP的GPFMUX寄存器的相應位為0,使CLKR和FSR用作通用I/O腳;然后設置GPFDIR和GPFDAT寄存器的相應位以改變CLKR和FSR的輸入輸出方向和高低電平,GPFDIR.bit=0時為輸入,相反為輸出;GPFDAT.bit=0,同時引腳為輸出時為低電平,相反為高電平。通過CLKR和FSR管腳的高低電平的變化和輸入輸出狀態的切換可以實現I2C協議。
  Z1510的驅動分為復位、代碼下載、內部寄存器配置以及數據獲取四個階段。復位后,Z1510內部的配置和狀態寄存器復位到默認狀態,所有輸出信號處于高阻狀態,SDRAM視頻緩存內容清零。具體包括硬復位和軟復位兩種,硬復位需要拉低Z1510的RESET_N的電平,軟復位可以通過寫0x55到Soft_reset寄存器(地址0x08)來實現。
  系統進行硬復位需要注意的是,上電到時鐘穩定后,RESET_N至少要被拉低250微秒,然后主機才設置Int_enable [6]寄存器,使能RDY中斷。TMS320F2812等Z1510產生一個RDY中斷后寫0x20到中斷清除寄存器0x0F,清除RDY中斷,然后寫0x6E到視頻編碼核時鐘寄存器0x0A,設定其內部DSP壓縮核工作頻率為94.5MHz。
  系統在開始工作之前,還要進行一個軟復位過程。TMS320F2812先向Z1510的Soft_reset寄存器(地址0x08)寫0x55,等待至少1微秒后,設置Int_enable [6]寄存器,使能RDY中斷,等Z1510產生一個RDY中斷后,清中斷,完成軟復位,開始代碼加載。
  在Z1510內部寄存器有一段程序空間,這段空間以塊為單位,每塊的大小是256字節。其中,DSP核程序空間為0x280~0x2BF(64 banks),視頻編碼核的二進制代碼的裝載空間為0x000~0x004和0x00C等六個塊。裝載步驟如下:
  (1)向Z1510內部寄存器0x2E寫入0x01,表示外部的SDRAM是1M×16bit;
  (2)向0x0C寄存器寫0x03,使能FIFO Ready和End of Data中斷;
  (3)向0x11寄存器寫0x18,設定工作模式為內部內存寫模式;
  (4)向0x10寫0x20,設定Z1510的FIFO滿為256字節;
  (5)向0x08寄存器寫0x04,發送開始命令;等待Ready中斷,然后清除Ready中斷;
  (6)向Data _in寄存器0x01寫256個字節數據;等待End of Data中斷,然后清除中斷;
  (7)查程序空間的代碼是否裝載完畢,如沒有,回到(5)繼續裝載。
  通過設定Z1510內部工作寄存器的特定狀態可以使其工作在特定的模式,在本系統中設定Z1510工作在LAVE模式,在此模式下,Z1510從音頻和視頻A/D轉換器獲取數據并壓縮為MPEG-1碼流。Z1510正常工作后,輸出MPEG-1碼流。其輸出碼流要經過輸出端口FIFO緩沖,每當FIFO寫入超過半門限時,產生中斷FRDY(FIFO Ready)通知DSP,DSP通過讀寄存器DATA_out(0x00)取走數據,其半門限可由ThreshHold寄存器設定,最大256字節。FIFO滿后,DSP連續讀寄存器256次可以取走數據。Z1510的驅動流程見圖2。


2.2 接口程序設計
  在設計開發一個USB外設的時候,主要需要編寫三部分程序:①固件程序;②USB驅動程序;③客戶應用程序。固件編程主要完成PDIUSBD12的驅動,使DSP系統與外部系統進行數據交換。
  PDIUSBD12有三個端點,即端點0、端點1和端點2,在設計中使用端點1和端點2進行上位計算機與DSP之間的命令和數據傳輸。端點1和端點2設置成模式0,其中端點1進行命令的傳輸和應答,端點2用于數據的傳輸。端點1接收上位計算機發送過來的8字節的讀寫指令,指令正確回應后,使用端點2通過FIFO返回或接收數據。
  在Win32系統中,每一個設備對象都抽象為文件。在應用程序設計中,只需通過幾條簡單的文件操作API函數,就可以實現與某個設備通信。主要使用的API函數有DeviceIOControl()、ReadFile()、WriteFile()。其中,DeviceIOControl()用于PC機(主機)向圖像壓縮系統發送請求;ReadFile()和WriteFile()分別用于從圖像壓縮系統中讀出數據和寫入數據。在設計過程中必須注意的問題是:由于USB接口是主-從方式的接口,它的一切傳輸都必須通過主機向外設發送請求后才能進行,所以在使用ReadFile()、WriteFile()讀寫數據之前,必須先通過DeviceIOControl()向圖像壓縮系統發送請求,系統接收請求后才能讀寫數據,開始進行音視頻壓縮。
  該音視頻壓縮系統具有較好的功能擴展性,正如前面所介紹的,由于Z1510具有多種工作模式,在系統初始化時可根據所需工作模式加載不同的代碼,對相應的寄存器進行不同的初始化,通過改變工作模式,可完成單獨的視頻壓縮、音頻壓縮、靜態非壓縮或壓縮圖像獲取(PC CAMERA)等多種功能。如再在系統中設計大容量FLASH,還可升級為獨立的音視頻壓縮記錄系統。
參考文獻
1 SAA7113 DataSsheet. Philips, 1999
2 Z1510DataSheet. Emblaze Semiconductor, 2001
3 TMS320F2812 Data Manual. Texas Instruments, 2003
4 褚振勇,翁木云.FPGA設計及應用.西安:西安電子科技大學出版社, 2003

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 国产在线精品网址你懂的| 中文字幕无码毛片免费看| 男朋友想吻我腿中间的部位| 国产成人免费a在线视频色戒| www.九色视频| 日本伊人精品一区二区三区| 亚洲欧洲成人精品香蕉网| 精品无码一区二区三区| 国产成人精品怡红院| 99国产精品自在自在久久| 放荡女同老师和女同学生| 亚洲一区二区三区免费| 特黄黄三级视频在线观看| 国产一区二区三区亚洲综合| 亚洲娇小性xxxx色| 夜夜夜夜猛噜噜噜噜噜试看| 中文字幕人成无码免费视频| 最新亚洲人成网站在线观看| 亚洲第一成年免费网站| 精品久久人人爽天天玩人人妻| 国产伦子沙发午休| 私人影院在线观看| 天天摸天天做天天爽水多| 中文字幕亚洲一区二区va在线| 日韩欧美亚洲国产精品字幕久久久 | 韩国三级电影网址| 国产精品无码V在线观看| a级日本高清免费看| 成人免费观看高清在线毛片| 久久国产精品-国产精品| 欧美三级不卡在线播放| 亚洲福利在线观看| 男女肉粗暴进来动态图| 国产91乱剧情全集| 风流艳妇在线观看| 国产男女爽爽爽爽爽免费视频| 97人人超人超人国产第一页| 好吊色青青青国产在线播放| 中文字幕乱码人妻综合二区三区 | 饥渴难耐16p| 国产男女猛烈无遮挡免费视频|