引言
本課題研究的數(shù)據(jù)存儲(chǔ)與管理技術(shù)可應(yīng)用于在大型海域進(jìn)行的水中爆炸效能參數(shù)測(cè)試的分布式測(cè)試系統(tǒng)中,整個(gè)系統(tǒng)中基站與主站通過(guò)無(wú)線傳輸。由于在海域中的測(cè)試環(huán)境比較惡劣,對(duì)于測(cè)試設(shè)備的布置比較困難,因此有時(shí)需要在短時(shí)間內(nèi)做多次重復(fù)性實(shí)驗(yàn)。重復(fù)性實(shí)驗(yàn)就要求將每次所采集的數(shù)據(jù)實(shí)時(shí)回傳處理或存儲(chǔ)管理,為下次實(shí)驗(yàn)作準(zhǔn)備。本系統(tǒng)所采用的無(wú)線傳輸方式?jīng)Q定不可能在短時(shí)間內(nèi)把大量數(shù)據(jù)回傳。NAND Flash存儲(chǔ)器作為一種非易失、大容量、可擦除與重復(fù)性編程等優(yōu)點(diǎn),在其內(nèi)部構(gòu)建文件系統(tǒng),把多次重復(fù)性采集的多種數(shù)據(jù)以文件格式存儲(chǔ),可為系統(tǒng)由無(wú)線傳輸引起的瓶頸提供另一種解決方案。在存儲(chǔ)沖擊波數(shù)據(jù)時(shí),沖擊波信號(hào)有其典型的特征(最大值特征),可提取其最大值特征作為該文件的信息一同存儲(chǔ)。事后數(shù)據(jù)快速分析處理時(shí),最關(guān)心的是沖擊波壓力峰值(即最大值),因此可通過(guò)傳輸特征值少量數(shù)據(jù)快速分析提高系統(tǒng)實(shí)時(shí)性。
1 系統(tǒng)組成
本課題研究的數(shù)據(jù)存儲(chǔ)管理系統(tǒng)是分布式測(cè)試系統(tǒng)基站的重要組成部分。該模塊實(shí)現(xiàn)了對(duì)沖擊波數(shù)據(jù)、水聲定位信號(hào)、環(huán)境溫度等多種數(shù)據(jù)的存儲(chǔ)管理,為事后數(shù)據(jù)分析處理提供可靠保證,并通過(guò)與基站中的無(wú)線收發(fā)模塊通信,實(shí)現(xiàn)與主站的通信。圖1為系統(tǒng)結(jié)構(gòu)框圖。數(shù)據(jù)存儲(chǔ)管理系統(tǒng)主要由單片機(jī)與CPLD組成,本系統(tǒng)通過(guò)在CPLD內(nèi)部擴(kuò)展SPI接口電路,完成沖擊波、水聲定位等信號(hào)的存儲(chǔ);并在NAND Flash存儲(chǔ)器中構(gòu)建文件系統(tǒng),實(shí)現(xiàn)對(duì)多種大量數(shù)據(jù)的存儲(chǔ)管理。
2 數(shù)據(jù)傳輸接口電路設(shè)計(jì)
本數(shù)據(jù)存儲(chǔ)管理系統(tǒng)以單片機(jī)和CPLD作為核心控制器。由于單片機(jī)的端口、內(nèi)部串口等資源數(shù)目有限,需在CPLD內(nèi)部擴(kuò)展SPI接口電路,不僅簡(jiǎn)化了接口和控制,提高了系統(tǒng)的整體性能及工作靈活性,還使系統(tǒng)擴(kuò)展變得可行。CPLD擴(kuò)展SPI接口框圖如圖2所示。
在CPLD內(nèi)部編寫雙向I/O總線、譯碼電路、時(shí)鐘發(fā)生器、移位寄存器等電路完成SPI接口電路設(shè)計(jì)。READY為從機(jī)(沖擊波模塊)與主機(jī)(數(shù)據(jù)存儲(chǔ)管理系統(tǒng))通信時(shí)狀態(tài)標(biāo)志位,供主機(jī)與從機(jī)通信時(shí)查詢使用。READY為1時(shí),主從機(jī)可通信。
圖3為CPLD擴(kuò)展SPI接口電路讀取沖擊波模塊數(shù)據(jù)時(shí)的波形。bit8為READY信號(hào),從機(jī)高電平時(shí)主機(jī)讀取數(shù)據(jù);bit9為SCK時(shí)鐘信號(hào),主機(jī)查詢READY為高時(shí)主機(jī)產(chǎn)生8個(gè)SCK時(shí)鐘,啟動(dòng)SPI傳輸;bit10為MOSI,主機(jī)輸出端口;bit11為MISO,主機(jī)輸入端口,SCK上升沿讀取數(shù)據(jù)。圖3連續(xù)兩個(gè)周期讀取的數(shù)據(jù)為0x07(00000111)、0xb0(10110000),兩周期時(shí)間間隔為20.400μs,傳輸速度可達(dá)4×105bps。
3 數(shù)據(jù)存儲(chǔ)管理
3.1 存儲(chǔ)管理數(shù)據(jù)特征
在本分布式測(cè)試系統(tǒng)實(shí)驗(yàn)時(shí),所要存儲(chǔ)管理的沖擊波、水聲信號(hào)等數(shù)據(jù)的大小、存儲(chǔ)順序都一定,是其典型特征。因此存儲(chǔ)數(shù)據(jù)時(shí)可以按順序方式存儲(chǔ),把每一類數(shù)據(jù)分別以一個(gè)文件的形式存儲(chǔ),用文件名把沖擊波與水聲信號(hào)等進(jìn)行區(qū)別,并且每一文件有其唯一的編號(hào)ID。采集參數(shù)信息(如時(shí)間、通道、頻率、點(diǎn)數(shù)、觸發(fā)延時(shí)信息等)作為每個(gè)文件的頭信息保存,事后數(shù)據(jù)分析處理時(shí)可先讀取文件存儲(chǔ)狀態(tài)(包括所有存儲(chǔ)文件的頭信息),然后可為事后分析處理數(shù)據(jù)提供便利。
3.2 文件系統(tǒng)的設(shè)計(jì)
文件系統(tǒng)的具體設(shè)計(jì)是根據(jù)系統(tǒng)資源環(huán)境和應(yīng)用需求而定的,因此在具體的應(yīng)用系統(tǒng)中文件系統(tǒng)會(huì)有不同的實(shí)現(xiàn)形式。
結(jié)合本課題的存儲(chǔ)器特征:NAND Flash(Samsung K9F1208)是以頁(yè)為單位存儲(chǔ)、以塊為單位擦除,寫入速度快(典型200μs)、擦除速度慢(典型2 ms)。存儲(chǔ)數(shù)據(jù)特征:文件大小是確定的,存儲(chǔ)過(guò)程是順序存儲(chǔ),且存儲(chǔ)之后不會(huì)對(duì)數(shù)據(jù)進(jìn)行再寫入和隨機(jī)讀取與修改。NAND Flash構(gòu)建一種基于塊設(shè)備存儲(chǔ)的文件系統(tǒng),適合對(duì)本課題多次重復(fù)性實(shí)驗(yàn)數(shù)據(jù)進(jìn)行有效存儲(chǔ)與管理?;趬K設(shè)備存儲(chǔ)的文件系統(tǒng)是磁盤存儲(chǔ)器常用的文件系統(tǒng),典型的是FAT文件系統(tǒng)。FAT文件系統(tǒng)技術(shù)成熟、結(jié)構(gòu)簡(jiǎn)單、系統(tǒng)資源開(kāi)銷小,結(jié)合本系統(tǒng)使用的NAND Flash特性,易于在本系統(tǒng)硬件平臺(tái)(Atmel ATmega162單片機(jī)與Xilinx XC2C256-7 CPLD為核心控制)上實(shí)現(xiàn)。
由于NAND Flash不同于一般的磁盤存儲(chǔ)器,在出廠時(shí)允許有一定數(shù)量的壞塊,需對(duì)通用FAT文件系統(tǒng)做相應(yīng)的修改,方可運(yùn)用于本系統(tǒng)。在NAND Flash中建立無(wú)效塊表,在該表內(nèi)把所有塊的狀態(tài)標(biāo)示出來(lái)(如可用0x00表示壞塊、0xff表示有效塊),這樣在之后的數(shù)據(jù)存儲(chǔ)過(guò)程中,可防止把數(shù)據(jù)寫到壞塊,提高數(shù)據(jù)存儲(chǔ)的可靠性。本文件系統(tǒng)由以下幾部分組成:系統(tǒng)記錄區(qū)、無(wú)效塊表、文件登記表區(qū)、數(shù)據(jù)區(qū)。本系統(tǒng)所用的NAND Flash是K9F1208,生產(chǎn)廠商設(shè)定的存儲(chǔ)空間的第1區(qū)塊必定是有效塊。在設(shè)計(jì)時(shí),將第1區(qū)塊作為存儲(chǔ)器的系統(tǒng)記錄區(qū),同時(shí)在此區(qū)塊中建立無(wú)效塊表、文件分配表、文件登記表。
①系統(tǒng)記錄區(qū):存放最重要的文件系統(tǒng)信息,如Flash存儲(chǔ)器的類型、容量、版本信息等。
②無(wú)效塊表:標(biāo)示所有塊的狀態(tài)。無(wú)效塊表存儲(chǔ)在第1區(qū)塊的第1頁(yè)到第8頁(yè)(共8頁(yè),每頁(yè)512字節(jié),512×8=4 096,可把FLash所有塊狀態(tài)標(biāo)示出來(lái))。系統(tǒng)調(diào)試結(jié)果如圖4所示。
③文件登記表:存儲(chǔ)每一個(gè)文件的文件頭信息,存儲(chǔ)在無(wú)效塊表之后。K9F1208每頁(yè)有512字節(jié),每頁(yè)存儲(chǔ)一個(gè)文件的文件頭信息。現(xiàn)每一文件頭信息占30字節(jié)(其余系統(tǒng)可擴(kuò)展使用),主要包括文件名、ID號(hào)、長(zhǎng)度、以及該文件存儲(chǔ)在NAND Flash中的起始、結(jié)束塊號(hào)物理地址。文件登記表的建立為系統(tǒng)查看所有存儲(chǔ)數(shù)據(jù)提供便利,方便數(shù)據(jù)管理。根據(jù)文件登記表中文件存儲(chǔ)在NAND FLash的首尾物理塊地址信息,可隨機(jī)讀取少量文件數(shù)據(jù)分析,為系統(tǒng)因無(wú)線傳輸大量數(shù)據(jù)的瓶頸提供另一種解決方案。調(diào)試結(jié)果如圖5所示。
④數(shù)據(jù)區(qū)域:用于存放數(shù)據(jù),文件系統(tǒng)中,數(shù)據(jù)分配的最小單位是Flash存儲(chǔ)器的一個(gè)基本擦除單元,即一個(gè)物理區(qū)塊(16 KB)。
3.3 基于沖擊波數(shù)據(jù)特征提取的數(shù)據(jù)存儲(chǔ)
由于每次實(shí)驗(yàn)沖擊波數(shù)據(jù)量相對(duì)于無(wú)線傳輸而言比較大(4 MB,系統(tǒng)實(shí)驗(yàn)無(wú)線傳輸需20 min),如果回傳全部數(shù)據(jù)處理,系統(tǒng)實(shí)時(shí)性能比較差。水中沖擊波信號(hào)有其典型的特征,如圖6所示。Pm為沖擊波壓力峰值信號(hào)(即最大值),事后數(shù)據(jù)分析處理時(shí),最關(guān)心的是沖擊波的壓力峰值附近的數(shù)據(jù)。因此在數(shù)據(jù)存儲(chǔ)時(shí),可根據(jù)其特征找最大值,并把最大值所存儲(chǔ)的NAND Flash的物理地址作為一個(gè)參數(shù)信息保存到文件頭信息中,如圖5所示。沖擊波文件信息中有最大值與所存儲(chǔ)位置文件信息。在文件數(shù)據(jù)回傳時(shí),可依據(jù)最大值所在塊地址信息讀取最大值附近的數(shù)據(jù),實(shí)現(xiàn)基于特征的高效數(shù)據(jù)傳輸,提高系統(tǒng)實(shí)時(shí)性。圖7為根據(jù)沖擊波文件頭信息讀取最大值附近40 000個(gè)點(diǎn)(40 000×2/1024=78.1 25KB)數(shù)據(jù)恢復(fù)波形,實(shí)現(xiàn)了基于特征提取的高效數(shù)據(jù)傳輸。
結(jié)語(yǔ)
此方法提高了系統(tǒng)的擴(kuò)展性,為系統(tǒng)升級(jí)管理更多數(shù)據(jù)模塊提供了可能;針對(duì)大量、多種類實(shí)驗(yàn)測(cè)試數(shù)據(jù)以及實(shí)驗(yàn)的重復(fù)性,基于NAND Flash K9F1208存儲(chǔ)器構(gòu)建文件系統(tǒng)對(duì)數(shù)據(jù)分類存儲(chǔ)管理。文件登記表的創(chuàng)建方便了數(shù)據(jù)的管理,為實(shí)驗(yàn)事后數(shù)據(jù)分析處理提供了可靠依據(jù);根據(jù)沖擊波信號(hào)的典型數(shù)據(jù)特征,存儲(chǔ)沖擊波信號(hào)時(shí)提取其特征信息,作為文件頭信息保存,可實(shí)現(xiàn)基于特征提取的高效數(shù)據(jù)傳輸。