彭晴晴,孟令軍,李 柱,藺志強
(中北大學 電子測試技術國家重點實驗室,山西 太原 030051)
隨著高速LVDS數據傳輸方式在圖像采集系統中的廣泛應用,如何實時可靠地接收LVDS數據具有很重要的意義。在圖像采集系統中,需要實時將采集到的數據進行連續的監測和紀錄,以便事后進行分析。本文主要基于Altera公司的嵌入式處理器NiosⅡ,設計了一種基于SoPC的LVDS圖像數據緩存系統,將DMA技術和由SRAM構成的乒乓結構應用于圖像數據轉存過程中,并可方便地將數據傳給上位機,大大提高了圖像數據采集的實時性和可靠性。
LVDS數據傳輸方式以其速度快、干擾少、功耗低等特點被廣泛應用于圖像數據傳輸系統中[1]。本設計主要是完成LVDS圖像數據的緩存和轉發功能。由于圖像數據傳輸速度快,為了保證其實時性,在圖像數據接收過程中采用由兩片SRAM構成的乒乓結構來提高系統的可靠性。同時,在圖像數據存儲過程中采用DMA方式進行數據轉存,保證能夠實時接收圖像傳感器產生的圖像數據。圖像數據緩存系統的設計結構如圖1所示。由圖像傳感器采集的圖像數據經由LVDS接口下發給圖像數據緩存系統,經過解串后將接收到的圖像數據存儲到兩片片外擴展的SRAM中進行緩沖,數據的寫入和讀出是通過乒乓模式實現的。NiosⅡ軟核處理器將數據從SRAM中讀出后通過Avalon總線以DMA方式將數據存儲到Flash中或者轉發至異步FIFO中,上位機通過USB接收圖像數據,最終完成圖像數據的緩存和傳輸。

SoPC即可編程片上系統,是一種嵌入式系統,它將處理器、存儲器、I/O接口、LVDS接口、CDR等系統設計需要的功能模塊集成到一個可編程器件上,構成一個可編程的片上系統。Altera公司的NiosⅡ是基于RISC架構的嵌入式處理器軟內核,主要包括一個CPU、I/O中斷申請、計時器、UART口及大量的通用寄存器[2]。在構建NiosⅡ處理器的硬件時,根據系統要實現的功能,選擇合適的CPU和外部設備,然后通過QuartusⅡ和SoPC生成具有相應功能的軟核。同時,設計者還可以通過Veril?og、VHDL或者使用第三方的IP Core定制用戶外設和用戶指令來實現各種應用要求。在NiosⅡ系統設計中,一般可以通過兩種途徑擴展自定義外設,一種是將自定義外設接入Avalon總線,另一種是使用PIO接口[3]。
本設計NiosⅡ外設主要包括以下幾個部分:LVDS圖像數據接口,SRAM,SDRAM,Flash控制器,DMA控制器和FIFO控制模塊。系統配置的組件以及接口模塊見圖2。

LVDS接口模塊完成LVDS電平轉換,實現圖像同步信號與圖像數據的分離和輸出。在圖像同步信號作用下,將LVDS接口傳入的圖像數據保存至單幀數據緩存中。LVDS數據發送及接收端必須采用同樣的時鐘頻率進行控制,才能保證數據傳送的成功同步,解串后的圖像信號時序如圖3所示。本系統接收的數字圖像格式為320×240×8。幀同步信號VSYN為高電平,同時行同步也為高電平時,圖像數據有效,像素時鐘PCLK為8 MHz。幀同步為高電平時,行同步有效,一幀包含240行;行同步為高電平時,圖像數據有效,一行包括320個像素點。

針對圖像數據傳輸速率高的特點,需要對圖像數據進行流水線處理。為了保證在圖像處理過程中不丟失采集的數據,系統采用兩片高速SRAM交替工作,完成數據流無縫緩存,構成乒乓機制工作性質。一個SRAM用于接收圖像數據,另外一個用于圖像數據的處理。每片SRAM可以存儲2幀圖像數據。乒乓控制邏輯實現在兩片SRAM之間進行切換。在一片執行寫操作的同時,另一片執行讀操作。乒乓結構模塊的原理如圖4所示。

乒乓操作的處理流程描述如下:輸入數據流通過輸入數據選擇單元等幀,將數據流分配到兩個數據緩沖區。在第1個緩沖周期,將輸入的數據流緩存到數據緩沖SRAM1;在第2個緩沖周期,通過輸入數據選擇單元的切換,將輸入的數據流緩存到數據緩沖SRAM2,同時將SRAM1中緩存的第1個周期的數據通過輸出數據選擇單元的選擇,送到控制處理單元進行處理;在第3個緩沖周期,再次切換數據的進入與輸出緩沖模塊,如此循環。
為了保證圖像數據傳輸的實時性和連續性,提高CPU的處理速度和數據傳輸能力,使用基于DMA的圖像數據轉存方式,在片上系統中引入了DMA控制器。同時為了完成圖像數據的接收和上傳之間的速率匹配,需在系統的輸出端加入一塊異步FIFO。這樣在FIFO和數據處理單元以及存儲器之間形成以DMA方式直接控制高速數據傳輸模式。由于圖像數據的存儲采用了乒乓結構,可以在一片SRAM執行DMA傳輸的同時,另一片執行寫操作,這樣不會造成數據丟失,狀態也比較容易控制。DMA模式不過分依賴CPU,可以大大節省系統資源,是在內存與外設之間進行批量數據傳輸的最佳模式[4]。本系統主要利用行與行之間的消隱間隔來完成DMA傳輸,將圖像緩存SRAM中的一幀數據搬移到片內FIFO。由于行消隱的時間不做圖像采集,把它用來完成DMA傳輸可大大提高數據傳輸效率。
該模塊的主要功能是,NiosⅡCPU在SRAM中設置了幀緩沖,處理器將一幀數據(320×240×8)存入幀緩沖,在主程序進行DMA初始化后,系統首先通過DMA啟動一次SRAM向FIFO的DMA傳送,同時FIFO控制接口通過CY7C68013將FIFO中的數據上傳至上位機。當FIFO向CY7C68013輸出數據過程中,FIFO的數據減少到設定的容量域值時,FIFO控制接口的準備信號經由Avalon總線向DMA控制器提出傳送請求。DMA控制器接受請求后,直接控制數據從SRAM經FIFO控制接口的寫數據端口寫入FIFO,以此完成一次SRAM向FIFO的DMA傳送。在整個運行過程中,程序不停地將SRAM中的圖像數據傳輸給異步FIFO。
由于在具體設計中,既要進行設備控制,又要完成高速數據傳輸,所以本系統選用Cypress公司的EZ-USB FX2接口芯片CY7C68013。EZ-USB FX2集成了USB2.0微處理器、SIE(串行接口引擎)、增強的8051微控制器、4 kbyte FIFO存儲器和可編程的外圍接口。GIPF(Gener?al Programmable Interface)和主/從斷點FIFO(8位或16位數據總線)為ATA,UTOPIA,EPP,PCMCIA和DSP等提供了簡單和無縫連接接口[5]。設計者在使用該USB芯片與上位機進行通信時,需要使用CY7C68013的GPIF接口來實現與FPGA之間的高速數據傳輸。EZ-USB FX2的通用可編程接口(GPIF)有16位數據線,支持8位或16位的數據傳輸;有6個RDY信號和6個CTL信號,支持多個Ready輸入和Control輸出。通過寄存器配置可以將CTL信號作為輸出控制信號,通常用作讀寫時鐘信號以及非總線輸出信號;同時RDY信號作為等待信號,GPIF端口總是連續高速采樣RDY信號,用來判定指定信號的高電平或者低電平狀態的出現,以確定GPIF端口是否進行數據傳輸[6]。EZ-USB FX2在高速模式下數據傳輸的碼率可以達到480 Mbit/s,本系統的實時圖像數據的速率為64 Mbit/s,因此CY7C68013可將圖像數據完整地接收至上位機。
USB圖像數據傳輸部分主要實現將上位機軟件發出的控制命令字下傳給FPGA,并實時判讀FIFO的半滿信號,準備將緩存中的圖像數據上傳給上位機。上位機的命令字通過單片機的PE端口傳送給FPGA,圖像數據通過GPIF端口上傳給上位機。為了匹配單片機與FPGA的傳輸速度,還應在FPGA中設置一個2 kbyte的軟FIFO用于圖像數據的緩存。CY7C68013單片機通過RDY2引腳實時判讀FIFO的半滿信號,若FIFO達到半滿,單片機通過CTL0引腳產生讀FIFO信號,將圖像數據實時上傳至上位機。Cypress公司為了簡化和加快開發基于EZ-USB FX2芯片的外圍設備,提供了一個基于EZ-USB FX2的固件框架,該框架主要包含初始化、處理標準USB設備請求以及USB掛起時的電源管理等,提供了現成的8051程序代碼,只需要簡單地提供USB描述符表及編寫外設功能代碼,就可以開發出一個功能完善的USB外設。
圖5為QuartusⅡ提供的Signal TapⅡ Logic Analyzer邏輯分析儀對圖像數據上傳進行實時采樣的時序分析圖,描述了NiosⅡ處理器將SRAM緩存中的數據寫入FIFO和CY7C68013判讀FIFO半滿信號,并將圖像數據上傳上位機的時序關系。圖6為經上位機軟件還原的圖像,恢復的圖像清晰無誤碼,實現了圖像數據的實時傳輸,滿足了設計要求。

隨著高速LVDS技術在圖像傳輸系統中的廣泛應用,介紹了一種基于NiosⅡ的LVDS圖像數據緩存方案,實現了高速LVDS圖像數據的實時緩存和上傳。設計中采用了乒乓緩存結構和DMA數據傳輸機制,保證了圖像數據的連續性和完整性。本設計采用了SoPC技術,整個系統的性能和穩定性有了很大提高,適用于通信、雷達、電子對抗等高速數字信號處理設備,具有廣泛的應用前景。
[1] 孫春鳳,袁峰,丁振良,等.基于LVDS技術的高速圖像采集系統的設計[J].儀表技術與傳感器,2009(3):46-51.
[2] Altera Corporation.NiosII software developer's handbook[EB/OL].[2011-01-01].http://www.altera.com/literature/hb/nios2/n2sw_nii5v2.pdf.
[3] 蔡偉綱.NiosII軟件架構解析[M].1版.西安:西安電子科技大學出版社,2007.
[4] 袁海林.基于NiosII的數字圖像回放系統的設計[J].湖北民族學院學報:自然科學版,2008,26(3):357-360.
[5] 錢峰.EZ-USB FX2單片機原理、編程、及應用[M].北京:北京航空航天大學出版社,2006.
[6] 崔中華,熊繼軍,沈三民.基于LVDS技術的實時圖像測試裝置的設計[J].測控技術與儀器儀表,2010(4):84-86.
彭晴晴(1984-),碩士生,主研測試計量技術及儀器;
孟令軍(1969-),副教授,主要研究方向為無線傳感器網絡節點定位技術;
李 柱(1986-),碩士生,主研電路與系統;
藺志強(1987-),碩士生,主研電路與系統。