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