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