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