基于TMS320 DM642的多路視頻處理
引言
但是隨著視頻監(jiān)控市場的飛速擴(kuò)大,目前市面上的一些視頻監(jiān)控系統(tǒng)缺點(diǎn)逐漸顯現(xiàn),包括成本高昂、路數(shù)少、實(shí)時(shí)性差以及畫質(zhì)不佳,且由于不同場合監(jiān)控需求不一樣使得用戶對監(jiān)控產(chǎn)品的靈活性和針對性提出了更高的要求。本設(shè)計(jì)采用TI公司的TMS320DM642多媒體處理芯片作為主控芯片,將成本控制在可行范圍內(nèi),并且充分利用芯片內(nèi)核的高速處理能力保證監(jiān)控系統(tǒng)實(shí)時(shí)性,是一種兼顧成本及監(jiān)控質(zhì)量的好方法。
TMS320DM642(以下簡稱DM642)是TI公司的一款專門為數(shù)字媒體應(yīng)用設(shè)計(jì)開發(fā)的32-bit定點(diǎn)DSP芯片,具備高性能的C64x數(shù)字信號處理器內(nèi)核外且集成了豐富的外設(shè)資源,如可配置的音視頻接口、以太網(wǎng)MAC控制器、JATG仿真器接口等。
圖1為整個(gè)系統(tǒng)的結(jié)構(gòu)框圖。以DM642為核心,主要包括視頻模塊、存儲模塊、通信模塊以及其他外圍電路部分。視頻模塊由四塊編碼器芯片和一塊解碼器芯片組成,采用切換方式以支持四路復(fù)合視頻輸入和一路視頻輸出顯示;存儲模塊通過DM642的EMIF接口擴(kuò)展片外存儲器SDRAM和FLASH,并通過CPLD控制FLASH片內(nèi)分頁寄存器的讀寫;通信模塊部分利用CPLD控制并口傳輸模式,實(shí)現(xiàn)時(shí)序邏輯以及數(shù)據(jù)傳輸,使整個(gè)系統(tǒng)作為從設(shè)備接受主設(shè)備控制以完成特定的圖像處理運(yùn)算等。
系統(tǒng)硬件架構(gòu)
電源管理模塊
DM642采取雙電源供電方式:CPU內(nèi)核電壓+1.4V,電流793mA;外圍I/O電壓+3.3V,電流165mA。這兩個(gè)獨(dú)立電壓在供電時(shí)需要嚴(yán)格按照順序進(jìn)行,保證內(nèi)核電源先上電,最晚也應(yīng)當(dāng)與I/O電源同時(shí)上電,避免對芯片造成危害。
電源芯片,采用TI公司的TPS54310,它利用電路板上5V電源驅(qū)動兩個(gè)線性穩(wěn)壓模塊,經(jīng)過兩路電壓轉(zhuǎn)換生成所需的+1.4V及+3.3V電壓。
上電過程中,在內(nèi)核電壓和I/O電源達(dá)到要求的電壓之前需確保系統(tǒng)時(shí)鐘處于復(fù)位狀態(tài),以避免產(chǎn)生不受控制的狀態(tài)。因此采用TI公司的電源檢測芯片TPS3823-33,它能夠?qū)ο到y(tǒng)使用最多 的+3.3V電壓進(jìn)行監(jiān)測,并且允許系統(tǒng)中各芯片在任意時(shí)刻通過復(fù)位來調(diào)整工作狀態(tài)。
時(shí)鐘電路
為了降低片外時(shí)鐘頻率,提高系統(tǒng)穩(wěn)定性,在設(shè)計(jì)DSP系統(tǒng)時(shí)應(yīng)盡量使用DSP片內(nèi)鎖相環(huán)(PLL)。在本設(shè)計(jì)中選用外部50MHz的時(shí)鐘源,經(jīng)過PLL進(jìn)行12倍頻后得到CPU所需的600MHz主頻。在本設(shè)計(jì)中,采用1/4CPU時(shí)鐘為ECLKIN提供150MHz的時(shí)鐘,并通過ECLKOUT1引腳將時(shí)鐘提供給SDRAM的CLK引腳。
整個(gè)系統(tǒng)中使用到的時(shí)鐘頻率還有視頻編解碼芯片的14.31818MHz時(shí)鐘,它與DSP主時(shí)鐘一樣都采用外部晶振。
外部存儲器
本系統(tǒng)主要用于視頻圖像處理,在處理過程中會產(chǎn)生海量數(shù)據(jù),而DM642片內(nèi)僅有256KB的RAM,所以必須擴(kuò)展大容量的外部存儲器才能夠滿足數(shù)據(jù)處理的需要。
本設(shè)計(jì)采用兩片Hynix公司的HY57V283220T(4M×32bit)SDRAM芯片構(gòu)成64bit外部RAM空間;采用一片AM29LV033C(4M×8bit)FLASH芯片構(gòu)成外部ROM空間。將上述兩片SDRAM芯片并聯(lián)構(gòu)成64-bit位寬、32MB大小的存儲空間映射到配置為同步動態(tài)存儲器接口、64bit位寬的CE0子空間。
視頻通路模塊
本設(shè)計(jì)中將DM642的3個(gè)視頻端口VP0VP1VP2均設(shè)置為8-bit BT.656模式,其中VP0和VP1采用單通道方式,將通道A用于視頻采集;VP2采用雙通道方式,通道A和B均用于視頻采集。因此,最多可以同時(shí)采集4路模擬視頻信號。在BT.656視頻捕獲模式下,F(xiàn)IFO空間總共為2560KB且如下分配:1個(gè)1280Byte的FIFO專用于存儲Y采樣數(shù)據(jù);2個(gè)640Byte的FIFO分別用于存儲Cb和Cr數(shù)據(jù)。
采用4片飛利浦公司的SAA7113解碼芯片來實(shí)現(xiàn)4路模擬視頻輸入的轉(zhuǎn)換。SAA7113支持6路復(fù)合視頻信號CVBS或1路S端子(S-Video)輸入,輸出為帶離散同步信號的8bit4:2:2YCbCr格式或者帶內(nèi)嵌同步信號的8bitBT.656格式的數(shù)字視頻信號。
在視頻回放部分,編碼器選用1片飛利浦公司的SAA7121,其可將數(shù)字亮色信號(YUV)或數(shù)字RGB信號等數(shù)據(jù)轉(zhuǎn)換成CVBS,S-VIDEO,RGB等模擬信號輸出,支持PAL/NTSC制式,并且支持VGA及高清晰HDTV輸出。編解碼器與DM642的引腳連接圖如圖2所示。
DM642中的I2C接口不支持高速模塊,因此在本設(shè)計(jì)中所使用的I2C總線速率最高為400kbit/s。本設(shè)計(jì)中采用了TI的4bit 2選1切換器SN74CBT3257使DM642可以每次選擇接收一組I2C數(shù)據(jù)。由于SAA7113只能配置兩個(gè)不同的設(shè)備地址,一條I2C總線中不能同時(shí)連接4個(gè)SAA7113,因此須將I2C總線切分成IIC0和IIC1。具體連接方式見圖3。
軟件設(shè)計(jì)
設(shè)置DM642內(nèi)部模塊的配置參數(shù),包括VPort視頻端口參數(shù)配置,SDRAM及FLASH寄存器配置;I2C總線參數(shù)配置;編解碼芯片內(nèi)部寄存器配置等。
系統(tǒng)上電初始化,DM642通過內(nèi)部軟件模擬I2C總線時(shí)序,配置好SAA7113內(nèi)部寄存器,設(shè)置其工作方式;之后DM642向CPLD發(fā)送采集指令,雙方通過HOLD、HOLDA握手信號,實(shí)現(xiàn)總線控制交接,此時(shí)CPLD獲得總線控制權(quán),然后打開SAA7113的輸出,對采集到的視頻數(shù)據(jù)進(jìn)行寫控制;當(dāng)一幀視頻數(shù)據(jù)寫入SDRAM幀緩存器后,CPLD關(guān)閉SAA7113視頻輸出,放棄總線控制權(quán),并發(fā)送中斷信號給DM642;DM642重新獲得控制權(quán)后,對采集到的視頻數(shù)據(jù)使用特定算法進(jìn)行圖像處理,并將處理后的視頻數(shù)據(jù)緩存在SDRAM中,同時(shí)配置SAA7121內(nèi)部寄存器,設(shè)置其工作方式,此時(shí)將SDRAM中緩存的圖像數(shù)據(jù)送入SAA7121進(jìn)行D/A轉(zhuǎn)換,并經(jīng)過并口送VGA顯示器進(jìn)行圖像顯示;DM642在圖像處理完畢后即重新發(fā)出開始采集命令,進(jìn)行下一幀數(shù)據(jù)的采集。