<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于TMS320C6201 DSP的視頻圖像語音傳輸系統(tǒng)的硬件設(shè)計

          基于TMS320C6201 DSP的視頻圖像語音傳輸系統(tǒng)的硬件設(shè)計

          作者: 時間:2011-04-29 來源:網(wǎng)絡(luò) 收藏

          隨著科學(xué)技術(shù)的高速發(fā)展,視頻圖像和語音數(shù)字化處理在軍事、科研、工農(nóng)業(yè)生產(chǎn)、醫(yī)療衛(wèi)生等領(lǐng)域的應(yīng)用越來越廣泛。早期的糧情監(jiān)測主要是基于對糧倉溫度、濕度的采集觀測。隨著糧情系統(tǒng)的進一步完善,人們提出了更高要求,希望對糧倉內(nèi)部進行實時圖像語音監(jiān)控,進一步加強對蟲害和火災(zāi)觀測和預(yù)防。本文所采用的基于系統(tǒng)就是應(yīng)用于糧情的監(jiān)測,在滿足以上要求的前提下設(shè)計完成的。

            圖像語音的壓縮傳輸系統(tǒng)有二種基本的實現(xiàn)方法:一種是基于微機實現(xiàn),圖像語音處理系統(tǒng)通過PCI總線以插卡的形式集成在微機系統(tǒng)中,數(shù)據(jù)通過PCI總線或卡上所帶的接口進行交換和傳輸;另一種是脫離了微機而獨立運行,利用微處理芯片對圖像語音進行數(shù)字化壓縮傳輸。本文介紹的設(shè)計采用了后一種方法。

          1 系統(tǒng)的組成和基本原理

            一個完整的系統(tǒng)不但要具備對圖像語音信號的采集功能,還要求完成對采集上來的圖像語音信號的分析及處理算法(如圖像壓縮等),最后采用一定的媒質(zhì)將處理好的信號傳輸?shù)浇K端主機顯示。視頻圖像語音信號的分析及處理算法的運算量很大,同時又要滿足實時顯示的要求,因此采用了高速芯片作為數(shù)據(jù)核心的處理單元。系統(tǒng)的基本結(jié)構(gòu)模型如圖1所示。

          2 硬件結(jié)構(gòu)

          2.1 模擬視頻輸入接口設(shè)計

            (1)視頻采樣要求。模擬視頻輸入接口電路的作用是對輸入的模擬視頻信號進行預(yù)處理,并將其數(shù)字化。視頻采樣有2個重要指標:采樣分辨率和采樣頻率。采樣分辨率代表圖像灰度量化的等級,位數(shù)越多,圖像層次越豐富,同時圖像數(shù)據(jù)量也越大;采樣頻率決定可數(shù)字化后圖像的空間分辨率,為了不失真,它必須大于模擬視頻信號的頻譜中最高頻率的2倍。另外,還要求模擬視頻輸入接口所引入的系統(tǒng)噪聲最小。模擬視頻輸入接口的原理框圖如圖2所示。

            (2)模擬視頻解碼模塊。視頻解碼模塊的作用是將復(fù)合視頻、YC分量等模擬視頻信號進行A/D轉(zhuǎn)換,提取其中的同步和時鐘信號,所有轉(zhuǎn)換電路均集中在一塊芯片內(nèi)。根據(jù)以上要求,選擇Philips公司生產(chǎn)的可編程的數(shù)字視頻A/D變換器SAA7111A,它有4路模擬輸入和2路模擬信號處理通道,可以通過編程選擇信號制式。輸出信號可以是YUV411(12位)、YUV422(16位)、YUV422(CCIR-656)(8位)、RGB(5、6和5)(16位)或RGB(8、8和8)(24位)格式。系統(tǒng)通過I2C總線對SAA7111A編程,完成初始配置工作。來自攝像頭的模擬信號,首先在模擬信號控制下,進行信號箝位、模擬放大、反混淆濾波、A/D轉(zhuǎn)換,然后將得到的8位亮度信號和8位色度信號分別送往亮度處理電路和色度處理電路進行處理,產(chǎn)生16位的YUV信號。Y(7:0)為8位數(shù)字亮度信號,UV(7:0)為不同顏色(B-Y和R-Y)復(fù)用信號。信號輸出格式由I2C總線控制(YUV信號輸出格式由I2C總線控制電路決定),幀時序由HREF信號控制。在系統(tǒng)中將采用帶有I2C接口的、與51系列兼容的單片機T89C51IC2對SAA7111A進行控制,即對模擬視頻前端SAA7111A的采樣率、箝位電平、鎖相環(huán)等進行編程設(shè)置,以使整個視頻輸入接口電路按照預(yù)先設(shè)計的方式工作。

            (3)采用FIFO作為實時圖像數(shù)據(jù)輸入緩沖器。從性能上來說,普通型的幀存儲體在采集的同時不能讀取采集數(shù)據(jù)。雖然采用雙端口RAM也可以解決并發(fā)訪問的問題,但它所必需的地址譯碼和占用大段的主存儲器映射空間(或繁雜的頁面切換)是不可忽視的實際問題。從對采集到的數(shù)據(jù)的處理方式可以看出,對于單純采集應(yīng)用(不需要對數(shù)據(jù)做諸如疊加等預(yù)處理工作),其系統(tǒng)緩存單元在結(jié)構(gòu)上相當于先進先出(FIFO)隊列,即按信號時間順序先采集的數(shù)據(jù)先被主處理芯片讀取及處理。所以采用專門的FIFO芯片可去掉復(fù)雜的緩存器幀內(nèi)地址譯碼電路,大大簡化了系統(tǒng)設(shè)計。FIFO(IDT72V3640)用于向傳輸經(jīng)SAA7111A轉(zhuǎn)換后的16位實時圖像數(shù)據(jù)VPO(0:15)。FIFO不存在地址線的問題,所以不用連接地址線。

          2.2 音頻編解碼器的選取

            采用Crystal公司的CS4231A芯片作為核心音頻編碼解碼器(CODEC)模塊。CS4231A多媒體芯片為系統(tǒng)提供一個靈活、通用的音頻前端。它是一個16位立體聲器件,包含完整的片上濾波、模擬混音和可編程控制的增益和衰減調(diào)節(jié)。CS4231A支持8、9.6、11.025、16、22.05、32、44.1、48kHz等通用的采樣頻率,如此寬范圍的采樣頻率可以適應(yīng)從電信到音頻的各種應(yīng)用需求。CS4231A采用頻率分別為16.9344MHz和24.576MHz的2個晶振來作為采樣頻率的時鐘源。

          CS4231A同時提供了并行和串行接口,支持DMA及中斷工作方式,因而可以通過多種方式與進行連接。這里采用的是其中最有效的方式:即串行接口傳輸音頻數(shù)據(jù),并行接口傳輸控制信息。CS4231A使用與DSP的McBSP(多通道緩存串行口)相兼容的串行音頻數(shù)據(jù)接口,這種接口方式為串行音頻數(shù)據(jù)提供了一個專用通道而不必占用DSP的EMIF的帶寬。在串行數(shù)據(jù)流中,CS4231A先傳輸左聲道數(shù)據(jù)然后傳輸右聲道數(shù)據(jù),并且傳輸時高位在前(與McBSP的工作方式相兼容)。CS4231A串口通過多路復(fù)用芯片CBT3257的4個2選1復(fù)用器連接到DSP的McBSP,這一設(shè)置使McBSP可以與板上的CS4231A相連,也可以在任一時刻與自己的具體應(yīng)用子板相連。CS4231A包含1個8位寬度的并行控制/狀態(tài)接口,通過把接口寄存器映射到DSP的EMIF空間來進行控制和狀態(tài)讀取。這樣就使控制接口和音頻數(shù)據(jù)相分離,避免了在單個碼流上的信號復(fù)用,簡化了軟件驅(qū)動設(shè)計。CS4231A是5V器件,DSP是3.3V器件,它們相互連通后得并行控制信號,并且必須通過總線收發(fā)器進行信號轉(zhuǎn)換。

            CODEC模塊支持線性和話筒的多路輸入:音頻的放大器用來對話筒輸入信號進行預(yù)防和濾波;線性輸入經(jīng)過無源濾波、交流耦合送入CS4231A,輸入插座可以用來連接立體聲源,通過軟件可以獨立控制左、右輸入聲道的選擇和各自的增益。CODEC還包含一個可通過DSP軟件控制衰減的線性輸出。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();