(1.海軍駐鄭州地區(qū)軍事代表室 鄭州 450047)(2.中國(guó)電子科技集團(tuán)公司第二十七研究所 鄭州 450047)
隨著圖像傳感器制造工藝的不斷提高,數(shù)字?jǐn)z相機(jī)的分辨率和幀頻也不斷提高、這使得數(shù)字?jǐn)z相機(jī)輸出的數(shù)據(jù)率也隨之提高,數(shù)字?jǐn)z相機(jī)和圖像采集設(shè)備之間的通信速率變得非常重要。
在某項(xiàng)目中,前端數(shù)字相機(jī)分辨率為1024×1024 像素,幀頻高達(dá)120幀/秒,8/10/12 位Base CameraLink 輸出,要求將數(shù)字相機(jī)的圖像采集下來并進(jìn)行存儲(chǔ),并具備網(wǎng)絡(luò)讀取數(shù)據(jù)的接口。由此,可以計(jì)算出如果攝相機(jī)輸出為12位的話,其數(shù)據(jù)將達(dá)到1.44Gbps,對(duì)存儲(chǔ)設(shè)備的數(shù)據(jù)通信速率、存儲(chǔ)容量和管理都提出了較高的要求;針對(duì)上述要求,筆者設(shè)計(jì)了基于Nand Flash電子存儲(chǔ)芯片的大容量電子存儲(chǔ)系統(tǒng),該存儲(chǔ)系統(tǒng)存儲(chǔ)容量達(dá)到3.84TB,具有與數(shù)字?jǐn)z像機(jī)相連的Base CameraLink通訊接口,同時(shí),具有攝像機(jī)視頻數(shù)據(jù)的管理功能,并具有網(wǎng)絡(luò)接口,以FTP 服務(wù)器的方式,提供視頻數(shù)據(jù)文件的下載。
如圖1所示,高速電子存儲(chǔ)系統(tǒng)由Base CameraLink高速接口、控制單元、存儲(chǔ)陣列單元組成。
高速電子存儲(chǔ)系統(tǒng)的Base CameraLink高速接口提供與數(shù)字?jǐn)z像機(jī)的高速數(shù)據(jù)通道,同時(shí)完成高速數(shù)據(jù)的降速分配;讀?。刂茊卧歉咚匐娮哟鎯?chǔ)系統(tǒng)的管理核心,完成存儲(chǔ)數(shù)據(jù)的讀?。铣?、存儲(chǔ)陣列控制以及FTP 網(wǎng)絡(luò)服務(wù)功能;存儲(chǔ)陣列單元是由10塊存儲(chǔ)板組成,單個(gè)存儲(chǔ)板設(shè)計(jì)容量為384GB,高速電子存儲(chǔ)系統(tǒng)總存儲(chǔ)容量達(dá)到10×384GB =3.84TB的大小。
圖1 高速電子存儲(chǔ)系統(tǒng)的組成
CameraLink協(xié)議是一個(gè)工業(yè)高速串口數(shù)據(jù)和連接協(xié)議,它是各公司達(dá)成的一種協(xié)議,由美國(guó)自動(dòng)化工業(yè)協(xié)會(huì)AIA 制定、修改和發(fā)布,其目的是簡(jiǎn)化圖像采集接口,方便高速圖像傳感器和采集系統(tǒng)的鏈接。
CameraLink接口有三種配置方式,即基本(Base)配置、中檔(Medium)配置、全速(Full)配置;主要是解決數(shù)據(jù)傳輸量的問題,這為不同速度的相機(jī)提供了合適的配置和連接方式;其中,基本(Base)配置的有效數(shù)據(jù)帶寬(時(shí)鐘75MHz時(shí)),可達(dá)1.8Gbps,完全可以滿足系統(tǒng)使用數(shù)字?jǐn)z相機(jī)最大1.44Gbps數(shù)據(jù)量的需要,由此,高速電子存儲(chǔ)系統(tǒng)與攝相機(jī)連接的數(shù)據(jù)接口采用Base CameraLink的形式。
CameraLink接口是基于LVDS(Low Voltage Differential Signaling,低電壓差分信號(hào))標(biāo)準(zhǔn),在設(shè)計(jì)高速接口時(shí),需要進(jìn)行LVDS 電平和LVTTL 電平信號(hào)的轉(zhuǎn)換。系統(tǒng)中,電平信號(hào)的轉(zhuǎn)換采用 NI 公司的DS90CR288A、DS90LV031A 和DS90LV019來實(shí)現(xiàn);其中,DS90CR288A芯片完成視頻信號(hào)的轉(zhuǎn)換,該芯片接收4 對(duì)差分信號(hào)和1對(duì)差分時(shí)鐘信號(hào),轉(zhuǎn)換后輸出28位數(shù)據(jù)和1路時(shí)鐘信號(hào),直接輸出到FPGA 中;DS90LV031A芯片完成FPGA 輸出到攝相機(jī)的CC1~CC4 共4 組控制信號(hào)的電平轉(zhuǎn)換;DS90LV019芯片完成攝像機(jī)的異步串行通訊接口的電平轉(zhuǎn)換。
高速電子存儲(chǔ)陣列中Base CameraLink 高速接口的FPGA 芯片完成控制采集時(shí)序、數(shù)據(jù)1∶10減速/分配的功能,把1.44Gbps的高速數(shù)據(jù)按照?qǐng)D像幀順序依次進(jìn)行抽取,平均分為10組后,分別寫入到10片雙口RAM 中,由存儲(chǔ)單元的0~9號(hào)存儲(chǔ)板讀取后進(jìn)行存儲(chǔ)。系統(tǒng)中,F(xiàn)PGA芯片的選取綜合考慮了速度、I/O 管腳數(shù)量、片內(nèi)數(shù)據(jù)存儲(chǔ)容量等綜合因素,采用了ALTERA 公司的CycloneⅡ系列芯片EP2C35;該芯片擁有35000個(gè)邏輯單元、672個(gè)引腳、475個(gè)用戶自定義I/O 接口、35個(gè)嵌入式乘法器和4個(gè)鎖相環(huán),是一款集成度極高和功能強(qiáng)大的FPGA 芯片[2]。高達(dá)1.44Gbps的高速數(shù)據(jù)經(jīng)FPGA 減速/分組后,速率變?yōu)?44Mbps,通過FPGA 寫入到對(duì)應(yīng)的雙口RAM 中;雙口RAM 是實(shí)現(xiàn)在系統(tǒng)間交換數(shù)據(jù)的一種簡(jiǎn)便有效的方法,并且可以避免在大數(shù)據(jù)量下可能造成數(shù)據(jù)處理時(shí)間延長(zhǎng)、實(shí)時(shí)性差、甚至出現(xiàn)數(shù)據(jù)擁塞的現(xiàn)象;雙口RAM 選用IDT 公司的64K×16b雙口芯片IDT70V28,在這里,選用較大容量的雙口RAM 芯片,可以有效簡(jiǎn)化FPGA 和存儲(chǔ)單元DSP芯片之間的寫入/讀取時(shí)序的設(shè)計(jì)復(fù)雜度。高速電子存儲(chǔ)陣列的Base CameraLink 高速接口的設(shè)計(jì)原理如圖2所示。
圖2 高速接口設(shè)計(jì)原理圖
高速電子存儲(chǔ)系統(tǒng)的存儲(chǔ)陣列單元的設(shè)計(jì)思路是以Nand Flash芯片作為存儲(chǔ)介質(zhì),通過高性能DSP和大規(guī)模FPGA 完成Nand Flash芯片的讀寫時(shí)序的控制,從而構(gòu)成單個(gè)的存儲(chǔ)板,再由10塊相同的存儲(chǔ)板共同組成存儲(chǔ)陣列單元。單塊存儲(chǔ)板的結(jié)構(gòu)框圖如圖3所示。
圖3 存儲(chǔ)板結(jié)構(gòu)框圖
存儲(chǔ)陣列單元的Nand Flash芯片是其核心,每塊存儲(chǔ)板上共有96片Nand Flash存儲(chǔ)芯片分組互聯(lián)而成構(gòu)成,Nand Flash 芯 片 采 用Samsung 公 司 的K9WBG08UIM 芯片,容量為4GB,數(shù)據(jù)寬度為8位,每頁(yè)大小為4KB,可以實(shí)現(xiàn)單塊存儲(chǔ)板384GB的存儲(chǔ)容量[3]。
圖4 K9WBG08UIM 芯片頁(yè)寫入時(shí)序
單塊存儲(chǔ)板上的96片Nand Flash芯片每4片分為一組,共分為24 組,同組的4 片芯片并聯(lián)成32 為的數(shù)據(jù)寬度,這樣做一是可以有效提高Nand Flash 芯片寫入的帶寬,解決Nand Flash芯片寫入/讀取速度較慢的問題,二是可以與DSP控制芯片的32 位數(shù)據(jù)寬度相匹配,提高數(shù)據(jù)的讀寫效率。
由圖4可以看出,Nand Flash芯片的tWC最小為25ns,tADL最小為75ns,tWB為100ns,tPROG典型時(shí)間為200μs,芯片寫入按照頁(yè)進(jìn)行操作,典型的持續(xù)寫入速率為5MB/s,4片并行寫入的速率為20MB/s(160Mbit/s),滿足144Mbps數(shù)據(jù)源的速率要求。
存儲(chǔ)板上的Nand Flash芯片的訪問控制接口采用了兩片ALTERA 公司的CycloneⅡ系列芯片EP2C35 來實(shí)現(xiàn),Nand Flash芯片采用4個(gè)一組,共用一套EP2C35的I/O 引腳驅(qū)動(dòng),以保證足夠的驅(qū)動(dòng)能力,避免因I/O 引腳上負(fù)載過大而造成無法工作;在必要時(shí),兩片F(xiàn)PGA 芯片還可以采用乒乓結(jié)構(gòu)操作,同時(shí)進(jìn)行數(shù)據(jù)的寫入,把存儲(chǔ)板設(shè)計(jì)的寫入帶寬提高一倍,使整個(gè)存儲(chǔ)系統(tǒng)的數(shù)據(jù)寫入帶寬達(dá)到3.2Gbps。
存儲(chǔ)板的數(shù)據(jù)收發(fā)通過DSP 來實(shí)現(xiàn),這里選用的是ADI公司的ADSP-BF533處理器芯片,ADSP-BF533是較為常用的一款嵌入式多媒體處理器,擁有運(yùn)算速度高達(dá)600MHz的DSP內(nèi)核,采用ADI與Intel共同開發(fā)的MSA體系結(jié)構(gòu)兩個(gè)16位乘法器和兩個(gè)40位ALU,專門的視頻處理硬件單元和視頻處理指令,豐富的DMA 通道,內(nèi)嵌大容量高速SDRAM,支持動(dòng)態(tài)電源管理[4]。
存儲(chǔ)板在執(zhí)行存儲(chǔ)操作時(shí),BF533 將從雙口RAM 中的數(shù)據(jù)讀取出來,并將數(shù)據(jù)緩存到SDRAM 中,再通過FPGA 按照Nand Flash芯片的寫入時(shí)序,完成存儲(chǔ)數(shù)據(jù)的寫入存儲(chǔ)。在執(zhí)行讀取操作時(shí),BF533則通過FPGA 向Nand Flash芯片發(fā)送讀操作指令,以讀取指定區(qū)域的數(shù)據(jù)并緩存到SDRAM 存儲(chǔ)器中,然后通過輸入/輸出總線(PPI)發(fā)送到存儲(chǔ)/讀取控制單元。
高速電子存儲(chǔ)系統(tǒng)的存儲(chǔ)陣列的讀取/控制單元完成陣列內(nèi)存儲(chǔ)數(shù)據(jù)的讀?。铣?、存儲(chǔ)陣列內(nèi)數(shù)據(jù)的文件管理功能以及FTP網(wǎng)絡(luò)服務(wù)功能。設(shè)計(jì)時(shí)考慮到芯片選用的系列性,讀?。刂茊卧捎肁DSP-BF537處理器為單元的核心,基于Blackfin處理器的BF537處理器具有接口豐富(集成有100MB網(wǎng)絡(luò)接口),性能優(yōu)良等特點(diǎn),并具有強(qiáng)大的多媒體數(shù)據(jù)處理能力[5]。ADI公司DSP 處理器的集成開發(fā)環(huán)境Visual DSP++中嵌入了實(shí)時(shí)操作系統(tǒng)內(nèi)核VDK,適合于多任務(wù)多線程的嵌入式操作;此外,還提供了一個(gè)用于Blackfin系列嵌入式處理器的LwIP協(xié)議棧端口,利用它可以快速建立一個(gè)嵌入式網(wǎng)絡(luò)連接應(yīng)用。
圖5給出了BF537通過網(wǎng)絡(luò)芯片LAN8187實(shí)現(xiàn)網(wǎng)絡(luò)通信和利用處理器自身的PPI接口和串行通信接口實(shí)現(xiàn)與存儲(chǔ)板之間的通信和管理。
圖5 BF537與存儲(chǔ)板的通信接口圖
ADI公司的Blackfin系列DSP處理之間的通信,最簡(jiǎn)單的方式是采用DSP芯片自帶的PPI接口完成;PPI接口的全稱為 并行外圍接 口(Parallel peripheral Inter-face),是數(shù)據(jù)高速傳輸專用的半雙工雙向通道,該接口包括16位的數(shù)據(jù)傳輸線、3個(gè)同步信號(hào)和一個(gè)時(shí)鐘信號(hào);速度可以達(dá)到66MB/s。
通過PPI接口,高速電子存儲(chǔ)系統(tǒng)實(shí)現(xiàn)了讀?。刂茊卧獙?duì)存儲(chǔ)板存儲(chǔ)數(shù)據(jù)的讀取,這里設(shè)計(jì)中需要面對(duì)的難點(diǎn)是需要實(shí)現(xiàn)讀?。刂茊卧?片BF537處理器與存儲(chǔ)板的10片BF533的PPI通信,設(shè)計(jì)中采用分時(shí)復(fù)用的方法,訪問控制接口由1 片ALTERA 公司的CycloneⅡ系列芯片EP2C35來實(shí)現(xiàn),為了保證分時(shí)復(fù)用時(shí)的數(shù)據(jù)傳輸?shù)姆€(wěn)定性,PPI通訊接口設(shè)置成單工模式,其時(shí)鐘信號(hào)和同步信號(hào)由BF537來統(tǒng)一設(shè)定。讀取控制信息通過SPORTs串口通信口來實(shí)現(xiàn),同樣是通過EP2C35 完成BF537 的SPORTs串口分時(shí)復(fù)用控制。BF537芯片內(nèi)部集成了一個(gè)以太網(wǎng)的MAC 接口,通過外部擴(kuò)展以太網(wǎng)物理層接口LAN8187后,可以實(shí)現(xiàn)高速電子存儲(chǔ)系統(tǒng)的100/10Mb網(wǎng)絡(luò)接口。
高速電子存儲(chǔ)系統(tǒng)的存儲(chǔ)深度達(dá)3.84TB,而前端攝像機(jī)的圖像數(shù)據(jù)是以數(shù)據(jù)形式存儲(chǔ)的,因此,構(gòu)建一個(gè)適合管理Nand Flash存儲(chǔ)器的文件系統(tǒng)。由于Nand Flash存儲(chǔ)器的擦除次數(shù)是有限的(一般是1百萬次),如采用普通的FAT 文件系統(tǒng),則會(huì)出現(xiàn)存儲(chǔ)FAT 系統(tǒng)FAT 表和FRT表的區(qū)域過度擦寫而引起失效導(dǎo)致文件系統(tǒng)崩潰的情況;由此,需要通過改進(jìn)FAT 表和FRT 表的存儲(chǔ)方式,延長(zhǎng)存儲(chǔ)器的使用壽命,提高系統(tǒng)存儲(chǔ)的穩(wěn)定性。
改進(jìn)設(shè)計(jì)的FAT 文件系統(tǒng)把FAT 表和FRT 表作為可移動(dòng)的數(shù)據(jù)放在某一個(gè)區(qū)塊內(nèi),在Flash的系統(tǒng)信息區(qū)中記錄著FAT 表的首地址,并用指針指向它。每次FAT表存儲(chǔ)的位置發(fā)生變化時(shí),只需將新位置的首地址添加到系統(tǒng)信息區(qū)的空白區(qū)域中,再調(diào)整指針的指向。這樣避免了FAT 表和FRT 表始終在一個(gè)區(qū)塊中反復(fù)擦寫,導(dǎo)致該區(qū)塊被過度使用,縮短存儲(chǔ)器的壽命。
高速電子存儲(chǔ)系統(tǒng)改進(jìn)的FAT 文件系統(tǒng)包括文件創(chuàng)建、打開等操作函數(shù),用于滿足基本的文件管理操作,可以完成如刪除、拷貝、剪切、下載、陣列格式化等管理功能,這些操作功能可以通過網(wǎng)絡(luò)接口實(shí)現(xiàn)。
高速電子存儲(chǔ)系統(tǒng)可以作為一個(gè)FTP的服務(wù)器,把所存儲(chǔ)的攝像機(jī)視頻數(shù)據(jù)以文件的形式提供給需要的用戶下載使用。FTP(File Transfer Protocol)作為internet上最早提供的服務(wù)之一,至今仍然被廣泛使用,F(xiàn)TP是實(shí)現(xiàn)文件傳輸服務(wù)的最主要的規(guī)范。
FTP協(xié)議則采用兩個(gè)TCP連接來實(shí)現(xiàn)文件的傳輸,這兩個(gè)TCP連接一個(gè)用來完成文件傳輸?shù)目刂泼畹膫鬏?,另外一個(gè)用來實(shí)現(xiàn)文件的傳輸;然而,有些嵌入式系統(tǒng)的開發(fā)環(huán)境并不支持FTP協(xié)議(如本文所使用的ADSP的集成開發(fā)環(huán)境Visual DSP++),在此情況下,只能按照FTP協(xié)議的約定,利用已有的LwIP 堆棧中的一些基礎(chǔ)函數(shù)來構(gòu)建一個(gè)適用于BF537嵌入式處理器的FTP服務(wù)器。
設(shè)計(jì)FTP服務(wù)器時(shí),可以根據(jù)不同的需求,選擇不同的FTP服務(wù)器模式。因?yàn)镕TP服務(wù)器模式?jīng)Q定著設(shè)計(jì)結(jié)構(gòu),而不同的設(shè)計(jì)結(jié)構(gòu)又很大程度地影響著FTP服務(wù)器的性能。FTP服務(wù)器的模式主要有循環(huán)服務(wù)器和并發(fā)服務(wù)器。
循環(huán)服務(wù)器只適應(yīng)于最簡(jiǎn)單的應(yīng)用協(xié)議,采用客戶輪流等待的工作方式;高速電子存儲(chǔ)系統(tǒng)考慮到嵌入式處理器硬件芯片本身的特點(diǎn),即在文件下載時(shí),BF537與存儲(chǔ)板的通信只能通過同一套PPI總線進(jìn)行數(shù)據(jù)傳輸,因此,設(shè)計(jì)的FTP服務(wù)器的方式是一次只接受一個(gè)用戶的下載請(qǐng)求;采用循環(huán)服務(wù)器模式。
CameraLink接口的高速電子存儲(chǔ)系統(tǒng)的設(shè)計(jì),成功解決了普通存儲(chǔ)陣列使用時(shí)攝像機(jī)接口的設(shè)計(jì)問題,具有高速、體積小、重量輕、抗沖擊、振動(dòng)性能好的特點(diǎn),可以實(shí)現(xiàn)較為惡劣環(huán)境下的應(yīng)用,如果能提高數(shù)據(jù)管理和網(wǎng)絡(luò)通訊能力,將具有良好的使用前景。
[1]陳鋒.Blackfin系列DSP原理與系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2004.
[2]Cyclone Device Handbook[EB].Altera Corporation,2003Cyclone系列芯片手冊(cè)[EB].Altera公司,2003.
[3]K9XXG08XXM Flash Memory[EB].SUMSUNG ELECTRONICS,2007.3K9XXG08XXM 系列Flash存儲(chǔ)器[EB].三星電子,2003.
[4]ADSP-BF533Blakfin Processor Hardware Reference[EB].Analog Devices.Inc 2006.7ADSP-BF533Blakfin處理器硬件參考手冊(cè)[EB].ADI公司,2006,7.
[5]ADSP-BF537Blakfin Processor Hardware Reference[EB].Analog Devices.Inc 2005.1(ADSP-BF537Blakfin 處理器硬件參考手冊(cè)[EB].ADI公司,2005,1.
[6]李寧,汪駿發(fā).基于Camera Link的高速數(shù)據(jù)采集系統(tǒng)[J].紅外,2005,26(7):31-37.
[7]任泰明.TCP/IP協(xié)議與網(wǎng)絡(luò)編程[M].西安:西安電子科技大學(xué)出版社,2004.
[8]沈鴿,王美嬌,嵇曉強(qiáng).基于CameraLink的視頻圖像采集與傳輸系統(tǒng)[J].微計(jì)算機(jī)信息,2011(8):108-109.
[9]陳偉,宋燕星.基于LVDS技術(shù)的高速數(shù)字圖像傳輸系統(tǒng)[J].電子測(cè)量技術(shù),2008(11):172-174.
[10]黃曉敏.LVDS驅(qū)動(dòng)器電路設(shè)計(jì)及硬件實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2004.
[11]楊夷梅,楊玉軍.一種基于LDC混沌理論與RSA 的圖像傳輸算法[J].計(jì)算機(jī)與數(shù)字工程,2009,37(2).
[12]王麗華,何利娟,田文英.淺析FTP工作原理及應(yīng)用技術(shù)[J].石家莊職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007(8):28-29.