《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA高速圖像數據的存儲及顯示設計
基于FPGA高速圖像數據的存儲及顯示設計
2014年電子技術應用第11期
郭柳柳1,甄國涌1,劉東海2
(1.中北大學 電子測試技術國家重點實驗室,山西 太原030051; 2.太原市華納方盛科技有限公司,山西 太原030051)
摘要: 設計了一種基于FPGA控制Nand Flash陣列實現高速流水線式存儲的方案。設計利用FPGA作為主控制器,通過CameraLink輸入通信接口將圖像數據經過一/二級緩存寫入Flash存儲陣列中,并采用DMA傳輸技術將存儲后的圖像數據上傳至計算機硬盤中作進一步處理;同時,利用SDRAM顯存實時刷新數據,FPGA構造相應的VGA信號,最終實現100 MB/s圖像數據的實時顯示。
中圖分類號: TP274
文獻標識碼: A
文章編號: 0258-7998(2014)11-0075-03
High-speed image data storage and display based on FPGA
Guo Liuliu1,Zhen Guoyong1,Liu Donghai2
1.National Key Laboratory for Electronic Measurement Technology,North University of China,Taiyuan 030051,China;2.Taiyuanshi Huana Fangsheng Technology Co.,Ltd.,Taiyuan 030051,China
Abstract: This paper uses FPGA to control NAND Flash array to achieve high-speed pipelined storage. This design adoptes FPGA as main controller to write image data into the Flash storage arrays through first/second butter,and uses DMA technology to upload image-data to computer hard disk for further processing. SDRAM is utilized to refresh data in real time and FPGA is used to construct corresponding VGA signal to realize 100 MB/s image data real-time display.
Key words : high-speed storage;real-time display;Flash;FPGA;DMA;DRAM

0 引言

  隨著數據存儲設備被廣泛應用于航空航天系統、醫療衛生、工業自動化等各行各業,對于圖像設備采集的控制及實時大容量高速存儲要求也越來越高。本文以Micron Flash為存儲介質,通過FPGA控制實現Camera Link高速接口通信,傳輸速率可達到100 MB/s,并設計高速數據的流水線式存儲方式,實現大容量高速圖像存儲與實時顯示

1 總體設計


001.jpg

  設計的實現過程如圖1所示,上位機通過PCI總線下發圖像數據并將數據保存在Flash存儲陣列A中;上位機指令下發后,FPGA控制Flash A讀出存儲的數據并通過CameraLink1輸出接口發送至信息處理器;待信息處理器處理完數據,再通過CameraLink輸入接口2將數據寫入到SDRAM顯存和Flash存儲陣列B中,使能VGA顯示后,顯示控制循環讀取SDRAM中的圖像數據進行顯示;最后,上位機通過DMA傳輸將Flash陣列B中保存的數據快速上傳至上位機中以作后續處理。

2 高速數據存儲管理設計

  2.1 Nand Flash

  高速存儲陣列A/B單元的設計是分別以4片Micron Nand Flash芯片作為存儲介質,通過FPGA完成Flash芯片讀寫時序的控制[1]。Micron Flash MT29F128G08AJAAA內部含有兩個CE使能端,每個使能各控制兩個相互獨立的LUN(4 GB),總容量為16 GB。為便于地址管理,提高數據處理速率,單片MT29F128G08AJAAA內部塊操作順序為(CE1)LUN0、(CE1)LUN1、(CE2)LUN0、(CE2)LUN1,當無效塊檢測模塊檢測到壞塊時,當前每行4塊均認為是無效塊,不對其進行操作。

002.jpg

  由于Flash芯片每次頁編程都需要350 s~560 s的頁編程時間,在此期間,不能對當前模塊進行操作,這嚴重制約著持續的數據寫入。由此可充分利用每個LUN相互獨立操作、互不影響的特點,采用流水線操作方式來復用編程時間,即當前LUN進入頁編程操作時,可以對剩下的3個LUN進行寫入頁寄存器操作,從而提高數據吞吐量[2]。假設Flash的讀寫周期為20 ns,將數據寫入到頁寄存器所需的時間為:8 192×20 ns=163.84 s,考慮端口復用寫入的地址、命令等時間約為10 s,因此對于單片Flash而言,連續寫完4個LUN共需時間為:4×(163.84+10) s=695.36 s,完成一次32 KB數據寫入所需總時間最多為695.36 s+560 s=1 255.36 ,即可粗略計算出單片Flash的平均寫入速率:32 KB/(1 024×1 255.36 s)=24.9 MB/s。該情況未考慮到第4個LUN寫完后,LUN1已經完成了頁編程操作,可繼續寫入,也就是說其持續的寫入速度大于24.9 MB/s。

  2.2 高速數據的存儲

  存儲器存儲的數據來源可分為兩類:一類是Camera-

  Link2接口輸入的高速圖像數據,另一類是上位機通過PCI總線下發的圖像數據。兩類數據的存儲方式相同,PCI下發數據速率小于CameraLink2接口輸入的圖像數據速率,時序上只需要保證CameraLink2輸入的數據能寫入到Flash B即可滿足需求。

  FPGA內部采用兩級緩存結構,通過流水線的操作方式實現100 MB/s 圖像數據的可靠存儲[3]。前一級采用一個16 KB大小FIFO構成的緩存,FIFO為16位,輸入時鐘為50 MHz;第二級緩存由4個8 KB的雙口RAM組成,輸入時鐘60 MHz,如圖2所示為緩存控制模塊圖。當一/二級緩存切換模塊通過flag標志判斷16 KB FIFO滿足已寫入2 000個字,f_adr地址開始累加并以60 MB/s速度從16 KB FIFO連續取出4 096個字,將數據賦給f_din,并模擬產生60 MHz的8 KB RAM寫時鐘f_clk。而每取完一次4 096個字數據量,f_fifo_adr清零,數據切換標志sw_flag自加1。數據流的方向就是通過sw_flag控制的,當sw_flag為00,01,10,11時,分別將f_din、f_clk、f_adr賦給1_ram 8 kB、2_ram 8 kB、3_ram 8 kB、4_ram 8 kB這4個ram二級緩存。當Flash控制模塊判斷取數標志1_start~4_start其中之一大于100時,主控制模塊控制對應的Flash進入寫操作。

003.jpg

  由于一級緩存寫入速度50 MB/s,讀數速度60 MB/s,寫速度小于讀速度,不用當心溢出問題。考慮到取數據連續性,避免讀空現象出現,合理地選取取數判斷標志的大小是關鍵,而判斷標志的大小取決于連續取數的數量大小及寫/讀數速度。假設數據取空時經歷時間為t,取數判斷標志大小為flag,則由公式50t+flag-60t=0可知flag=10t。為滿足連續取出4 096個字,故t要大于4 096/60=68.26 s,即flag滿足大于682.6就可以避免取空現象,考慮留取一定的裕量,選取flag為2 000。同理,當flash1從ram8 kB取數時,由于取數速度50 MB/s小于寫數速度60 MB/s,有可能出現溢出現象,通過1_start標志判斷1_ram 8 kB滿足大于100,Flash1控制模塊連續從ram 8 kB中取走4 096字。為保證數據可靠高效的連續性傳輸,一/二級緩存數據切換的有序配合顯得尤為重要,如圖3所示為數據切換時序圖,從16 KB FIFO到ram數據傳輸過程為:當16 KB FIFO取數判斷標志大于2 000時,從16 KB FIFO以60 MB/s速度連續取出4 096數據存入1_ram 8 kB,需時68.26 s,ram平均取數速度取決于16 KB FIFO寫入速度(為50 MB/s,即81.92 s),在ram取數的過程中16 KB FIFO經過81.92 ?滋s之后已經再次寫入4 096個數據,16 KB FIFO剩余4 096+

  2 000-4 096=2 000個數據量滿足取數要求,此時sw_flag自加1指向2_ram 8 kB,以此類推,4個ram循環地寫入數據。同理,在ram寫入數據的過程中,Flash1控制模塊判斷ram1取數標志滿足100時,連續取出4 096個字,當Flash1取走ram1中4 096個數據時,ram2已經滿足取數標志,Flash2開始從ram2中連續取出4 096個字,以此類推,Flash控制單元連續讀取4 096字寫入到Flash中進行頁編程操作,這樣就可實現連續的100 MB/s數據寫入。

  2.3 圖像數據的發送

  從PCI總線下發存入Flash A的圖像數據通過CameraLink1輸出接口發送至信息處理器,從Flash取數的過程和寫數的方式類似。設置4個8 KB的ram緩存,當接收到開始下發圖像指令后,FPGA控制4片Flash完成一次頁讀取操作,并將數據保存在8 KB緩存中,然后以60 MB/s的時鐘讀取緩存1中的數據存入16 KB FIFO。當讀完緩存1中的8 192 B數據后,依次讀取緩存2、3、4中保存的數據,同時以50 MB/s的時鐘讀取Flash中下一頁的數據。Flash以50 MB/s時鐘完成一次雙平面讀數過程所需時間為25 ns+8 192×20 ns+30×20 ns(命令、地址下發時間)=164 885 ns。以100 MB/s的速度讀取32 KB數據所需的時間為32×1 024×10 ns=327 680 ns>164 885 ns,也就是說在讀完剩下的3個緩存中的數據時候,第一個Flash已完成了一頁數據的讀取,并將數據存放在緩存1中。因此通過循環讀取4個緩存中的數據,即可實現持續的100 MB速度發送圖像數據。

3 圖像的實時顯示

  3.1 VGA時序信號產生

  設計VGA圖像顯示控制需要注意時序的驅動,這是完成設計的關鍵,時序稍有偏差顯示必然不正常甚至會損壞顯示器[4]。如表1所示為1 280×1 024×60 Hz圖像顯示控制各階段時鐘點數,圖像時鐘頻率為108 MHz,其中Hsync信號用來控制“列填充”,可以分為a~d 4個階段,其中c段1 280點為有效顯示區,a段由112個點組成的同步信號負脈沖以及兩段行消隱期;Vsync信號用來控制“行掃描”,同樣也分為o~r 4個階段,其中q段1 024行為圖像顯示行,o段3個時鐘為場同步信號負脈沖以及兩段場消隱期[5-6]。

004.jpg

  對于行同步信號,每行實際像素數為1 688,故行同步信號頻率為108 MHz/1 688=63.98 kHz,同理,場同步信號頻率為60.02 Hz[7]。如圖4所示為行/場掃描時序,結合圖4和表1,可以利用FPGA資源構建VGA時序。選取108 MHz的晶振作為脈沖計數器時鐘,當像素脈沖計數在小于112脈沖間,Hsync輸出低電平,其他時段輸出高電平。同時,當像素脈沖計數小于3時,Vsync輸出低電平,其他時段輸出高電平,對行場同步為低電平的標準,SYNC設計為Hsync和Vsync相與的結果,BLANK信號可做的比SYNC略寬一些。

  3.2 顯示控制設計

  如圖1所示,設計中采用高速SDRAM實現對圖像數據的高速緩存,從CameraLink接收的圖像數據分別存入兩個緩存,一個用于高速存儲于Flash B陣列中,另一個暫存在SDRAM中,用于實時顯示圖像。CameraLink接收的圖像數據以50 MHz×16 bit的速度存入FIFO1緩存中,當判斷FIFO1緩存數據量大于1 280個字時,FPGA控制SDRAM模塊以100 MHz×16 bit的速度從FIFO中取出數據存入SDRAM。當接收實時顯示圖像命令時,SDRAM以165 MB/s速度更新FIFO2中數據,VGA接口以108 MHz速度循環讀取SDRAM中所存儲的圖像數據,對顯示器的顯示內容進行更新。由于SDRAM寫入1 280個字所需時間為12.8 ?滋s,考慮到SDRAM讀寫操作分時進行,為保證SDRAM在寫數期間FIFO2數據不會被讀空,FIFO2每次讀取1 080字,所需時間20 s,滿足SDRAM讀寫轉換及刷新時間,同時VGA顯示能以108 MHz速度持續從緩存中讀取數據并顯示[8]。

4 測試結果與結論


005.jpg

  試驗結果如圖5所示,采用圖像模擬器發送一幅1 280×1 024灰度圖像的方式對圖像存儲顯示的設計進行驗證,并通過DMA方式讀取存儲在Flash B陣列中的圖像數據至上位機中進行畫圖分析。試驗結果表明,高速圖像存儲卡能實時顯示圖像,且經過回讀數據分析,完整地保存下高速輸入的圖像數據。利用FPGA控制整個系統的工作時序,通過在內部設置多級緩存結構和流水線操作思想,實現了圖像數據在不同時鐘域之間的轉換,完成了高速圖像數據的存儲與實時顯示功能。本設計可實現持續的100 MB/s數據的實時存儲,滿足大多數光電設備中CameraLink數據的實時存儲要求。

參考文獻

  [1] 楊柯,范海震.CameraLink接口的高速電子存儲系統設計[J].艦船電子工程,2012,32(5):110-118.

  [2] 王熙.一個面向航空遙感高速的閃存存儲系統設計[D].合肥:中國科學技術大學,2012.

  [3] 張海龍,馬鐵華,謝銳,等.基于雙閃存的大容量沖擊波超壓測試系統[J].電子技術應用,2013,39(11):85-88.

  [4] 鄭佃好,張紅雨,張洪斌.基于ADV7125的嵌入式系統VGA接口設計[J].單片機與嵌入式系統應用,2011,11(8):37-41.

  [5] 鄧春健,王琦,徐秀知,等.基于FPGA和ADV7123的VGA顯示接口的設計和應用[J].電子器件,2006,29(4):37-41.

  [6] 廖永清,丁旭昌,付建國,等.基于FPGA的VGA圖像動態顯示控制器的設計與實現[J].電視技術,2011,35(17):52-54.

  [7] 王亮,李正,寧婷婷,等.VGA漢字顯示的FPGA設計與實現[J].計算機工程與設計,2009,30(2):275-281.

  [8] 周卓然,徐道連,呂鳳飛,等.基于FPGA的VGA圖像顯示系統的設計與實現[J].儀表技術與傳感器,2012(7):90-92.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
在线免费观看日本欧美| 亚洲欧美一区二区三区久久| 国产精品久久久久久久久果冻传媒 | 久久国产66| 午夜欧美精品| 欧美一区二区三区在| 亚洲影院污污.| 亚洲在线视频一区| 亚洲女性裸体视频| 亚洲欧美三级在线| 午夜精品久久久久久久久久久 | 欧美专区日韩专区| 久久国产精品久久久久久久久久 | 亚洲国产成人高清精品| 在线看欧美视频| 亚洲电影免费观看高清完整版在线观看 | 亚洲一二三区在线| 亚洲欧美日韩成人高清在线一区| 亚洲一区精彩视频| 午夜一级在线看亚洲| 久久国产视频网站| 久久在线免费观看| 欧美不卡高清| 欧美日韩精品一区二区三区四区| 欧美日韩高清区| 国产精品成人一区二区三区夜夜夜| 欧美系列亚洲系列| 国产女主播一区| 好吊成人免视频| 影音先锋久久| 亚洲精品乱码久久久久久按摩观 | 99天天综合性| 亚洲一区二区四区| 欧美专区中文字幕| 久久先锋影音av| 欧美激情综合在线| 国产精品久久二区| 好看的日韩av电影| 亚洲高清一二三区| 夜夜嗨av一区二区三区四区| 亚洲欧美国产另类| 久久精品亚洲精品国产欧美kt∨| 亚洲日韩欧美视频| 亚洲女同同性videoxma| 久久久精品日韩欧美| 欧美韩国日本综合| 国产精品日韩欧美综合 | 狠狠色综合网| 亚洲精品欧美日韩专区| 亚洲午夜精品一区二区三区他趣| 久久国产精品久久国产精品| 亚洲最新在线视频| 久久国产精品亚洲va麻豆| 欧美a级在线| 国产精品裸体一区二区三区| 精品99一区二区| 99国产精品99久久久久久粉嫩| 亚洲欧美日韩人成在线播放| 亚洲精品久久嫩草网站秘色| 亚洲欧美久久久| 免费观看在线综合色| 国产精品黄色在线观看| 黄页网站一区| 亚洲一区自拍| 亚洲精品资源| 久久久国产亚洲精品| 欧美日韩精品在线播放| 国产一区二区三区丝袜| 日韩视频免费| 亚洲成色精品| 午夜精品区一区二区三| 欧美韩日一区| 韩国一区电影| 亚洲无限av看| 日韩视频免费| 久久人人看视频| 国产精品99免费看| 亚洲国产高清高潮精品美女| 亚洲欧美怡红院| 亚洲一区二区伦理| 欧美mv日韩mv国产网站app| 国产精品自在在线| 999亚洲国产精| 亚洲国产小视频| 久久福利视频导航| 国产精品久久久久国产a级| 亚洲电影视频在线| 欧美专区福利在线| 午夜精品久久久久久久99樱桃| 欧美精品自拍| 在线成人av.com| 性欧美大战久久久久久久免费观看| 一区二区日韩欧美| 欧美成人免费全部| 好看的日韩av电影| 性做久久久久久久久| 亚洲一区尤物| 欧美日韩在线播放| 亚洲精品欧美一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了中文| 香蕉成人伊视频在线观看| 欧美视频一区在线| 亚洲精品极品| 日韩午夜在线观看视频| 欧美插天视频在线播放| 好吊色欧美一区二区三区视频| 午夜视频在线观看一区二区三区| 亚洲免费在线观看| 国产精品盗摄久久久| 99视频精品在线| 一区二区三区欧美视频| 欧美精品久久久久久久免费观看| 在线电影欧美日韩一区二区私密| 久久av资源网站| 久久久久久久97| 国产一区二区三区久久悠悠色av| 羞羞色国产精品| 欧美伊人久久| 国产日韩欧美电影在线观看| 亚洲女性裸体视频| 欧美一区二区免费观在线| 国产精品自在线| 性欧美1819sex性高清| 欧美主播一区二区三区美女 久久精品人 | 精品不卡视频| 久久精品国产99精品国产亚洲性色 | 91久久久亚洲精品| 99国产成+人+综合+亚洲欧美| 欧美精品国产| 99在线精品免费视频九九视| 亚洲调教视频在线观看| 欧美性片在线观看| 亚洲免费中文字幕| 久久精品水蜜桃av综合天堂| 好看的亚洲午夜视频在线| 亚洲二区三区四区| 欧美黄色影院| 亚洲三级影院| 亚洲综合欧美日韩| 国产日韩欧美亚洲| 欧美中文字幕视频在线观看| 蜜桃久久av一区| 亚洲精品国产精品国产自| 亚洲婷婷在线| 国产乱人伦精品一区二区 | 9i看片成人免费高清| 国产精品a久久久久| 亚洲综合色婷婷| 久久乐国产精品| 亚洲高清不卡| 亚洲一区二区免费在线| 国产精品视频专区| 久久精品亚洲乱码伦伦中文| 欧美激情一区在线| 亚洲永久免费观看| 美女视频一区免费观看| 日韩视频免费在线观看| 欧美亚洲综合在线| 尤物yw午夜国产精品视频明星| 日韩亚洲欧美在线观看| 国产精品伦一区| 亚洲第一狼人社区| 欧美三级电影精品| 欧美一区二区三区四区视频| 欧美黄色网络| 亚洲综合电影一区二区三区| 另类春色校园亚洲| 一本色道久久综合狠狠躁篇的优点 | 亚洲国产二区| 午夜在线精品| 亚洲国产mv| 欧美一级片久久久久久久| 在线国产精品播放| 午夜精品99久久免费| 在线免费观看欧美| 午夜精品剧场| 亚洲人被黑人高潮完整版| 欧美在线999| 日韩西西人体444www| 久久精品论坛| 亚洲精品一区二区三区不| 久久精品色图| av成人免费在线| 六月婷婷久久| 亚洲尤物在线| 欧美日韩a区| 亚洲国产91色在线| 国产精品视频你懂的| 日韩视频在线一区二区| 国产欧美一区二区色老头| 一区二区三区www| 韩国在线视频一区| 亚洲免费网站| 亚洲精品一级| 免费观看不卡av| 欧美怡红院视频一区二区三区| 欧美先锋影音| 日韩小视频在线观看| 一区二区三区无毛| 久久爱另类一区二区小说|