基于DSP的圖像壓縮無(wú)線(xiàn)傳輸系統(tǒng)設(shè)計(jì)方案
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引言
隨著航空航天技術(shù)的發(fā)展,圖像無(wú)線(xiàn)傳輸技術(shù)日趨成熟。而嵌入式圖像無(wú)線(xiàn)傳輸技術(shù)以其安裝方便、靈活、適合廣泛普及等優(yōu)點(diǎn)在廣大領(lǐng)域備受關(guān)注。本文介紹一種基于DSP的無(wú)線(xiàn)圖像傳輸系統(tǒng)的設(shè)計(jì)方案與實(shí)現(xiàn)方法。
2 系統(tǒng)總體設(shè)計(jì)方案
圖1為該系統(tǒng)設(shè)計(jì)框圖。該系統(tǒng)分為圖像采集、圖像數(shù)據(jù)處理及無(wú)線(xiàn)通信3個(gè)模塊。圖像采集完成圖像數(shù)據(jù)的采集;圖像處理實(shí)現(xiàn)圖像數(shù)據(jù)的壓縮及相關(guān)處理:無(wú)線(xiàn)通信傳輸壓縮數(shù)據(jù)。該系統(tǒng)選用TMS320VC5509A型DSP作為主處理器。
3 系統(tǒng)硬件設(shè)計(jì)
3.1圖像采集模塊
圖像信號(hào)采集電路的基本工作方法分為獨(dú)立和處理器兩種采集法。前者采用專(zhuān)用圖像采集器件,自動(dòng)完成圖像采集、存儲(chǔ)器地址生成以及圖像數(shù)據(jù)的存儲(chǔ)和刷新,除設(shè)定采集模式外,處理器不參與采集過(guò)程,該方法采集過(guò)程不占用CPU時(shí)間,實(shí)時(shí)性好,適合采集活動(dòng)圖像,但電路較復(fù)雜;后者采用普通視頻A/D轉(zhuǎn)換器和幀存儲(chǔ)器實(shí)現(xiàn)圖像采集。CPU控制完成采集過(guò)程,需占用CPU時(shí)間,實(shí)時(shí)性差,不適合實(shí)時(shí)采集視頻圖像,但電路簡(jiǎn)單。因此,本系統(tǒng)采用第1種獨(dú)立采集方案。由專(zhuān)用圖像傳感器OV9650,CPLD和相應(yīng)的外接電路等組成。OV9650是Omnision公司生產(chǎn)的CMOS圖像傳感器,其內(nèi)部集成有MD轉(zhuǎn)換器,可提供SXGA(1 280x1 024)分辨率的圖像攝入和處理功能;采集圖像以全圖方式、局部方式或抽樣子圖方式輸出,并且可提供多種輸出格式。該系統(tǒng)通過(guò)SCCB總線(xiàn)配置 OV9650,從而形成8位ITU-R BT.656格式的數(shù)字碼流。CPLD選用XC95144XL10TQ144C,其最高主頻可達(dá)178 MHz,144個(gè)宏單元和3 200個(gè)可用門(mén)電路,其TQFP封裝有117個(gè)可用I/O引腳,滿(mǎn)足各種采集設(shè)計(jì)需要;實(shí)現(xiàn)異步存儲(chǔ)器Flash擴(kuò)展;完成對(duì)BT.656格式的數(shù)字碼流解碼,包括提取碼流中的同步信號(hào)、行起始和結(jié)束信號(hào)、取出亮度(Y)信息、色度信息,進(jìn)行地址譯碼;實(shí)現(xiàn)SCCB總線(xiàn)接口;在DSF需要讀取狀態(tài)和圖像數(shù)據(jù)時(shí),產(chǎn)生必要的邏輯控制和時(shí)序,通過(guò)DMA將數(shù)據(jù)從緩存區(qū)讀取SDRAM等。
數(shù)據(jù)采集時(shí),圖像采集模塊產(chǎn)生高速數(shù)字碼流,而DSP對(duì)外圍設(shè)備讀取速度較慢。為了解決圖像采集模塊與圖像處理模塊的速度匹配問(wèn)題,在這兩模塊之間加入數(shù)據(jù)緩沖區(qū),可采用FIFO或SRAM,本系統(tǒng)采用ISSI公司的64 Kx16 bit存儲(chǔ)空間的高速SRAM存儲(chǔ)器IS61LV6416作為緩存存儲(chǔ)解碼BT.656碼流得到的圖像亮度數(shù)據(jù)。
3.2 圖像數(shù)據(jù)處理模塊
TMS320VC5509A內(nèi)部?jī)H有256 KB的RAM和64 KB的ROM,無(wú)法滿(mǎn)足處理大量圖像數(shù)據(jù)的需求,必須通過(guò)EMIF擴(kuò)展外部存儲(chǔ)器存放原始圖像數(shù)據(jù)和應(yīng)用程序。該系統(tǒng)外接Hynix公司 HY57V641620EP SDRAM,其8 MB的存儲(chǔ)空間用于存儲(chǔ)圖像數(shù)據(jù);外接Spansion公司的S29AL008D Flash,其1 MB的存儲(chǔ)空間用于存儲(chǔ)應(yīng)用程序和Boofloader。EMIF可與SDRAM無(wú)縫連接,接口連接如圖2所示。由于TMS320VC5509A最大只能外擴(kuò)16 KB的異步存儲(chǔ)器,因此訪(fǎng)問(wèn)1 MB Flash需按分頁(yè)方式訪(fǎng)問(wèn),連接示意圖如圖3所示。
3.3 無(wú)線(xiàn)收發(fā)模塊
nRF24L01是一款2.4 GHz單片無(wú)線(xiàn)收發(fā)器,全球開(kāi)放ISM頻段免許可證使用,126頻道,滿(mǎn)足多點(diǎn)通信和跳頻通信需要,內(nèi)置硬件CRC檢錯(cuò)和點(diǎn)對(duì)多點(diǎn)通信地址控制,最高工作速率2 Mb/s,高效GFSK調(diào)制,抗干擾能力強(qiáng),只需少量外圍元件便可組成射頻收發(fā)電路,適用于工業(yè)控制場(chǎng)合。
4 系統(tǒng)軟件設(shè)計(jì)
由于圖像數(shù)據(jù)量大,若在接收端實(shí)時(shí)顯示采集端圖像,必須提高DSP的工作效率。圖像采集時(shí),通過(guò)DMA完成圖像數(shù)據(jù)從采集模塊到圖像處理模塊的傳輸;圖像壓縮利用DMA完成JPEG壓縮過(guò)程中的分塊操作,避免CPU對(duì)外圍存儲(chǔ)器的讀寫(xiě)操作。無(wú)線(xiàn)通信時(shí),將McBSP(多通道緩沖串口)配置成SPI接口與無(wú)線(xiàn)通信模塊nRF24L01進(jìn)行連接,需要傳輸?shù)膲嚎s數(shù)據(jù)由DMA送到McBSP緩沖區(qū),最終完成圖像數(shù)據(jù)傳輸。DMA具有傳輸快速、高效的特性,并且數(shù)據(jù)傳輸丁作無(wú)需CPU參與,從而極大減小CPU的負(fù)擔(dān),提高系統(tǒng)效率。
4.1 采用DMA讀取采集模塊的數(shù)據(jù)
圖像采集模塊由CPLD控制,CPLD對(duì)OV9650解碼器產(chǎn)生的數(shù)據(jù)進(jìn)行相應(yīng)的譯碼并順序存儲(chǔ)到圖像采集模塊的緩沖區(qū)。采集圖像大小為320x200的 8位灰度圖像,為擴(kuò)展需要,緩沖區(qū)采用具有64 K×16 bit存儲(chǔ)空間的高速SRAM存儲(chǔ)器IS61LV6416-10T,存儲(chǔ)一幅完整圖像。一幅圖像采集完后,DMA與CPLD將緩沖區(qū)中的圖像數(shù)據(jù)轉(zhuǎn)存到 DSP的外部存儲(chǔ)器。DMA的主要寄存器配置參考圖像壓縮的DMA配置。
4.2 DMA在JPEG算法中的應(yīng)用
該系統(tǒng)采用JPEG壓縮算法,該算法是將圖像數(shù)據(jù)分成8x8的矩陣塊、離散余弦變換、量化、Z(Zigzag)形掃描和Huffman編碼,圖像數(shù)據(jù) JPEG壓縮時(shí)。需要分塊處理DSP外圍存儲(chǔ)器中的圖像數(shù)據(jù)。CPU對(duì)外圍存儲(chǔ)器的讀寫(xiě)操作要慢于內(nèi)部DRAM存儲(chǔ)區(qū)。為提高圖像壓縮速度,在算法移植時(shí),內(nèi)部DARAM建立兩個(gè)8x8的矩陣單元,DMA將外部存儲(chǔ)器的圖像數(shù)據(jù)以8x8的矩陣塊為單元傳輸?shù)降絻?nèi)部DARAM中的一個(gè)數(shù)組中,同時(shí)實(shí)現(xiàn) JPEG算法的分塊操作。利用DMA與CPU并行工作的特性,在CPU操作一個(gè)塊時(shí),另一分塊傳輸數(shù)據(jù),兩個(gè)數(shù)組交替進(jìn)行,構(gòu)成乒乓結(jié)構(gòu)。圖像壓縮過(guò)程中需多次配置DMA,才能實(shí)現(xiàn)整個(gè)圖像數(shù)據(jù)從外存到內(nèi)存的傳輸和數(shù)據(jù)分塊。數(shù)據(jù)塊依次經(jīng)離散余弦變換、量化、Z變換及哈夫曼編碼,形成JPEG碼流。圖4為圖像壓縮的程序流程。
4.3 McBSP端口與無(wú)線(xiàn)模塊的連接
無(wú)線(xiàn)通信模塊nRF24L01通過(guò)SPI接口實(shí)現(xiàn)與DSP的數(shù)據(jù)通信,只需占用4根數(shù)據(jù)線(xiàn)且傳播速度快。DSP的MeBSP的時(shí)鐘停止模式與SPI協(xié)議兼容。當(dāng)McBSF設(shè)置成時(shí)鐘停止模式時(shí),發(fā)送器和應(yīng)答器內(nèi)部同步,McBSP就作為一個(gè)SPI主/從設(shè)備使用。系統(tǒng)中DSP的McBSP作為SPI的主設(shè)備,主要的McBSP控制寄存器位設(shè)置如下:
RPHASE=XPHASE=0,∥單相幀
RFRLEN1=XFRLEN=0,/每幀一個(gè)數(shù)據(jù)單元
RWDLEN1=XWDLEN1=000b,//數(shù)據(jù)單元字長(zhǎng)8位
CLKRP=CLKXP=O,//時(shí)鐘下降沿接收數(shù)據(jù)。在上升沿處發(fā)送數(shù)據(jù)
FSRP=FSXP=0,//幀同步信號(hào)高有效
RDATDLY=XDATDLY=01b,//1位數(shù)據(jù)延遲
通過(guò)此種方式實(shí)現(xiàn)與nRF24L01串行通信。DMA的寄存器配置和圖像數(shù)據(jù)傳輸?shù)腄MA配置可以參考圖像壓縮DMA的配置。
4.4 nRF24L01無(wú)線(xiàn)通信模塊
數(shù)據(jù)發(fā)送端首先配置nRF24L01寄存器,包括設(shè)置工作模式、使能自動(dòng)應(yīng)答等功能。發(fā)送數(shù)據(jù)時(shí),將發(fā)送的數(shù)據(jù)塊按時(shí)序由SPI接口寫(xiě)入nRF24L01 緩存區(qū),然后設(shè)置發(fā)送控制引腳為高電平并至少保持10 μs,延時(shí)130μs后發(fā)射數(shù)據(jù),發(fā)射的數(shù)據(jù)自動(dòng)打包并按寄存器的設(shè)置加入1個(gè)字節(jié)或2個(gè)CRC校驗(yàn)碼;若開(kāi)啟自動(dòng)應(yīng)答,nRF24L01在發(fā)射數(shù)據(jù)后立即進(jìn)入接收模式,接收應(yīng)答信號(hào)。如果收到應(yīng)答信號(hào),則認(rèn)為發(fā)射成功;若在設(shè)定時(shí)間內(nèi)沒(méi)有接收到應(yīng)答信號(hào),則自動(dòng)重新發(fā)射數(shù)據(jù),直到重發(fā)次數(shù)超過(guò)設(shè)定閾值,以上操作都影響狀態(tài)寄存器中的相應(yīng)標(biāo)志位。
圖5(a)為數(shù)據(jù)無(wú)線(xiàn)發(fā)射的程序流程。在數(shù)據(jù)接收端接收數(shù)據(jù),同樣先配置相關(guān)寄存器,設(shè)置為接收模式,延時(shí)130μs后進(jìn)入接收狀態(tài)等待接收數(shù)據(jù)。當(dāng)接收方檢測(cè)到有效地址和CRC校驗(yàn)碼時(shí),自動(dòng)去除數(shù)據(jù)包頭和CRC校驗(yàn)碼,存儲(chǔ)數(shù)據(jù)至接收堆棧中,更改狀態(tài)寄存器相應(yīng)位,通知CPU讀取數(shù)據(jù)。若開(kāi)啟自動(dòng)應(yīng)答,接收端進(jìn)入發(fā)射狀態(tài)發(fā)射應(yīng)答信號(hào)。圖5(b)為數(shù)據(jù)無(wú)線(xiàn)收發(fā)的程序流程。
4.5 與上位機(jī)的通信
接收端采用DSP與無(wú)線(xiàn)模塊連接,通過(guò)DSP的USB接口與PC機(jī)連接。圖像數(shù)據(jù)傳輸?shù)拈_(kāi)始與結(jié)束由JPEG協(xié)議的文件結(jié)束關(guān)鍵字OXFFD9標(biāo)識(shí),一幅圖像傳輸?shù)慕邮諛?biāo)志也是下一幅圖像的開(kāi)始標(biāo)志。由于采集圖像不同,生成壓縮碼流長(zhǎng)度也不同,所以在發(fā)送端圖像傳輸?shù)淖詈笠唤M數(shù)據(jù)空位用0X00填充;接收端讀取圖像結(jié)束標(biāo)識(shí)后省去后續(xù)數(shù)據(jù),并通過(guò)USB接口將數(shù)據(jù)傳輸至PC機(jī)。
5 系統(tǒng)測(cè)試結(jié)果及分析
該系統(tǒng)設(shè)計(jì)已成功測(cè)試,測(cè)試結(jié)果達(dá)到預(yù)期要求,并對(duì)其進(jìn)一步改進(jìn)優(yōu)化。圖6為系統(tǒng)采集的圖像和壓縮16倍后室內(nèi)有阻隔傳輸30 m的結(jié)果。
6 結(jié)束語(yǔ)
本系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)多點(diǎn)監(jiān)控,便于安裝,可應(yīng)用于廠(chǎng)房、化學(xué)實(shí)驗(yàn)室等短距離監(jiān)控及對(duì)突發(fā)事件現(xiàn)場(chǎng)的臨時(shí)監(jiān)控。采用該系統(tǒng)設(shè)計(jì)思路為無(wú)線(xiàn)監(jiān)控領(lǐng)域設(shè)計(jì)一套低成本的無(wú)線(xiàn)視頻監(jiān)控系統(tǒng),使得視頻監(jiān)控系統(tǒng)具有更廣闊的應(yīng)用領(lǐng)域,若采用更高壓縮比的圖像壓縮算法,系統(tǒng)性能將會(huì)得到進(jìn)一步改善。