基于磁盤(pán)陣列的全數字遙測記錄系統的設計
我國遙測記錄設備經(jīng)歷了倍密度磁帶機和旋轉頭磁帶機兩代產(chǎn)品,目前仍在使用。從記錄原理上說(shuō)他們皆屬于模擬記錄設備,在長(cháng)期使用當中,已暴露出諸多缺陷:
(1)磁帶耗材依賴(lài)進(jìn)口,價(jià)格昂貴且記錄容量小、重復使用率低、數據保存時(shí)間短。
(2)磁頭和機械運帶機構屬精密加工器件,調校過(guò)程相當復雜,長(cháng)期使用磨損嚴重,記錄性能顯著(zhù)惡化,給設備維護帶來(lái)極大不便。
隨著(zhù)計算機硬盤(pán)制造技術(shù)的飛速發(fā)展和數字存儲技術(shù)的問(wèn)世及不斷應用,采用大容量高速硬盤(pán)記錄模擬遙測信號的數字化記錄設備DRS(Digital Record System)[1]已經(jīng)出現,并成為遙測記錄設備的換代產(chǎn)品,但設計上存在不足:
(1)數字化程度低:記錄信號中心頻率只有2.1 MHz,不能對左右旋圓極化70 MHz檢前信號直接記錄,要依賴(lài)額外的模擬下變頻器作轉換處理,不適應對全新的數字綜合基帶遙外測設備的記錄要求。
(2)擴展性差:由于采用專(zhuān)用的數據傳輸通道,帶寬有限(16 b)且固定,故一旦要增加記錄信號的路數,只能靠增加硬件通道數來(lái)增加帶寬,相應地要增加控制驅動(dòng)記錄的板卡數量,并導致輸入輸
(3)單硬盤(pán)工作模式可靠性難以保證,一旦硬盤(pán)損壞,整個(gè)系統癱瘓,已記錄數據無(wú)法恢復。 (4)未能利用國際通行的技術(shù)規范和標準,不利于產(chǎn)品升級換代,從長(cháng)遠看難以形成新的業(yè)內標準。
以上不足說(shuō)明DRS在最初的體系結構設計上存在根本性的缺陷,若想徹底克服,必須重新改進(jìn)體系結構設計,盡量采用當前國內外在數字存儲方面先進(jìn)、通行的技術(shù),因此RAID(廉價(jià)冗余磁盤(pán)陣列)技術(shù)為我們提供了新的設計思路和理念。作者經(jīng)過(guò)深入研究論證和大量的前期試驗,終于設計并實(shí)現了以RAID陣列為核心的全數字遙測記錄系統RDRS。
2 系統設計
2.1整機體系結構設計
RAID標準提供了數字存儲方面全方位的解決方案,其中RAID5采用具有分布式奇偶校驗的磁盤(pán)物理條帶(stripings)來(lái)跨越單個(gè)磁盤(pán)平均分配數據和冗余校驗信息[2],在保證數據安全的前提下,可獲得極高的數據吞吐率和磁盤(pán)利用率,尤其適合高速連續大塊數據的傳輸。綜合考慮遙測記錄的極高安全性、實(shí)時(shí)性、超大存儲空間和更多的記錄通道,陣列模組選用以5塊容量各為100 GB的SA TA硬盤(pán)組成RAlD5標準,用高性能的ARECA-1120 SA-TA RAID控制卡作驅動(dòng),RAID卡采用OEM產(chǎn)品,可減少硬件開(kāi)發(fā)工作量。之所以未選用更高性能的SCSI硬盤(pán)作模組是由于SCSI硬盤(pán)數據接口過(guò)于寬大(50芯),而SATA硬盤(pán)是目前市場(chǎng)上漸趨流行的串行ATA接口的新一代高性能硬盤(pán),其外部數據傳輸率已達300 MB/s,接近SCSI硬盤(pán)(320 MB/s),但其接口電纜只有8芯,布線(xiàn)十分方便靈活,非常適合組成陣列模組,可節省機箱空間,便于快速更換。整機體系結構如圖1所示。
他以64位擴展的PCI總線(xiàn)作為硬件開(kāi)發(fā)平臺,可提供528 Mb/s的高數據傳輸帶寬,而CPU仍采用高性能的32位P4(2.4 GHz)處理器,通過(guò)主橋實(shí)現總線(xiàn)緩沖來(lái)直接映射到64位總線(xiàn)地址空間。硬件部分獨立開(kāi)發(fā)了通用性和擴展性非常強的基于PCI總線(xiàn)的中頻和視頻采集卡。軟件環(huán)境采用基于RT-Linux 3.1實(shí)時(shí)操作系統內核,在RedHat 8.0(內核版本 Linux 2.4.18)系統平臺下開(kāi)發(fā),采用標準C語(yǔ)言編制底層驅動(dòng)及用戶(hù)應用程序。在 Kylix開(kāi)發(fā)環(huán)境下,用C++編寫(xiě)X-Windows下的用戶(hù)界面程序。由于系統規定的錄放速度高達500 Mb/s,PCI視頻采集卡對系統中斷響應時(shí)間的要求就非常高,為此專(zhuān)門(mén)選用了基于Linux的實(shí)時(shí)操作系統RT-Linux平臺,RT-Linux可在Linux內核源代碼的基礎上通過(guò)修改部分系統程序代碼來(lái)改善Linux的實(shí)時(shí)性,修改后的Linux(即RT-Linux)能快速響應硬件中斷(中斷響應時(shí)間小于15 μs)[3],滿(mǎn)足了系統的實(shí)時(shí)性要求,為高速采集而不丟數據提供保證。同時(shí)提供了一套標準接口函數,以實(shí)現RT-Linux進(jìn)程與普通Linux進(jìn)程間的數據傳輸及共享。由于系統記錄的數據文件有時(shí)高達幾十GB甚至上百GB的容量,用普通的文件系統在RT-Linux下已不能滿(mǎn)足容量要求,為此移植了XFS文件系統來(lái)管理采集的文件。XFS是Silicon Graphics公司開(kāi)發(fā)的一種全新的高性能64位文件系統,該文件系統既擴展了分區及文件容量的限制(最大為9 000 TB),又提高了文件存儲處理速度。
2.2系統硬件設計
硬件結構設計如圖2所示。其中主要設計部件為中頻和視頻采集卡,他分為記錄電路和回放電路兩部分,數據記錄時(shí),70 MHz中頻信號首先經(jīng)聲表面波濾波器濾除帶外信號,再經(jīng)固定增益和AGC電路將信號強度控制在A(yíng)/D采樣的理想電平范圍內,用高速ADC(40 MSPS)對70 MHz信號直接采樣后送人中頻采集卡的FPGA,經(jīng)數字下變頻將中頻帶通信號頻譜向下搬移至基帶,形成I,Q兩路正交的基帶信號,并CIC濾波器進(jìn)行抽樣率變換,得到多路合流的視頻數字群信號,通過(guò)LVDS高速接口送人視頻采集卡的FPGA,完成數據打包、緩沖和時(shí)序控制,當數據填滿(mǎn)一個(gè)數據塊大小,視頻采集卡向系統發(fā)中斷,請求數據傳輸,系統應答后,以DMA方式通過(guò)64位PCI總線(xiàn)發(fā)送到系統內存,內存中數據累積到一定數據量,通過(guò)PCI總線(xiàn)將數據塊寫(xiě)入RAID卡并分發(fā)到磁盤(pán)陣列中?;胤胚^(guò)程是記錄的逆過(guò)程,電路上的主要差別是視頻數字群信號要分別通過(guò)數字移相網(wǎng)絡(luò )和數字群延遲網(wǎng)絡(luò )恢復I,Q兩路正交信號并經(jīng)共同的DDS時(shí)鐘控制分頻的數字本振NCO進(jìn)行數字上變頻,完成基帶頻譜向上搬移,后經(jīng)高速DAC得到70 MHz中頻模擬信號完成回放過(guò)程。
2.3 系統軟件設計
系統軟件的主要作用就是與配套的硬件相互協(xié)調工作完成中頻檢前信號實(shí)時(shí)記錄和事后回放。他分成視頻采集卡驅動(dòng)模塊、主控進(jìn)程、記錄/回放進(jìn)程和用
戶(hù)界面。其中視頻采集卡驅動(dòng)模塊作為驅動(dòng)程序以模塊的形式插入內核空間運行,由于用戶(hù)空間進(jìn)程不能直接訪(fǎng)問(wèn)底層硬件設備,所以驅動(dòng)模塊是上層應用程序和設備物理層之間的橋梁,上層應用程序不必關(guān)心硬件設備的具體信息,即可通過(guò)RT-Linux的指令FIFO完成對視頻采集卡的控制。驅動(dòng)模塊負責完成對視頻采集卡的設置、控制和狀態(tài)采集,以及定時(shí)讀取視頻采集卡內的B碼值和鎖定標志。上層應用程序也可通過(guò)指令FIFO來(lái)設置視頻采集卡內的B碼值。視頻數據采集卡模塊和上層應用之間通過(guò)RT-Linux的共享內存來(lái)共享系統的關(guān)鍵性狀態(tài)、控制數據,實(shí)現內核態(tài)和用戶(hù)態(tài)程序的數據共享。主控進(jìn)程為用戶(hù)空間的普通Linux進(jìn)程,他負責完成系統的初始化、維護和指令傳輸等任務(wù)。完成用戶(hù)空間程序到內核空間程序間的指令傳遞。他多處于等待狀態(tài),當接收到來(lái)自用戶(hù)(X-Window窗口界面或文本調試界面)的指令(通過(guò)信號量實(shí)現)時(shí),經(jīng)過(guò)FIFO發(fā)給內核進(jìn)程,實(shí)現指令的傳遞。同時(shí)當他發(fā)送啟動(dòng)采集/回放命令后,會(huì )負責創(chuàng )建獨立的讀/寫(xiě)盤(pán)進(jìn)程,來(lái)實(shí)現數據的硬盤(pán)記錄和回放。主控進(jìn)程維護了一個(gè)初始的系統配置參數文件,系統停止運行后,他會(huì )保存系統的當前狀態(tài),在系統再次啟動(dòng)時(shí)用于初始化系統參數,同時(shí)主控進(jìn)程在每次啟動(dòng)時(shí)會(huì )對盤(pán)陣上的任務(wù)文件進(jìn)行修復,以保證因停電等意外故障導致的關(guān)機發(fā)生時(shí),對沒(méi)有結束的任務(wù)文件進(jìn)行修復。記錄/回放進(jìn)程被主控進(jìn)程創(chuàng )建后,便不斷地在硬盤(pán)和采集緩存間(MBUFF)傳輸數據,記錄時(shí)只要采集緩存(MBUFF)有數據,他就將數據寫(xiě)入硬盤(pán)陣列中。而回放時(shí)他首先將回放的數據填滿(mǎn)采集緩存(MBUFF),然后當數據被DMA傳送完成后,再次讀取硬盤(pán)陣列中數據,將空出的采集緩存(MBUFF)填滿(mǎn)。當記錄/回放停止后,該進(jìn)程自動(dòng)結束。用戶(hù)界面是基于X-window的用戶(hù)進(jìn)程。他以窗口的形式提供給用戶(hù)一可視的操控平臺,實(shí)時(shí)顯示系統狀態(tài)、任務(wù)內容信息和盤(pán)陣空間使用狀態(tài),接受用戶(hù)如下指令:B碼設置/顯示、開(kāi)始記錄、盤(pán)陣上任務(wù)文件的回放、改名、轉儲、刪除及數據正確性校驗等管理性功能。當用戶(hù)啟動(dòng)開(kāi)始采集記錄時(shí),控制命令發(fā)給主控進(jìn)程,主控進(jìn)程建立一個(gè)寫(xiě)盤(pán)進(jìn)程,同時(shí)將采集命令通過(guò)指令FIFO發(fā)給底層的視頻采集卡,使視頻采集設備開(kāi)始采集數據。視頻采集設備會(huì )連續的采集輸入的中頻檢前信號流數據到的視頻采集卡內的乒乓緩存內,當乒乓緩存緩存滿(mǎn)時(shí),他會(huì )切換到另一片乒乓緩存繼續采集數據,同時(shí)會(huì )產(chǎn)生一個(gè)數據就緒中斷,觸發(fā)系統的中斷服務(wù)程序。中斷服務(wù)程序啟動(dòng)一次DMA傳輸將乒乓緩存內的數據依次傳輸到采集緩存(MBUFF)內,并調整下一次存儲數據的采集緩存(MBUFF)指針,使采集數據在這里暫存且不被覆蓋。而寫(xiě)盤(pán)進(jìn)程實(shí)時(shí)的檢測采集緩存(MBUFF)內是否有新采集的數據,如果有會(huì )馬上寫(xiě)入的硬盤(pán)陣列中,512 MB的采集緩存(MBUFF),保證了采集數據未被覆蓋前既被寫(xiě)入到盤(pán)陣。同樣的,當回放時(shí),預先將盤(pán)上的回放數據讀到緩存內,再發(fā)送回放命令,這樣即使讀盤(pán)速度暫時(shí)降低,也可以保證緩存內有足夠的回放數據被輸出到視頻采集卡,保證了回放的連續性。
3 結 語(yǔ)
為了檢驗系統性能和工作可靠性,研制樣機進(jìn)行了累計1 000 h的環(huán)境應力試驗(包括測試時(shí)間)和100 h的加速壽命試驗,表現均穩定可靠,記錄數據滿(mǎn)足各項指標。同時(shí)還反復進(jìn)行了記錄過(guò)程磁盤(pán)陣列單盤(pán)掉電數據恢復測試,結果令人滿(mǎn)意,充分驗證了RAID技術(shù)用于數字記錄的優(yōu)越性。
評論