文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.12.018
中文引用格式: 馬游春,王悅凱,丁寧. 基于DDR3-SDRAM 的高速視頻傳輸系統(tǒng)[J].電子技術(shù)應用,2015,41(12):69-71,75.
英文引用格式: Ma Youchun,Wang Yuekai,Ding Ning. High-speed video transmission system based on DDR3 SDRAM[J].Application of Electronic Technique,2015,41(12):69-71,75.
0 引言
高速視頻圖像技術(shù)被廣泛應用于鐵道鐵路、航空航天、水下、生物運動捕獲、醫(yī)療器械、遠程教學及生產(chǎn)生活的諸多領(lǐng)域。目前,視頻圖像傳輸技術(shù)已經(jīng)日趨成熟,并開始向高清、高速的需求方向發(fā)展。
針對目前普遍存在的因為存儲速度低而只能采集低分辨率視頻數(shù)據(jù)的缺點,利用Camera Link的Full傳輸模式對圖像數(shù)據(jù)進行接收并利用多片DDR3-SDRAM多BANK存儲的原理對高帶寬和大容量圖像數(shù)據(jù)實現(xiàn)高速存儲及傳輸。
1 總體設計方案
視頻圖像傳輸系統(tǒng)的設計框圖如圖1所示。系統(tǒng)主要由時鐘與復位單元、邏輯控制單元、視頻采集單元、視頻轉(zhuǎn)存單元、實時顯示單元組成。
系統(tǒng)工作過程為:FPGA通過Camera Link接口將配置信息發(fā)送給CMOS相機,控制CMOS相機開始進行視頻數(shù)據(jù)的采集、編幀并通過Camera Link接口將數(shù)據(jù)傳送至FPGA;視頻數(shù)據(jù)經(jīng)過FPGA的一系列相關(guān)的視頻數(shù)據(jù)處理之后存儲到DDR3-SDRAM中,當DDR3-SDRAM中的視頻數(shù)據(jù)存滿后,將存儲的視頻數(shù)據(jù)通過千兆以太網(wǎng)接口傳輸?shù)缴衔粰C,最終在上位機上進行實時觀測。
2 高速視頻采集傳輸
2.1 視頻采集單元
視頻采集單元主要包括COMS相機及Camera Link接口。采用Camera Link的Full模式進行數(shù)據(jù)采集,數(shù)據(jù)傳輸位寬為80 bit。
設置圖像采集系統(tǒng)數(shù)據(jù)位寬為8 bit、采樣頻率為250幀/s、分辨率為2 048×1 088 Pixels的彩色視頻圖像。
2.2 圖像數(shù)據(jù)轉(zhuǎn)存單元
DDR3-SDRAM為第三代雙倍數(shù)據(jù)速率動態(tài)同步隨機存儲器,與上一代產(chǎn)品相比,DDR3-SDRAM擁有兩倍于DDR2的預取能力;突發(fā)長度固定為8,增加了突發(fā)突變模式及重置功能,極大地降低了系統(tǒng)功耗。
采用Micron公司的MT41K1G8SN-125內(nèi)存條作為圖像的存儲介質(zhì),其由8個DDR3-SDRAM的存儲芯片組成,每個存儲芯片為8 bit,8片組合在一起為64 bit的數(shù)據(jù)位寬,F(xiàn)PGA與DDR3-SDRAM的硬件連接如圖2所示。其中,CK_N與CK_P 為DDR3-SDRAM的差分時鐘,其頻率為800 MHz;FPGA通過復位信號(RESET)、行地址選擇信號(RAS)、列地址選擇信號(CAS)、時鐘使能信號(CKE)和寫使能信號(WE)實現(xiàn)對DDR3-SDRAM的控制。
64 bit數(shù)據(jù)并行地與FPGA的I/O口直接相連, DDR3-SDRAM的工作時鐘一次能夠傳輸64 bit的數(shù)據(jù),極大地提高了數(shù)據(jù)的傳輸速率。單顆粒DDR3-SDRAM地址線的位寬為16 bit,Bank的位寬為3 bit,F(xiàn)PGA可直接通過控制Bank地址與16 bit的行列地址來選擇數(shù)據(jù)在DDR3-SDRAM中存儲的位置。
3 軟件設計及測試
系統(tǒng)功能主要為對經(jīng)過Camer Link接收模塊的串并轉(zhuǎn)換以及經(jīng)過FIFO進行數(shù)據(jù)緩存處理之后的視頻進行再處理,轉(zhuǎn)化成能夠滿足DDR3-SDRAM存儲條件的時序控制之后,將視頻數(shù)據(jù)寫入DDR3-SDRAM的內(nèi)部;將存儲DDR3-SDRAM內(nèi)部數(shù)據(jù)讀出,經(jīng)過處理后通過FIFO的處理,再經(jīng)過千兆以太網(wǎng)輸出,經(jīng)上位機處理后顯示。
系統(tǒng)的工作流程如圖3所示。上電后系統(tǒng)復位,各功能模塊進行初始化;初始化及DDR3 DQS、Write、Read校驗完成后init_done拉高;相機開始工作,圖像數(shù)據(jù)經(jīng)Camera Link接口進入FPGA進行數(shù)據(jù)編碼,編碼后數(shù)據(jù)暫存在內(nèi)置FIFO模塊;判斷FIFO的almost_full信號是否為高電平,當almost_full信號為高電平則DDR3-SDRAM可以進行寫數(shù)據(jù)操作了,然后控制器開始向DDR3-SDRAM發(fā)送寫命令、寫地址以及寫數(shù)據(jù)操作,在寫數(shù)據(jù)的過程中控制器通過幀計數(shù)信號counter_frame來判斷DDR3-SDRAM是否被寫滿,當counter_frame=480時DDR3-SDRAM已經(jīng)不能夠再接收一幀完整的視頻數(shù)據(jù)了,此時start_ddr3信號拉低,不再進行寫數(shù)據(jù)操作。然后等待千兆以太網(wǎng)模塊使能DDR3-SDRAM的讀數(shù)據(jù)操作,去將寫入DDR3-SDRAM中的數(shù)據(jù)經(jīng)過控制器的控制后,通過FIFO的處理,經(jīng)過千兆以太網(wǎng)模塊將數(shù)據(jù)輸出到上位機上進行顯示。
3.1 DDR3-SDRAM工作狀態(tài)機
按JEDEC規(guī)定,DDR3-SDRAM工作必須遵守一定的規(guī)則,DDR3-SDRAM存儲器工作狀態(tài)如圖4所示。
圖4中涉及命令及功能如表1所示。
3.2 DDR3-SDRAM突發(fā)模式下數(shù)據(jù)編碼
系統(tǒng)采用DDR3突發(fā)傳輸模式,一次傳輸數(shù)據(jù)量為512 bit,而Camera Link接口一次傳輸數(shù)據(jù)為80 bit;對Camera Link傳來數(shù)據(jù)進行如圖5格式的編碼。編碼采用十六進制的EB 90作為幀標志,并設計16 bit的幀計數(shù),將Camera Link傳來的每六次(480 bit)作為一組數(shù)據(jù),然后緩存至FPGA內(nèi)置FIFO模塊。
3.3 DDR3-SDRAM多BANK同行切換存儲設計與測試
每片DDR3-SDRAM有8個BANK用于存儲數(shù)據(jù),為了最大限度地提高DDR3-SDRAM的存儲速度,選擇最佳的工作模式,對單BANK內(nèi)行切換存儲及多BANK同行切換存儲進行測試,如圖6所示。
單BANK內(nèi)行切換存儲是指在DDR3-SDRAM寫數(shù)據(jù)時先逐行寫B(tài)ANK0,待BANK0寫滿之后再寫B(tài)ANK1,依次寫各個BANK。在本次測試中采用的是每行寫8個64 bit的數(shù)據(jù),再依次轉(zhuǎn)入該BANK的下一行。多BANK同行切換存儲是指DDR3-SDRAM寫數(shù)據(jù)時依次再寫B(tài)ANK0~BANK7的第一行,所有BANK的第一行寫滿之后再依次寫各個BANK的第二行,以此類推進行DDR3-SDRAM的寫數(shù)據(jù)操作。測試時序是在ISE14.3建立的DDR3-SDRAM控制器工程中,添加DDR3-SDRAM模型聯(lián)合進行仿真的測試結(jié)果,仿真工具采用modesim仿真軟件。
圖6(a)的單BANK內(nèi)行切換測試時序,當ddr3_ras_n_fpga信號和ddr3_cke_n_fpga 信號均為高電平、ddr3_cas_n_fpga信號和ddr3_we_n_fpga信號均為低電平,DDR3-SDRAM接收寫數(shù)據(jù)命令,命令接收完畢后,開始往DDR3-SDRAM中寫入位寬為64 bit的數(shù)據(jù)。測試可得,在BANK0的一行連續(xù)寫完8個64 bit數(shù)據(jù)大概花費的時間約為6 045 756 fs,寫第一行的數(shù)據(jù)開始到寫入第二行數(shù)據(jù)的開始所花費的時間約為70 050 164 fs,則單BANK內(nèi)行切換測試得出的寫數(shù)據(jù)的帶寬的利用率大約為8.6%。理想情況下的帶寬為12.5 GB/s,單BANK內(nèi)行切換測試得出的帶寬大約為1 100.8 MB/s,系統(tǒng)采用的Camera link接收模塊接收的數(shù)據(jù)流為820 MB/s,則DDR3-SDRAM的帶寬約為1 100.8 MB/s時能夠滿足緩存的數(shù)據(jù)流條件,但是在實際處理中DDR3-SDRAM還會有一些其他的數(shù)據(jù)等待操作,比如等待FIFO的almost_full信號命令,還會消耗一定的DDR3-SDRAM帶寬,因此DDR3-SDRAM的帶寬有必要設計的更大一些。圖5(b)所示的為多BANK同行切換測試時序,其中ddr3_dq_fpga為寫入DDR3-SDRAM的數(shù)據(jù)。如圖5(b)所示,寫第一個BANK的一行的8個64 bit數(shù)據(jù)所花費的時間約為5 079 040 fs,寫第一個BANK的一行8個數(shù)據(jù)開始到寫第二個BANK的一行8個數(shù)據(jù)開始所花費的時間大約為9 994 240 fs,則多BANK同行切換測試得出的寫數(shù)據(jù)的帶寬的利用率大約為50.8%。理想情況下的帶寬為12.5 GB/s,則多BANK同行切換測試得出的帶寬大約為6 502.4 MB/s,Camera link接收模塊接收的數(shù)據(jù)流為820 MB/s,則DDR3-SDRAM的帶寬約為6 502.4 MB/s,這在很大程度上超過了Camera link接收模塊接收的數(shù)據(jù)流,能夠滿足緩存的數(shù)據(jù)流條件。
4 結(jié)論
利用系統(tǒng)采集視頻圖像,經(jīng)上位機還原后視頻圖像清晰完整,設計符合預期。結(jié)果表明:利用Full模式下Camera Link總線接口可滿足高速視頻圖像的采集需求,DDR3-SDRAM多BANK存儲技術(shù)可極大地提高數(shù)據(jù)存儲的速度,解決高速視頻高分辨率轉(zhuǎn)存及傳輸?shù)膯栴}。
參考文獻
[1] BARRERA E,RUIZ M,SANZ D,et al.Test bed for real-time image acquisition and processing systems based on FlexRIO,CameraLink,and EPICS[J].Fusion Engineering and Design,2014,89(5):633-637.
[2] 王正宇.DDR3內(nèi)存控制器的IP核設計及FPGA驗證[D].蘭州:蘭州交通大學,2012.
[3] 黃云翔.DDR3-SDRAM的控制器設計和驗證[D].廣州:華南理工大學,2012.
[4] 李輝,岳田.在FPGA設計中ChipScope與MATLAB的應用[J].無線電工程,2010,40(1):62-64.
[5] 張超,余綜.基于DDR3系統(tǒng)互聯(lián)的信號完整性設計[J].計算機工程與設計,2013,34(2):616-621.