劉 瑋,崔永俊,張 昊
(中北大學,電子測試技術國家重點實驗室,儀器科學與動態(tài)測試教育部重點實驗室,山西太原 030051)
彈載設備需要采集大量的數(shù)字圖像信息,因此在彈載設備與地面測試臺之間進行數(shù)據(jù)傳輸時,需要很高的傳輸速率[1]。而目前物理層接口無法滿足數(shù)據(jù)的傳輸速率,常用的RS422接口,每百m雙絞線的最高傳輸速度為1 MB/s[2],這樣的傳輸速度和傳輸距離,已經(jīng)無法滿足現(xiàn)在對高速遠距離傳輸?shù)囊?。LVDS技術的應用提供了解決快速遠距離傳輸?shù)姆椒?。對NAND型FLASH存儲器K9WBG08U1M,運用交叉雙平面的編程方式,可以實現(xiàn)對數(shù)據(jù)的高速存儲。LVDS技術與交叉雙平面編程方式相結合,實現(xiàn)了數(shù)據(jù)的快速傳輸、存儲以及準確回讀,為大量圖像數(shù)據(jù)的傳輸和存儲提供了新的方法。
該方案以LVDS技術和交叉雙平面編程方式為基礎。在系統(tǒng)設計中采用模塊化的設計方法,各組成部分既在結構上相互獨立,又在功能上相互配合。該設計主要突破數(shù)據(jù)的準確快速存儲和高速傳輸,這兩個困擾采集系統(tǒng)發(fā)展的技術瓶頸。數(shù)據(jù)采集存儲系統(tǒng)的設計主要包括FPGA主控接口模塊設計,USB通信接口及讀寫操作時序控制設計和一對并行FLASH模式操作的邏輯設計。
數(shù)字圖像采集存儲系統(tǒng)工作流程圖如圖1所示。具體工作流程為:一段視頻或者一張完整的圖片被上位機分割成具有連續(xù)幀的圖片,USB芯片F(xiàn)T2232H將圖片下傳,下傳的數(shù)據(jù)在FPGA的控制下存儲在兩片并聯(lián)的FLASH芯片K9WBG08U1M中。當圖像需要發(fā)送時,F(xiàn)PGA把3組存儲在FLASH中的圖像數(shù)據(jù)快速讀出,通過MAX9247把16位的并行數(shù)據(jù)轉化為串行數(shù)據(jù),并以LVDS的方式發(fā)送到圖像存儲轉發(fā)裝置。在圖像存儲轉發(fā)裝置中保存一路,另一路以PCM碼的形式轉發(fā)到下游設備,供其采集,第三路同樣以PCM碼的形式回讀給上位機。
圖1 數(shù)字圖像采集存儲系統(tǒng)工作流程圖
數(shù)字圖像采集存儲系統(tǒng)在硬件方面主要由電源模塊、USB接口模塊、FPGA主控模塊、FLASH存儲模塊等4部分組成。
FPGA是數(shù)字圖像采集和存儲的控制核心,控制圖像數(shù)據(jù)的接收、變換、存儲及發(fā)送。數(shù)字圖像數(shù)據(jù)采集接口采用PCM接口的形式,存儲器和邏輯控制單元的數(shù)據(jù)接口采用TTL電平。利用PCM接口芯片SN65HVD10實現(xiàn)PCM接口電路的搭建,完成TTL→422及422→TTL的電平轉換;用DS92LV18芯片構成采集存儲系統(tǒng)回讀接口,其內(nèi)部既含有集成的解串器又有集成的串化器[3]。設計中的DS92LV18芯片起解串作用。當采集存儲系統(tǒng)接收到串行差分信號時,差分信號通過DS92LV18芯片轉換成16位并行數(shù)據(jù)傳到FPGA,F(xiàn)PGA接收到數(shù)據(jù)后上傳到上位機進行數(shù)據(jù)分析。
主控板和PC機之間的通信任務依靠USB通信接口完成。USB通信具有數(shù)據(jù)傳輸速率高、能夠熱插拔、應用靈活等優(yōu)點[4]。在數(shù)字圖像采集存儲系統(tǒng)的設計中采用USB通信芯片F(xiàn)T2232H. 該芯片內(nèi)部集成了固件庫,不需要進行額外復雜的編程[5]。
邏輯控制主要實現(xiàn):USB讀、寫功能;利用交叉雙平面頁編程對下傳的圖像數(shù)據(jù)進行存儲、讀出及擦除功能;將圖像存儲轉發(fā)裝置所存儲的圖像數(shù)據(jù)回讀至上位機等功能。
FT2232H芯片的A通道能夠被設置為FT245同步FIFO模式,在此工作模式下,數(shù)據(jù)在CLKOUT的上升沿被寫入或讀出,在同一時刻不能同時進行讀和寫的操作[6]。
在FT2232H進行讀操作時,RXF#的優(yōu)先級最高,當FIFO中有要讀出的數(shù)據(jù)時,RXF#為低,同時將輸出使能信號OE#拉低,然后,再把讀使能信號RD#拉低。在此工作模式下,只有在RXF#和RD#同時為低時數(shù)據(jù)才會被讀出。來自FIFO的數(shù)據(jù)會在RD#的下降沿,輸出到A通道的8位數(shù)據(jù)端口,RD#被拉高,這樣就實現(xiàn)了1個字節(jié)的讀操作;在進行寫操作時,TXE#的優(yōu)先級最高,所以首先判斷TXE#的電平情況。若為低,不能進行寫操作;若為高,則可以進行寫數(shù)據(jù)操作。當TXE#為低后,把寫使能信號WR置高,寫入數(shù)據(jù),然后把WR拉低,數(shù)據(jù)將被送到FIFO,完成1個字節(jié)的寫操作[7]。USB內(nèi)部FIFO讀寫時序如圖2所示。
K9WBG08U1M是NAND型FLASH存儲芯片,其數(shù)據(jù)寬度為8,而需要其實現(xiàn)16位數(shù)據(jù)的讀寫和存儲。為達到這一要求,一般采用將數(shù)據(jù)分高低各8位,然后分2次存到1片K9WBG08U1M中的方法。這種方法可行,但存儲一個16位的數(shù)據(jù),需要執(zhí)行2次存儲過程,這大大制約存儲速率,達不到快速存儲的技術要求。該設計中采用2片F(xiàn)LASH并行的方式,即將K9WBG08U1M-1和K9WBG08U1M-2并聯(lián),以達到將8位存儲器寬展為16位的目的。具體操作是將兩芯片的片選管腳CE、命令使能管腳CLE、地址使能管腳ALE、讀寫使能管腳WE、RE分別串聯(lián),而各個芯片的R/B管腳相互獨立。這樣,兩個芯片能夠同時寫入命令或地址,存儲速度與普通方法相比,提高了1倍。相互獨立的R/B管腳為交叉雙平面頁編程提供了控制依據(jù)。并行FLASH管腳連接圖如圖3所示。
K9WBG08U1芯片的內(nèi)部被分為8 192個Block,每個Block共由64個Page組成,編號為0~63;每2 048個Block分為一個Plane,Block 0~4 095編號中的偶數(shù)編號Block組成Plane0,奇數(shù)編號Block組成Plane1;Block 4 096~8 191的劃分方法同前,分為Plane2和Plane3。
(a)USB讀時序
(b)USB寫時序圖2 USB內(nèi)部FIFO讀寫時序
圖3 并行FLASH管腳連接圖
K9WBG08U1內(nèi)部,數(shù)據(jù)的存儲是一頁一頁(Page)進行的,這樣的頁編程可以分為命令、地址、數(shù)據(jù)的加載過程和自動編程的實現(xiàn)過程。加載過程就是通過控制外部的時鐘,將命令、地址、數(shù)據(jù)等信息寫入內(nèi)部的寄存器;自動編程過程就是芯片按照加載的信息,將數(shù)據(jù)存儲到相應的位置,這樣就完成了一個數(shù)據(jù)的存儲,所花費的時間即是一個頁編程時間,一般在200~700 μs之間。由芯片資料知該FLASH芯片的讀寫速度是40 MB/s,所以讀寫一頁所需的時間是:
Twr=1/(40 M)×4 K=102.4 μs
普通的頁編程是順序進行的,即先對某一單元進行命令、地址、數(shù)據(jù)的加載,完成后,再進行自動編程。若按照此速度計算,得到FLASH的寫入速度為:
v=4 096 b/((200+1 024)μs)=13.54 MB/s
這樣的速度無法滿足任務書的要求。而選用交叉雙平面頁編程方式,則可使編程時間大大減少。交叉雙平面頁編程的操作過程如下:首先寫入K9WBG08U1M-1中的Plane0的Block0的第0頁,緊接著寫入K9WBG08U1M-1中的Plane1的Block1的第0頁。當再次回到K9WBG08U1M-1的Plane0時,已經(jīng)過去了:
1/(40 M)×4 096×7=716.8 ns>tprog
式中tprog為編程所用時間。
tprog最大值為700 ns,所以不會對Plane0的Block0進行的第二次操作造成影響。這樣對時間的復用,可以縮短加載過程的時間,大大提高存儲速度。寫FLASH過程如圖4所示。
圖4 寫FLASH過程
在存儲芯片并行操作模式中,數(shù)字圖像采集存儲系統(tǒng)上電后會立刻進行壞塊監(jiān)測。只要有一塊是無效塊,就會把整個存儲塊當作是無效塊來處理。這種無效塊地址的統(tǒng)籌管理,極大地方便了流水線式的交叉雙平面頁編程操作,降低了控制邏輯的復雜度,提升了存儲速度。
圖像數(shù)據(jù)的下發(fā)過程為:將要下發(fā)的圖片或者視頻轉換成具有連續(xù)幀的格式;將幀圖像進行編碼,并加上自檢標志和幀標志,然后將圖像數(shù)據(jù)進行下發(fā)。
圖像數(shù)據(jù)的回讀過程為:上位機將采集或回讀的圖像數(shù)據(jù)通過USB接口傳輸?shù)絇C機;上位機對接收到的圖像數(shù)據(jù)計算誤碼率,之后通過動畫的形式,將幀圖像播放,最后把數(shù)據(jù)分析的結果生成文件并保存在指定目錄中。
在系統(tǒng)的各模塊單獨測試順利完成后,將各模塊連接,進行整個系統(tǒng)的功能測試,實驗結果表明系統(tǒng)將數(shù)據(jù)信息存儲到FLASH中的速度是30 MB /s. 上位機將下傳的圖像數(shù)據(jù)經(jīng)過一系列的變化后,從圖像轉發(fā)裝置進行了回讀。上位機的分析軟件,可以將回讀的數(shù)據(jù)和發(fā)送的原始數(shù)據(jù)進行對比,并且可以還原成圖像進行顯示。測試階段,下發(fā)了一幅周期性良好的圖片,并通過上位機軟件顯示了接收到的數(shù)據(jù)。數(shù)據(jù)比對結果顯示,誤碼率為0。FAF300是數(shù)據(jù)的自檢幀頭,F(xiàn)AF400是數(shù)據(jù)的行頭,原始數(shù)據(jù)截圖如圖5所示,將回讀的數(shù)據(jù)解密后由上位機進行圖形顯示得到如圖6所示的圖片,該圖片的形式更容易觀察實驗的結果。
圖5 原始數(shù)據(jù)
圖6 回讀數(shù)據(jù)還原的圖片
為實現(xiàn)大量數(shù)字圖像信號的采集與存儲,提出了一種基于LVDS和交叉雙平面頁編程的數(shù)字圖像采集與存儲設計方案。該系統(tǒng)在使用LVDS技術和一對并行FLASH交叉雙平面頁編程方式的基礎上,實現(xiàn)了圖像數(shù)據(jù)的快速存儲、高速傳輸及準確回讀。實際測試的結果也充分證明了文中所提出的數(shù)字圖像采集存儲設計方案的正確性和可靠性。
參考文獻:
[1] 雷建勝,蘇淑靖.多通道數(shù)據(jù)采集存儲器.儀表技術與傳感器,2013(1):16-18 .
[2] 崔中華,熊繼軍,沈三民.基于LVDS技術的實時圖像測試裝置的設計.電子技術應用,2010(4):84-86.
[3] 李娟 ,劉艷瀅.基于FPGA的圖像采集模塊的設計.儀表技術與傳感器,2012(10):27-31.
[4] 張威,苗克堅,陸寅.基于LVDS的多路SPI的PCI板卡設計與實現(xiàn).計算機測量與控制,2012,20(3):790-793
[5] 安航行.基于LVDS的圖像信號源設計與實現(xiàn):[學位論文].太原:中北大學,2013
[6] 譚煒鋒.高速LVDS發(fā)送器設計:[學位論文].成都:電子科技大學,2009.
[7] 梁永剛,張會新.基于LVDS的高速遠程圖像采集存儲系統(tǒng).科學技術與工程,2013,20(13):6001-6006.