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