資源描述:
《基于FPGA的圖像采集壓縮SOC系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).doc》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、基于FPGA的圖像采集壓縮SOC系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 圖像采集和處理已經(jīng)成為了現(xiàn)代工業(yè)控制中必不可少的環(huán)節(jié)。傳統(tǒng)的方法一般采用的是圖像采集卡加工控機(jī)來(lái)實(shí)現(xiàn)整個(gè)系統(tǒng)。但隨著嵌入式技術(shù)的發(fā)展,芯片的性能大大增強(qiáng),嵌入式系統(tǒng)在工業(yè)控制系統(tǒng)中普及。作為前端的圖像采集系統(tǒng)此時(shí)就不適宜再以圖像采集卡的形式出現(xiàn),而應(yīng)當(dāng)以更加簡(jiǎn)捷,方便的接口與主系統(tǒng)相連?! ”驹O(shè)計(jì)使用Alera的FPGA實(shí)現(xiàn)了整個(gè)圖像采集系統(tǒng)。整個(gè)系統(tǒng)完成了圖像的采集、壓縮和傳輸。系統(tǒng)采用流行的工業(yè)總線(xiàn)CAN做為其傳輸總線(xiàn),不僅接口簡(jiǎn)易,成本低,而且可靠性較高。系統(tǒng)描述 本設(shè)計(jì)中圖像采集系統(tǒng)預(yù)期的目標(biāo)是每秒采集2~3幅30萬(wàn)像素
2、(640&TImes;480)的圖像,壓縮后通過(guò)CAN總線(xiàn)進(jìn)行傳輸。按照1:8的壓縮比計(jì)算,壓縮后每幀數(shù)據(jù)量大約為0.3Mb,CAN總線(xiàn)峰值傳輸速度是1Mb/s,因此這樣的一個(gè)總體的設(shè)計(jì)方案是可行的?! 「鶕?jù)系統(tǒng)所實(shí)現(xiàn)的功能,決定整個(gè)系統(tǒng)要包括六大模塊,分別是圖像采集及存儲(chǔ)接口、I2C主控制模塊(對(duì)SAA7113H進(jìn)行配置)、JPEG編碼器、CAN總線(xiàn)控制器、Wishbone總線(xiàn)和中央控制模塊。圖1為系統(tǒng)的結(jié)構(gòu)框圖?! D1系統(tǒng)結(jié)構(gòu)框圖 攝像頭產(chǎn)生的原始模擬圖像數(shù)據(jù)流首先通過(guò)SAA7113H轉(zhuǎn)換為數(shù)字信號(hào),并攜帶有一定的同步及控制信息,傳入FPGA內(nèi)部異步FIFO內(nèi)。圖像采
3、集及存儲(chǔ)接口從異步FIFO讀取數(shù)據(jù)并分析,提取所需要的保存至外部SRAM中,當(dāng)存滿(mǎn)一幀數(shù)據(jù)時(shí),便可以進(jìn)行壓縮了。當(dāng)JPEG編碼模塊壓縮好數(shù)據(jù)后,便等待CAN總線(xiàn)進(jìn)行傳輸,最后直至整幀數(shù)據(jù)處理完畢。 整個(gè)系統(tǒng)的實(shí)現(xiàn)大約是60~100萬(wàn)門(mén)左右,因此可以采用AlteraCycloneII系列中器件的EP2C20,它擁有2萬(wàn)個(gè)LE,24萬(wàn)左右的存儲(chǔ)單元和52個(gè)乘加單元。系統(tǒng)Fitter之后的結(jié)果如表1所示,占用了芯片63%的邏輯資源和12%存儲(chǔ)資源。在這其中,JPEG編碼模塊以及JPEG模塊與Wishbone總線(xiàn)的接口占用了絕大多數(shù)部分資源??梢钥闯?,使用EP2C20實(shí)現(xiàn)本文所描述的系
4、統(tǒng)還是非常富余的?! D2PCB調(diào)試樣板 圖2為最后制成的樣板,這塊樣板上還包括了一些便于調(diào)試和其他研發(fā)目的的額外部件,真正產(chǎn)品的PCB板將會(huì)更加小巧。視頻信號(hào)采集及存儲(chǔ)接口 本設(shè)計(jì)采用Phillips的SAA7113H芯片做模擬視頻信號(hào)的采集。它的功能非常強(qiáng)大,最多可同時(shí)采集4路CVBS格式的視頻數(shù)據(jù)。它通過(guò)VPO口輸出數(shù)據(jù),并支持多種視頻格式輸出,同時(shí)在輸出數(shù)據(jù)流中包含同步信息和場(chǎng)信息,接口比較簡(jiǎn)單?! PO的數(shù)據(jù)輸出與27M時(shí)鐘同步的,這與JPEGencoder采用30M內(nèi)部系統(tǒng)時(shí)鐘處于兩個(gè)時(shí)鐘域。因此,使用異步FIFO進(jìn)行跨時(shí)鐘域的數(shù)據(jù)傳遞?! ?shù)據(jù)采集以后
5、便是對(duì)其進(jìn)行識(shí)別和存儲(chǔ)。從SAA7113H傳出數(shù)據(jù)的最小單位是一個(gè)掃描行,以0xFF0x000x00為標(biāo)識(shí),并且在行首尾分別有SAV(startofacTIvevideo)和EAV(endofacTIvevideo)字段。SAV和EAV中含有該掃描行是否是有效行,屬于第幾場(chǎng)這樣的信息。JPEG編碼器需要的數(shù)據(jù)是一整幅圖像,即一個(gè)場(chǎng)對(duì)。因此對(duì)采集的圖像,需要使用幀解碼(FrameDecoder)子模塊處理原始數(shù)據(jù)流中的同步信息,垂直掃描消隱信號(hào)。 本設(shè)計(jì)的存儲(chǔ)器件使用了一塊4Mb的SRAM,正好可以保存一副未經(jīng)壓縮的30萬(wàn)像素的圖片。對(duì)SRAM存儲(chǔ)和讀取地址的產(chǎn)生應(yīng)該完全采用不同
6、的方式,在本設(shè)計(jì)中分別采用兩個(gè)子模塊分別負(fù)責(zé)這兩項(xiàng)功能。FrameDecoder輸出的數(shù)據(jù)在存入SRAM時(shí)是按照行的順序逐個(gè)存入,而JPEGencoder在讀取的時(shí)候則應(yīng)該是按照對(duì)像素處理順序——以8&TImes;8塊的方式讀出。整個(gè)讀寫(xiě)由控制狀態(tài)機(jī)(Read&WriteControl)來(lái)進(jìn)行統(tǒng)一控制。視頻采集及存儲(chǔ)接口的結(jié)構(gòu)圖如圖3所示?! D3視頻采集及存儲(chǔ)接口模塊JPEG壓縮模塊 JPEG壓縮標(biāo)準(zhǔn)從1993年提出至今已有14年了,從各個(gè)方面來(lái)看都已經(jīng)非常成熟,并且被廣泛的使用于各個(gè)領(lǐng)域,這也正是本設(shè)計(jì)采用JPEG壓縮模式的原因之一。JPEG壓縮的過(guò)程包括了8×8DCT
7、(離散余弦變換)、Zig-Zag掃描、量化、游程編碼和熵編碼(使用Huffman編碼)五個(gè)主要的過(guò)程。本設(shè)計(jì)中的JPEG壓縮模塊除了包括這五大部分之外還要有字節(jié)分包處理、字節(jié)碼處理(主要是插入一些特殊的碼字)、FIFO、wishbone總線(xiàn)接口和配置寄存器等一些功能模塊來(lái)協(xié)調(diào)整個(gè)系統(tǒng)的運(yùn)作。該模塊的結(jié)構(gòu)如圖4所示?! D4JPEG壓縮模塊結(jié)構(gòu)圖 Huffman編碼出來(lái)的數(shù)據(jù)是變長(zhǎng)碼,它包括了兩部分,即碼字本身和碼字長(zhǎng)度。在BytePack模塊中,根據(jù)碼字的長(zhǎng)度對(duì)碼字進(jìn)行適當(dāng)