??? 摘? 要: 在目標(biāo)識別" title="目標(biāo)識別">目標(biāo)識別" title="雷達(dá)目標(biāo)識別" title="雷達(dá)目標(biāo)識別">雷達(dá)目標(biāo)識別">雷達(dá)目標(biāo)識別系統(tǒng)中,以大容量" title="大容量">大容量CF卡作為移動(dòng)存儲介質(zhì)" title="存儲介質(zhì)">存儲介質(zhì),利用TI公司的DSP TMS320C5402把目標(biāo)識別結(jié)果以FAT16格式的文件用一種簡化的低風(fēng)險(xiǎn)方式存放在CF卡中。?
??? 關(guān)鍵詞: CF卡;TMS320C5402;FAT16;文件系統(tǒng)" title="文件系統(tǒng)">文件系統(tǒng)?
?
??? 在某機(jī)載雷達(dá)目標(biāo)識別系統(tǒng)的先期測試中,需要大容量的存儲介質(zhì)對目標(biāo)識別結(jié)果進(jìn)行存儲,以便進(jìn)行后期的分析,同時(shí)要求能把數(shù)據(jù)安全方便地從存儲介質(zhì)中傳到PC機(jī)上。為此,本文設(shè)計(jì)了利用TI公司的DSP TMS320C5402和CF卡實(shí)現(xiàn)大容量雷達(dá)目標(biāo)識別結(jié)果的安全存儲方案,這樣得到的分析結(jié)果只需要一個(gè)讀卡器就可以方便地從CF卡中讀出。即使文件系統(tǒng)出了錯(cuò),仍可以利用TMS320C5402把數(shù)據(jù)安全讀出,這樣就避免了重做實(shí)驗(yàn)造成不必要的浪費(fèi),降低了風(fēng)險(xiǎn)。?
1 雷達(dá)目標(biāo)識別板卡簡介?
??? 用于測試的某機(jī)載雷達(dá)目標(biāo)識別板卡硬件功能框圖如圖1所示。?
?
?
??? 雷達(dá)目標(biāo)識別信息由CPCI總線傳輸至目標(biāo)識別板,信號調(diào)理后再傳輸至目標(biāo)識別系統(tǒng),由4片TS101對雷達(dá)目標(biāo)識別信息進(jìn)行識別,處理后的結(jié)果數(shù)據(jù)在FIFO中緩沖后,由TMS320C5402控制寫入CF卡。整個(gè)系統(tǒng)的邏輯由CPLD EPM3256控制完成。?
2 CF卡與TMS320C5402硬件接口設(shè)計(jì)?
??? CF卡能支持三種接口訪問模式:Memory Card模式、I/O Card模式和True IDE模式。由于True IDE模式和IDE接口硬盤的訪問方式一致,都遵從ATA標(biāo)準(zhǔn),考慮到以后可能會(huì)擴(kuò)展到用硬盤存儲目標(biāo)識別結(jié)果,故筆者采用的是True IDE模式。CF卡和TMS320C5402硬件接口如圖2所示。?
?
?
??? 在實(shí)際的電路中,地址譯碼和或門都在CPLD EPM3256中實(shí)現(xiàn),其具體譯碼表如表1所示。?
?
?
??? 在完成硬件接口后,C5402通過表2所示的譯碼地址對ATA寄存器進(jìn)行讀寫(采用邏輯塊尋址,具體參見參考文獻(xiàn)[1])。?
?
?
3 CF卡的讀寫和FAT16文件的創(chuàng)建?
3.1 CF卡的讀寫?
??? CF卡的讀寫以扇區(qū)為單位,每扇區(qū)為512B,每次可讀寫1個(gè)或多個(gè)連續(xù)的扇區(qū)。本文設(shè)計(jì)時(shí)使用邏輯塊尋址方式(LBA)訪問CF卡數(shù)據(jù)。讀寫操作時(shí)首先指定讀寫的扇區(qū)數(shù)和LBA地址,然后向命令寄存器發(fā)出讀命令(20H)或?qū)懨睿?0H),等待CF卡就緒后,即狀態(tài)寄存器為58H時(shí)就可通過數(shù)據(jù)寄存器連續(xù)讀寫數(shù)據(jù)了,當(dāng)狀態(tài)寄存器變?yōu)?0H時(shí)完成一次讀或?qū)懖僮鳌?
3.2 FAT16文件系統(tǒng)原理?
??? 對于使用FAT16文件系統(tǒng)的CF卡,應(yīng)由以下幾個(gè)分區(qū)組成:MBR區(qū)、DBR區(qū)、FAT區(qū)、FDT表、DATA區(qū)。MBR區(qū),也是邏輯扇區(qū)0,它包含了CF卡的結(jié)構(gòu)信息;DBR區(qū)存放FAT文件系統(tǒng)的重要參數(shù)和引導(dǎo)程序;FAT區(qū)記錄著文件存放的位置信息。在FAT16文件系統(tǒng)中,文件占用磁盤空間的基本單位是簇(cluster)。簇的大小為2的n次方個(gè)扇區(qū),在筆者使用的CF卡中為32個(gè)扇區(qū),即16KB。同一個(gè)文件的數(shù)據(jù)不一定完整存放在磁盤的一個(gè)連續(xù)區(qū)域內(nèi),而往往分成若干個(gè)簇,采用鏈?zhǔn)酱鎯?;FDT表記錄著根目錄下每個(gè)文件的文件名、屬性、文件開始簇號以及文件的長度;DATA區(qū)才是真正的存儲數(shù)據(jù)的地方,其每個(gè)扇區(qū)與簇號有著一個(gè)對應(yīng)的關(guān)系。?
3.3 簡化的低風(fēng)險(xiǎn)FAT16文件的創(chuàng)建?
??? 創(chuàng)建文件時(shí),需要提供文件的文件名、擴(kuò)展名、文件大小。對于通常的寫文件,首先會(huì)檢測FDT表中是否已經(jīng)存在該文件,然后查找空閑的FDT表項(xiàng),之后搜尋空閑簇,并且將首簇填寫到FAT表的起始簇中,同時(shí)修改下一簇號,直到最后一個(gè)簇寫入0xFFFF,以表示文件結(jié)束,最后將數(shù)據(jù)填寫到每簇所對應(yīng)的數(shù)據(jù)扇區(qū)中。這種方法效率較低,尤其是當(dāng)空閑簇不連續(xù),會(huì)導(dǎo)致數(shù)據(jù)存儲不連續(xù);如果FDT表出現(xiàn)錯(cuò)誤則不易恢復(fù)數(shù)據(jù)。?
??? 在實(shí)際使用中,筆者提出一種簡化的低風(fēng)險(xiǎn)存儲方式。首先把卡格式化,然后設(shè)置要寫的文件大小為2MB,屬性為.dat,文件名設(shè)為從1開始,寫完一個(gè)文件之后自動(dòng)生成文件名為2的文件。依次類推,直到把卡寫滿。由于之前卡里沒文件,卡的空閑簇就是連續(xù)的,這樣就不用去搜索空閑的FDT表和FAT表,數(shù)據(jù)在DATA區(qū)的存儲也是連續(xù)的,提高了存儲效率。如果FDT表出了問題,DATA區(qū)的數(shù)據(jù)可不按文件格式而按邏輯扇區(qū)連續(xù)讀出,從而降低了風(fēng)險(xiǎn),流程如圖3所示。?
?
?
????? 本文描述了CF卡與TMS320C5402之間的接口設(shè)計(jì)以及FAT16文件系統(tǒng)原理和文件創(chuàng)建流程。該系統(tǒng)目前已經(jīng)在某機(jī)載雷達(dá)目標(biāo)識別系統(tǒng)上調(diào)試成功。由于采用的是1G的CF卡,該系統(tǒng)在傳輸速率為50KB/s的情況下可以工作數(shù)小時(shí),存儲了大量的數(shù)據(jù),并且很方便地把數(shù)據(jù)讀出進(jìn)行分析,即使在文件系統(tǒng)遭到損害的情況下,只要卡的物理結(jié)構(gòu)沒被損壞仍可以連續(xù)讀出數(shù)據(jù),真正實(shí)現(xiàn)了對大容量數(shù)據(jù)的安全存儲。?
參考文獻(xiàn)?
[1] CompactFlash Association.CF+ and CompactFlash Specification Revision 4.1,2006.?
[2] Texas Instruments Inc..TMS320C54X系列DSP的CPU與外設(shè).清華大學(xué)出版社,2006.?
[3] Miguel Hernandez.CompactFlash Memory Card Interface to?the TMS320VC54x,2001.?
[4] 鄧劍,楊曉非,廖俊卿.FAT文件系統(tǒng)原理及實(shí)現(xiàn).計(jì)算機(jī)與數(shù)字工程,2005,33(9).