馬 昕 ,張士洋
(1.中國海洋大學(xué)物理海洋教育部重點(diǎn)實(shí)驗(yàn)室,山東 青島266003;2.中國海洋大學(xué)海洋發(fā)展研究院,山東 青島266003)
一種實(shí)現(xiàn)海洋監(jiān)測(cè)儀器大容量信息存儲(chǔ)的方法
馬 昕1,張士洋2
(1.中國海洋大學(xué)物理海洋教育部重點(diǎn)實(shí)驗(yàn)室,山東 青島266003;2.中國海洋大學(xué)海洋發(fā)展研究院,山東 青島266003)
現(xiàn)代化建設(shè)對(duì)海洋監(jiān)測(cè)儀器信息存儲(chǔ)提出了更高的要求,尤其是要客觀真實(shí)地反映實(shí)驗(yàn)現(xiàn)象,需要的測(cè)試點(diǎn)增多、記錄數(shù)據(jù)量加大,使得許多小存儲(chǔ)量海洋監(jiān)測(cè)儀器不能滿足當(dāng)前實(shí)驗(yàn)的要求。通過采用嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks,在擴(kuò)充的海量flash上運(yùn)行文件系統(tǒng)來管理數(shù)據(jù)和代碼,為了更有效地管理大容量的nandflash存儲(chǔ)芯片上的數(shù)據(jù)文件,在VxWorks系統(tǒng)上設(shè)計(jì)了文件系統(tǒng),實(shí)現(xiàn)了TureFFS塊設(shè)備驅(qū)動(dòng),與本機(jī)dosFs文件系統(tǒng)掛接在海洋監(jiān)測(cè)儀器內(nèi)測(cè)記錄節(jié)點(diǎn),從而解決了系統(tǒng)信息的大容量存儲(chǔ)。最后通過利用該方法設(shè)計(jì)的鉭絲測(cè)波儀進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果較好地還原了波浪的真實(shí)圖像。研究的方法具有廣泛的適用性,在其他海洋測(cè)試系統(tǒng)中也有廣泛的應(yīng)用前景。
NAND Flash;VxWorks;板級(jí)支持包 BSP;TureFFS
自容式海洋監(jiān)測(cè)儀器的發(fā)展,要求將系統(tǒng)測(cè)量的數(shù)據(jù)采樣并傳送給內(nèi)測(cè)記錄節(jié)點(diǎn),該節(jié)點(diǎn)用來記錄并保存數(shù)據(jù),回收后將數(shù)據(jù)導(dǎo)出,用于數(shù)據(jù)分析。目前使用的一些自容式海洋監(jiān)測(cè)儀器系統(tǒng)中使用的內(nèi)測(cè)記錄節(jié)點(diǎn),由于受到自身存儲(chǔ)容量的限制,一般需要每隔一定時(shí)間周期采樣一次數(shù)據(jù)并存儲(chǔ)。但是隨著任務(wù)的多樣化、測(cè)量數(shù)據(jù)的復(fù)雜性,信息數(shù)據(jù)源增多,對(duì)數(shù)據(jù)采集的密度和存儲(chǔ)系統(tǒng)的容量也不能滿足要求,導(dǎo)致實(shí)驗(yàn)情況不能得到全面的反應(yīng)。比如現(xiàn)在使用的某型波浪測(cè)量儀,由于存儲(chǔ)容量的限制,一般每0.1 s采樣一次數(shù)據(jù)并存儲(chǔ),如果要更加全面地得到實(shí)驗(yàn)情況,采樣密度至少要增大10倍,則數(shù)據(jù)總量必然成比例增長,可見此時(shí)內(nèi)測(cè)記錄節(jié)點(diǎn)的存儲(chǔ)容量和數(shù)據(jù)的導(dǎo)出方式已經(jīng)成為能否客觀還原實(shí)驗(yàn)狀況的基本保證。所以海洋監(jiān)測(cè)儀器的大容量信息存儲(chǔ)的實(shí)現(xiàn),可以保證能夠更加全面地得到實(shí)驗(yàn)數(shù)據(jù),更加真實(shí)地還原實(shí)驗(yàn)狀況。
本文提出的一種實(shí)現(xiàn)方法,采用嵌入式實(shí)時(shí)系統(tǒng)Vx-Works作為操作系統(tǒng),設(shè)計(jì)和實(shí)現(xiàn)了基于VxWorks的文件系統(tǒng),并通過文件系統(tǒng)來管理大容量數(shù)據(jù)。硬件方面采用低功耗32位微處理器ARM作為嵌入式系統(tǒng)的控制芯片,來減少海洋監(jiān)測(cè)儀器的功耗和散熱量。
內(nèi)測(cè)記錄節(jié)點(diǎn)大容量存儲(chǔ)的實(shí)現(xiàn)離不開文件系統(tǒng)對(duì)數(shù)據(jù)文件的管理和調(diào)度。PC機(jī)使用的文件系統(tǒng)功能強(qiáng)大,但是對(duì)于海洋監(jiān)測(cè)儀器這類嵌入式系統(tǒng)來說,文件系統(tǒng)過于復(fù)雜;并且DOS操作系統(tǒng)的非實(shí)時(shí)特性也無法滿足監(jiān)測(cè)儀器應(yīng)用的要求,而嵌入式實(shí)時(shí)操作系統(tǒng)的引入將很好地解決這一問題。嵌入式操作系統(tǒng)VxWorks以其強(qiáng)實(shí)時(shí)性、高可靠性、穩(wěn)定性及體積小等優(yōu)勢(shì)在商用和軍用領(lǐng)域得到廣泛應(yīng)用[1],用它來代替?zhèn)鹘y(tǒng)的DOS操作系統(tǒng)管理內(nèi)測(cè)節(jié)點(diǎn)的數(shù)據(jù)文件,使得系統(tǒng)尺寸大大精簡,并且使實(shí)現(xiàn)多任務(wù)的海洋監(jiān)測(cè)成為可能,系統(tǒng)穩(wěn)定性也得到了保證。
存儲(chǔ)芯片方面,存儲(chǔ)器NAND Flash因?yàn)槠渚哂腥萘看蟆Ⅲw積小等優(yōu)勢(shì),被看作信息存儲(chǔ)器擴(kuò)展的理想選擇[2],最新資料顯示,其單片的最大存儲(chǔ)容量已經(jīng)可以達(dá)到2 G,勢(shì)必成為海洋監(jiān)測(cè)領(lǐng)域嵌入式數(shù)據(jù)存儲(chǔ)的主流發(fā)展方向。本文采用samsung公司的16 MB的NANDFlash芯片K9F2808UOB。
隨著文件量的增加,必然引入管理和調(diào)度問題,操作系統(tǒng)對(duì)文件系統(tǒng)的支持則成為系統(tǒng)擴(kuò)展大容量存儲(chǔ)的前提條件。
VxWorks中,文件系統(tǒng)是塊設(shè)備和I/O子系統(tǒng)間的接口[3]。文件系統(tǒng)并不與特定類型的塊設(shè)備或驅(qū)動(dòng)綁定,它和設(shè)備驅(qū)動(dòng)間使用標(biāo)準(zhǔn)接口,這樣文件系統(tǒng)可以靈活地在設(shè)備驅(qū)動(dòng)上移植。VxWorks包括幾種支持使用塊設(shè)備(如RAM,軟盤,硬盤,F(xiàn)lash 等)的本地文件系統(tǒng),如 dosFs、rt11Fs、rawFs、tapeFs、cdRomFs等。其中dosFs提供給用戶極大的靈活性以滿足塊存取設(shè)備的實(shí)時(shí)操作,可以任意創(chuàng)建任意數(shù)目文件;使用連續(xù)文件模式,提高操作性能;廣泛兼容各種可存儲(chǔ)和可檢索媒體(如flash、軟盤和硬盤等);支持FAT12、FAT16和FAT32文件分配表格式;可以從dosFs文件系統(tǒng)中啟動(dòng)VxWorks操作系統(tǒng)等,最后一點(diǎn)尤為重要。
VxWorks的文件系統(tǒng)與底層硬件存儲(chǔ)器之間有一層抽象的塊設(shè)備驅(qū)動(dòng)層。TureFFS是目前常用的在VxWorks上實(shí)現(xiàn)文件系統(tǒng)的方法,TureFFS(Ture Flash File System)驅(qū)動(dòng)是M-Systems公司為VxWorks定制的,為各種Flash存儲(chǔ)器提供通常的塊設(shè)備接口。它由Translation layer,MTDs,Socket Layer三部分組成,開發(fā)者面向Socket和MTD兩層。
實(shí)現(xiàn)TureFFS是在操作系統(tǒng)基礎(chǔ)上對(duì)NAND Flash塊設(shè)備進(jìn)行讀寫或擦除等操作的必要前提?;赩xWorks操作系統(tǒng)的FLASH文件系統(tǒng)TureFFS的實(shí)現(xiàn),使得系統(tǒng)文件的大容量存儲(chǔ)和有序管理成為可能,應(yīng)用在海洋監(jiān)測(cè)儀器內(nèi)測(cè)記錄節(jié)點(diǎn)的信息存儲(chǔ)領(lǐng)域,會(huì)使測(cè)試數(shù)據(jù)的導(dǎo)出更加方便快捷[4]。
TureFFS是Tornado開發(fā)環(huán)境中集成的,相當(dāng)于硬件塊設(shè)備的驅(qū)動(dòng)接口,它不是直接與I/O系統(tǒng)接口,而是與I/O系統(tǒng)下的文件系統(tǒng)接口[5]。文件系統(tǒng)實(shí)現(xiàn)了大部分的功能,塊設(shè)備驅(qū)動(dòng)程序只需提供讀塊、寫塊、復(fù)位設(shè)備、執(zhí)行I/O控制和檢查設(shè)備狀態(tài)的例程,方便了使用一系列的嵌入式閃存設(shè)備來實(shí)現(xiàn)快速可靠的物理存儲(chǔ)。為了將Flash抽象為普通的塊設(shè)備,硬件塊設(shè)備的驅(qū)動(dòng)接口將Flash映射為一系列連續(xù)的虛擬塊。
本文使用的塊設(shè)備是Flash。為了在Flash存儲(chǔ)器上使用文件系統(tǒng),需要添加TFFS驅(qū)動(dòng),作為文件系統(tǒng)和存儲(chǔ)器的中間層。VxWorks為TureFFS提供很完善的支持,TureFFS的MTD已經(jīng)包括了intel、AMD等廠商的Flash驅(qū)動(dòng),并可方便地將用戶自己的驅(qū)動(dòng)加入進(jìn)去。上層的dosFs很好地和TureFFS結(jié)合,用戶可以直接用C語言中常用的文件函數(shù)對(duì)文件系統(tǒng)操作(文件管理,創(chuàng)建,讀,寫,存等)。通過仿真Vx-Works dosFs文件系統(tǒng)下的驅(qū)動(dòng),開發(fā)者可以使用標(biāo)準(zhǔn)的文件系統(tǒng)界面來產(chǎn)生和操作一個(gè)文件系統(tǒng),這樣,在閃存設(shè)備上進(jìn)行讀寫操作就與dosFs文件系統(tǒng)設(shè)備是一樣了。TureFFS允許將Flash芯片或者其一部分作為硬盤一樣,通過NFS(網(wǎng)絡(luò)文件系統(tǒng))或者dosFs文件系統(tǒng)進(jìn)行訪問。
如前所述,TrueFFS由3層結(jié)構(gòu)實(shí)現(xiàn):翻譯層(TL),MTD層和Socket層,如圖1所示。
圖1 TrueFFS與dosFs
TL層是處理TFFS與dosFs之間的高層接口,為上層軟件提供標(biāo)準(zhǔn)塊設(shè)備接口,主要完成flash到邏輯塊的映射、wear-leveling(使flash中的各unit的擦除次數(shù)比較平均,從而延長flash使用壽命的一種方法)、廢塊回收等功能。
MTD層是針對(duì)各類不同型號(hào)的flash開發(fā)的標(biāo)準(zhǔn)內(nèi)存驅(qū)動(dòng)程序,用于實(shí)現(xiàn)Flash存儲(chǔ)器相關(guān)的操作指令序列。
Socket層是處理TFFS與硬件之間的接口,實(shí)現(xiàn)電壓控制、基地址設(shè)置和寫保護(hù)控制等。
最上面的Core層不屬于TrueFFS,它將其他各層連接起來,將操作傳送到其他各層,并處理全局性問題,比如“后臺(tái)”、垃圾回收、時(shí)鐘和其他的系統(tǒng)資源。這一層以二進(jìn)制原碼形式提供。
在VxWorks中,TL以庫的形式提供,包括TrueFFsDrv、TrueFFsLib以及ftl和fl開頭的目標(biāo)模塊;MTD以源代碼形式提供,在“ argetsrcdrv ffs”目錄下,以Flash芯片型號(hào)命名。如果沒有特殊芯片的代碼,可以參考近似代碼,需要改寫的地方較多;Socket也以源代碼提供,在“targetsrcTrueFFssockets”目錄下,按照硬件的具體型號(hào)命名,如果找不到對(duì)應(yīng)的代碼,同樣也需要參考改寫一個(gè),改寫的部分較少。
由以上分析可知,VxWorks自帶的TrueFFS中,已經(jīng)實(shí)現(xiàn)了很多功能。因此需要做的工作主要是:對(duì)TL層進(jìn)行必要的配置,為目標(biāo)板上的閃存編寫MTD層和socket層的驅(qū)動(dòng)程序。在定制TrueFFS時(shí),可以將xxxxmtd.c、tffsConfig.c和sysTffs.c直接添加到自己的BSP目錄中,方便代碼管理。
本文開發(fā)中的采用的是Bootrom加VxWorks的目標(biāo)機(jī)程序映像組織方式,所要達(dá)到的設(shè)計(jì)目標(biāo)為:
(1)在第一片F(xiàn)LASH中存放Bootrom程序映像,用硬件燒寫板加上燒寫軟件FFT將程序映像寫入Flash存儲(chǔ)器,在后半部分加載TrueFFS;
(2)在NANDFlash上建立TrueFFS+dosFs文件系統(tǒng),用于存儲(chǔ)程序的映像文件,模塊目標(biāo)文件和配置參數(shù)文件等;
(3)通過串口進(jìn)行調(diào)試;
(4)啟動(dòng)FTP服務(wù)器,通過它來操作TrueFFS文件系統(tǒng)。
進(jìn)行BSP的定制時(shí),主要工作是修改與硬件相關(guān)的部分,對(duì)系統(tǒng)部分不用關(guān)心。根據(jù)TrueFFS的三層結(jié)構(gòu)分別實(shí)現(xiàn),并完成與系統(tǒng)的掛接。具體實(shí)施時(shí),在Socket層,先將“srcdrvTrueFFssockets”目錄下的mv177-sysTrueFFs.c復(fù)制到BSP目錄下,并更名為sysTrueFFs.c,sysTrueffs.c包含了TrueffsConfig.c,還需要復(fù)制TrueffsConfig.c到BSP目錄。MTD層文件nandMTD.c要自己編寫。
(1)在sysTrueFFs.c中修改不多,主要添加自己的MTD宏定義,設(shè)置Flash存儲(chǔ)器基址和大小,屏蔽無關(guān)的寫保護(hù)操作。主要工作如圖2所示。
(2)為了聯(lián)系socket和MTD層,需要對(duì)TrueFFsConfig.c文件進(jìn)行修改,該文件主要向mtdTable[]表注冊(cè)自己的MTD:
圖2 sysTrueFFs.c的修改
注意還要修改sysTrueFFs.c到當(dāng)前路徑。
(3)nandMTD.c文件可以參考bsp目錄下的文件修改,但是因?yàn)橛布奶厥庑?,改?dòng)的較多,可以自己編寫。這里給出要修改和添加的主要內(nèi)容:首先是命令、地址和數(shù)據(jù)的地址定義,每個(gè)塊上的頁數(shù)定義為32頁,根據(jù)K9F2808UOB手冊(cè),chip ID為0xec73,在isKnownMedia函數(shù)中會(huì)引用。然后進(jìn)行Flash的讀寫以及擦除的命令、狀態(tài)和執(zhí)行等驅(qū)動(dòng)函數(shù)的編寫。注意,讀數(shù)據(jù)和寫數(shù)據(jù)操作是以頁為單位的,而擦除操作是以塊為單位的;nandMTDIdentify函數(shù)也要根據(jù)分支修改。這部分的編碼工作量比較大,根據(jù)模板的改動(dòng)很大,基本需要重寫,由于篇幅關(guān)系不一一列舉。
(4)啟動(dòng)時(shí)加載TrueFFS文件系統(tǒng),在bootConfig.c文件的CmdLoop函數(shù)開始處添加代碼,完成TrueFFS的初始化。初始化時(shí)首先調(diào)用TrueFFsDrv,如果在config.h中定義INCLUDE_TRUEFFS,則在 usrRoot()中調(diào)用 TrueFFsDrv(),這個(gè)函數(shù)建立TrueFFS管理需要的互斥信號(hào)量、全局變量和數(shù)據(jù)結(jié)構(gòu),并完成Socket注冊(cè)和啟動(dòng)Socket查詢?nèi)蝿?wù);接著調(diào)用TrueFFsDevFormat函數(shù)格式化Flash;格式化成功后,便可以加載使用了。調(diào)用TrueFFsDevCreate創(chuàng)建塊設(shè)備;接著調(diào)用dosFsInit函數(shù),初始化dos文件系統(tǒng);最后調(diào)用usrTrueFFs-Config函數(shù)進(jìn)行dosFs的安裝,這個(gè)函數(shù)被用來在引導(dǎo)過程中找到并加載VxWorks映像,注意到該函數(shù)中沒有TrueFFs-Drv調(diào)用,所以初始化的一開始,加上了調(diào)用TrueFFsDrv的代碼。
(5)config.h的配置:其中需配置Bootline;內(nèi)存地址和大??;Bootrom的大??;包含相關(guān)的組件,如INCLUDE_FTP_SERVER,INCLUDE_DOSFS,INCLUDE_TRUEFFS 和自定義的INCLUDE_MTD_NAND宏,用來包含F(xiàn)lash驅(qū)動(dòng);要確定調(diào)試方式為串口WDB_COMM_SERIAL等等。
(6)Makefile文件的修改:加入 MACH_EXTRA=nandMTD.o
添加對(duì)nandMTD.c文件的引用,要注意的是sysTrueFFs.c由bootConfig.c包含調(diào)用,所以不在Makefile中添加。
(1)Bootrom啟動(dòng):執(zhí)行后,ftp server和文件系統(tǒng)已經(jīng)運(yùn)行。
(2)加載VxWorks:需要先通過ftp將VxWorks映像傳送到TrueFFS文件系統(tǒng),系統(tǒng)再次啟動(dòng)時(shí)會(huì)自動(dòng)從TrueFFS加載VxWorks映像,VxWorks大約852k。建議在調(diào)試時(shí)用網(wǎng)絡(luò)加載。
(3)VxWorks啟動(dòng):Bootrom運(yùn)行加載 VxWorks后,Vx-Works開始運(yùn)行,啟動(dòng)了ftp服務(wù)器和文件系統(tǒng),可以在主機(jī)上通過ftp客戶端連接目標(biāo)板,更換VxWorks映像,重新啟動(dòng)后,新映像就可以運(yùn)行了。應(yīng)用程序映像加載類似。
具體實(shí)現(xiàn)時(shí)需要注意如下幾點(diǎn):
(1)需要在擦除和寫操作中屏蔽中斷,因?yàn)镕lash在擦除、寫和讀ID狀態(tài)時(shí),不能正常讀取數(shù)據(jù)。異常入口位于存儲(chǔ)器的開始處,異常發(fā)生時(shí)不能得到正常的入口指令,會(huì)導(dǎo)致系統(tǒng)跑飛。
(2)Flash芯片的手冊(cè)中描述的地址是按字而言,也就是芯片的A0接在CPU的A1上,所以手冊(cè)給出的指令地址不能直接使用,需要左移一位。
(3)建議在一些函數(shù)的入口添加調(diào)試信息,打印出入口參數(shù)等信息,方便錯(cuò)誤定位。
(4)最好在VxWorks中調(diào)試TFFS,而不是在bootRom中。
在實(shí)際某些應(yīng)用時(shí),如果對(duì)該嵌入式系統(tǒng)上添加實(shí)現(xiàn)USB驅(qū)動(dòng),就可以將節(jié)點(diǎn)NANDFlash存儲(chǔ)器當(dāng)做U盤使用,更方便系統(tǒng)測(cè)量信息數(shù)據(jù)與上位機(jī)進(jìn)行交換,系統(tǒng)調(diào)試代碼的存儲(chǔ)及下載也更加方便。
筆者所在物理海洋實(shí)驗(yàn)室利用本文的改進(jìn)方法,將傳統(tǒng)的波浪測(cè)試儀器——鉭絲測(cè)波儀進(jìn)行了內(nèi)存的擴(kuò)充。
傳統(tǒng)的鉭絲測(cè)波儀內(nèi)存只有1 M,最大采樣速率只有20 Hz,采集數(shù)據(jù)的個(gè)數(shù)也只能達(dá)到1 000個(gè)左右,利用它測(cè)得的波高、周期均不能達(dá)到非常準(zhǔn)確,在實(shí)際物理海洋實(shí)驗(yàn)中應(yīng)用所測(cè)量的數(shù)據(jù)僅能作為參考,對(duì)很多物理海洋實(shí)驗(yàn)驗(yàn)證方面是不小的缺憾。改進(jìn)后的鉭絲測(cè)波儀內(nèi)存擴(kuò)充到32 M,最大采樣速率可達(dá)到50 Hz,采樣個(gè)數(shù)可以達(dá)到10 000個(gè)左右,完全滿足了波浪的測(cè)量精度。
為了比較兩種測(cè)波儀的測(cè)量精度,在實(shí)驗(yàn)室水槽(如圖3)中產(chǎn)生一個(gè)波高15 cm、周期12 s的規(guī)則正弦波,如圖4所示,利用兩臺(tái)儀器測(cè)得的平均波高和波形圖像來觀測(cè)測(cè)波儀的測(cè)量精度。
圖3 物理海洋實(shí)驗(yàn)室二維造波水槽
為了直觀的比較,將兩個(gè)鉭絲測(cè)波儀在相同的位置同時(shí)進(jìn)行測(cè)量。對(duì)改進(jìn)前的鉭絲測(cè)波儀采樣速率設(shè)置為最大20 Hz,采樣個(gè)數(shù)設(shè)置為最大的1 000個(gè),其觀測(cè)的圖像如圖5所示,測(cè)得波形圖像是不連續(xù)的,并且失真非常嚴(yán)重,利用測(cè)得數(shù)據(jù)進(jìn)行平均波高的推算,只有12.47 cm左右,與實(shí)際設(shè)定的15 cm誤差大約在2.5 cm左右,遠(yuǎn)遠(yuǎn)超出了物理海洋實(shí)驗(yàn)要求的0.5 cm的最大誤差精度范圍。這主要是因?yàn)闇y(cè)波儀本身內(nèi)存容量有限,只能設(shè)定比較長的采樣間隔周期,中間丟失了很多有用的數(shù)據(jù)。
圖4 二維規(guī)則波
圖5 改進(jìn)前鉭絲測(cè)波儀波形圖
利用改進(jìn)型的鉭絲測(cè)波儀,設(shè)置采樣速率為20 Hz,采樣個(gè)數(shù)設(shè)置為10 000個(gè),其觀測(cè)的圖像如圖6所示,可以明顯看出波形圖像非常接近連續(xù),幾乎沒有圖像的失真,利用觀測(cè)數(shù)據(jù)進(jìn)行平均波高的推算,測(cè)得波高為14.71 cm左右,與實(shí)際設(shè)定的15 cm誤差大約在0.3 cm左右,符合物理海洋實(shí)驗(yàn)要求的0.5 cm的最大誤差精度范圍。
改進(jìn)后的測(cè)波儀由于內(nèi)存容量的增大,使得測(cè)量的時(shí)間間隔和測(cè)量個(gè)數(shù)都有極大的提高,使得更多的實(shí)驗(yàn)數(shù)據(jù)被觀測(cè)到,測(cè)量的結(jié)果也就更加真實(shí)可信??梢娬撐难芯康某晒麑?duì)于自容式海洋監(jiān)測(cè)儀器的數(shù)據(jù)監(jiān)測(cè)有很大的促進(jìn)和提高。
圖6 改進(jìn)后鉭絲測(cè)波儀波形圖
[1]李忠民.ARM嵌入式VxWorks實(shí)踐教程[M].北京:北京航空航天大學(xué)出版社,2006.
[2]陳智育.VxWorks程序開發(fā)實(shí)踐[M].北京:人民郵電出版社,2004.
[3]何永琦,符欲梅.基于現(xiàn)場監(jiān)測(cè)的嵌入式Flash文件系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].微計(jì)算機(jī)應(yīng)用,2004,25(3):335-338.
[4]王慧,吳旭光.VxWorks在AT91FR40162上的BSP定制[J].單片機(jī)與嵌入式系統(tǒng)設(shè)計(jì),2003(9):77-81.
[5]唐德波,楊斌,石禹.TrueFFS原理及其在Flash存儲(chǔ)器上的應(yīng)用[J].電測(cè)與儀表,2006,43(484):61-64.
Large Capacity Information Storage Method for Ocean Monitoring Equipments
MA Xin1,ZHANG Shi-yang2
(1.Key Laboratory of Physical Oceanography,Ocean University of China,Ministry of Education,Qingdao Shandong 266003,China;2.Department of Oceanography,Ocean University of China,Qingdao Shandong 266003,China)
Ocean exploration and military applications have put forward higher demands for ocean monitoring equipment.Especially imaging experiment phenomena with extension,manifold testing point and log data result in ocean monitoring equipments with small memory not suitable for applications.A method of data storage and transmission with the embedded operating system VxWorks and Ture Flash File System (TureFFS)drivers based on the NAND flash device is presented.To effectively manage the data files on the NAND flash storage chip of large capacity,a file system on the VxWorks system is designed to realize TureFFS communication with VxWorks dosFs on the ocean monitoring equipments.Thus,large capacity information storage of ocean monitoring equipment can be implemented.Finally,experiments using Tantalum thread wave measure equipment are conducted to verify the effectiveness.The scheme may be applied for other ocean monitoring equipment systems.
NAND Flash;VxWorks;BSP(board support package);TureFFS
P715;TP274
B
1003-2029(2011)04-0011-05
2011-04-17
馬昕(1976-),男,工程師,主要研究方向?yàn)楹Q蟊O(jiān)測(cè)儀器設(shè)計(jì)開發(fā)和物理海洋實(shí)驗(yàn)設(shè)計(jì)。