<wbr id="9qp22"><legend id="9qp22"><rt id="9qp22"></rt></legend></wbr>
<th id="9qp22"><noframes id="9qp22"><form id="9qp22"></form></noframes></th>

      <dd id="9qp22"><big id="9qp22"><video id="9qp22"></video></big></dd>
      <th id="9qp22"></th>
        <rp id="9qp22"><acronym id="9qp22"></acronym></rp>
        <dd id="9qp22"><pre id="9qp22"></pre></dd>

        1. <dd id="9qp22"><pre id="9qp22"></pre></dd>
          1. 打印

            [單片機芯片] CH5XX實現U盤控制器應用實例

            [復制鏈接]
            226|3
            跳轉到指定樓層
            樓主
            本帖最后由 WCHTech2 于 2019-9-27 15:35 編輯

            一、摘要
                根據Mass Storage Class(大容量/海量存儲器,以下簡稱MSC)協議,使用CH558、CH559和CH563分別實現模擬全速和高速U盤的功能,外部存儲介質和U盤容量支持自由調整,用以解決數據轉存或者定制U盤等功能。關鍵在于CH5XX USB設備控制器操作、Bulk-Only傳輸協議、SCSI命令支持和存儲介質讀寫這幾個部分。
            二、總體概述
            模擬U盤關鍵功能部件包括以下幾點:
            (1)、USB Mass Storage Framework
            (2)、以U盤為例,下圖是PC和U盤的內部抽象邏輯框圖

            CH558、CH559和CH563內置USB設備控制器和PHY,對于實現U盤控制器的應用,只需要配置USB設備模式和讀寫外部存儲介質。

            (3)、USB MSC CBI/BBB TransportUSB MSC Control/Bulk/Interrupt Transport 只能用于Full-speed的軟盤(Floppy drive),這里不贅述,有興趣可以自己百度。Bulk-only傳輸類控制、批量都是通過批量端點,即用Bulk端點來傳送命令塊,數據,狀態,因此才類似于Control/Bulk/Interrupt被簡稱為CBI一樣,而Bulk/Bulk/Bulk被簡稱為BBB。


            (4)、USB MSC Protocol relation
                傳輸通訊:Host和Device之間的數據通訊根據存儲介質(Floppy或Flash)分別使用UFI和SCSI協議,更深入的設備特性配置參考More Feature。
            (5)、U盤配置描述符Class,Subclass和Protocol對應關系對應的,了解USB的都知道,每個設備的描述符中,都有對應下面這幾個域:bInterfaceClass 、 bInterfaceSubClass 、 bInterfaceProtocol分別對應著USB的Class,Subclass,Protocol。而對于我們此處的U盤:bInterfaceClass=0x08=Mass Storage,Class就是USB Mass Storage Class,bInterfaceSubClass=0x06=SCSI Transparent,Subclass,所支持的列表如下:
            SubClass Codes Mapped to Command Block Specifications
            bInterfaceProtocol=0x50=Bulk Only Transport,Protocol,所支持的列表如下:Mass Storage Transport Protocol

            (6)、MSC使用的SCSI命令集0x00        TestUnitReady               0x03        RequestSense
            0x12        Inquiry                     0x1A        ModeSense6
            0x1B        StartStop                   0x1E        MediumRemoval
            0x23        ReadFormatCapacity          0x25        ReadCapacity
            0x28        Read(10)                    0x2A        Write(10)
            0x2F        Verify                      0x5A        ModeSense10SCSI命令使用各位可以閱讀代碼,或者去USB-IF搜索SCSI協議,實際上U盤所使用的所有SCSI命令集都可以參考UFI文檔,它比SCSI標準文檔更簡潔明了。
            (7)、Bulk-Only傳輸協議詳細的規范請閱讀《Universal Serial BusMass Storage ClassBulk-Only Transport》)設備插入到USB 后,USB 即對設備進行搜索,并要求設備提供相應的描述符。在USBHost 得到上述描述符后,即完成了設備的配置,識別出為Bulk-Only 的Mass Storage 設備,
            然后即進入Bulk-Only 傳輸方式。在此方式下,USB 與設備間的所有數據均通過Bulk-In和Bulk-Out 來進行傳輸,不再通過控制端點傳輸任何數據。在這種傳輸方式下,有三種類型的數據在USB 和設備之間傳送,CBW、CSW 和普通數據。CBW(Command Block Wrapper,即命令塊包)是從USB Host 發送到設備的命令,命令格式遵從接口中的bInterfaceSubClass 所指定的命令塊,這里為SCSI 傳輸命令集。USB設備需要將SCSI 命令從CBW 中提取出來,執行相應的命令,完成以后,向Host 發出反映 當前命令執行狀態的CSW(Command Status Wrapper),Host 根據CSW 來決定是否繼續發 送下一個CBW 或是數據。Host 要求USB 設備執行的命令可能為發送數據,則此時需要將 特定數據傳送出去,完畢后發出CSW,以使Host 進行下一步的操作。USB 設備所執行的操作可用下圖描述
            CBW和CSW命令包格式在程序里面有或者參看Bulk-Only協議。
            三、硬件設計        CH558、CH559模擬U盤使用的SPI接口的串行Flash,硬件如下圖:

            CH558,CH559是增強型51內核的全速(12Mbps)USB單片機,內置晶振,芯片外圍也足夠簡潔。CH563是32位高速USB MCU,內置網絡PHY和協議棧。芯片資源如下圖:


            四、軟件設計軟件主要包括以下方面:
            (1)、USB設備模式初始化
            (2)、存儲芯片接口初始化

            (3)Bulk_Only傳輸CBW包:
            CSW包:
            五、可拓展功能
            (1)、其他存儲介質:除了以上提到的SPI接口的串行Flash,也可以替換成EEPROM或者Nand falsh等非掉電易失存儲介質。
            (2)、數據來源可以隨意指定,比如串口數據流,并口數據流,甚至其他溫濕度傳感器設備等。(3)、CH559+SPI串行Flash模擬U盤測試參數
            測試系統,功能
            復制
            粘貼
            創建
            格式化
            XP
            WIN7
            WIN10
            安卓

            六、應用場合應用的典型場合,比如:
            (1)、代替光盤為客戶提供說明書,可以將說明資料直接放到板子的存儲介質內。
            (2)、U盤數據監控、截取和加密。
            (3)、采集數據數據暫存,方便拷貝到主機。
            (4)、定制U盤等。
            CH558CH559模擬U盤的源碼(C語言): CH559&amp;8模擬U盤.rar (48.04 KB, 下載次數: 2)

            CH563模擬USB2.0高速U盤的源碼(C語言): CH563模擬U盤.rar (345.07 KB, 下載次數: 1)





            使用特權

            評論回復
            沙發
            | 2019-10-4 14:29 | 只看該作者
            我i的項目需要讀寫U盤,有兩個方案可供選擇:帶USB HOST的ARM芯片如STM32F105;外掛沁恒的51內核單片機。

            還是一個成本問題,若沁恒的這種芯片價格能低于2元,還是可以選擇的。
            多一個國產MCU的另外一個好處是增加破解者的成本。

            使用特權

            評論回復
            板凳
            | 2019-10-8 07:33 | 只看該作者
            學習

            使用特權

            評論回復
            地板
             樓主 | 2019-10-8 13:17 | 只看該作者
            dsyq 發表于 2019-10-4 14:29
            我i的項目需要讀寫U盤,有兩個方案可供選擇:帶USB HOST的ARM芯片如STM32F105;外掛沁恒的51內核單片機。

            ...

            CH559 CH548 CH549都可讀寫U盤,價格可以聯系025-52638389 張**。

            使用特權

            評論回復
            掃描二維碼,隨時隨地手機跟帖
            *滑动验证:
            您需要登錄后才可以回帖 登錄 | 注冊

            本版積分規則

            我要發帖 投訴建議 創建版塊 申請版主

            快速回復

            您需要登錄后才可以回帖
            登錄 | 注冊
            高級模式

            論壇熱帖

            在線客服 快速回復 返回頂部 返回列表
            成人短片线上看