* 需要設(shè)計參考資料(光盤資料可以參考FILELIST.TXT文檔,網(wǎng)上資料更新) U盤文件讀寫模塊的資料在光盤CH375/MODULE/PUB目錄下CH375HM.PDF,網(wǎng)上提供最新資料。 常規(guī)問題可以參考單片機通過CH375讀寫U盤的問題解答。 * 有關(guān)U盤文件的一些基礎(chǔ)知識 WINDOWS下U盤的文件系統(tǒng)主要有FAT12/FAT16/FAT32,我們的子程序庫都能支持,使用角度感覺無區(qū)別。 單片機不需要考慮文件系統(tǒng),只需要了解文件名、文件長度等基礎(chǔ)知識。一個U盤中可以有多個文件,每 個文件都是一組數(shù)據(jù)的集合,以文件名區(qū)分和識別。文件長度是指文件中有效數(shù)據(jù)的長度,而實際占用 的磁盤空間通常大于或者等于文件長度,實際文件數(shù)據(jù)的存放可能不是連續(xù)的,而是通過一組“指針” 鏈接的多個塊(也就是分配單元或簇),從而能夠根據(jù)需要隨時增大文件長度以容納更多數(shù)據(jù)。目錄是 為了便于分類管理,管理者可以人為指定將多個文件歸檔在一起,例如2004年的文件歸到一個目錄中。 * 有關(guān)U盤模塊的一般介紹 U盤模塊可以作為系統(tǒng)集成和單片機系統(tǒng)的一個實現(xiàn)特定功能的部件,與單片機系統(tǒng)之間的接口為8位并 口或者異步串口,也可以定制其它接口。實際的硬件樣品提供標(biāo)準(zhǔn)版(支持TTL串口或者8位并口)和串 口版(DB9插針,支持RS232串口,可改為TTL)。模塊對單片機系統(tǒng)的硬件要求很低,代碼要幾百字節(jié), RAM最少可以是幾個字節(jié)(數(shù)據(jù)流方式)或者幾十個字節(jié)(字節(jié)讀寫方式)或者512字節(jié)(扇區(qū)方式)。 * 關(guān)于U盤模塊的程序升級和功能配置 U盤模塊內(nèi)部的單片機是可以隨時升級程序的,當(dāng)然也可以由用戶自行編寫程序下載。廠家隨時提供最 新版的模塊程序升級包CH375HMU.ZIP,目標(biāo)程序格式為專用BIN格式,可以由用戶通過工具軟件下載。 廠家提供的模塊目標(biāo)程序分為三種版本,與硬件無關(guān),可以下載到標(biāo)準(zhǔn)版或者串口版模塊中: 標(biāo)準(zhǔn)版只支持FAT12/FAT16、標(biāo)準(zhǔn)版支持FAT12/FAT16/FAT32、串口版支持FAT12/FAT16/FAT32 標(biāo)準(zhǔn)版的程序可以使用內(nèi)部看門狗,由于看門狗硬件不同,所以標(biāo)準(zhǔn)版程序只能使用在廠家的模塊中。 標(biāo)準(zhǔn)版程序可以支持并口或者串口,因為要判斷,所以如果用于串口,標(biāo)準(zhǔn)版的程序效率不如串口版。 串口版的程序只支持串口,沒有內(nèi)部看門狗,但是支持多種單片機,包括用戶自己做的模塊硬件。 要使用模塊的看門狗,那么應(yīng)該下載標(biāo)準(zhǔn)版程序,并且在配置模塊時選中檢查串口兩數(shù)據(jù)間隔超時。 要使用模塊的USB在線配置和程序升級功能,那么應(yīng)該定購廠家的模塊硬件,定型產(chǎn)品可以自己做硬件。 * 如何定制模塊的功能 因為模塊內(nèi)部有單片機,所以可以由其主動采集數(shù)據(jù)。模塊的串口版源程序可以開放給小批量客戶,便 于用戶自己修改源程序加上特定功能,例如使模塊主動采集外部儀器的數(shù)據(jù),修改為其它專用接口等。 另外,我們還提供帶LCD顯示的數(shù)據(jù)采集器成品,功能可以定制,用于從串口等接口采集數(shù)據(jù)到U盤中。 * 模塊產(chǎn)生的文件在WINDOWS下無法讀取或者刪除不掉 首先文件名必須符合DOS規(guī)范(WINDOWS下的小寫或長文件名實際上都對應(yīng)一個自動產(chǎn)生的DOS文件名): 1、文件名分為兩部分,主名和擴展名,之間為小數(shù)點分開。目錄名與文件名類似,下同。 2、擴展名可以省略,如果沒有擴展名,小數(shù)點也必須省去,擴展名代表文件類型,只是代表而已。 3、主名長度不超過8個字符,擴展名長度不超過3個字符。 4、必須是大寫字母A-Z、數(shù)字0-9、下劃線等,而不能用特殊字符例如空格、斜杠、大于小于等。 5、文件名以00H結(jié)束。 例如有效文件名,字符串的最后以00H結(jié)束,C語言是"\x0": A B2KD9DI8 D4889.C D2004_12.TXT 中文.DOC 例如無效文件名 a 小寫 B2KD8D18X 主名太長 D48 89.C 空格無效 DOIW44I4.TXT2 擴展名太長 中文.DoC 小寫 實際文件名還要加上左斜杠以指定目錄,例如,strcpy(mCmdParam.Create.mPathName,"/MYFILE.TXT"); 注意在C語言中容易出現(xiàn)strcpy(mCmdParam.Create.mPathName,"\MYFILE.TXT");右斜杠必須是兩個。 另外ExecCommand(CMD_FileCreate,sizeof("/MYFILE.TXT")); 丟棄了文件名的結(jié)束符, 應(yīng)該改為ExecCommand(CMD_FileCreate,sizeof("/MYFILE.TXT")+1); 加上一個字節(jié)是文件名結(jié)束符, 文件名后面必須帶00H結(jié)束,復(fù)制和輸出時也要加上,所以長度比文件名的字符數(shù)大1。 因為大多數(shù)用戶都使用固定的文件名,不需要復(fù)雜的功能,所以我們沒有在程序庫中增加代碼自動處理 大小寫轉(zhuǎn)換等問題,而是由用戶根據(jù)需要自行處理,以節(jié)約不需此功能時的代碼。 另外,寫完文件后要及時修改文件長度,如果寫入了數(shù)據(jù)而文件長度為0,那么WINDOWS也讀不出數(shù)據(jù)。 對于已經(jīng)發(fā)生錯誤的U盤,在重新使用前應(yīng)該在WINDOWS下做磁盤掃描,修正原有錯誤后再使用。 * 在U盤中無法創(chuàng)建更多文件 對于FAT12和FAT16文件系統(tǒng)的U盤,默認(rèn)情況下,根目錄下最多只能有512個文件(含子目錄和部分已被 刪除的文件),多了就無法創(chuàng)建。如果必須產(chǎn)生更多文件,兩種方法可選:一是創(chuàng)建子目錄,在子目錄 中可以無限制地創(chuàng)建更多文件;二是在FAT32文件系統(tǒng)的U盤根目錄下可以無限制地建議更多文件。 * 為何在低波特率下通訊正常,調(diào)高了就不行 可靠的串口通訊,波特率誤差應(yīng)該小于1%。例如,模塊的X2頻率為18.432MHz,而單片機系統(tǒng)的頻率為 24MHz,那么兩者在高波特率通訊時因為頻率誤差大而收發(fā)失誤多。要確保計算波特率時結(jié)果是整數(shù), 為可靠起見,如果單片機系統(tǒng)的頻率為22.1184MHz,那么模塊最好也用22.1184MHz,這樣任何波特率下 雙方波特率完全沒有誤差,當(dāng)然通訊更穩(wěn)定。在批量訂購模塊時,可以指定模塊的X2的頻率。 * 我不是用MCS51單片機,為何每個返回的文件長度總是不正確,而其它操作基本正常 文件長度是雙字32位數(shù)據(jù),對于字?jǐn)?shù)據(jù)或者雙字?jǐn)?shù)據(jù),最低字節(jié)在前還是最高字節(jié)在前,分別稱為小端 和大端模式,模塊默認(rèn)的配置為大端模式,適用于C語言的MCS51單片機,如果是MSP430、ARM、8086等 單片機,那么應(yīng)該選擇小端模式。選擇大小端可以由用戶自行通過USB在線配置完成。 * 如果讀寫文件時出錯如何處理 當(dāng)U盤閃存壽命快結(jié)束時,寫文件容易出錯,簡單的解決方法是重試。在ExecCommand子程序中添加對錯 誤狀態(tài)USB_INT_DISK_RETRY的處理,具體可以參考最新下載的模塊例子程序。 特別提醒,當(dāng)U盤閃存壽命快結(jié)束時,包括WINDOWS系統(tǒng)在內(nèi),即使寫成功并不代表U盤數(shù)據(jù)一定正確。 * 如何了解U盤模塊是否工作 當(dāng)不確定U盤模塊是否能工作時,可以通過U盤演示功能進行測試,首先將模塊上電,然后將跳線插上, 此時LED亮,插上U盤(也可以通電前插上U盤),模塊將會在U盤中產(chǎn)生一個文件,文件內(nèi)容是當(dāng)前U盤 模塊的版本號,工作模式和接口配置值,以及串口方式時的波特率除數(shù),對于串口要檢查波特率設(shè)置。 另外,還可以用我們提供的演示/調(diào)試工具(在升級工具包CH375HMU.ZIP中)通過計算機串口演示。 * CH375支持哪些U盤 目前CH375支持市面上90%以上的標(biāo)準(zhǔn)功能的U盤,如果有U盤不支持,首先下載網(wǎng)上最新的子程序庫或者 升級模塊程序,如果仍然不支持,請將U盤型號發(fā)至我們的技術(shù)信箱,若能直接將U盤寄至我公司更好。 另外,帶特定額外功能的U盤可能不支持,內(nèi)置USB-HUB的U盤如果支持就要增加代碼。
如何用pc機串口通過模塊對u盤進行讀寫操作?
你可以用我們的串口調(diào)試工具啊,那個就是可以通過計算機的PC口來操作U盤
請問是直接輸入十六進制的命令嗎?可是我不知道怎么輸入命令的參數(shù)啊。。謝謝。。。。。
哪兒有串口調(diào)試工具???
在網(wǎng)站上面有下載
我剛剛買的串口版USB模塊,按照上述 “如何了解U盤模塊是否工作”做了測試,怎么不見U盤中產(chǎn)生文件啊?請問在這個測試中還需要接單片機或PC機嗎?
是我沒接J1跳線,呵呵
我用字節(jié)模式寫數(shù)據(jù),怎么樣才能讓數(shù)據(jù)在記事本中回車換行呢?是加0XD和0XA嗎?但是我加了不行啊,出現(xiàn)亂碼,請指點一二,謝謝。
是0X0D,0X0A,在后面在加一個0X00看可以不可以?
請教,我用的是標(biāo)準(zhǔn)版的u盤文件讀寫模塊如何確定模塊可以正常工作?
WCH的技術(shù)高手你們好: 我現(xiàn)在遇到一個棘手的問題: 以前我們U盤讀寫模塊,讀寫容量小于用1G的U盤很正常; 現(xiàn)在U盤容量都很大,讀1G的就出錯. 我的模塊是4月份購買的,不知道近期系統(tǒng)是否有升級?? 盼復(fù)!!!!!
4月份的模塊應(yīng)該是最新的模塊,你可以試下模塊的自動演示的功能,看下這個U盤支持不支持自動演示
技術(shù)高手你們好: 我想用AVR單片機來驅(qū)動標(biāo)準(zhǔn)版的模塊,但是我用的沒有外部總線,不知道你們有沒有現(xiàn)成的程序可以提供參考呢?我用軟件來模擬總線的時序但是不好使。非常郁悶。
我們這里有一個AVR8515的例子程序,不過是總線的,你可以直接去修改三個函數(shù)(寫索引地址,寫數(shù)據(jù)和讀數(shù)據(jù)),要是還是不好用的話,你可以將你的三個讀寫子函數(shù)帖出來看下,我們可以給你修改下時序。
我現(xiàn)在使用U盤讀寫模塊,遇到打開文件返回碼為42H或B3H,請幫忙解決!!!!