一種專用高速數(shù)據(jù)記錄器的設(shè)計(jì)和實(shí)現(xiàn)
在持續(xù)數(shù)據(jù)采集存儲(chǔ)系統(tǒng)中,數(shù)據(jù)存儲(chǔ)是一項(xiàng)關(guān)鍵技術(shù)。常規(guī)的數(shù)據(jù)記錄器多采用總線型設(shè)計(jì)思路。過去的做法是通過內(nèi)存將采集和存儲(chǔ)聯(lián)系起來。外部采集到的數(shù)據(jù)經(jīng)由PCI總線送入系統(tǒng)內(nèi)存,然后再由主機(jī)把數(shù)據(jù)寫入磁介質(zhì)存儲(chǔ)器。由于數(shù)據(jù)兩次經(jīng)由PCI總線進(jìn)出內(nèi)存,總線效率降低一半,速度也降低很多。
隨著對(duì)PCI總線和SCSI總線接口協(xié)議以及計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的了解愈加深入,現(xiàn)在多采用映射內(nèi)存及總線主控技術(shù),使SCSI適配器對(duì)PCI采集設(shè)備直接進(jìn)行訪問。由于避開了系統(tǒng)內(nèi)存這一環(huán)節(jié),速度得到了很大的提高。
一種常規(guī)的做法是在微機(jī)系統(tǒng)加一塊PCI-SCSI接口卡,使數(shù)據(jù)通過高速PCI接口,由SCSI總線處理器將高速數(shù)據(jù)寫入SCSI硬盤。其缺點(diǎn)在于數(shù)據(jù)速度受到PCI帶寬的限制,而且由于對(duì)微機(jī)系統(tǒng)的依賴,系統(tǒng)難以實(shí)現(xiàn)模塊化設(shè)計(jì)。
本文提出了一種專用的高速數(shù)據(jù)記錄系統(tǒng)設(shè)計(jì)。設(shè)計(jì)脫離了微機(jī)系統(tǒng),由DSP控制將高速數(shù)據(jù)實(shí)時(shí)持續(xù)的寫入SCSI硬盤,在存儲(chǔ)容量和傳輸速度等方面都具有很大的優(yōu)勢(shì)。此外,設(shè)備還支持?jǐn)?shù)據(jù)的高速回寫。
1. SCSI總線和硬盤
SCSI是英文Small Computer System Interface的縮寫,譯為小型計(jì)算機(jī)系統(tǒng)接口。SCSI是美國ANSI9.2委員會(huì)定義的計(jì)算機(jī)和外設(shè)之間的接口標(biāo)準(zhǔn)。本系統(tǒng)采用SCSI硬盤,因?yàn)镾CSI接口本身具有很多優(yōu)點(diǎn):(1)SCSI提供了一個(gè)高速傳輸通道,目前Ultra320 SCSI總線數(shù)據(jù)傳輸速度可以達(dá)到320MB/s,雖然在實(shí)際應(yīng)用中達(dá)不到這個(gè)理論值,但百兆比特的數(shù)據(jù)傳輸速度完全可以達(dá)到;(2)由于有專門的SCSI協(xié)議控制器和內(nèi)嵌的處理器處理SCSI信號(hào)和數(shù)據(jù)傳輸,因此SCSI設(shè)備對(duì)CPU占用率低。此外還支持多任務(wù)工作模式;(3)SCSI總線占用系統(tǒng)資源少,還可以同時(shí)串接多臺(tái)不同設(shè)備,最多時(shí)可達(dá)15個(gè);(4)SCSI硬盤在標(biāo)識(shí)硬盤扇區(qū)時(shí)使用了線形的概念,即硬盤只有順序的第1扇區(qū)、第2扇區(qū),第n扇區(qū),不像IDE硬盤的“柱面/磁頭/扇區(qū)”三維格局。這種線形編排方式的優(yōu)點(diǎn)是訪問時(shí)間小,可以有效地加快磁盤存取速度,尤其在持續(xù)大容量數(shù)據(jù)存儲(chǔ)時(shí),優(yōu)勢(shì)更為明顯。此外,通過掛接多個(gè)硬盤組成磁盤陣列可以大大地增加數(shù)據(jù)的存儲(chǔ)容量。
2. 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
整個(gè)系統(tǒng)的設(shè)計(jì)結(jié)構(gòu)[1]框圖如圖1所示,主要包括以下幾部分:高速數(shù)據(jù)源(不在本文設(shè)計(jì)中)、光電轉(zhuǎn)換和串并轉(zhuǎn)換單元、高速大容量的數(shù)據(jù)緩存、微處理器、DMA控制器、SCSI協(xié)議處理器以及高速SCSI硬盤。下面逐一介紹。
2.1 光電轉(zhuǎn)換和串并轉(zhuǎn)換單元
系統(tǒng)的高速數(shù)據(jù)源為光接口,記錄器接收到光信號(hào)后,首先經(jīng)過光電轉(zhuǎn)換變?yōu)榇械碾娦盘?hào),再經(jīng)過串并轉(zhuǎn)換變?yōu)?6位的并行數(shù)據(jù)。
采用光接口的主要原因在于:光纖通道(Fibre Channel) 是一種高性能的串行數(shù)據(jù)接口,支持SCSI、ATM等上層數(shù)據(jù)傳輸協(xié)議,具有可靠性高、速度快和傳輸距離遠(yuǎn)的特點(diǎn),特別適合高速大容量的信息傳輸。
2.2 高速大容量的數(shù)據(jù)緩存
圖1:高速數(shù)據(jù)記錄器結(jié)構(gòu)框圖
數(shù)據(jù)緩存的主要作用在于實(shí)現(xiàn)速度匹配,為高速DMA傳輸做好準(zhǔn)備。
普通的SRAM存儲(chǔ)器只有一套數(shù)據(jù)、地址和控制總線,無法同時(shí)進(jìn)行讀寫操作。雙口RAM有兩套數(shù)據(jù)、地址和控制總線,可以同時(shí)進(jìn)行讀寫操作。但其編譯碼電路復(fù)雜,而且價(jià)格相對(duì)較高。由于我們對(duì)數(shù)據(jù)不進(jìn)行任何處理,只是單純的數(shù)據(jù)存儲(chǔ),緩存單元在結(jié)構(gòu)上相當(dāng)于一個(gè)先入先出(FIFO: First In First Out),先到的數(shù)據(jù)先被存儲(chǔ)。設(shè)計(jì)中,我們利用現(xiàn)場(chǎng)可編程門陣列(FPGA:Field Programmable Gate Array)實(shí)現(xiàn)一個(gè)高速FIFO,省去了復(fù)雜的編譯碼電路,大大簡(jiǎn)化了系統(tǒng)設(shè)計(jì)。而且,從外部數(shù)據(jù)接口看來,設(shè)備就是一個(gè)寫不滿的FIFO,也大大簡(jiǎn)化了對(duì)設(shè)備數(shù)據(jù)接口的操作。
2.3 微處理器
用來控制設(shè)備中各部分的工作,實(shí)現(xiàn)設(shè)備的特定功能。高速數(shù)據(jù)記錄器主要實(shí)現(xiàn)數(shù)據(jù)持續(xù)高速存儲(chǔ),對(duì)數(shù)據(jù)處理的速度要求較高。通常采用數(shù)字信號(hào)處理器(DSP:Digital Signal Processing)作為微處理器。
2.4 DMA控制器
設(shè)計(jì)中,為保證大量數(shù)據(jù)的高速持續(xù)傳輸,采用直接存儲(chǔ)器訪問(DMA:Direct Memory Access)方式,因此需要DMA控制器單元。為了簡(jiǎn)化電路,提高效率,設(shè)備采用FPGA構(gòu)造一個(gè)單獨(dú)的DMA控制器。
2.5 SCSI協(xié)議處理器
無論DSP還是FPGA,通常都不會(huì)集成SCSI協(xié)議控制器。因此我們用專門的SCSI協(xié)議控制器來實(shí)現(xiàn)SCSI協(xié)議,輔助DSP來實(shí)現(xiàn)SCSI協(xié)議和通信。
2.6 SCSI硬盤
采用SCSI硬盤可以實(shí)現(xiàn)數(shù)據(jù)高速存儲(chǔ),而且通過增加磁盤數(shù)目可以很方便的擴(kuò)展存儲(chǔ)容量。
3. 硬件電路的實(shí)現(xiàn)
前面我們已經(jīng)逐一介紹了系統(tǒng)各部分的功能,下面我們介紹一下高速數(shù)據(jù)記錄器的硬件電路的實(shí)現(xiàn)。
由于設(shè)備采用光接口,當(dāng)高速數(shù)據(jù)流進(jìn)入設(shè)備后,首先我們需要進(jìn)行光電轉(zhuǎn)換和串并轉(zhuǎn)換。光電轉(zhuǎn)換可以通過專門的光電轉(zhuǎn)換芯片實(shí)現(xiàn),而串并轉(zhuǎn)換我們利用某些FPGA內(nèi)嵌的收發(fā)器模塊(Transceiver)來實(shí)現(xiàn)。這樣做既可以保證數(shù)據(jù)的高速傳輸,又可以有效地保證時(shí)鐘同步,實(shí)現(xiàn)字對(duì)齊,可靠性高。
高速數(shù)據(jù)緩存通常采用專用FIFO,但價(jià)格較高。我們利用FPGA來實(shí)現(xiàn)一個(gè)大容量的FIFO,即簡(jiǎn)化了系統(tǒng),又提高了效率。前面已經(jīng)介紹過專用的DMA控制器連接電路復(fù)雜,我們用FPGA來設(shè)計(jì)一個(gè)單獨(dú)的DMA控制器同樣可以簡(jiǎn)化電路,提高效率。
設(shè)計(jì)中,串并轉(zhuǎn)換單元、高速數(shù)據(jù)緩存和DMA控制器都利用FPGA編程實(shí)現(xiàn)(如圖1虛線所示)。用高度集成的FPGA取代分立元件進(jìn)行高速數(shù)據(jù)傳輸設(shè)計(jì)是本文的一個(gè)重要特點(diǎn)。
微處理器我們采用德克薩斯儀器(TI:Texas Instruments)公司生產(chǎn)的數(shù)字信號(hào)處理器MS320F206;SCSI協(xié)議控制器則選用Qlogic公司的FAS660。
下面我們對(duì)SCSI協(xié)議控制器FAS660[3]做進(jìn)一步的介紹。
FAS660是Qlogic公司推出的一款高性能SCSI引擎,它源于Qlogic公司的TEC485三重嵌入式控制器系列??商峁〧ast-160的同步傳輸速率,支持先進(jìn)的SCSI自動(dòng)配置模式SCAM的1層和2層協(xié)議。內(nèi)部嵌有微控制器,能夠用編程的方法靈活的協(xié)調(diào)SCSI作業(yè)隊(duì)列。FAS660和主流SCSI接口芯片最大的區(qū)別在于:主流SCSI接口芯片采用的是PCI總線接口,而FAS660采用的是微處理器和DMA接口的結(jié)構(gòu)。這使得FAS660更為靈活,可以根據(jù)需要進(jìn)行多種接口設(shè)計(jì),尤其適合應(yīng)用在一些專用SCSI總線控制場(chǎng)合。
4. 系統(tǒng)的軟件設(shè)計(jì)
在硬件設(shè)計(jì)的基礎(chǔ)上,還需要軟件模塊
負(fù)責(zé)對(duì)相關(guān)硬件進(jìn)行控制和協(xié)調(diào),最終實(shí)現(xiàn)SCSI協(xié)議、硬盤的控制和DMA傳輸?shù)?。軟件模塊的設(shè)計(jì)是本系統(tǒng)的難點(diǎn)和重點(diǎn)。本系統(tǒng)中,軟件設(shè)計(jì)主要分為兩部分:DSP控制軟件和FPGA實(shí)現(xiàn)的DMA控制器,此外還有FPGA實(shí)現(xiàn)的串并轉(zhuǎn)換和高速FIFO。程序的優(yōu)劣關(guān)系到整個(gè)系統(tǒng)數(shù)據(jù)存儲(chǔ)的性能,下面分別進(jìn)行討論。
4.1 FPGA設(shè)計(jì)
FPGA設(shè)計(jì)主要包括異步收發(fā)器模塊、高速異步FIFO緩沖模塊、DMA控制器模塊以及時(shí)鐘生成模塊。FPGA作為設(shè)計(jì)中的重要一部分,用來實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)臏?zhǔn)備(包括串并轉(zhuǎn)換、高速緩沖以及加入奇偶校驗(yàn)、CRC校驗(yàn))和對(duì)讀寫邏輯的控制。
圖2 DMA控制器狀態(tài)機(jī)
DMA控制器是FPGA設(shè)計(jì)的主要工作。我們通過DMA控制器,實(shí)現(xiàn)傳輸數(shù)據(jù)的控制邏輯,同時(shí)對(duì)前端傳來的數(shù)據(jù)(沒有任何保護(hù))加以保護(hù)(通常指奇偶校驗(yàn)保護(hù)和CRC校驗(yàn)保護(hù))。它的控制邏輯相當(dāng)簡(jiǎn)單。當(dāng)FAS660發(fā)送數(shù)據(jù)傳輸請(qǐng)求(聲明DREQ),如果FIFO非空,則經(jīng)過延時(shí)后,開始數(shù)據(jù)傳輸(聲明DACK)。FAS660的讀寫操作非常相似,但也有一些差別。讀操作在DACK有效后的第二個(gè)DMA時(shí)鐘周期開始傳輸,而寫操作在DACK有效后的第一個(gè)DMA時(shí)鐘周期開始傳輸。在FPGA設(shè)計(jì)的內(nèi)部邏輯時(shí)尤其需要注意。
Altera公司為StratixGX系列FPGA提供了gxb(吉比特收發(fā)器) 、fifo(先入先出)、pll(鎖相環(huán))等MEGAFUCTION,通過對(duì)它們進(jìn)行例化可以很方便地實(shí)現(xiàn)高速收發(fā)器,高速FIFO和時(shí)鐘生成等模塊。
4.2 DSP控制軟件
基于FAS660的系統(tǒng)可以通過DSP微處理器和FAS660(內(nèi)部有單獨(dú)的微控制器和SCSI控制器用來實(shí)現(xiàn)SCSI協(xié)議)的協(xié)調(diào)工作來實(shí)現(xiàn)系統(tǒng)功能。一般來說,要完成一次數(shù)據(jù)交換必須完成SCSI總線的仲裁、選擇、消息、命令、數(shù)據(jù)和狀態(tài)等階段,這些階段通過為處理器TMS320F206對(duì)FAS660寄存器[4]的讀寫命令來實(shí)現(xiàn)。
SCSI控制軟件流程如圖3所示。首先初始化設(shè)備,然后建立同步傳輸協(xié)議,檢測(cè)硬盤。硬盤準(zhǔn)備好后就可以進(jìn)行數(shù)據(jù)傳輸。
圖3 DSP控制軟件流程
5. 結(jié)束語
本文介紹了一種光接口的專用高速數(shù)據(jù)記錄器的設(shè)計(jì)。它脫離了微機(jī)平臺(tái),用DSP微處理器做控制,用專門的SCSI總線控制器處理SCSI總線信號(hào),并建立了一個(gè)高速DMA通道,將數(shù)據(jù)高速持續(xù)的存儲(chǔ)到SCSI磁盤陣列中。設(shè)計(jì)速度高,容量大,可移植性好,可以靈活應(yīng)用到各種系統(tǒng)中。
本文作者創(chuàng)新點(diǎn):
1.專用型記錄器的設(shè)計(jì)思路,避免了總線帶寬限制,可以達(dá)到更高的傳輸速度。
2.用DSP做為本地CPU,控制整個(gè)系統(tǒng),脫離了微機(jī)系統(tǒng),實(shí)現(xiàn)了模塊化設(shè)計(jì)。
3.用高度集成的FPGA取代了多個(gè)分立元件(FIFO,串并轉(zhuǎn)換,DMA控制器)。
4.源端數(shù)據(jù)采用光接口傳輸,可靠性高,速度快。
參考文獻(xiàn):
[1]姜鳳山,雷宏. 一種基于FAS466的合成孔徑雷達(dá)高速數(shù)據(jù)記錄器的設(shè)計(jì).電子技術(shù)應(yīng)用,2004.6。
[2]何蘇勤,王忠勇.TMS320C2000系列DSP原理及實(shí)用技術(shù).北京:電子工業(yè)出版社,2003.9。
[3]Qlogic Corporation.FAS660 fast architecture SCSI processor technical manual,2002.7。
[4]Qlogic Corporation.FAS660 Fast Architecture SCSI Processor Designer’Guide,2003.1。
[5]吳志祥,汪波,基于ISCSI的存儲(chǔ)系統(tǒng)實(shí)現(xiàn)方法. 微計(jì)算機(jī)信息,2006,3-3。
合成孔徑雷達(dá)相關(guān)文章:合成孔徑雷達(dá)原理
評(píng)論