李超,呂曉龍
哈爾濱工程大學(xué)自動(dòng)化學(xué)院,黑龍江哈爾濱 150001
基于FPGA的高速圖像數(shù)據(jù)存儲(chǔ)系統(tǒng)
李超,呂曉龍
哈爾濱工程大學(xué)自動(dòng)化學(xué)院,黑龍江哈爾濱 150001
為滿足高速全景圖像的實(shí)時(shí)無(wú)損存儲(chǔ)的需求,設(shè)計(jì)了基于現(xiàn)場(chǎng)可編程門陣列(field-programmable gate array,F(xiàn)P-GA)的SATA陣列和TF卡陣列嵌入式存儲(chǔ)系統(tǒng)。用2片F(xiàn)PGA作為控制器,分別負(fù)責(zé)全景圖像的采集處理任務(wù)與存儲(chǔ)傳輸任務(wù),設(shè)計(jì)了8層PCB板級(jí)硬件系統(tǒng)并對(duì)高速數(shù)字信號(hào)線進(jìn)行了細(xì)致的阻抗匹配,并設(shè)計(jì)了支持SD3.0協(xié)議的RTL級(jí)控制器。實(shí)際測(cè)試TF卡陣列存儲(chǔ)平均速度為227.36 MB/s,峰值速度達(dá)293 MB/s,實(shí)現(xiàn)了數(shù)據(jù)的高速存儲(chǔ)功能。
全景視覺;現(xiàn)場(chǎng)可編程門陣列;TF陣列;SD3.0;高速存儲(chǔ);阻抗匹配
隨著圖像傳感器制造技術(shù)的高速發(fā)展,數(shù)碼相機(jī)的分辨率和速度都有大幅提升,因此對(duì)圖像的處理能力和存儲(chǔ)能力都提出了越來(lái)越高的要求。與PC系統(tǒng)相比,嵌入式的圖像采集、處理和存儲(chǔ)系統(tǒng)具有高速的處理和存儲(chǔ)數(shù)據(jù)的能力,實(shí)時(shí)性強(qiáng)并具有大數(shù)據(jù)量、小型化的特點(diǎn)。
全景視覺視野范圍可以達(dá)到180°~360°,廣泛應(yīng)用于監(jiān)控、視覺導(dǎo)航、太空探測(cè)、機(jī)器人等領(lǐng)域。由于全景圖像數(shù)據(jù)量大且速度快,很難實(shí)現(xiàn)圖像采集之后的實(shí)時(shí)無(wú)損存儲(chǔ),本文針對(duì)高速全景圖像采集系統(tǒng),構(gòu)建基于現(xiàn)場(chǎng)可編程門陣列(Field-Pro-grammable Gate Array,F(xiàn)PGA)的專用嵌入式高性能圖像實(shí)時(shí)存儲(chǔ)系統(tǒng),滿足數(shù)據(jù)的高速、大容量、實(shí)時(shí)性的要求。
西安電子科技大學(xué)的NAND Flash存儲(chǔ)陣列容量為800 GB,存儲(chǔ)速度達(dá)到300 MB/s[1]。中科院空間中心以NAND Flash作為存儲(chǔ)介質(zhì),以四級(jí)流水線的方式,最高存儲(chǔ)速率達(dá)500 Mbit/s,存儲(chǔ)容量達(dá)128 Gbit,并可以擴(kuò)展[2]。信億科技的ANS-9012固態(tài)硬盤,采用SDHC卡陣列作為存儲(chǔ)介質(zhì),平均讀取速度為121.4 MB/s。臺(tái)灣友晶公司的DE4開發(fā)平臺(tái),以Altera Stratix IV GX系列的FPGA為主控芯片并配有4路SATA硬盤接口。國(guó)內(nèi)自由電子科技代工設(shè)計(jì)的“高速高清DVR板”采用Xlinx的Virtex5系列的FPGA,設(shè)計(jì)了2路高速CameraLink接口,支持DDR2緩存和12路SATA硬盤[3]。
這些開發(fā)平臺(tái)覆蓋了圖像采集、傳輸和存儲(chǔ)功能,但造價(jià)非常高昂,適用于通用驗(yàn)證平臺(tái),不適合針對(duì)性很強(qiáng)的應(yīng)用。對(duì)于高速全景圖像而言,采集、處理、存儲(chǔ)的數(shù)據(jù)量大,實(shí)現(xiàn)實(shí)時(shí)無(wú)損非易失性存儲(chǔ)的難度很大。
在高速系統(tǒng)設(shè)計(jì)中,一般都遵循面積和速度的平衡互換原則,本文將數(shù)據(jù)流串并轉(zhuǎn)換,把高速的串行數(shù)據(jù)流分流為多路并行處理單元進(jìn)行數(shù)據(jù)存儲(chǔ)。本系統(tǒng)采用2片F(xiàn)PGA分別進(jìn)行圖像的采集處理與存儲(chǔ)傳輸。如圖1所示為系統(tǒng)結(jié)構(gòu)圖,F(xiàn)PGA1選用EP3C80F780,與4片SSRAM和2路CameraLink接口構(gòu)成高速圖像采集處理子系統(tǒng);FPGA2選用帶有高速串行解串器的EP4CGX110DF31[4-5],設(shè)計(jì)了4 路SATA接口和8路高速TF卡接口,分別實(shí)現(xiàn)硬盤陣列和TF卡陣列,實(shí)現(xiàn)圖像的存儲(chǔ)功能,USB3.0接口與VGA接口分別實(shí)現(xiàn)傳輸與顯示功能。
圖1 系統(tǒng)結(jié)構(gòu)圖
2.1 硬件電路設(shè)計(jì)
2.1.1 高速接口的布線及阻抗匹配
本文設(shè)計(jì)了8層PCB板級(jí)硬件系統(tǒng),多層PCB不僅擴(kuò)大了布線空間,而且合理的分層設(shè)計(jì)能夠提高電源的純凈度和信號(hào)的質(zhì)量,不僅能減少外界環(huán)境的干擾,也能減少PCB對(duì)外界的電磁輻射[6]。
SATA和USB3.0差分信號(hào)對(duì)與TF卡數(shù)據(jù)線都是高速數(shù)字信號(hào),對(duì)阻抗匹配和信號(hào)走線都有很高的要求,否則會(huì)產(chǎn)生振鈴、反射等不良現(xiàn)象。SATA差分信號(hào)對(duì)必須滿足單端阻抗60Ω(±15%),差分阻抗100Ω (±15%)的要求,USB3.0信號(hào)線的阻抗要求為單端阻抗60Ω(±15%),差分阻抗90Ω(±15%)。
借助PCB阻抗設(shè)計(jì)軟件Polar SI9000計(jì)算信號(hào)線的參數(shù),當(dāng)線寬為5 mil,線間距為7 mil,層高為6 mil,信號(hào)線厚度為1.4 mil(1 oz)時(shí),單端阻抗為66.4Ω,差分阻抗為107.9Ω,滿足系統(tǒng)要求,其他高速差分信號(hào)線的匹配阻抗值如表1所示。
表1 高速差分信號(hào)線的匹配阻抗值
2.1.2 PCB板級(jí)硬件電路信號(hào)完整性分析
利用HyperLynx軟件對(duì)關(guān)鍵的高速差分信號(hào)與TF卡數(shù)據(jù)信號(hào)線進(jìn)行板級(jí)信號(hào)完整性分析,驗(yàn)證布線合理性,及時(shí)修改不滿足要求的信號(hào)線,如圖2所示為TF卡數(shù)據(jù)線在不同匹配電阻時(shí)的信號(hào)圖,圖2(a)的匹配電阻為30Ω,信號(hào)有較大的超調(diào)和抖動(dòng),把匹配電阻調(diào)為60Ω后,如圖2(b)所示,信號(hào)質(zhì)量有了明顯提升。如圖3所示為存儲(chǔ)系統(tǒng)的硬件板級(jí)系統(tǒng)。
圖2 TF卡數(shù)據(jù)信號(hào)線在不同匹配電阻時(shí)的信號(hào)
圖3 高速圖像數(shù)據(jù)存儲(chǔ)裝置的硬件板級(jí)系統(tǒng)
2.2 SD3.0協(xié)議的RTL級(jí)設(shè)計(jì)
支持SD3.0總線協(xié)議[7]的TF卡速度等級(jí)為UHS-I,最高讀寫速度達(dá)104 MB/s,TF卡有3種工作模式:非激活模式、卡識(shí)別模式和數(shù)據(jù)傳輸模式。圖4為SD控制器的結(jié)構(gòu),控制器由命令傳輸模塊和數(shù)據(jù)傳輸模塊構(gòu)成,命令和數(shù)據(jù)管理分開控制,便于數(shù)據(jù)控制和調(diào)試。數(shù)據(jù)模塊受命令模塊控制,2個(gè)模塊之間進(jìn)行通訊協(xié)作,數(shù)據(jù)模塊根據(jù)命令模塊發(fā)出的命令進(jìn)行數(shù)據(jù)的發(fā)送或接收,這樣結(jié)構(gòu)緊湊,控制方便,而且可以減少FPGA的資源消耗。
圖4 SD控制器結(jié)構(gòu)
卡識(shí)別模式下的工作狀態(tài)轉(zhuǎn)換為:空閑狀態(tài)—準(zhǔn)備狀態(tài)—認(rèn)證狀態(tài)[8-10]。數(shù)據(jù)傳輸模式的工作狀態(tài)為:就緒狀態(tài)—傳輸狀態(tài)—發(fā)送/接收數(shù)據(jù)狀態(tài)??ㄏ冗M(jìn)入就緒狀態(tài),主機(jī)獲取CSD寄存器信息后,發(fā)送CMD7使要操作的卡進(jìn)入傳輸狀態(tài),然后主機(jī)發(fā)送ACMD6設(shè)置傳輸數(shù)據(jù)線的寬度,主機(jī)發(fā)送CMD18,從TF卡讀數(shù)據(jù),發(fā)送CMD25,對(duì)TF卡寫數(shù)據(jù)。寫入數(shù)據(jù)時(shí),采用多塊預(yù)擦除和多塊讀寫操作,在多塊寫操作時(shí),先發(fā)送CMD23設(shè)定要進(jìn)行寫操作的數(shù)據(jù)塊數(shù),然后發(fā)送ACMD23進(jìn)行多塊預(yù)擦除,最后發(fā)送CMD25進(jìn)行多數(shù)據(jù)塊寫操作。用Verilog HDL語(yǔ)言描述SD主機(jī)控制器,并通過(guò)有限狀態(tài)機(jī)(FSM)實(shí)現(xiàn)狀態(tài)跳轉(zhuǎn)[11],如圖5所示為SD主機(jī)的有限狀態(tài)機(jī)。
圖5 SD主機(jī)的有限狀態(tài)機(jī)
本系統(tǒng)使用SanDisk公司的Extreme Pro移動(dòng)存儲(chǔ)卡進(jìn)行測(cè)試,單卡容量為16 GB,速度等級(jí)為UHS-I。采用SignalTap II工具對(duì)FPGA信號(hào)進(jìn)行采樣分析,圖6為采集到的TF卡正確初始化過(guò)程。
圖6 SignalTap II采集到的TF卡初始化過(guò)程
對(duì)系統(tǒng)分別進(jìn)行固定存儲(chǔ)時(shí)間和固定存儲(chǔ)數(shù)據(jù)量的存儲(chǔ)測(cè)試。固定存儲(chǔ)時(shí)間存儲(chǔ),是向TF卡寫入120 s時(shí)長(zhǎng)的數(shù)據(jù),每次讀寫2 048塊數(shù)據(jù),在不同的工作頻率下,測(cè)試TF卡的實(shí)際存儲(chǔ)速度,測(cè)量參數(shù)如表2所示,存儲(chǔ)速度與工作頻率之間的關(guān)系如圖7所示。固定存儲(chǔ)數(shù)據(jù)量存儲(chǔ),是向TF卡寫入1 GB的數(shù)據(jù),工作頻率為25 MHz時(shí),單次寫入不同的數(shù)據(jù)塊數(shù),測(cè)試TF卡的存儲(chǔ)速度,測(cè)量參數(shù)如表3所示,存儲(chǔ)速度與讀寫塊數(shù)之間的關(guān)系如圖8。
表2 固定存儲(chǔ)時(shí)間存儲(chǔ)測(cè)試參數(shù)(每次讀寫2 048塊數(shù)據(jù))
圖7 存儲(chǔ)速度與工作頻率之間的關(guān)系
表3 固定存儲(chǔ)數(shù)據(jù)量存儲(chǔ)測(cè)試參數(shù)(工作頻率為25 MHz)
圖8 存儲(chǔ)速度與讀寫數(shù)據(jù)塊數(shù)之間的關(guān)系
由實(shí)驗(yàn)數(shù)據(jù)得,每次讀寫數(shù)據(jù)塊數(shù)固定時(shí),隨著工作頻率增加,實(shí)際傳輸速度逐漸增大,最大平均速度為28.42 MB/s,但傳輸效率卻逐漸降低,最大傳輸效率為91.43%。工作頻率固定時(shí),每次讀寫數(shù)據(jù)在512塊以上時(shí),傳輸效率穩(wěn)定在84%左右,在512塊以下時(shí),隨著數(shù)據(jù)塊的減少,傳輸效率逐漸降低。工作頻率為80 MHz,單次寫入數(shù)據(jù)塊數(shù)為2 048時(shí),平均存儲(chǔ)速度最大為28.42 MB/s,此時(shí)小塊數(shù)據(jù)的周期為1 066,峰值速度為36.64 MB/s,傳輸效率為91.6%。在實(shí)驗(yàn)中,只用8路TF卡陣列的2路接口進(jìn)行TF卡陣列并行存儲(chǔ)的驗(yàn)證。在SD3.0協(xié)議中,SDR50、SDR104等高速模式需要1.8 V的信號(hào)電壓,而此系統(tǒng)只能提供3.3 V的信號(hào)電壓。在3.3 V的信號(hào)電壓下,協(xié)議中高速模式的最高工作頻率為50 MHz,理論最高存儲(chǔ)速度為25 MB/s。而本系統(tǒng)的工作時(shí)鐘最高為80 MHz,超出額定工作頻率60%,實(shí)際測(cè)試本系統(tǒng)的工作時(shí)鐘最高為80 MHz,單卡平均速度為28.42 MB/s,峰值速度為36.64 MB/s,雙TF卡陣列的平均速度為56.84 MB/s,峰值速度為73.28 MB/s。若把8片TF卡全部加入到系統(tǒng)中,則平均速度為227.36 MB/s,峰值速度為293 MB/s,滿足高速存儲(chǔ)的要求。
針對(duì)高速全景圖像的實(shí)時(shí)無(wú)損存儲(chǔ),本文設(shè)計(jì)了基于FPGA的SATA陣列和TF卡陣列嵌入式存儲(chǔ)系統(tǒng)。通過(guò)設(shè)計(jì)、仿真與實(shí)際測(cè)試結(jié)果表明:
1)此雙FPGA系統(tǒng)方案,實(shí)現(xiàn)了數(shù)據(jù)采集處理與存儲(chǔ)傳輸任務(wù)的分離,效率更高。
2)設(shè)計(jì)的8層PCB板級(jí)硬件系統(tǒng),能夠滿足SATA、USB3.0等高速數(shù)字信號(hào)的傳輸要求。
3)設(shè)計(jì)的RTL級(jí)TF卡控制器支持SD3.0協(xié)議,在3.3 V信號(hào)電壓時(shí),單卡存儲(chǔ)的平均速度為28.42 MB/s,峰值速度達(dá)36.64 MB/s。
4)設(shè)計(jì)的TF卡陣列,實(shí)際測(cè)試平均速度為227.36 MB/s,峰值速度為293 MB/s。
本系統(tǒng)實(shí)現(xiàn)了嵌入式TF卡陣列的高速圖像實(shí)時(shí)無(wú)損存儲(chǔ)功能,可廣泛應(yīng)用于全景視覺、機(jī)器人視覺導(dǎo)航、監(jiān)控等領(lǐng)域,具有很好的實(shí)際應(yīng)用價(jià)值。
[1]方火能.高速大容量存儲(chǔ)陣列控制器的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2012:41-59.
[2]陳斌,沈衛(wèi)華.嫦娥二號(hào)衛(wèi)星大容量存儲(chǔ)器設(shè)計(jì)[J].航天器工程,2011(5):99-104.
[3]孫長(zhǎng)勝.高速攝影系統(tǒng)中海量數(shù)據(jù)存儲(chǔ)器研究[D].成都:電子科技大學(xué),2011:1-6.
[4]吳繼華,蔡海寧.Altera FPGA/CPLD設(shè)計(jì):2版[M].北京:人民郵電出版社,2011:46-100.
[5]Altera Corporation.Cyclone IV Device Handbook[EB/OL].[2012-12-01].www.altera.com.cn.
[6]王劍宇,蘇穎.高速電路設(shè)計(jì)實(shí)踐[M].北京:電子工業(yè)出版社,2010:1-280.
[7]SD Group.SD Specifications Part 1 Physical Layer Simpli-fied Specification Version 3.01[S].2010.
[8]李顯龍.基于SD總線的FPGA加解密算法實(shí)現(xiàn)[D].廣州:華南理工大學(xué),2012:6-14.
[9]王清,劉新寧.SD卡硬件啟動(dòng)和數(shù)據(jù)存儲(chǔ)的控制邏輯的設(shè)計(jì)實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2008(31):990-991.
[10]唐磊,洪傳榮.基于FPGA的SD卡控制器設(shè)計(jì)[J].電聲技術(shù),2011(3):29-31.
[11]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程:2版[M].北京:北京航空航天大學(xué)出版社,2010:20-300.
High-speed image data storage system based on FPGA
LIChao,LYU Xiaolong
College of Automation,Harbin Engineering University,Harbin 150001,China
In order to satisfy the need for the real-time and loss-less storage of a high-speed panoramic image,an embedded image data storage system based on FPGA with SATA array as well as TF card array is designed.The controller consists of two pieces of FPGAs,which and they are in charge of collecting/processing and storing/trans-fermissions of the panoramic image respectively.Further,a hardware system with a PCB board of eight layers is devised,and an impedancematch is performed for the high-speed digital signal lines.Then,an RTL-level control-ler that supportes SD3.0 protocol is projected.Finally,the actual test shows that the average speed of TF cards ar-ray is 227.36 MB/s and the peak speed is up to 293 MB/s,thus a high-speed storage capacity of the data is a-chieved by the developed system.
panoramic vision;field-programmable gate array(FPGA);TF array;SD3.0;high-speed storage;im-pedancematching
TN911
A
1009-671X(2015)02-44-04
10.3969/j.issn.1009-671X.201503016
2015-03-19.
日期:2015-04-08.
國(guó)家自然科學(xué)基金資助項(xiàng)目(61175089,61203255).
.李超(1991-),男,碩士研究生;
呂曉龍(1977-),男,講師.
呂曉龍,E-mail:35122911@qq.com.
http://www.cnki.net/kcms/detail/23.1191.U.20150408.1448.001.html