隨著計(jì)算機(jī)、多媒體和數(shù)據(jù)通信等技術(shù)的高速發(fā)展,對(duì)計(jì)算機(jī)音視頻的需求和應(yīng)用越來(lái)越多,如視頻監(jiān)控、視頻會(huì)議等。計(jì)算機(jī)音視頻提供給人的信息很多,但其數(shù)據(jù)量很大,不利于傳輸和存儲(chǔ),從而使其應(yīng)用受到不少限制。為解決音視頻數(shù)據(jù)的存儲(chǔ)和傳輸,唯一的途徑就是對(duì)音視頻數(shù)據(jù)進(jìn)行壓縮。
基于Z1510專(zhuān)用音視頻壓縮芯片設(shè)計(jì)的具有USB接口的實(shí)時(shí)MPEG-1音視頻壓縮卡,較傳統(tǒng)的PCI接口的MPEG-1音視頻卡具有支持熱插拔和即插即用等特點(diǎn),同時(shí)該系統(tǒng)還具備很好的可擴(kuò)展性。本文就來(lái)介紹這個(gè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。
1 硬件設(shè)計(jì)
本系統(tǒng)主要由音視頻A/D轉(zhuǎn)換單元、音視頻壓縮單元、系統(tǒng)控制單元和UBS接口單元四大部分組成,如圖1所示。模擬音視頻信號(hào)經(jīng)AK4550、SAA7113音視頻A/D轉(zhuǎn)換器后送入Z1510音視頻壓縮芯片,壓縮編碼后生成的MPEG-1碼流經(jīng)USB端口輸出。整個(gè)壓縮系統(tǒng)的控制由TMS320F2812和EPM7128AE共同完成,壓縮后的數(shù)據(jù)通過(guò)USB接口芯片PDIUSBD12輸出。
1.1 音視頻壓縮部分的電路設(shè)計(jì)
本系統(tǒng)中的MPEG-1壓縮芯片選用以色列Emblaze Semiconductor公司的Z1510。Z1510是一款高性能低成本的音視頻壓縮編碼芯片,它可完成MPEG-1音視頻壓縮、MJPEG視頻編碼以及全分辨率靜態(tài)圖像捕獲,還可對(duì)CD-ROM和VCD進(jìn)行格式化。Z1510壓縮芯片有三種系統(tǒng)配置(Master、Direct-data、Indirect-data),總共有20余種工作模式,不同的工作模式可通過(guò)加載不同的代碼來(lái)實(shí)現(xiàn)。
Z1510的音視頻輸入是通過(guò)視頻端口和串行接口完成的。視頻輸入端口主要接收視頻A/D轉(zhuǎn)換器產(chǎn)生的ITU-R BT.601或ITU-R BT.656格式的數(shù)字視頻信號(hào)和相應(yīng)的時(shí)鐘同步信號(hào)。Z1510有五個(gè)串行端口,包括三個(gè)輸入端口(Audio0、Audio1和CD-Drive)和兩個(gè)輸出端口(CD-Drive和SVCD decoder),每一個(gè)端口均可作為主設(shè)備端口和從設(shè)備端口,本系統(tǒng)中應(yīng)用的Audio1端口作為主設(shè)備端口,接收未壓縮的數(shù)字音頻信號(hào),同時(shí)為音頻A/D轉(zhuǎn)換器提供相應(yīng)的同步時(shí)鐘信號(hào)。
Z1510的主時(shí)鐘信號(hào)頻率為穩(wěn)定的27MHz,該時(shí)鐘信號(hào)頻率在芯片內(nèi)部被PLL1倍頻為81MHz,驅(qū)動(dòng)Z1510的視頻壓縮內(nèi)核及SDRAM。而PLL2連接到DSP內(nèi)核,該P(yáng)LL由軟件配置PLL寄存器,工作在94.5MHz,用于音頻壓縮和系統(tǒng)數(shù)據(jù)流復(fù)合。系統(tǒng)主時(shí)鐘由一個(gè)27MHz的晶體振蕩器直接提供,該晶振同時(shí)也為EPM7128AE和TMS320F2812提供時(shí)鐘信號(hào)。
在Z1510進(jìn)行MPEG-1壓縮時(shí),它是工作在LAVE(Live Audio Video Encoding)模式。在此模式下,Z1510只能配置為間接工作(Indirect-data)狀態(tài),此時(shí)Z1510作為從設(shè)備,受主機(jī)控制,主機(jī)可以通過(guò)其HOST接口訪(fǎng)問(wèn)它內(nèi)部的配置和狀態(tài)寄存器,并且可以通過(guò)局部FIFO獲得壓縮后的視頻碼流。
Z1510的HOST接口的主要信號(hào)有:
·HAD[150] 數(shù)據(jù)總線(xiàn);
·HCONFIG[9,8] 總線(xiàn)數(shù)據(jù)類(lèi)型選擇;
·HWR_N,HRD_N 讀寫(xiě)控制,HCS_N器件片選信號(hào);
·HALE在復(fù)用總線(xiàn)模式下,鎖定低8位地址HAD[7~0];在非復(fù)用總線(xiàn)模式下,指示當(dāng)前數(shù)據(jù)總線(xiàn)上發(fā)送的是寄存器地址還是寄存器數(shù)據(jù)。
·HINT_N 中斷請(qǐng)求信號(hào),低電平有效。
在存儲(chǔ)空間分配中,Z1510分在TMS320F2812外部拓展存儲(chǔ)空間(XINTF)的0區(qū)(0x00 2000~0x00 3FFF),因此需將HALE管腳在CPLD內(nèi)部通過(guò)進(jìn)位鏈與DSP的A0相連,而片選信號(hào)HCS_N需由A12、A13、A14、A15和DSP的信號(hào)經(jīng)譯碼實(shí)現(xiàn),HWR_N和HRD_N信號(hào)由A12、A13、A14、A15和DSP的信號(hào)經(jīng)譯碼實(shí)現(xiàn)。
1.2 系統(tǒng)控制單元
本系統(tǒng)使用TI公司的TMS320F2812和Altera公司的MAX7000系列的EPM7128AE實(shí)現(xiàn)系統(tǒng)的管理和控制。TMS320F2812是基于TMS320C28xTM DSP內(nèi)核的芯片,時(shí)鐘頻率高達(dá)150MHz,具有18K的SARAM和128K的片內(nèi)Flash,另外還具有1M的外部擴(kuò)展存儲(chǔ)空間(XINTF)。TMS320F2812的外部擴(kuò)展存儲(chǔ)空間只可用作數(shù)據(jù)空間或程序空間,不支持I/O空間,它分為0、1、2、6、7五個(gè)區(qū),沒(méi)有DS、PS、IS三個(gè)信號(hào)線(xiàn),取而代之的是三個(gè)區(qū)選信號(hào),其中0區(qū)和1區(qū)共用一個(gè)區(qū)選信號(hào),6區(qū)和7區(qū)共用一個(gè)區(qū)選信號(hào),在設(shè)計(jì)中,由于SAA7113的片選信號(hào)直接拉高,而它的配置是通過(guò)TMS320F2812的GPIO模擬I2C總線(xiàn)實(shí)現(xiàn)的,因此不占用存儲(chǔ)空間;Z1510的控制接口地址與數(shù)據(jù)復(fù)用和USB接口芯片PDIUSBD12一樣,都只有一個(gè)地址位(占用兩個(gè)位置);只有外界FLASH芯片MBM29LV800(512K×16位)占用存儲(chǔ)空間較多,因此系統(tǒng)主要存儲(chǔ)空間分配如下:
Z1510 占用Zone00x00 2000~0x00 2001
USB接口 占用Zone10x00 4000~0x00 4001
FLASH 占用Zone20x08 0000~0x0F FFFF
由于本系統(tǒng)采用專(zhuān)門(mén)的視頻壓縮芯片,CPLD主要完成一些邏輯仲裁、地址解碼邏輯、控制信號(hào)的產(chǎn)生等,無(wú)需進(jìn)行一些較復(fù)雜的運(yùn)算,因而選用內(nèi)核電壓和I/O電壓均為3.3V且具有128個(gè)宏單元的EPM7128AE來(lái)實(shí)現(xiàn)。
1.3 接口單元
Z1510在進(jìn)行標(biāo)準(zhǔn)的MPEG-1音視頻壓縮時(shí),系統(tǒng)比特率一般在1.5Mbps以下。雖然最高速度12Mbps的USB1.1里的開(kāi)銷(xiāo)包括了命令包、幀標(biāo)記和握手協(xié)議傳輸?shù)龋钥蛇_(dá)2Mbps的系統(tǒng)比特率,可以滿(mǎn)足系統(tǒng)設(shè)計(jì)需要。在綜合考慮性?xún)r(jià)比后,選用了Philips公司的USB1.1接口芯片PDIUSBD12。PDIUSBD12看起來(lái)就像是一個(gè)帶八位數(shù)據(jù)總線(xiàn)和一個(gè)地址位的存儲(chǔ)器,它提供的微處理器接口可以兼容大部分的DSP環(huán)境,其接口信號(hào)包括八位數(shù)據(jù)線(xiàn)D0~D7和ALE、A0、、、、,USB控制器可以分為地址/數(shù)據(jù)復(fù)用模式或單地址/數(shù)據(jù)模式,如表1所示。DSP的數(shù)據(jù)地址總線(xiàn)是分離的,USB控制器采用單地址/數(shù)據(jù)總線(xiàn)模式更容易與DSP接口。
2 軟件設(shè)計(jì)
本系統(tǒng)的軟件設(shè)計(jì)主要分兩大部分:對(duì)硬件的初始化(SAA7113、Z1510)和PC機(jī)與系統(tǒng)的實(shí)時(shí)通信。系統(tǒng)上電后,由電源輸出端的RC電路觸發(fā)CPLD里的D觸發(fā)器,對(duì)DSP進(jìn)行復(fù)位,然后由DSP對(duì)其它器件進(jìn)行復(fù)位和初始化。
2.1 硬件初始化
對(duì)SAA7113的初始化可通過(guò)將DSP的McBSP用作通用I/O腳模擬I2C總線(xiàn)來(lái)實(shí)現(xiàn),DSP作為主器件,SAA7113作為從器件,用McBSP的CLKR模擬SCL,FSR模擬SDA。首先設(shè)置DSP的GPFMUX寄存器的相應(yīng)位為0,使CLKR和FSR用作通用I/O腳;然后設(shè)置GPFDIR和GPFDAT寄存器的相應(yīng)位以改變CLKR和FSR的輸入輸出方向和高低電平,GPFDIR.bit=0時(shí)為輸入,相反為輸出;GPFDAT.bit=0,同時(shí)引腳為輸出時(shí)為低電平,相反為高電平。通過(guò)CLKR和FSR管腳的高低電平的變化和輸入輸出狀態(tài)的切換可以實(shí)現(xiàn)I2C協(xié)議。SAA7113的初始化就是對(duì)寄存器配置合適的參數(shù),使其能夠有符合要求的輸出。寄存器配置通過(guò)I2C總線(xiàn)來(lái)進(jìn)行,很多可以控制I2C總線(xiàn)的器件都可以作為主器件對(duì)7113進(jìn)行初始化,這里介紹用51單片機(jī)初始化7113的例子。
系統(tǒng)在開(kāi)始工作之前,還要進(jìn)行一個(gè)軟復(fù)位過(guò)程。TMS320F2812先向Z1510的Soft_reset寄存器(地址0x08)寫(xiě)0x55,等待至少1微秒后,設(shè)置Int_enable [6]寄存器,使能RDY中斷,等Z1510產(chǎn)生一個(gè)RDY中斷后,清中斷,完成軟復(fù)位,開(kāi)始代碼加載。SAA7113是一種視頻解碼芯片,它可以輸入4路模擬視頻信號(hào),通過(guò)內(nèi)部寄存器的不同配置可以對(duì)4路輸入進(jìn)行轉(zhuǎn)換,輸入可以為4路CVBS或2路S視頻(Y/C)信號(hào),輸出8位“VPO”總線(xiàn),為標(biāo)準(zhǔn)的ITU 656、YUV 4:2:2格式。7113兼容PAL、NTSC、SECAM多種制式,可以自動(dòng)檢測(cè)場(chǎng)頻適用的50或60Hz,可以在PAL、NTSC之間自動(dòng)切換。7113內(nèi)部具有一系列寄存器,可以配置為不同的參數(shù),對(duì)色度、亮度等的控制都是通過(guò)對(duì)相應(yīng)寄存器改寫(xiě)不同的值,寄存器的讀寫(xiě)需要通過(guò)I2C總線(xiàn)進(jìn)行。7113的模擬與數(shù)字部分均采用+3.3V供電,數(shù)字I/O接口可兼容+5V,正常工作時(shí)功耗0.4W, 空閑時(shí)為0.07W。7113需外接24.576MHz晶體,內(nèi)部具有鎖相環(huán)(LLC),可輸出27MHz的系統(tǒng)時(shí)鐘。芯片具有上電自動(dòng)復(fù)位功能,另有外部復(fù)位管腳(CE),低電平復(fù)位,復(fù)位以后輸出總線(xiàn)變?yōu)槿龖B(tài),待復(fù)位信號(hào)變高后自動(dòng)恢復(fù),時(shí)鐘丟失、電源電壓降低都會(huì)引起芯片的自動(dòng)復(fù)位。7113為QFP44封裝。
在Z1510內(nèi)部寄存器有一段程序空間,這段空間以塊為單位,每塊的大小是256字節(jié)。其中,DSP核程序空間為0x280~0x2BF(64 banks),視頻編碼核的二進(jìn)制代碼的裝載空間為0x000~0x004和0x00C等六個(gè)塊。裝載步驟如下:
(1)向Z1510內(nèi)部寄存器0x2E寫(xiě)入0x01,表示外部的SDRAM是1M×16bit;
(2)向0x0C寄存器寫(xiě)0x03,使能FIFO Ready和End of Data中斷;
(3)向0x11寄存器寫(xiě)0x18,設(shè)定工作模式為內(nèi)部?jī)?nèi)存寫(xiě)模式;
(4)向0x10寫(xiě)0x20,設(shè)定Z1510的FIFO滿(mǎn)為256字節(jié);
(5)向0x08寄存器寫(xiě)0x04,發(fā)送開(kāi)始命令;等待Ready中斷,然后清除Ready中斷;
(6)向Data _in寄存器0x01寫(xiě)256個(gè)字節(jié)數(shù)據(jù);等待End of Data中斷,然后清除中斷;
(7)查程序空間的代碼是否裝載完畢,如沒(méi)有,回到(5)繼續(xù)裝載。
通過(guò)設(shè)定Z1510內(nèi)部工作寄存器的特定狀態(tài)可以使其工作在特定的模式,在本系統(tǒng)中設(shè)定Z1510工作在LAVE模式,在此模式下,Z1510從音頻和視頻A/D轉(zhuǎn)換器獲取數(shù)據(jù)并壓縮為MPEG-1碼流。Z1510正常工作后,輸出MPEG-1碼流。其輸出碼流要經(jīng)過(guò)輸出端口FIFO緩沖,每當(dāng)FIFO寫(xiě)入超過(guò)半門(mén)限時(shí),產(chǎn)生中斷FRDY(FIFO Ready)通知DSP,DSP通過(guò)讀寄存器DATA_out(0x00)取走數(shù)據(jù),其半門(mén)限可由ThreshHold寄存器設(shè)定,最大256字節(jié)。FIFO滿(mǎn)后,DSP連續(xù)讀寄存器256次可以取走數(shù)據(jù)。Z1510的驅(qū)動(dòng)流程見(jiàn)圖2。
2.2 接口程序設(shè)計(jì)
在設(shè)計(jì)開(kāi)發(fā)一個(gè)USB外設(shè)的時(shí)候,主要需要編寫(xiě)三部分程序:①固件程序;②USB驅(qū)動(dòng)程序;③客戶(hù)應(yīng)用程序。固件編程主要完成PDIUSBD12的驅(qū)動(dòng),使DSP系統(tǒng)與外部系統(tǒng)進(jìn)行數(shù)據(jù)交換。
在Win32系統(tǒng)中,每一個(gè)設(shè)備對(duì)象都抽象為文件。在應(yīng)用程序設(shè)計(jì)中,只需通過(guò)幾條簡(jiǎn)單的文件操作API函數(shù),就可以實(shí)現(xiàn)與某個(gè)設(shè)備通信。主要使用的API函數(shù)有DeviceIOControl()、ReadFile()、WriteFile()。其中,DeviceIOControl()用于PC機(jī)(主機(jī))向圖像壓縮系統(tǒng)發(fā)送請(qǐng)求;ReadFile()和WriteFile()分別用于從圖像壓縮系統(tǒng)中讀出數(shù)據(jù)和寫(xiě)入數(shù)據(jù)。在設(shè)計(jì)過(guò)程中必須注意的問(wèn)題是:由于USB接口是主-從方式的接口,它的一切傳輸都必須通過(guò)主機(jī)向外設(shè)發(fā)送請(qǐng)求后才能進(jìn)行,所以在使用ReadFile()、WriteFile()讀寫(xiě)數(shù)據(jù)之前,必須先通過(guò)DeviceIOControl()向圖像壓縮系統(tǒng)發(fā)送請(qǐng)求,系統(tǒng)接收請(qǐng)求后才能讀寫(xiě)數(shù)據(jù),開(kāi)始進(jìn)行音視頻壓縮。
該音視頻壓縮系統(tǒng)具有較好的功能擴(kuò)展性,正如前面所介紹的,由于Z1510具有多種工作模式,在系統(tǒng)初始化時(shí)可根據(jù)所需工作模式加載不同的代碼,對(duì)相應(yīng)的寄存器進(jìn)行不同的初始化,通過(guò)改變工作模式,可完成單獨(dú)的視頻壓縮、音頻壓縮、靜態(tài)非壓縮或壓縮圖像獲取(PC CAMERA)等多種功能。如再在系統(tǒng)中設(shè)計(jì)大容量FLASH,還可升級(jí)為獨(dú)立的音視頻壓縮記錄系統(tǒng)。
-
寄存器
+關(guān)注
關(guān)注
31文章
5421瀏覽量
123359 -
usb
+關(guān)注
關(guān)注
60文章
8145瀏覽量
270878 -
視頻
+關(guān)注
關(guān)注
6文章
1969瀏覽量
73690 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7630瀏覽量
90192 -
PCI
+關(guān)注
關(guān)注
5文章
678瀏覽量
131443
發(fā)布評(píng)論請(qǐng)先 登錄
【RTC程序設(shè)計(jì):實(shí)時(shí)音視頻權(quán)威指南】音視頻的編解碼壓縮技術(shù)
基于ARM Linux的無(wú)線(xiàn)音視頻對(duì)講系統(tǒng)
求一種基于FH8735的音視頻壓縮卡方案
怎么實(shí)現(xiàn)基于VW2005的MPEG-4音視頻壓縮卡的設(shè)計(jì)?
基于Z1510的音視頻壓縮卡的設(shè)計(jì)
基于LPC2210和SZ1510的車(chē)載數(shù)字視頻壓縮記錄系統(tǒng)設(shè)

富瀚微電子FH8735的H.264音視頻壓縮卡方案
FH8735在音視頻壓縮卡上的應(yīng)用設(shè)計(jì)

評(píng)論