一種用于飛行器下高速數(shù)據(jù)采集存儲(chǔ)系統(tǒng)設(shè)計(jì)
0 引言
隨著遙感技術(shù)的發(fā)展,遙感圖像的分辨率也越來越高。飛行器上搭載的遙感成像設(shè)備也從過去的低分辨率向現(xiàn)在的高分辨率在轉(zhuǎn)變。遙感成像設(shè)備分辨率提高的同時(shí),也對(duì)飛行器的數(shù)據(jù)下傳鏈路提出了更高的帶寬要求。而相應(yīng)的地面數(shù)據(jù)接受設(shè)備,也需要具備對(duì)高速實(shí)時(shí)數(shù)據(jù)的存儲(chǔ)和處理能力。同樣在測試設(shè)備方面,為了對(duì)大容量存儲(chǔ)設(shè)備進(jìn)行高速數(shù)據(jù)的傳輸測試,相應(yīng)的地面檢測設(shè)備也應(yīng)該具備高速數(shù)據(jù)的輸出功能。因此,急需開發(fā)出具備高速實(shí)時(shí)數(shù)據(jù)接收和高速數(shù)據(jù)輸出功能的高速數(shù)據(jù)采集存儲(chǔ)系統(tǒng)。
從目前此類系統(tǒng)的技術(shù)指標(biāo)來看,往往只能達(dá)到100Mbps到150Mbps的數(shù)據(jù)接收和數(shù)據(jù)輸出功能。而根據(jù)目前的應(yīng)用需求來看,高速數(shù)據(jù)流的數(shù)據(jù)傳輸速率往往在200Mbps以上甚至達(dá)到300Mbps。對(duì)于這種高速數(shù)據(jù)流,目前的系統(tǒng)就難以連續(xù)無錯(cuò)的進(jìn)行存儲(chǔ)和處理,往往會(huì)因?yàn)閿?shù)據(jù)傳輸速率超過系統(tǒng)能處理的極限,導(dǎo)致出現(xiàn)丟失數(shù)據(jù)或者系統(tǒng)功能不正常,狀態(tài)不穩(wěn)定等問題。
本文中介紹的高速數(shù)據(jù)采集存儲(chǔ)系統(tǒng)的設(shè)計(jì)目標(biāo)就是對(duì)傳輸速率最高為300Mbps的數(shù)據(jù)流進(jìn)行無錯(cuò)接收存儲(chǔ),并能實(shí)現(xiàn)最高為300Mbps的高速數(shù)據(jù)流輸出,以便于對(duì)大容量存儲(chǔ)設(shè)備進(jìn)行檢測。
1 系統(tǒng)總體介紹
高速數(shù)據(jù)采集存儲(chǔ)系統(tǒng)是在32位的計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)的,數(shù)據(jù)傳輸也是利用32位,33MHz的PCI總線來完成。數(shù)據(jù)存儲(chǔ)是利用兩塊SATA接口的硬盤組成的RAID0磁盤陣列來實(shí)現(xiàn)的。整個(gè)系統(tǒng)的核心是數(shù)據(jù)傳輸接口卡,它完成外部數(shù)據(jù)到計(jì)算機(jī)內(nèi)存的傳輸。然后運(yùn)行的驅(qū)動(dòng)程序再將內(nèi)存中的數(shù)據(jù)存儲(chǔ)到硬盤上。因此,整個(gè)系統(tǒng)的設(shè)計(jì)也就分為數(shù)據(jù)傳輸接口卡的設(shè)計(jì)和驅(qū)動(dòng)及應(yīng)用程序設(shè)計(jì)兩大部分。
2 數(shù)據(jù)傳輸接口卡設(shè)計(jì)
數(shù)據(jù)傳輸接口卡從功能上分為PCI總線接口,存儲(chǔ)緩沖區(qū),中斷模塊,傳輸控制模塊,緩沖區(qū)控制以及DMA控制六個(gè)模塊,如圖2-1中所示。當(dāng)工作于數(shù)據(jù)輸入時(shí),傳輸控制模塊根據(jù)緩沖區(qū)情況啟動(dòng)傳輸,傳輸過程中緩沖區(qū)控制模塊將數(shù)據(jù)讀出送到PCI總線上,DMA控制模塊控制著PCI總線上數(shù)據(jù)傳輸?shù)倪M(jìn)行。傳輸結(jié)束以后,中斷模塊發(fā)出中斷信號(hào)提示驅(qū)動(dòng)程序?qū)鬏數(shù)絻?nèi)存中的數(shù)據(jù)進(jìn)行處理。下面主要介紹PCI總線接口模塊,DMA控制模塊,存儲(chǔ)緩沖區(qū)模塊以及傳輸控制模塊幾個(gè)核心模塊的設(shè)計(jì)。
2.1 PCI總線接口模塊的設(shè)計(jì)
PCI總線接口模塊完成的工作主要是PCI總線命令的解碼,地址以及數(shù)據(jù)的鎖存。實(shí)現(xiàn)PCI接口常用的方法是采用現(xiàn)成的PCI總線接口協(xié)議芯片(PLX905X系列等),如文獻(xiàn)[2]中數(shù)據(jù)采集板的設(shè)計(jì)就是采用的這種方法。但是由于這些協(xié)議芯片往往不是針對(duì)空間應(yīng)用而專門開發(fā)的,從可靠性方面考慮,不能采用這種設(shè)計(jì)方案。在本方案中,整個(gè)接口的設(shè)計(jì)是在使用Xilinx公司提供的LogiCORE PCI v3.0的IP核(IP Core)的基礎(chǔ)上實(shí)現(xiàn)的。LogiCORE PCI v3.0是Xilinx公司提供的用于PCI總線接口設(shè)計(jì)的IP 核,在它的基礎(chǔ)上可以根據(jù)實(shí)際應(yīng)用的需要很方便的定制和實(shí)現(xiàn)PCI總線接口。由于IP 核本身實(shí)現(xiàn)了配置空間以及總線命令的解碼和地址的鎖存,所以設(shè)計(jì)者只需要專注于PCI傳輸狀態(tài)機(jī)和本地控制信號(hào)的設(shè)計(jì)。采用這種實(shí)現(xiàn)方式雖然比直接使用PCI接口專用芯片更為復(fù)雜,但是整個(gè)設(shè)計(jì)可以集成于一片高可靠性的FPGA之中,從而有效的提高了整個(gè)設(shè)計(jì)的可靠性。
2.2 DMA控制模塊的設(shè)計(jì)
為了滿足高速率數(shù)據(jù)傳輸?shù)男枰?,并且在?shù)據(jù)傳輸?shù)耐瑫r(shí)不占用CPU,所以必須采用DMA的方式來傳輸數(shù)據(jù)。由于PCI總線上的DMA傳輸是通過PCI設(shè)備本身的DMA控制功能來完成的,而不是依靠總線上單獨(dú)的DMA控制設(shè)備來實(shí)現(xiàn),所以在設(shè)計(jì)時(shí)必須實(shí)現(xiàn)DMA控制模塊。DMA控制模塊在數(shù)據(jù)傳輸周期發(fā)出控制命令以及更新地址。其中傳輸?shù)刂房刂瓶梢砸蕾囈唤M傳輸?shù)刂芳拇嫫鱽韺?shí)現(xiàn),而傳輸?shù)目刂瓶梢酝ㄟ^PCI傳輸狀態(tài)機(jī)給出的信號(hào)來產(chǎn)生控制信號(hào)。
2.3 存儲(chǔ)緩沖區(qū)模塊的設(shè)計(jì)
為了保證數(shù)據(jù)的連續(xù)不間斷傳輸,每次傳輸只傳輸半個(gè)緩沖區(qū)的數(shù)據(jù),而外部數(shù)據(jù)總是在兩個(gè)半?yún)^(qū)之間切換儲(chǔ)存,因此不會(huì)造成數(shù)據(jù)的丟失和不連續(xù)。
評(píng)論