1 USB Bulk 是什麼
USB 是即插即用使用差動信號的裝置介面,是以 端點 ( Endpoint ),做為傳輸裝置的輸出入端,透過不同的端點 ( Endpoint ) 和模式,來進行與裝置的溝通,USB Bulk 就是USB 四種傳輸模式之一的批量資料傳輸 ( Bulk ) 的端點傳輸
1.1 傳輸方塊圖
USB 傳輸方塊圖,如『圖1.1.1』( 註1 ), 其中 IRP是 I/O Request Packet ,由圖所示Bulk 傳輸是使用 1個或多個的 IN / OUT 資料傳輸 (Transaction ),一個 USB 的資料傳輸通常會有 3 個階段 Token , Data , handshake的封包
2 USB Bulk 裝置設定
一般自定義的 Bulk 是需要 driver 的,或是強制指定使用 Windows 內建的 driver ,但強制指定的方式,可能只能用於 底層 driver 呼叫,例如 BUS hound
所以來說一般自定義的 Bulk,一般是改寫 USBCDC,或者可以是直接使用 USBCDC 和 Mass storage 來做為 Bulk 的傳輸裝置。若是直接從中斷的 Endpoint 改成 Bulk 的 Endpoint ,還需要修改要傳輸的封包大小,另外 Class 要宣告成 0xFF 自定義的,
Sub Class 和 protocol 一般就設定成 0x00 就可以了。之後用 BUS hound 的 Endpoint 來傳輸,就是 簡易修改之後 的Bulk 傳輸,但一般的 driver 可能就無法使用此方式,與你的 USB device 溝通。若是使用 USBCDC ,電腦就可以透過一個 USB to Com port 的裝置,直接從 電腦端利用此 Comport 與 Device 的 USB Endpoint 來做 Bulk傳輸使用。若是使用 USB Mass storage ,則 Device 就會形成一個虛擬的 USB Disk ,在傳輸檔案的過程,就是從電腦端利用此 USB Disk 與 Device 的 USB Endpoint 來做 Bulk 傳輸使用。
評論