U盤讀寫模塊一開始運(yùn)行CH37XDL.EXE模塊參數(shù)設(shè)置文件,設(shè)置成三線異步串口,數(shù)據(jù)的字節(jié)順序?yàn)榇蠖四J剑ㄐ《四J綄τ谝?font face="Times New Roman">MCU作為訪問來說不方便),U盤插拔時(shí)自動(dòng)中斷通知,添加數(shù)據(jù)后自動(dòng)更新文件長度(實(shí)際做還是連續(xù)保存幾次數(shù)據(jù)后再程序自動(dòng)更新,否則數(shù)據(jù)每變動(dòng)一次就更新文件長度,FLASH擦寫10W次后就OVER了,延長使用壽命),看門狗數(shù)據(jù)間隔超時(shí)啟動(dòng),默認(rèn)的BAUD除數(shù)是120,只有4800的波特率,改為60,調(diào)試時(shí)是9600,以后正式做改為10,使通信波特率為57600),然后點(diǎn)擊“重新配置模塊”,將新參數(shù)燒錄進(jìn)去。
因?yàn)楸颈緵]有COM口,以前用FT232BL自制一個(gè)VCP電路出來,現(xiàn)在用深圳埃網(wǎng)通的MS1001S的串口服務(wù)器虛擬了個(gè)串口出來,插上U盤測試。然后用南京沁恒的模塊調(diào)試V1.5摸索測試。
插上U盤,串口自動(dòng)接收到0x15,查CH375HM.H頭文件里的定義是#define ERR_USB_CONNECT 0x15,即是檢測到USB設(shè)備連接事件磁盤已連接,拔掉接收到0x82,是ERR_DISK_DISCON,磁盤斷開或尚未連接的狀態(tài)碼。
點(diǎn)擊DISKSIZE命令,#define CMD_DiskSize 0x72,串口發(fā)送0x57 0xAB 0x72 0x00,
0x57 0xAB是三線制時(shí)的同步碼,3+1串口模式通訊時(shí)有STA#線通知MCU是命令還是數(shù)據(jù)。
手頭正好有個(gè)KINGMAX的2G U盤,DISKSIZE命令發(fā)出后,返回的數(shù)據(jù)是0x00 0x04 0x00 0x3c 0x3F 0XFF,其中第一個(gè)0x00代表命令發(fā)送狀態(tài)成功,第二個(gè)0x04代表返回的參數(shù)有4個(gè)字節(jié),接下來的4個(gè)字節(jié)的參數(shù)0x003C3FFF是該物理磁盤的總扇區(qū)數(shù),每扇區(qū)通常為512字節(jié),即該U盤總空間物理容量是(0x3C3FFF+1)*512 = 2,021,654,528。即是通常所說2G容量U盤。
為驗(yàn)證,把U盤插上電腦,用專業(yè)的WINHEX 15.1 SR-8軟件查看該U盤的一些基本物理信息,如圖(1)所示。Total Capacity 2,021,654,528 bytes,與使用U盤讀寫模塊DISKSIZE查詢后的信息一致。另外借助專業(yè)的WINHEX分析軟件,開始全面了解FAT16/FAT32文件系統(tǒng)存儲機(jī)制。