基于LVDS的高速圖像數(shù)據(jù)存儲器的設(shè)計與實現(xiàn)
采集數(shù)據(jù)的有效傳輸和存儲轉(zhuǎn)發(fā)技術(shù)的發(fā)展保證了數(shù)字圖像在現(xiàn)實中廣泛應(yīng)用。如今,從多媒體通信領(lǐng)域的遠程教育、圖像監(jiān)視到醫(yī)學(xué)上的遠程會診,都和數(shù)據(jù)的有效傳輸及存儲轉(zhuǎn)發(fā)技術(shù)息息相關(guān)。在國防工業(yè)領(lǐng)域,圖像數(shù)據(jù)的采集存儲和連續(xù)有效轉(zhuǎn)發(fā)也起著巨大的作用,航空遙感圖像和衛(wèi)星遙感圖像的處理加工,電視制導(dǎo)中數(shù)據(jù)視頻圖像的傳輸,都離不開圖像傳輸存儲技術(shù)。本文設(shè)計的基于Flash的高速大容量固態(tài)數(shù)據(jù)存儲器,采用了基于LVDS的數(shù)據(jù)傳輸方式傳輸兩路高速圖像數(shù)據(jù),實現(xiàn)圖像數(shù)據(jù)的高速實時存儲。不僅具有處理速度快、設(shè)計靈活性高等特點,還具有可配置性和可重構(gòu)性的特點。
1系統(tǒng)總體設(shè)計
本文介紹的圖像存儲器在飛行任務(wù)中負責(zé)完成兩路獨立視頻信號的采集存儲任務(wù)。視頻圖像存儲的總體結(jié)構(gòu)框圖如圖1所示,當(dāng)光耦接收到起飛和誘餌兩個控制點火信號后,F(xiàn)PGA就控制視頻信號1、視頻信號2經(jīng)2路獨立的LVDS接口傳輸,并分別解碼后緩存到2個外部FIFO中,最后寫入到2個各自的存儲模塊Flash當(dāng)中。在系統(tǒng)工作時,讀書裝置可以實時監(jiān)測記錄器關(guān)鍵狀態(tài)參數(shù);系統(tǒng)存儲工作完成后,讀數(shù)裝置通過LVDS接口以20 Mbyte/s的速度遠程高速讀取圖像記錄器的數(shù)據(jù),將數(shù)據(jù)回傳至上位機進行存盤判讀。
圖1存儲器功能框圖
本設(shè)計存儲器負責(zé)接收的2路圖像尺寸均為640 X480 byte,在飛行器內(nèi)部傳感器下發(fā)起飛和誘餌兩個關(guān)鍵信號的控制下,圖像數(shù)據(jù)存儲器分別對這2路視頻圖像信號進行采集,采樣位數(shù):8 byte/像素,輸入數(shù)據(jù)碼率:30.72 Mbyte/s,幀率:100 f/s(幀/秒),然后將解碼后的數(shù)據(jù)分別存儲到2個Flash中,最后準(zhǔn)確地完成數(shù)據(jù)的轉(zhuǎn)發(fā)任務(wù),使圖像數(shù)據(jù)順利進入下一模塊。存儲器視頻信號處理硬件電路框圖如圖2所示。
圖2存儲器視頻信號處理硬件電路框圖
2硬件電路設(shè)計
2.1 LVDS長線傳輸電路設(shè)計
本設(shè)計系統(tǒng)中攝像頭發(fā)出的視頻圖像信號屬于高速變化的信號,容易受到噪聲影響。低壓差分(Low Volt-age Differential Signaling,LVDS)數(shù)據(jù)傳輸技術(shù)是一種新型的、具有很低的差分電壓擺動幅度的信號傳輸方式。LVDS傳輸過程中以差分的方式傳送數(shù)據(jù),從而具有很低的串?dāng)_和噪聲以及只消耗很少的功率。此外它通過一對并行PCB走線或平衡電纜傳輸數(shù)據(jù),可以達到100 Mbit/s甚至高于1 Gbit/s的高速率數(shù)據(jù)傳輸。解決了高速數(shù)據(jù)的有效傳輸,同時也將有助于降低系統(tǒng)設(shè)計復(fù)雜度,提高系統(tǒng)可靠性?;贚VDS技術(shù)的傳輸特點及應(yīng)用優(yōu)勢,本設(shè)計中圖像輸入接口采用LVDS進行圖像數(shù)據(jù)接收。設(shè)計中為滿足信號實時高準(zhǔn)確性的傳輸,在LVDS發(fā)送端采用串化器和驅(qū)動器相結(jié)合的方式增強信號;在LVDS接收端采用均衡器和解串器相結(jié)合的方式,來補償信號長線傳輸過程中的損耗。這樣高速圖像信號可以穩(wěn)定地傳輸上百米。如圖3為LVDS接口端硬件電路設(shè)計圖。
圖3 LVDS接口端硬件電路設(shè)計圖(點擊查看大圖)
2.2 FIFO的電路設(shè)計
本設(shè)計中進入FIFO前經(jīng)解碼得到的圖像數(shù)據(jù)傳輸速率為30.72 Mbit/s,因此在FIFO的選型中,必須選擇一款讀寫速度快而且容量大的外部FIFO來緩存圖像數(shù)據(jù)。經(jīng)過計算并對比分析后,本設(shè)計選用了CYPRESS公司生產(chǎn)的64 kbit x 18 bit的CY7CA285V:
1)CY7C4285V擁有66.7 MHz的最大工作頻率,10 ns的最小讀寫周期,完全可以穩(wěn)定、可靠地接收碼率為30.72 Mbit/s的圖像數(shù)據(jù),也滿足25 ns讀寫周期的要求。
圖4單路圖像數(shù)據(jù)接收接口時序定義圖
2)從FIFO接收圖像數(shù)據(jù)的時序圖中(如圖4)可以看出,一個水平同步時間內(nèi),寫入FIFO的圖像數(shù)據(jù)有640 byte,而讀出FIFO的數(shù)據(jù)量為33 Mbyte/s x 18.75μs=618.75 byte.這樣每一個水平同步時間內(nèi)FIFO中就會剩余640 byte-618.75 byte=21.25 byte的圖像數(shù)據(jù)。當(dāng)垂直同步信號拉低時,F(xiàn)IFO中剩余的圖像數(shù)據(jù)量達到最大,本設(shè)計FPGA控制FIFO半滿即讀,那么FIFO的容量至少應(yīng)為:2 x 21.25 x480=20400 byte.顯然容量為64 kbyte的CY7C4285V可以滿足設(shè)計要求。
3)操作簡單。首先,單片64 kbyte CY7CA285V就可以滿足設(shè)計要求,而不需串聯(lián)多個FIFO,這樣操作起來方便了很多。其次,該FIFO有讀使能、寫使能作為狀態(tài)保障,且均采用邊沿觸發(fā)方式,使得時序控制簡捷高效,便于FPGA的邏輯實現(xiàn)。
3關(guān)鍵技術(shù)研究
3.1高速寫入方式
本設(shè)計選用三星公司的K9WBG08U1M作為存儲介質(zhì)。該芯片容量大小為4 Gbyte,內(nèi)部分為2片,每片2 Gbyte,可通過片選信號和切換兩片存儲空間,每片由8192塊組成,每塊中有64頁,每一頁都可以存儲4 kbyte的圖像數(shù)據(jù)和128 byte的狀態(tài)信息。本設(shè)計要完成對高速圖像數(shù)據(jù)的存儲任務(wù),普通的Flash寫入方式無法滿足30.72 Mbyte/s.數(shù)據(jù)存儲速度的要求。因此,大幅提高Flash數(shù)據(jù)接口的寫入速度,成為系統(tǒng)設(shè)計的關(guān)鍵。K9WBG08U1M內(nèi)部平面結(jié)構(gòu)圖如圖5所示,F(xiàn)lash內(nèi)部的兩片分別為chip1和chip2,4個平面Plane0~Plane3組成1個chip,原始的寫入方式為依次寫滿Plane0、Plane1、Plane2、Plane3,為大幅度提高數(shù)據(jù)存儲速度,系統(tǒng)采用交錯雙平面頁編程(interleave two-plane page program)的操作方式,并行對chip1、chip2的8個平面進行操作,如圖6所示Interleave two-plane編程時序圖:從chip1的Plane0開始依次寫入每一個平面第1塊的第1頁,即寫入chip1的Plane0的block0的page0后,再橫向連續(xù)寫入7頁,那么當(dāng)循環(huán)回chip1的Plane0的block0的page1時,用時25 ns x 4096 x 7=716.8μs大于頁編程時間tPRoG的最大值700μs,從而可以不問斷地繼續(xù)對chip1的Plane0的block0的page1進行操作,這樣充分利用了頁編程的時間,使Flash的寫入速度提高到40 Mbyte/s,完全可以完成對30.72 Mbyte/s圖像數(shù)據(jù)的存儲任務(wù)。
圖5 K9WBG08U1M內(nèi)部平面結(jié)構(gòu)圖
圖6 Interleave two-plane編程時序圖[!--empirenews.page--]
3.2圖像數(shù)據(jù)分析
在飛行中該圖像存儲器需要在過載、噪聲等惡劣環(huán)境下工作,由于這些干擾很可能丟失一幀或者若干幀數(shù)據(jù),為此本文經(jīng)分析接收圖像時序,為圖像數(shù)據(jù)編幀如圖7.這樣將圖像數(shù)據(jù)設(shè)定成固定的幀格式,不僅可以穩(wěn)定地循環(huán)采集,便于數(shù)據(jù)處理;而且即使由于干擾丟掉了一幀或若干幀,也不會影響幀結(jié)構(gòu)的完整性,對于整體數(shù)據(jù)分析沒有影響。這樣就保證了后續(xù)存儲轉(zhuǎn)發(fā)數(shù)據(jù)的正確性。接收一幀圖像數(shù)據(jù)的流程圖如圖8所示。
圖7圖像存儲數(shù)據(jù)幀結(jié)構(gòu)
圖8接收一幀圖像數(shù)據(jù)流程圖
3.3圖像信息存儲設(shè)計
如圖9所示待存儲數(shù)據(jù)的數(shù)據(jù)流結(jié)構(gòu),1帶信息幀由1圖像幀和時標(biāo)及其他信息組成,存入Flash的為帶信息幀,但后續(xù)轉(zhuǎn)發(fā)給圖像壓縮單元的數(shù)據(jù)只能含有圖像幀。為此本文將FIFO設(shè)計成9位緩存模式,低8位用來存儲圖像數(shù)據(jù)圖像幀或時暢汲其他信息,最高位通過“1”或“0”來區(qū)分是圖像數(shù)據(jù)還是幀標(biāo)志。即將低8位是圖像數(shù)據(jù)的最高位置高,低8位是時標(biāo)及其他輔助信息的最高位置低,轉(zhuǎn)發(fā)時只將最高位為1的數(shù)據(jù)流發(fā)送給圖像壓縮單元。
圖9待存儲數(shù)據(jù)的數(shù)據(jù)流結(jié)構(gòu)
一片K9WBG08U1M的Flash內(nèi)部有1048576頁,本文所接收的圖像數(shù)據(jù):1圖像幀=307 200 byte,1頁容量為4 kbyte,需用75頁,所以1片F(xiàn)lash最多可存儲13981幀視頻圖像。接收圖像幀頻為100 f/s,25s接收2500幀視頻圖像,僅占Flash總?cè)萘康?%.采用上述interleavetwo-plane page program的頁編程方式,每75頁代表一幀視頻圖像數(shù)據(jù),第76頁用來寫入每一幀的狀態(tài)信息。寫入的順序如圖10中箭頭所示。
圖10存儲區(qū)和圖像幀之間的映射關(guān)系
圖10顯示每一行有8個block,共有512頁,經(jīng)計算每一行可以完整地存儲6幀圖像數(shù)據(jù)。當(dāng)圖像數(shù)據(jù)完整地寫入75頁,第76頁也寫入狀態(tài)信息時,一幀視頻圖像信息就存儲完畢了。然后Plane加1,繼續(xù)將圖像數(shù)據(jù)寫滿前75頁,第76頁寫入時標(biāo)及附加信息,依次往下寫,當(dāng)?shù)?幀圖像數(shù)據(jù)完全寫入Flash后,直接將Flash的塊地址加2,跳到下一行,按照上述操作方式,繼續(xù)寫入圖像數(shù)據(jù),其流程圖如圖11所示。
圖11圖像存儲一幀數(shù)據(jù)流程圖
4實驗結(jié)果分析
如圖12為計算機終端顯示的部分圖像數(shù)據(jù),把數(shù)據(jù)解密后用上位機還原圖像如圖13所示,顯示的是視頻圖像中第2194幀圖像。測試結(jié)果顯示,接收數(shù)據(jù)正確無誤,還原圖像清晰完整。
圖12部分圖像數(shù)據(jù)(截圖)
圖13視頻圖像還原后得到的第2194幀圖像(截圖)
5結(jié)論
本文所設(shè)計的數(shù)據(jù)存儲器能夠?qū)崿F(xiàn)高速圖像數(shù)據(jù)的實時存儲及轉(zhuǎn)發(fā),碼率可達40 Mbyte/s,具有高寫入帶寬和工作穩(wěn)定、可靠的特點。本設(shè)計已在相關(guān)項目中得到應(yīng)用,工作性能良好,具有一定的參考價值。