首頁 > 新聞係統 > 電子技術 > 技術 > 測試與測量 正文 > 論壇 返回 打印

基於磁盤陣列的全數字遙測記錄係統的設計

  引 言

  我國設備經曆了倍密度磁帶機和旋轉頭磁帶機兩代產品,目前仍在使用。從記錄原理上說他們皆屬於模擬記錄設備,在長期使用當中,已暴露出諸多缺陷:

  (1)磁帶耗材依賴進口,價格昂貴且記錄容量小、重複使用率低、數據保存時間短。

  (2)磁頭和機械運帶機構屬精密加工器件,調校過程相當複雜,長期使用磨損嚴重,記錄性能顯著惡化,給設備維護帶來極大不便。

  隨著計算機硬盤製造技術的飛速發展和存儲技術的問世及不斷應用,采用大容量高速硬盤記錄模擬遙測信號的數字化記錄設備DRS(Digital Record System)[1]已經出現,並成為遙測記錄設備的換代產品,但設計上存在不足:

  (1)數字化程度低:記錄信號中心頻率隻有2.1 MHz,不能對左右旋圓極化70 MHz檢前信號直接記錄,要依賴額外的模擬下變頻器作轉換處理,不適應對全新的數字綜合基帶遙外測設備的記錄要求。

  (2)擴展性差:由於采用專用的數據傳輸通道,帶寬有限(16 b)且固定,故一旦要增加記錄信號的路數,隻能靠增加硬件通道數來增加帶寬,相應地要增加控製驅動記錄的板卡數量,並導致輸入輸出 接口關係發生變化。

 (3)單硬盤工作模式可靠性難以保證,一旦硬盤損壞,整個係統癱瘓,已記錄數據無法恢複。 (4)未能利用國際通行的技術規範和標準,不利於產品升級換代,從長遠看難以形成新的業內標準。

  以上不足說明DRS在最初的體係結構設計上存在根本性的缺陷,若想徹底克服,必須重新改進體係結構設計,盡量采用當前國內外在數字存儲方麵先進、通行的技術,因此RAID(廉價冗餘)技術為我們提供了新的設計思路和理念。作者經過深入研究論證和大量的前期試驗,終於設計並實現了以RAID陣列為核心的全數字遙測記錄係統RDRS。

  2 係統設計

  2.1整機體係結構設計

  RAID標準提供了數字存儲方麵全方位的解決方案,其中RAID5采用具有分布式奇偶校驗的磁盤物理條帶(stripings)來跨越單個磁盤平均分配數據和冗餘校驗信息[2],在保證數據安全的前提下,可獲得極高的數據吞吐率和磁盤利用率,尤其適合高速連續大塊數據的傳輸。綜合考慮遙測記錄的極高安全性、實時性、超大存儲空間和更多的記錄通道,陣列模組選用以5塊容量各為100 GB的SA TA硬盤組成RAlD5標準,用高性能的ARECA-1120 SA-TA RAID控製卡作驅動,RAID卡采用OEM產品,可減少硬件開發工作量。之所以未選用更高性能的SCSI硬盤作模組是由於SCSI硬盤數據接口過於寬大(50芯),而SATA硬盤是目前市場上漸趨流行的串行ATA接口的新一代高性能硬盤,其外部數據傳輸率已達300 MB/s,接近SCSI硬盤(320 MB/s),但其接口電纜隻有8芯,布線十分方便靈活,非常適合組成陣列模組,可節省機箱空間,便於快速更換。整機體係結構如圖1所示。

整機體係結構設計

  他以64位擴展的PCI總線作為硬件開發平台,可提供528 Mb/s的高數據傳輸帶寬,而CPU仍采用高性能的32位P4(2.4 GHz)處理器,通過主橋實現總線緩衝來直接映射到64位總線地址空間。硬件部分獨立開發了通用性和擴展性非常強的基於PCI總線的中頻和視頻采集卡。軟件環境采用基於RT-Linux 3.1實時操作係統內核,在RedHat 8.0(內核版本 Linux 2.4.18)係統平台下開發,采用標準C語言編製底層驅動及用戶應用程序。在 Kylix開發環境下,用C++編寫X-Windows下的用戶界麵程序。由於係統規定的錄放速度高達500 Mb/s,PCI視頻采集卡對係統中斷響應時間的要求就非常高,為此專門選用了基於Linux的實時操作係統RT-Linux平台,RT-Linux可在Linux內核源代碼的基礎上通過修改部分係統程序代碼來改善Linux的實時性,修改後的Linux(即RT-Linux)能快速響應硬件中斷(中斷響應時間小於15 μs)[3],滿足了係統的實時性要求,為高速采集而不丟數據提供保證。同時提供了一套標準接口函數,以實現RT-Linux進程與普通Linux進程間的數據傳輸及共享。由於係統記錄的數據文件有時高達幾十GB甚至上百GB的容量,用普通的文件係統在RT-Linux下已不能滿足容量要求,為此移植了XFS文件係統來管理采集的文件。XFS是Silicon Graphics公司開發的一種全新的高性能64位文件係統,該文件係統既擴展了分區及文件容量的限製(最大為9 000 TB),又提高了文件存儲處理速度。

  2.2係統硬件設計

  硬件結構設計如圖2所示。其中主要設計部件為中頻和視頻采集卡,他分為電路和回放電路兩部分,數據記錄時,70 MHz中頻信號首先經聲表麵波濾波器濾除帶外信號,再經固定增益和AGC電路將信號強度控製在A/D采樣的理想電平範圍內,用高速ADC(40 MSPS)對70 MHz信號直接采樣後送人中頻采集卡的FPGA,經下變頻將中頻帶通信號頻譜向下搬移至基帶,形成I,Q兩路正交的基帶信號,並CIC濾波器進行抽樣率變換,得到多路合流的視頻數字群信號,通過LVDS高速接口送人視頻采集卡的FPGA,完成數據打包、緩衝和時序控製,當數據填滿一個數據塊大小,視頻采集卡向係統發中斷,請求數據傳輸,係統應答後,以DMA方式通過64位PCI總線發送到係統內存,內存中數據累積到一定數據量,通過PCI總線將數據塊寫入RAID卡並分發到中。回放過程是記錄的逆過程,電路上的主要差別是視頻數字群信號要分別通過數字移相網絡和數字群延遲網絡恢複I,Q兩路正交信號並經共同的DDS時鍾控製分頻的數字本振NCO進行數字上變頻,完成基帶頻譜向上搬移,後經高速DAC得到70 MHz中頻模擬信號完成回放過程。

硬件結構設計

  2.3 係統軟件設計

  係統軟件的主要作用就是與配套的硬件相互協調工作完成中頻檢前信號實時記錄和事後回放。他分成視頻采集卡驅動模塊、主控進程、記錄/回放進程和用戶

界麵。其中視頻采集卡驅動模塊作為驅動程序以模塊的形式插入內核空間運行,由於用戶空間進程不能直接訪問底層硬件設備,所以驅動模塊是上層應用程序和設備物理層之間的橋梁,上層應用程序不必關心硬件設備的具體信息,即可通過RT-Linux的指令FIFO完成對視頻采集卡的控製。驅動模塊負責完成對視頻采集卡的設置、控製和狀態采集,以及定時讀取視頻采集卡內的B碼值和鎖定標誌。上層應用程序也可通過指令FIFO來設置視頻采集卡內的B碼值。視頻數據采集卡模塊和上層應用之間通過RT-Linux的共享內存來共享係統的關鍵性狀態、控製數據,實現內核態和用戶態程序的數據共享。主控進程為用戶空間的普通Linux進程,他負責完成係統的初始化、維護和指令傳輸等任務。完成用戶空間程序到內核空間程序間的指令傳遞。他多處於等待狀態,當接收到來自用戶(X-Window窗口界麵或文本調試界麵)的指令(通過信號量實現)時,經過FIFO發給內核進程,實現指令的傳遞。同時當他發送啟動采集/回放命令後,會負責創建獨立的讀/寫盤進程,來實現數據的硬盤記錄和回放。主控進程維護了一個初始的係統配置參數文件,係統停止運行後,他會保存係統的當前狀態,在係統再次啟動時用於初始化係統參數,同時主控進程在每次啟動時會對盤陣上的任務文件進行修複,以保證因停電等意外故障導致的關機發生時,對沒有結束的任務文件進行修複。記錄/回放進程被主控進程創建後,便不斷地在硬盤和采集緩存間(MBUFF)傳輸數據,記錄時隻要采集緩存(MBUFF)有數據,他就將數據寫入硬盤陣列中。而回放時他首先將回放的數據填滿采集緩存(MBUFF),然後當數據被DMA傳送完成後,再次讀取硬盤陣列中數據,將空出的采集緩存(MBUFF)填滿。當記錄/回放停止後,該進程自動結束。用戶界麵是基於X-window的用戶進程。他以窗口的形式提供給用戶一可視的操控平台,實時顯示係統狀態、任務內容信息和盤陣空間使用狀態,接受用戶如下指令:B碼設置/顯示、開始記錄、盤陣上任務文件的回放、改名、轉儲、刪除及數據正確性校驗等管理性功能。當用戶啟動開始采集記錄時,控製命令發給主控進程,主控進程建立一個寫盤進程,同時將采集命令通過指令FIFO發給底層的視頻采集卡,使視頻采集設備開始采集數據。視頻采集設備會連的采集輸入的中頻檢前信號流數據到的視頻采集卡內的乒乓緩存內,當乒乓緩存緩存滿時,他會切換到另一片乒乓緩存繼續采集數據,同時會產生一個數據就緒中斷,觸發係統的中斷服務程序。中斷服務程序啟動一次DMA傳輸將乒乓緩存內的數據依次傳輸到采集緩存(MBUFF)內,並調整下一次存儲數據的采集緩存(MBUFF)指針,使采集數據在這裏暫存且不被覆蓋。而寫盤進程實時的檢測采集緩存(MBUFF)內是否有新采集的數據,如果有會馬上寫入的硬盤陣列中,512 MB的采集緩存(MBUFF),保證了采集數據未被覆蓋前既被寫入到盤陣。同樣的,當回放時,預先將盤上的回放數據讀到緩存內,再發送回放命令,這樣即使讀盤速度暫時降低,也可以保證緩存內有足夠的回放數據被輸出到視頻采集卡,保證了回放的連續性。

係統軟件設計


       3 結 語

  為了檢驗係統性能和工作可靠性,研製樣機進行了累計1 000 h的環境應力試驗(包括測試時間)和100 h的加速壽命試驗,表現均穩定可靠,數據滿足各項指標。同時還反複進行了記錄過程單盤掉電數據恢複測試,結果令人滿意,充分驗證了RAID技術用於記錄的優越性。



http://www.autooo.net/autooo/Electronic/Tech/Test/2007-10-27/39629.html