0 引 言 無線通信技能 和視頻壓縮技能 的快速 發(fā)展,使得無線視頻傳輸成為人們研究的熱點(diǎn)。無線視頻傳輸具有數(shù)據(jù)量大,實(shí)時(shí)性要求高,無線信道資源有限的特點(diǎn)。新一代的視頻壓縮標(biāo)準(zhǔn)H.264結(jié)合專用視頻DSF芯片可以滿足信源編碼的要求。而處理數(shù)據(jù)量大,速度快,運(yùn)算結(jié)構(gòu)相對(duì)基本 的FPGA適用于信道編碼。基于以上考慮,設(shè)計(jì)了一個(gè)無線視頻傳輸系統(tǒng),并以發(fā)射端ADSP-BF537作為控制器,配置FPGA和執(zhí)行 數(shù)據(jù)通信。 1 總體結(jié)構(gòu)實(shí)現(xiàn)方案 系統(tǒng)硬件的實(shí)現(xiàn)方案如下: 發(fā)送端由攝像機(jī)、專用視頻編碼芯片、控制模塊、基帶模塊、射頻模塊(RF)等部分組成。接收端由射頻接收模塊、控制模塊、基站模塊、專用視頻解碼芯片等部分組成。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖片看不清楚?請(qǐng)點(diǎn)擊這里查看原圖(大圖)。 視頻編碼部分運(yùn)用 基于DM642的H.264視頻編碼器。該芯片通過網(wǎng)口傳輸數(shù)據(jù),輸出的視頻流是H.264格式,輸出圖像的分辨率范圍為176×144~702×576,而且可以根據(jù)具體須要 修改碼流和幀率。 控制模塊運(yùn)用 ADI公司的ADSP-BF537作為主要芯片。其主要作用是完成FPGA的配置、接口控制、通信鏈路的建立(視頻流數(shù)據(jù)的傳輸)。 基帶模塊以Xilinx公司Spartan3 400萬門級(jí)芯片的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ā)電平控制執(zhí)行 發(fā)送和接收的切換;接收單元對(duì)接收信號(hào)執(zhí)行 濾波、低噪聲放大器后送I,Q解調(diào)芯片解調(diào)出差分的I,Q信號(hào),并執(zhí)行 RSSI檢測(cè)和AGC控制。工作模式采用半雙工模式;頻率合成單元為發(fā)射單元提供340 MHz本振信號(hào),為接收單元提供680 MHz本振信號(hào)。
2 控制模塊中DSP與FPGA數(shù)據(jù)通信 由于FPGA基于SRAM工藝,上電后數(shù)據(jù)會(huì)丟失。一般FPGA除了采用邊界掃描方式JTAG下載外,更多采用與FPGA相對(duì)應(yīng)PROM芯片靜態(tài)配置,這種配置方式由于PROM容量小,價(jià)格昂貴,易于燒壞等缺點(diǎn),在產(chǎn)品化之前一般不予采用,更可取的要領(lǐng) 是采用控制器動(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處理器的ADSP-BF537具有接口豐富,性能優(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級(jí)流水線,集成了兩個(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系列嵌入式處理器的輕量級(jí)TCP/IP(LwIP)協(xié)議棧端口,可以高速 將一個(gè)獨(dú)立的嵌入式運(yùn)用 聯(lián)網(wǎng)。 2.2 硬件系統(tǒng)架構(gòu) DSP與視頻服務(wù)器采用輕量級(jí)TCP/IP(LwIP)交互數(shù)據(jù),這里不過多介紹。主要介紹DSP與FPGA連接。由于FPGA基于SRAM工藝,掉電后數(shù)據(jù)會(huì)丟失。采用的要領(lǐng) 是將作用于FPGA的通信基帶算法文件存儲(chǔ)在DSP的FLASH中。一般調(diào)試時(shí),DSP及FPGA都須要 從PC機(jī)通過JTAG口執(zhí)行 程序的下載。但當(dāng)系統(tǒng)程序已經(jīng)調(diào)試完畢,當(dāng)須要 到戶外執(zhí)行 測(cè)試或作為產(chǎn)品運(yùn)用 時(shí),針對(duì)系統(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í),運(yùn)用 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板級(jí)原始化。 (2)FPGA的配置文件動(dòng)態(tài)加載到FPGA中。 (3)用DSP的GPIO端口對(duì)FPGA的時(shí)鐘和數(shù)據(jù)配置專用引腳執(zhí)行 模擬時(shí)序,即完成對(duì)FPGA的動(dòng)態(tài)配置。 在啟動(dòng)流程 完成后,DSP與視頻服務(wù)器執(zhí)行 Sock-et連接,接收壓縮的視頻碼流,并送到FPGA執(zhí)行 基帶部分的處理。DSP與FPGA的接口部分如圖2所示。
圖片看不清楚?請(qǐng)點(diǎn)擊這里查看原圖(大圖)。 圖2中DSP通過自身的外部總線與FPGA相連,F(xiàn)PGA內(nèi)部實(shí)現(xiàn)了兩個(gè)2 KB的異步存儲(chǔ)器SRAM0,SRAM1,對(duì)存儲(chǔ)器的訪問滿足DSP外部總線的時(shí)序要求。圖2中接口連線意思 如表1所示。 2.3 軟件系統(tǒng)結(jié)構(gòu) 有關(guān) 程序是用含有VDK(Visual DSP Kernel)的DSP軟件開發(fā)工具Visual DSP開發(fā)的。VDK是一種帶有API函數(shù)庫的實(shí)時(shí)操作系統(tǒng)內(nèi)核,它具有任務(wù)調(diào)度和任務(wù)管理功能,一共支持32個(gè)任務(wù)。VDK是整個(gè)軟件的基礎(chǔ),所有其他的程序都運(yùn)行在該Kernel上。程序流程圖如圖3所示。
圖片看不清楚?請(qǐng)點(diǎn)擊這里查看原圖(大圖)。 上電或復(fù)位后,DSP自啟動(dòng)后VDK啟動(dòng)線程lwip_sysboot_threadtype開始運(yùn)行。在線程lwip_sysboot_threadtype中執(zhí)行 板級(jí)原始化和Lwip協(xié)議棧和網(wǎng)口原始化,其中板級(jí)原始化包括FPGA原始化,EBIU原始化,MDMA原始化,F(xiàn)LAG原始化。接下來建立 下面多個(gè) 線程: (1)數(shù)據(jù)傳輸:視頻數(shù)據(jù)傳輸。用于從編碼器獲取編碼后的視頻數(shù)據(jù)流,并存儲(chǔ)到緩沖區(qū)中。 (2)FPGA中斷:視頻數(shù)據(jù)發(fā)送中斷;MDMA中斷。 DSP首先通過Socket與視頻服務(wù)器連接,從視頻服務(wù)器獲取視頻數(shù)據(jù),并將數(shù)據(jù)緩存后按照特定的格式打包,等待FPGA觸發(fā)視頻數(shù)據(jù)發(fā)送中斷。中斷觸發(fā)后,DSP啟動(dòng)MDMA將一幀大小的數(shù)據(jù)發(fā)送給FPGA發(fā)送緩沖區(qū)。當(dāng)MDMA操作完成后,觸發(fā)MDMA中斷,將幀頭寫入FPGA發(fā)送緩沖區(qū)的頭兩個(gè)字節(jié)。FPGA將接收的數(shù)據(jù)執(zhí)行 基帶算法處理后再將數(shù)據(jù)發(fā)送給射頻部分,之后FPGA再觸發(fā)視頻數(shù)據(jù)發(fā)送中斷,告訴DSP可以下一幀的發(fā)送,于是又啟動(dòng)MDMA,如此循環(huán)。 3 實(shí)驗(yàn)結(jié)果和分析 對(duì)系統(tǒng)在不同的信噪比的環(huán)境中傳輸?shù)恼`碼率執(zhí)行 了測(cè)試。測(cè)試要領(lǐng) 如下:將發(fā)射機(jī)的輸出端口通過數(shù)據(jù)排線與邏輯分析儀相連,邏輯分析儀將采集到的一幀發(fā)射信號(hào)送到PC中用Matlab軟件對(duì)其加上噪聲,得到信噪比固定的信號(hào)。將這個(gè)信號(hào)導(dǎo)人信號(hào)源中執(zhí)行 不間斷循環(huán)發(fā)送給接收端的輸入端口。接收機(jī)接收信號(hào)執(zhí)行 解調(diào)并將解調(diào)出的數(shù)據(jù)傳給PC以統(tǒng)計(jì)誤碼率。測(cè)試結(jié)果如表2所示。 圖片看不清楚?請(qǐng)點(diǎn)擊這里查看原圖(大圖)。 4 結(jié) 語 設(shè)計(jì)了一種無線視頻傳輸系統(tǒng)的方案,并對(duì)其中發(fā)射部分的數(shù)據(jù)通信流程 做了細(xì)致 闡述。從硬件架構(gòu)和軟件設(shè)計(jì)兩方面說明了數(shù)據(jù)在視頻服務(wù)器、DSP和FP-GA之間的傳遞流程 。其中ADSP-BF537作控制器,成功完成了動(dòng)態(tài)配置FPGA和通過網(wǎng)口傳送視頻數(shù)據(jù)的功能。該方案很好地滿足了大數(shù)據(jù)量,實(shí)時(shí)性的數(shù)據(jù)處理和結(jié)構(gòu)靈活,模塊化設(shè)計(jì)相結(jié)合的要求。同時(shí)DSP+FPGA的數(shù)字硬件系統(tǒng)開發(fā)周期較短,系統(tǒng)容易維護(hù)和擴(kuò)展,適合實(shí)時(shí)信號(hào)處理,使方案有更廣泛的運(yùn)用 。
|