邸麗霞,張彥軍,洪應平
(中北大學a.電子測試技術國家重點實驗室;b.儀器科學與動態(tài)測試教育部重點實驗室,山西 太原 030051)
責任編輯:魏雨博
在電子信息時代,聲音和圖像已經成為人們獲取信息的兩種主要途徑,尤其是一些大型設備儀器在測試以及運行過程中的圖像工況信息檢測已經成為檢測或校驗設備正常工作的一種重要手段,利用實時監(jiān)測的圖像信息可以更好地了解設備儀器的工作狀態(tài),并且在設備儀器發(fā)生故障時,便于查找故障點,減小排查故障難度。因此,如何將監(jiān)測的圖像工況信息實時采集、存儲并在事后回讀、解碼以恢復當時的圖像,已經成為現(xiàn)代測試技術研究的一個重要領域。
現(xiàn)在的高頻攝像機輸出的圖像數(shù)據傳輸速度快,存儲容量龐大,普通的邏輯處理單元已經無法滿足要求,而功耗低、處理速度高的FPGA(現(xiàn)場可編程邏輯陣列)的出現(xiàn),為高速、大容量圖像數(shù)據的采集、存儲提供了全新的設計方案。FPGA的并行性以及靈活的可配置性有利于圖像數(shù)據的采集、存儲設計,同時解決了數(shù)據量龐大、可靠性、精度小以及速度不匹配等問題[1]。
本文針對圖像信號傳輸?shù)奶攸c,設計了模擬高頻圖像信號輸出的水平同步、垂直同步以及時鐘信號,即圖像信號源模塊。輸出的圖像信號源通過電纜傳輸?shù)綀D像采集存儲模塊進行數(shù)據的采集、存儲,并對圖像數(shù)據采集存儲裝置進行相應的系統(tǒng)控制操作。在系統(tǒng)記錄完畢所需圖像信號數(shù)據后,監(jiān)控讀數(shù)模塊將存儲的圖像數(shù)據讀取并送至控制計算機存盤、解碼以進行閉環(huán)檢測與校驗。系統(tǒng)總體框圖如圖1所示。
圖1 系統(tǒng)總體框圖
在該圖像數(shù)據采集存儲測試系統(tǒng)中,圖像信號源模擬高頻攝像機輸出,為數(shù)據采集存儲模塊提供高速圖像信號數(shù)據,包括幀同步信號、行同步信號、像素同步時鐘以及圖像數(shù)據[2],這些信號均從標準Camera Link接口送出,通過LVDS接口發(fā)送至圖像數(shù)據采集存儲裝置,圖像信號源發(fā)送數(shù)據時序如圖2所示。
圖2 圖像信號源發(fā)送數(shù)據時序圖
圖2中Vsync為幀同步信號,電平模式,高電平有效;Hsync為行同步信號,脈沖模式,上升沿有效;CLK為像素同步時鐘,脈沖模式;Data為8 bit圖像數(shù)據,標準Camera Link接口在CLK的上升沿將數(shù)據發(fā)送,LVDS接口在CLK的下降沿將數(shù)據接收,CLK為常運行模式。每個Vsync有效期內有480個Hsync有效信號,第0~479個Hsync有效;每個Hsync有效期內有640個有效圖像數(shù)據位。按照上述時序計算,每秒鐘的圖像數(shù)據量為30.72 Mbyte,即圖像采集存儲模塊需將上述高碼流的數(shù)據完整準確采集并存儲到Flash存儲模塊中。
在本圖像信號采集存儲測試系統(tǒng)中,圖像信號采集存儲模塊是本系統(tǒng)的核心。圖像信號經LVDS接口轉變?yōu)槠胀–MOS電平信號進入中控邏輯單元,F(xiàn)PGA解碼模塊根據圖像信號的幀同步(Vsync)、行同步(Hsync)、像素同步時鐘(CLK)解碼得到圖像數(shù)據;存儲模塊上電后由中控邏輯單元控制擦除Flash memory,等待記錄圖像數(shù)據;接著,在3個控制信號的作用下采集高碼流、大容量數(shù)據,并將數(shù)據存儲到Flash存儲模塊中;存儲完畢后,存儲模塊接受監(jiān)控讀書裝置的讀書請求,將存儲的圖像數(shù)據回傳至控制計算機進行存盤以供分析。因此,針對大容量、高碼流的圖像數(shù)據進行了高速緩存FIFO和Flash高速數(shù)據寫入設計。采集存儲模塊功能框圖如圖3所示。
傳統(tǒng)設計常采用“乒乓型”方式或雙口RAM方式作為高速數(shù)據傳輸系統(tǒng)的高速緩存方式。在現(xiàn)代數(shù)字電子系統(tǒng)設計中,F(xiàn)IFO存儲器以其數(shù)據傳輸率高、可處理大量數(shù)據流、可匹配具有不同傳輸率的數(shù)字系統(tǒng)而得到了廣泛使用。在本系統(tǒng)中,選擇合適的高速緩存芯片對于提高圖像數(shù)據采集存儲測試系統(tǒng)性能很重要。
圖3 采集存儲模塊功能框圖
作為高速緩存芯片,F(xiàn)IFO的如下兩個重要指標可以作為選擇芯片型號的參考信息[3]:FIFO的寬度,即FIFO一次讀寫操作的數(shù)據位;FIFO的深度,即FIFO可存儲多少個N bit的數(shù)據(若寬度為N)。本設計中的圖像數(shù)據采集存儲測試系統(tǒng)中,中控邏輯單元對圖像信號源解碼后,得到的圖像數(shù)據量為30.72 Mbyte/s,所以選用一種具有很高的讀寫速度、能夠可靠進行寫入讀出操作的外部FIFO用于高速圖像數(shù)據的緩存至關重要。對本設計中的緩存數(shù)據進行分析,如下:
1)本設計中,4 Gbyte K9WBG08U1M型Flash接口極限寫入速率可達到40 Mbyte/s,產于IDT公司的64 k×18 bit IDT72V285,其讀寫速度可達到65 Mbyte/s,選用該產品可以達到高速緩存的目的,可靠寫入讀出。
2)根據設計時序,可計算出FIFO的讀寫信號周期為25 ns,而IDT72V285的讀寫周期最小為10 ns,可實現(xiàn)25 ns的讀寫周期。
3)當IDT72V285寫使能有效,且FIFO滿無效時,在寫時鐘上升沿,將8 bit數(shù)據寫入FIFO中;當FIFO非空(空標志無效),且讀使能有效時,在讀時鐘上升沿,將8 bit數(shù)據從FIFO中讀出,整個時序控制簡捷高效,便于邏輯實現(xiàn)。
在本設計中,大容量數(shù)據存儲模塊選用4 Gbyte K9WBG08U1M型Flash芯片,該芯片以頁為單位進行數(shù)據的讀寫,以塊為單位進行數(shù)據的擦除,因此需要3類地址:Column Address,列地址;Page Address,頁地址;Block Address,塊地址。K9WBG08U1M的地址和命令需在I/O[7∶0]上傳遞,占用8 bit的數(shù)據寬度,它的寫入過程包含2個步驟:第1步是通過I/O端口將數(shù)據寫入每一頁的寄存器內的數(shù)據加載階段;第2步則是頁編程階段,即在芯片內部,將數(shù)據從頁寄存器內部傳輸?shù)酱鎯卧小?/p>
由于1片4 Gbyte的K9WBG08U1M型Flash由2片2 Gbyte的K9F8G08UOM型Flash組成,故在本設計中,選擇K9WBG08U1M的交錯式雙平面(Interleave two_plane)方式,即在2片2 Gbyte的K9F8G08UOM型Flash之間交錯地寫數(shù)據。中控邏輯單元首先控制Flash存儲模塊讀取8 kbyte數(shù)據,寫到第1片K9F8G08UOM(chip#1)頁寄存器中,接著發(fā)送頁編程命令到chip#1,因此時chip#1在進行頁編程,處于忙狀態(tài),而第2片K9F8G08UOM(chip#2)處于等待狀態(tài),故FPGA可控制發(fā)送數(shù)據及頁編程命令到chip#2;chip#1完成頁編程后,即可轉換到chip#2進行頁編程操作,如此反復進行下去[4]。K9WBG08U1M的接口寫入速率極限可達40 Mbyte/s,在邏輯設計過程中,不考慮Flash芯片的頁編程時間,采用交錯式雙平面并行寫入的方式,在400 μs的時間內可寫入16 kbyte數(shù)據,滿足輸入碼率(30.72 Mbyte/s)要求。
當采集存儲模塊中控邏輯單元判斷到控制信號1起作用后,對Flash存儲芯片進行全空間擦除,同時將無效塊地址存儲到FPGA內部所建RAM存儲器中;控制信號2起作用后,開始進行數(shù)據寫入操作;控制信號3起作用后停止向存儲模塊寫入數(shù)據。在交錯式雙平面頁編程過程中,一次最大寫時間(實測Tmax=130 μs)內,寫入數(shù)據4 kbyte,寫入數(shù)據速度約31 Mbyte/s,其中包括4 kbyte數(shù)據的寫入時間以及2個Plane之間的切換時間1 μs,還有7個命令字的寫入時間,充分考慮到寫操作中的時間需要,進行寫入速率的計算,時間計算如下:
(4 087+7)×31 ns+1 μs=128 μs(4 kbyte 數(shù)據)
1 000 000/124 ×4/1 024 Mbyte/s=31.50 Mbyte/s
系統(tǒng)接口處的圖像信號源輸出數(shù)據的碼流為30.72 Mbyte/s,小于31.50 Mbyte/s,所以,該 Flash 存儲模塊對于圖像接口處的數(shù)據能夠可靠接受、緩存并存儲,確保大容量數(shù)據從緩存中讀取后完整準確地寫入Flash模塊中。Flash存儲模塊工作時序流程圖如圖4所示。
圖像數(shù)據采集存儲完畢后,需要將數(shù)據進行完整準確的回讀以對其進行解碼和校驗。一般情況下,大部分的存儲模塊與監(jiān)控讀數(shù)模塊之間采用的是RS-422、RS-485等串行數(shù)據接口傳輸標準,而由于傳輸過程中噪聲、電磁干擾、功耗、成本等方面的影響,傳輸速度和距離是成反比的,例如,422接口標準中傳輸碼率和傳輸長度的乘積不能大于10的8次冪。同時,由于數(shù)據傳輸碼率低,對于大容量數(shù)據的讀取需要相當長的時間,且傳輸距離一般都在幾十米以上或者更遠,此時以上所說的串行數(shù)據接口標準傳輸速度已經不能滿足要求[5]。
圖4 Flash存儲模塊工作時序流程圖
充分考慮到速度和距離的要求,本設計提出使用基于LVDS總線的低電壓差分傳輸方式[5]。這種傳輸方式可滿足高速數(shù)據下的短距離傳輸,但由于其在普通雙絞線上的傳輸損耗隨信號頻率的平方根成正比增加,因此,LVDS在遠程傳輸應用中受限。在此,需于數(shù)據發(fā)送端對信號進行驅動,以增強信號,同時,在接收端通過均衡補償信號遠程傳輸?shù)膿p耗。
該監(jiān)控讀數(shù)模塊通過USB與PC機相連,在此選用了CYPRESS公司研制的EZUSBFX2系列CY7C68013作為USB接口芯片,監(jiān)控讀數(shù)模塊主控邏輯單元接收到PC機指令后,向圖像數(shù)據采集存儲模塊發(fā)出讀書請求脈沖,采集存儲模塊實時判斷該請求,通過LVDS向監(jiān)控讀數(shù)模塊發(fā)送有效數(shù)據,在監(jiān)控讀數(shù)模塊讀書請求無效時,發(fā)送無效數(shù)據至監(jiān)控讀數(shù)模塊,以保證LVDS總線收發(fā)端處于不間歇通訊狀態(tài)。監(jiān)控讀數(shù)模塊主控單元收到有效數(shù)據后,實時寫入內部FIFO,而USB控制芯片CY7C68013則實時判斷監(jiān)控讀數(shù)模塊中控單元內部FIFO的半滿信號,半滿后即讀數(shù)據至PC機,以此來實現(xiàn)整個接口的協(xié)調、有序、高速、高效。數(shù)據長線讀取傳輸框圖如圖5所示。
圖5 數(shù)據讀取傳輸框圖
在調試完畢該系統(tǒng)的軟硬件功能之后,對系統(tǒng)總體功能進行綜合測試。由高速視頻攝像頭向該高速圖像數(shù)據采集存儲測試系統(tǒng)發(fā)出圖像數(shù)據(數(shù)據碼流為30.72 Mbyte/s),經采集存儲后,由監(jiān)控讀數(shù)模塊通過LVDS總線讀回圖像數(shù)據,利用控制計算機的解碼軟件對圖像數(shù)據進行解碼,解碼后圖像如圖6所示。
圖6 綜合測試下的解碼圖像(截圖)
基于FPGA的高速圖像數(shù)據采集存儲測試系統(tǒng)達到了對高碼流、大容量圖像數(shù)據進行采集、存儲、數(shù)據解碼及校驗的系統(tǒng)測試功能。該系統(tǒng)針對圖像信號傳輸?shù)母咚?、大容量?shù)據特征,設計了圖像信號源模塊、高速緩存FIFO模塊、高速數(shù)據寫入Flash模塊以及監(jiān)控讀數(shù)模塊,可以將圖像信號(數(shù)據碼流為30.72 Mbyte/s)實時采集接收并完整準確送入Flash進行存儲,并在事后將存儲數(shù)據回讀至控制計算機解碼、判讀。該設計充分利用了圖像的高實時性以及現(xiàn)場特征,為現(xiàn)代工業(yè)領域了解工作狀態(tài)及故障定位等工況信息提供了一種全新的測試手段。
[1]褚振勇.FPGA設計及應用[M].西安:西安電子科技大學出版社,2002.
[2]章毓晉.圖像處理和分析[M].北京:清華大學出版社,1999.
[3]朱巖.基于閃存的星載高速大容量存儲技術的研究[D].北京:中國科學院研究生院,2006.
[4]張文棟.存儲測試系統(tǒng)的設計理論及其應用[M].北京:高等教育出版社,2002.
[5]張健,吳曉冰.LVDS技術原理和設計簡介[J].電子技術應用,2000(5):59-61.