《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于DDR2的高速圖像數(shù)據(jù)傳輸系統(tǒng)設(shè)計
基于DDR2的高速圖像數(shù)據(jù)傳輸系統(tǒng)設(shè)計
2020年電子技術(shù)應(yīng)用第1期
任勇峰,,張澤芳,,王國忠,,張凱華
中北大學(xué) 電子測試技術(shù)國家重點實驗室,,山西 太原030051
摘要: 在高速圖像數(shù)據(jù)傳輸系統(tǒng)中,針對圖像數(shù)據(jù)“高吞吐量”與“大容量”數(shù)據(jù)緩存的應(yīng)用需求,提出了一種基于DDR2 SDRAM的高速圖像數(shù)據(jù)傳輸系統(tǒng)設(shè)計方案。為了滿足圖像數(shù)據(jù)的高吞吐率要求和數(shù)據(jù)緩存的大容量需求,,采用了FPGA內(nèi)部FIFO資源搭配片外DDR2的分級緩存機(jī)制;為了方便對圖像數(shù)據(jù)的讀寫與地址的管理,,對DDR2內(nèi)部存儲空間進(jìn)行了重新分布,。經(jīng)測試,該系統(tǒng)可在上位機(jī)實時顯示圖像數(shù)據(jù),,且穩(wěn)定可靠,。
中圖分類號: TN919.8
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.190715
中文引用格式: 任勇峰,張澤芳,,王國忠,,等. 基于DDR2的高速圖像數(shù)據(jù)傳輸系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,,2020,,46(1):62-65.
英文引用格式: Ren Yongfeng,Zhang Zefang,,Wang Guozhong,,et al. Design of high-speed image data transmission system based on DDR2[J]. Application of Electronic Technique,2020,,46(1):62-65.
Design of high-speed image data transmission system based on DDR2
Ren Yongfeng,,Zhang Zefang,Wang Guozhong,,Zhang Kaihua
National Key Laboratory for Electronic Measurement Technology,,North University of China,Taiyuan 030051,,Shanxi
Abstract: In the high-speed image data transmission system, a high-speed image data transmission system design scheme based on DDR2 SDRAM is proposed for the high throughput of image data and the application of "large capacity" data buffer. In order to meet the high throughput requirements of image data and the large capacity requirements of data caching, FPGA internal FIFO resources with off-chip DDR2 hierarchical cache mechanism is adopted. In order to facilitate the reading and writing of image data and the management of addresses, the internal storage space of DDR is redistributed. After testing, the system can display image data in real time on the host computer, which is stable and reliable.
Key words : DDR2,;FPGA;hierarchical caching,;data transmission

0 引言

    CMOS圖像傳感器憑借著集成度高,、功耗小、速度快,、成本低,、靈活性強(qiáng)等特點[1],在各個行業(yè)得到了廣泛的應(yīng)用,。隨著CMOS傳感器的快速發(fā)展,,其幀頻、分辨率等參數(shù)得到了大幅度提升[2],。當(dāng)CMOS傳感器分辨率設(shè)置為2 048×2 048(約400萬像素),,幀頻設(shè)置為20 f/s時,,CMOS圖像傳感器每秒產(chǎn)生的圖像數(shù)據(jù)量可達(dá)80 MB,這意味著圖像數(shù)據(jù)傳輸系統(tǒng)需在短時間內(nèi)對大量數(shù)據(jù)進(jìn)行快速讀寫操作,,對內(nèi)存的容量和速度提出了較高的要求,。

    為了滿足對高速圖像數(shù)據(jù)的傳輸要求,在綜合考慮帶寬,、速率,、數(shù)據(jù)存儲容量、成本,、功耗等因素后[3],,本設(shè)計選用DDR2作為數(shù)據(jù)緩存單元。本文提出的分布式三級數(shù)據(jù)緩存結(jié)構(gòu),,結(jié)合了FPGA內(nèi)部FIFO的高數(shù)據(jù)吞吐量與片外DDR2大容量的特點,,很好地解決了高速圖像數(shù)據(jù)的緩存難題,實現(xiàn)了圖像數(shù)據(jù)的實時顯示,。

1 系統(tǒng)總體方案設(shè)計

    本文介紹的基于DDR2的高速圖像數(shù)據(jù)傳輸系統(tǒng)能夠?qū)崟r顯示數(shù)據(jù)采集前端接收的圖像數(shù)據(jù),,該系統(tǒng)的總體結(jié)構(gòu)框圖如圖1所示。

ck1-t1.gif

    該設(shè)計由數(shù)據(jù)采集,、數(shù)據(jù)緩存,、數(shù)據(jù)傳輸[4]共3個模塊構(gòu)成。數(shù)據(jù)采集模塊利用CMOS圖像傳感器進(jìn)行圖像數(shù)據(jù)的采集,,采集到的信號為串行信號,;數(shù)據(jù)緩存模塊利用FPGA片內(nèi)FIFO資源與片外DDR2進(jìn)行圖像數(shù)據(jù)的緩存,其中,,F(xiàn)IFO主要用來解決各個模塊之間數(shù)據(jù)位寬不一致以及數(shù)據(jù)傳輸速度不匹配的問題,,DDR2主要用來滿足高速大容量的數(shù)據(jù)緩存要求;數(shù)據(jù)傳輸模塊利用千兆以太網(wǎng)將圖像數(shù)據(jù)以巨型幀格式發(fā)送至上位機(jī)軟件并進(jìn)行實時顯示,。

    該設(shè)計選用的DDR2存儲容量為2 Gbit,,有8個Bank存儲塊,由于DDR2讀寫操作不能同時進(jìn)行,,因此需要對DDR2的地址總線進(jìn)行分時復(fù)用,,以提高其數(shù)據(jù)帶寬利用率。為了適應(yīng)不同分辨率的圖像數(shù)據(jù),,設(shè)計了圖像參數(shù)計算模塊以得到不同分辨率下的圖像數(shù)據(jù)量以及各個參數(shù),,從而對DDR2存儲空間的重新分布提供理論基礎(chǔ)。同時,,重新分布DDR2的存儲空間可實現(xiàn)對圖像數(shù)據(jù)的便捷式管理與控制,。

2 數(shù)據(jù)緩存模塊硬件電路設(shè)計

    本設(shè)計選用的DDR2芯片為Micron公司生產(chǎn)的MT47H128M16RT,該芯片在時鐘上升沿與下降沿同時進(jìn)行數(shù)據(jù)的傳輸,因而其傳輸速度為普通存儲器件的兩倍,。DDR2控制器邏輯設(shè)計復(fù)雜,,為了節(jié)省人力、加快開發(fā)速度,,采用嵌入FPGA內(nèi)部的DDR2控制器對DDR2進(jìn)行讀寫操作的控制[5],。

    本設(shè)計利用FPGA的Bank1控制DDR2,在硬件電路設(shè)計時嚴(yán)格遵照固定引腳分配連接FPGA與DDR2,,如圖2所示,。其中,CK和CKN為時鐘差分線,,數(shù)據(jù)在差分時鐘相交處進(jìn)行數(shù)據(jù)傳輸,;A[13:0]為行列地址復(fù)用線,BA[2:0]為塊地址,,在進(jìn)行讀寫操作時,,需首先確定數(shù)據(jù)具體地址[6];D[15:0]為數(shù)據(jù)線,;CKE,、ODT、CS為控制信號線,,其中,,ODT為片內(nèi)終結(jié)電阻,,通過調(diào)整電阻值來克服片內(nèi)總線上的信號反射效應(yīng)[3],;RAS、WE,、CAS為命令信號線,,F(xiàn)PGA通過這3條命令實現(xiàn)對DDR2讀寫操作的控制;UDM,、LDM為數(shù)據(jù)屏蔽線,,可用來屏蔽來自外部的干擾。

ck1-t2.gif

3 關(guān)鍵技術(shù)研究

3.1 DDR2讀寫邏輯設(shè)計

    數(shù)據(jù)采集模塊在接收到上位機(jī)開始采集指令后,,將會持續(xù)輸出串行數(shù)據(jù),,由于FPGA邏輯控制一般處理并行信號,因此需先對圖像數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換,,而后再將其緩存至FIFO_in中,。從FIFO_in中讀取圖像數(shù)據(jù)并按照一定格式寫入DDR2中;同時,,從DDR2中讀取圖像數(shù)據(jù),,利用FIFO_out陣列進(jìn)行位寬轉(zhuǎn)換及速度匹配后,通過千兆以太網(wǎng)傳輸至上位機(jī)軟件[7]。整體邏輯控制框圖如圖3所示,。

ck1-t3.gif

3.1.1 寫邏輯設(shè)計

    圖像采集時鐘與DDR2的工作時鐘頻率不同,,又由于DDR2只支持突發(fā)寫入,一次寫入256 B的數(shù)據(jù)量,,因而設(shè)計容量為2 KB的異步FIFO可將串并轉(zhuǎn)換輸出的并行數(shù)據(jù)進(jìn)行緩沖,,F(xiàn)IFO_in既能夠滿足數(shù)據(jù)緩存,又可以防止數(shù)據(jù)溢出,。

    系統(tǒng)上電開始工作,,F(xiàn)PGA為DDR2提供125 MHz的參考時鐘,DDR2開始初始化,;待初始化完成后,,通過判斷DDR2控制器的寫入命令是否有效,對DDR2輸入寫命令,、突發(fā)長度命令以及命令使能信號[8],;其后,當(dāng)FIFO讀空信號為‘0’,,即該信號無效時,,將DDR2的寫入使能置‘1’,并從FIFO_in中讀取圖像數(shù)據(jù)存入DDR2中,,當(dāng)FIFO讀空信號有效時,,停止從FIFO_in中讀取數(shù)據(jù),以確保讀取的數(shù)據(jù)均為有效數(shù)據(jù),;最后,,通過計數(shù)信號判斷一次突發(fā)寫入是否完成。寫DDR2將會一直持續(xù)到整個數(shù)據(jù)采集裝置掉電為止,。

    此外,,為了方便對圖像數(shù)據(jù)進(jìn)行管理,圖像數(shù)據(jù)以以太網(wǎng)包添加包頭包尾后寫入DDR2中,,該過程在一個獨立的進(jìn)程中實現(xiàn),。

3.1.2 讀邏輯控制

    本設(shè)計利用千兆以太網(wǎng)作為傳輸方式將數(shù)據(jù)上傳至上位機(jī)軟件,所涉及的千兆以太網(wǎng)包大小為9 014 B,,位寬為8 bit,,不支持突發(fā)傳輸,所以為了與前級實現(xiàn)更好的匹配,,設(shè)計FIFO來實現(xiàn)數(shù)據(jù)的緩沖,。DDR2與千兆以太網(wǎng)時鐘均為125 MHz,由于DDR2的傳輸速度可達(dá)456 MB/s,,而千兆以太網(wǎng)傳輸速率為125 MB/s,,因此設(shè)置4個容量為16 KB的FIFO陣列即可滿足系統(tǒng)對數(shù)據(jù)傳輸?shù)男枨蟆?/p>

    當(dāng)上位機(jī)接收到千兆以太網(wǎng)下發(fā)的讀取指令后,,首先判斷DDR2的寫塊地址是否大于讀塊地址[9],若寫地址塊大于讀地址塊,,則讀取的數(shù)據(jù)為有效數(shù)據(jù),;而后判斷DDR2控制器的讀取命令是否有效,若有效,,輸入對DDR2的讀取命令,、突發(fā)長度命令以及命令使能信號;最后,,通過計數(shù)信號完成對FIFO_out陣列的輪換寫入以及讀取操作,。

    在往FIFO_out陣列寫數(shù)據(jù)前,通過復(fù)位信號將FIFO中數(shù)據(jù)清空,;寫數(shù)據(jù)同時,,將計數(shù)信號及地址信息上傳至數(shù)據(jù)傳輸模塊。

    利用邏輯分析儀Chipscope抓取到的DDR2讀寫時序圖如圖4所示,。由圖可得,,可以連續(xù)對DDR2進(jìn)行突發(fā)讀寫操作,并且讀寫可分時進(jìn)行,;往DDR2中寫數(shù)據(jù)時,,需要等待圖像傳感器采集滿256 B時才可突發(fā)寫入;在進(jìn)行讀寫操作之前都要先進(jìn)行命令空信號判斷,。

ck1-t4.gif

3.2 重新分布DDR2存儲空間

    DDR2僅有一組地址總線,,讀寫操作不能夠同時進(jìn)行,所以要對DDR2的地址總線進(jìn)行分時復(fù)用[10],??刂艱DR2地址即可實現(xiàn)對其內(nèi)部存儲空間的控制,因此,,通過更改地址即可完成對DDR2內(nèi)部存儲空間的重新分布,。為了滿足分辨率為2 048×2 048的圖像數(shù)據(jù)以巨型幀格式進(jìn)行傳輸,本設(shè)計對DDR2存儲空間進(jìn)行了擴(kuò)展,。

    本設(shè)計使用的DDR2的存儲容量為2 Gbit,內(nèi)部含有8個Bank,,通過14位行地址與10位列地址判斷讀寫操作的具體地址,,其中一個地址存儲2 B數(shù)據(jù)。為了方便對數(shù)據(jù)的讀寫以及對地址的管理,,本設(shè)計利用一個地址存儲1 B數(shù)據(jù),,一個列地址存儲256 B數(shù)據(jù),一個行地址存儲一包圖像數(shù)據(jù),,以行地址為尋址的主地址方式進(jìn)行數(shù)據(jù)存儲,。在一包數(shù)據(jù)中,,除協(xié)議占用的50 B外,剩余8 964 B均為圖像數(shù)據(jù),。

    圖像參數(shù)計算模塊可計算不同分辨率下的一幅圖像要傳輸?shù)陌鼣?shù),,一包數(shù)據(jù)需要突發(fā)讀寫的次數(shù)以及最后一包數(shù)據(jù)需要突發(fā)讀寫的次數(shù)等參數(shù),通過一幅圖像最后一包的行地址來判斷該幅圖像是否傳輸完成,。

    文中數(shù)據(jù)采集模塊采集到的圖像數(shù)據(jù)的分辨率為2 048×2 048,,一幅圖像需要傳輸467包余8 116 B,一包數(shù)據(jù)需要突發(fā)讀寫的次數(shù)為35次,,最后一包數(shù)據(jù)需要突發(fā)讀寫的次數(shù)為31次余180 B,,因此可通過最后一行列地址與其他行列地址是否相同來判斷數(shù)據(jù)是否有效。在DDR讀寫邏輯設(shè)計中首先判斷是否為最后一行數(shù)據(jù),,然后再對列地址進(jìn)行操作,。

    一列數(shù)據(jù)存儲256 B,所以列地址低8位需全部賦值為0,;一包數(shù)據(jù)最大需要突發(fā)讀寫35(100011)次,,因此列地址總共需要14位,即DDR2存儲空間的10位列地址需擴(kuò)展至14位,。由于DDR2控制器的IP核實際列地址位寬為11位,,因而將列地址高3位以行地址高3位的形式輸入到地址控制端口即可完成列地址的擴(kuò)展。DDR2存儲空間經(jīng)過擴(kuò)展后,,當(dāng)行地址小于468,,列地址增加至35時,行地址加1列地址歸0,;當(dāng)行地址增加至468,,列地址增加至32時,行地址歸0塊地址加1,。所以在邏輯設(shè)計中首先判斷是否為最后一行數(shù)據(jù),,然后再對列地址進(jìn)行分別增加。

4 結(jié)果分析

    本設(shè)計數(shù)據(jù)采集模塊采集的圖像數(shù)據(jù)分辨率為2 048×2 048,,幀頻為20 f/s,,即1 s可產(chǎn)生80 MB的圖像數(shù)據(jù);在數(shù)據(jù)緩存模塊中,,DDR2的工作時鐘為125 MHz,,再考慮到自動刷新及預(yù)充電等消耗的時鐘,實際平均數(shù)據(jù)吞吐量為456 MB/s,;數(shù)據(jù)傳輸模塊中,,以太網(wǎng)傳輸速度為125 MB/s;經(jīng)測試,,該設(shè)計能夠正常工作,,上位機(jī)可實時顯示數(shù)據(jù)采集模塊采集的圖像數(shù)據(jù),,且穩(wěn)定可靠。

5 結(jié)論

    本設(shè)計以FPGA為核心,,對圖像數(shù)據(jù)流進(jìn)行整體邏輯設(shè)計,,采用三級數(shù)據(jù)緩存機(jī)制,利用FPGA內(nèi)部FIFO的高效讀寫性能與片外DDR2大容量存儲的特點,,形成速率與容量(時間與空間)的優(yōu)勢互補(bǔ),,很好地滿足了高速圖像數(shù)據(jù)傳輸系統(tǒng)對于圖像數(shù)據(jù)傳輸?shù)男阅苄枨蟆M瑫r,,本設(shè)計通過設(shè)計圖像參數(shù)計算模塊,,可應(yīng)對不同分辨率的圖像數(shù)據(jù),增強(qiáng)了該設(shè)計的可操作性和可移植性,。

參考文獻(xiàn)

[1] 葉威,,肖康,康冰鋒,,等.CMOS傳感器在航空攝影測量中的應(yīng)用[J].測繪通報,,2017(8):150-151.

[2] 丁寧,常玉春,,趙健博,,等.基于USB 3.0的高速CMOS圖像傳感器數(shù)據(jù)采集系統(tǒng)[J].吉林大學(xué)學(xué)報(工學(xué)版),2018,,48(4):1298-1304.

[3] 周彬,,宋茂忠,熊駿,,等.基于FPGA和DDR2的北斗導(dǎo)航信號模擬[J].電子設(shè)計工程,,2016,24(6):138-141.

[4] 王昊.基于FPGA的千兆以太網(wǎng)高速圖像采集與傳輸系統(tǒng)的設(shè)計[D].呼和浩特:內(nèi)蒙古大學(xué),,2017.

[5] 袁鑫,,盧磊,景彥哲.基于FPGA的DDR2緩存控制器在無線鏈路圖像跟蹤系統(tǒng)中的應(yīng)用[J].導(dǎo)航與控制,,2016,,15(4):63-69,7.

[6] 段岑林.DDR2 SDRAM控制器的設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué),,2018.

[7] 高俊嶺,,陳志飛,章佩佩.基于FPGA的實時視頻圖像采集處理系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,,2018,44(2):10-12,,19.

[8] 王曉鵬.基于FPGA片內(nèi)存儲器讀寫控制與仿真[J].農(nóng)村經(jīng)濟(jì)與科技,,2018,,29(14):296.

[9] WANG H,WENG Z,,LI Y.Design of high-speed image acquisition system based on FPGA[C].第30屆中國控制與決策會議論文集(2),,2018.

[10] 田杰,王廣龍,,喬中濤,,等.基于FPGA高速視頻圖像實時采集與處理系統(tǒng)設(shè)計[J].電子器件,2016,,39(3):623-627.



作者信息:

任勇峰,,張澤芳,王國忠,,張凱華

(中北大學(xué) 電子測試技術(shù)國家重點實驗室,,山西 太原030051)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。