<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于Z1510的音視頻壓縮卡的設計與實(shí)現

基于Z1510的音視頻壓縮卡的設計與實(shí)現

作者: 時(shí)間:2008-07-21 來(lái)源:網(wǎng)絡(luò ) 收藏
隨著(zhù)計算機、多媒體和數據通信等技術(shù)的高速發(fā)展,對計算機的需求和應用越來(lái)越多,如視頻監控、視頻會(huì )議等。計算機提供給人的信息很多,但其數據量很大,不利于傳輸和存儲,從而使其應用受到不少限制。為解決數據的存儲和傳輸,唯一的途徑就是對音視頻數據進(jìn)行壓縮。
  專(zhuān)用音視頻壓縮芯片的具有USB接口的實(shí)時(shí)MPEG-1音視頻,較傳統的PCI接口的MPEG-1音視頻卡具有支持熱插拔和即插即用等特點(diǎn),同時(shí)該系統還具備很好的可擴展性。本文就來(lái)介紹這個(gè)系統的。
1 硬件
  本系統主要由音視頻A/D轉換單元、音視頻壓縮單元、系統控制單元和UBS接口單元四大部分組成,如圖1所示。模擬音視頻信號經(jīng)AK4550、SAA7113音視頻A/D轉換器后送入音視頻壓縮芯片,壓縮編碼后生成的MPEG-1碼流經(jīng)USB端口輸出。整個(gè)壓縮系統的控制由TMS320F2812和EPM7128AE共同完成,壓縮后的數據通過(guò)USB接口芯片PDIUSBD12輸出。


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


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


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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>