MCF51JM128的類U盤方式在線編程設計
2.1.3 SCSI命令集的實現
SCSI有3種字長的命令:6字節、10字節和12字節。Microsoft Windows環境支持12字節的命令。SCSI命令集包含了對多種存儲設備的操作命令,對U盤而言,并不是所有的SCSI命令都要進行應答和處理,實際用到的SCSI命令如表1所列。
2.2 FAT16文件系統的實現
當開發板插入USB總線并枚舉成功后,USB主機會發送前面提到的SCSI命令。若這些命令的返回結果正確,主機接下來進入文件識別階段;如果文件系統信息出錯,則會導致USB總線復位,通信中止。
本設計中采用的是FAT16文件系統。FAT即“文件分配表”,是用來記錄存儲器中文件所在位置的表格,一旦文件分配表丟失,存儲器中的數據就會因為無法定位而不能使用。FAT16文件系統的磁盤可以分為保留區、FAT區、根目錄區和數據區。其中保留區的第1個扇區稱為引導扇區,包含對文件系統進行識別的關鍵信息;FAT區用來存放文件分配表,由于FAT表非常重要,所以通常在FAT區之后有1個相同內容的備份;根目錄區中存放目錄項,每個目錄項為32字節,記錄1個文件或目錄的信息;在根目錄區之后的數據區便是真正意義上的存放文件數據或目錄的位置,占據了存儲器大部分數據空間。
本設計功能相對固定,無需實現與普通U盤同樣復雜的文件系統,如文件存儲、動態創建/刪除等功能都可以省略,在實現功能的同時也節省了代碼空間。筆者利用常量數組定義了引導扇區、FAT區和根目錄區。
操作系統按簇來分配磁盤空間,FAT表是一一對應數據區簇號的列表,反映了所有簇的使用情況。FAT區結構如表2所列。在設計FAT區的數組時,筆者采取了簡化措施,由于無需在Flash中存儲目標S19文件和磁盤信息,所以僅僅設置了FAT表數組的表項O和表項1,其余表項做清零處理。
結 語
MCF51JM128是集成了USB主機、設備和OTG功能的新款MCU,適合數據采集、數據交換等多個領域,是一款集成度非常高的芯片。利用其集成 USB模塊的特點實現的類U盤方式在線編程系統時,提高了在線編程系統的平臺適應性,提高了易用性,降低了在線編程系統的開發成本。開發其他任何帶有 USB模塊的MCU的在線編程系統時,都可借鑒本方法。同時,也可將本方法擴展到各種基于USB的編程器中,如筆者擬開發的基于MCF51JM128的 Freescale 56F8xxx系列DSP編程器。
評論