一、摘要
? ? ? ?根據(jù)masstorage和Bulk-Only傳輸協(xié)議,使用CH559實(shí)現(xiàn)模擬U盤的功能,U盤容量根據(jù)外部存儲(chǔ)自由調(diào)整。用以解決數(shù)據(jù)轉(zhuǎn)存或者定制U盤功能。關(guān)鍵點(diǎn)在于CH559 USB設(shè)備模式初始化、扇區(qū)讀寫和外部存儲(chǔ)芯片的操作。
二、總體概述
? ? ? ?模擬U盤關(guān)鍵功能部件包括以下幾點(diǎn):
? ? ? ?(1)、具有USB設(shè)備功能的MCU或接口芯片(CH558,CH559,CH563),CH558只有一個(gè)USB設(shè)備接口,CH559有2個(gè)USB主機(jī)接口和1個(gè)USB設(shè)備接口,CH563的1個(gè)USB接口既可以做主機(jī)也可以做設(shè)備。
? ? ? ?(2)、根據(jù)實(shí)際需要或者接口選擇合適的外部存儲(chǔ)來(lái)作為U盤的存儲(chǔ)空間,比如SPI的串行Flash、E2PROMM,甚至是Nand Flash等。
? ? ? ?以上準(zhǔn)備完畢整體的操作流程如下所示:
? ??
三、硬件設(shè)計(jì)
? ? ? ?CH558、CH559模擬U盤使用的SPI接口的串行Flash,硬件如下圖:
? ??
? ? ? CH558,CH559是增強(qiáng)型51內(nèi)核的單片機(jī),內(nèi)置晶振,所以芯片外圍也足夠簡(jiǎn)潔。
? ? ? 芯片資源如下圖:
? ??
四、軟件設(shè)計(jì)
? ? ? ?軟件主要包括以下方面:
? ? ? ?(1)、USB設(shè)備模式初始化
? ?
? ? ? ?(2)、存儲(chǔ)芯片接口初始化
? ??
? ? ? ?(3)Bulk_Only傳輸
? ? ? ?CBW包:
? ??
? ? ?? CSW包:
? ??
? ??
五、可拓展功能
? ? ? ?(1)、其他存儲(chǔ)介質(zhì):除了以上提到的SPI接口的串行Flash,也可以替換成E2PROMM或者Nand falsh等。
? ? ? ?(2)、數(shù)據(jù)來(lái)源可以隨意指定,比如串口數(shù)據(jù)流,并口數(shù)據(jù)流,甚至其他溫濕度傳感器設(shè)備等。
? ? ? ?(3)、CH559+SPI串行Flash模擬U盤測(cè)試參數(shù)
? ? ?
? ??
六、應(yīng)用場(chǎng)合
? ? ? ?雖然現(xiàn)在U盤也不是很貴,但也不代表這種應(yīng)用生存的空間,此類應(yīng)用的典型場(chǎng)合,比如:
? ? ? ?(1)、代替光盤為客戶提供說(shuō)明書,可以將說(shuō)明資料直接放到板子的存儲(chǔ)介質(zhì)內(nèi)。
? ? ? ?(2)、U盤數(shù)據(jù)監(jiān)控、截取和加密。
? ? ? ?(3)、采集數(shù)據(jù)數(shù)據(jù)暫存,方便拷貝到主機(jī)。
? ? ? ?(4)、定制U盤等。
? ??
七、源碼
? ? ? ?CH558、CH559模擬U盤的源碼(C語(yǔ)言):559模擬U盤源碼.rar
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ?CH563模擬U盤的源碼(C語(yǔ)言):? ? ? ? ??CH563模擬U盤源碼.rar
? ??