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

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 一種基于ADSP-BF537的無線視頻傳輸方案

          一種基于ADSP-BF537的無線視頻傳輸方案

          作者: 時(shí)間:2009-06-25 來源:網(wǎng)絡(luò) 收藏
          0 引 言
          通信技術(shù)和壓縮技術(shù)的迅速發(fā)展,使得成為人們研究的熱點(diǎn)。具有數(shù)據(jù)量大,實(shí)時(shí)性要求高,無線信道資源有限的特點(diǎn)。新一代的視頻壓縮標(biāo)準(zhǔn)H.264結(jié)合專用視頻DSF芯片可以滿足信源編碼的要求。而處理數(shù)據(jù)量大,速度快,運(yùn)算結(jié)構(gòu)相對簡單的FPGA適用于信道編碼。以上考慮,設(shè)計(jì)了一個(gè)無線視頻系統(tǒng),并以發(fā)射端作為控制器,配置FPGA和進(jìn)行數(shù)據(jù)通信。

          1 總體結(jié)構(gòu)實(shí)現(xiàn)
          系統(tǒng)硬件的實(shí)現(xiàn)如下:
          發(fā)送端由攝像機(jī)、專用視頻編碼芯片、控制模塊、基帶模塊、模塊(RF)等部分組成。接收端由接收模塊、控制模塊、基站模塊、專用視頻解碼芯片等部分組成。系統(tǒng)結(jié)構(gòu)如圖1所示。

          本文引用地址:http://www.ex-cimer.com/article/158028.htm

          視頻編碼部分使用DM642的H.264視頻編碼器。該芯片通過網(wǎng)口傳輸數(shù)據(jù),輸出的視頻流是H.264格式,輸出圖像的分辨率范圍為176×144~702×576,而且可以根據(jù)具體需要修改碼流和幀率。
          控制模塊使用ADI公司的作為主要芯片。其主要作用是完成FPGA的配置、接口控制、通信鏈路的建立(視頻流數(shù)據(jù)的傳輸)。
          基帶模塊以Xilinx公司Spartan3 400萬門級芯片的FPGA作為主要芯片。FPGA完成整個(gè)基帶信號(hào)處理,包括信道編碼、OFDM調(diào)制、濾波等。
          模塊由發(fā)射單元、接收單元、頻率合成單元、外置15 W功放等四部分組成,采用差分I,Q信號(hào)調(diào)制、解調(diào),雙向傳輸。發(fā)射單元將I,Q差分輸入經(jīng)調(diào)制芯片調(diào)制成340 MHz的射頻信號(hào),經(jīng)功率控制、功放、隔離器送往環(huán)行器、天線;通過收發(fā)電平控制進(jìn)行發(fā)送和接收的切換;接收單元對接收信號(hào)進(jìn)行濾波、低噪聲放大器后送I,Q解調(diào)芯片解調(diào)出差分的I,Q信號(hào),并進(jìn)行RSSI檢測和AGC控制。工作模式采用半雙工模式;頻率合成單元為發(fā)射單元提供340 MHz本振信號(hào),為接收單元提供680 MHz本振信號(hào)。

          2 控制模塊中DSP與FPGA數(shù)據(jù)通信
          由于FPGASRAM工藝,上電后數(shù)據(jù)會(huì)丟失。一般FPGA除了采用邊界掃描方式JTAG下載外,更多采用與FPGA相對應(yīng)PROM芯片靜態(tài)配置,這種配置方式由于PROM容量小,價(jià)格昂貴,易于燒壞等缺點(diǎn),在產(chǎn)品化之前一般不予采用,更可取的方法是采用控制器動(dòng)態(tài)配置FPGA,比如單片機(jī)、DSP。同時(shí),視頻服務(wù)器通過網(wǎng)口發(fā)送視頻數(shù)據(jù),需要一個(gè)控制部分前向網(wǎng)口接收視頻服務(wù)器的數(shù)據(jù),后向配置FPGA,發(fā)送視頻數(shù)據(jù)。基于以上考慮,整個(gè)系統(tǒng)中控制部分均由ADI公司的Blackfin系列DSP BF537完成,DSPBF537通過接口與視頻服務(wù)器和FPGA通信。
          2.1 硬件平臺(tái)
          ADSP是ADI(Analog Device Inc.)公司推出的一系列高性能低功耗DSP芯片,而基于Blackfin處理器的具有接口豐富,性能優(yōu)良,價(jià)格低廉等特點(diǎn),并具有強(qiáng)大的多媒體數(shù)據(jù)處理能力。Blackfin處理器集成了一個(gè)由ADI公司和Intel公司聯(lián)合開發(fā)的基于MSA(Micro Signal Architecture)的16/32位嵌入式處理器,支持32位RISC指令集,采用10級流水線,集成了兩個(gè)16位乘法加速器,內(nèi)核主頻最高可以達(dá)到600 MHz。ADSF-BF537總線有一個(gè)以DMA控制器為中心的高速自主數(shù)據(jù)通道。DMA總線可以在存儲(chǔ)器之間、存儲(chǔ)器和外部接口之間快速地傳遞數(shù)據(jù),并且可以和內(nèi)核并行操作。ADSP的集成開發(fā)環(huán)境Visual DSP++中嵌入了實(shí)時(shí)操作系統(tǒng)內(nèi)核VDK,適合多任務(wù)多線程的嵌入式操作。ADI還提供了一個(gè)用于Blackfin系列嵌入式處理器的輕量級TCP/IP(LwIP)協(xié)議棧端口,可以快速將一個(gè)獨(dú)立的嵌入式應(yīng)用聯(lián)網(wǎng)。
          2.2 硬件系統(tǒng)架構(gòu)
          DSP與視頻服務(wù)器采用輕量級TCP/IP(LwIP)交互數(shù)據(jù),這里不過多介紹。主要介紹DSP與FPGA連接。由于FPGA基于SRAM工藝,掉電后數(shù)據(jù)會(huì)丟失。采用的方法是將作用于FPGA的通信基帶算法文件存儲(chǔ)在DSP的FLASH中。一般調(diào)試時(shí),DSP及FPGA都需要從PC機(jī)通過JTAG口進(jìn)行程序的下載。但當(dāng)系統(tǒng)程序已經(jīng)調(diào)試完畢,當(dāng)需要到戶外進(jìn)行測試或作為產(chǎn)品使用時(shí),針對系統(tǒng)調(diào)試的方便性,采用DSP自啟動(dòng)及配置FPGA部分。
          ADI公司的ADSP-BF537上電后啟動(dòng)方式一共有7種。本設(shè)計(jì)中采用的DSP上電從16位FLASH啟動(dòng),啟動(dòng)程序采用Analog公司提供的燒寫啟動(dòng)FLASH的程序。第一次上電時(shí),利用JTAG,結(jié)合ADSP自帶工具“FLASH Programmer”將寫好的DSP程序燒入FLASH中。并且將FPGA的配置文件(.bit格式)讀到緩存,通過DSP燒寫到FLASH的Bankl和Bank2中,把Bank0用來做DSP自啟動(dòng)。斷電復(fù)位后,啟動(dòng)過程如下:
          (1)BF537從FLASH引導(dǎo)啟動(dòng),完成DSP板級初始化。
          (2)FPGA的配置文件動(dòng)態(tài)加載到FPGA中。
          (3)用DSP的GPIO端口對FPGA的時(shí)鐘和數(shù)據(jù)配置專用引腳進(jìn)行模擬時(shí)序,即完成對FPGA的動(dòng)態(tài)配置。
          在啟動(dòng)過程完成后,DSP與視頻服務(wù)器進(jìn)行Sock-et連接,接收壓縮的視頻碼流,并送到FPGA進(jìn)行基帶部分的處理。DSP與FPGA的接口部分如圖2所示。


          上一頁 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); })();