1. 程式人生 > >USB裝置的bulk-only批量傳輸

USB裝置的bulk-only批量傳輸

任何USB傳輸只能由主機發起

主機發送IN或OUT的請求只需一個令牌包,這個包含在USBH_BulkSendData()和USBH_BulkReceiveData()函式中,不需要程式設計者操心。

     為了詳細一點的說明這些,我要放幾幅圖,這幾幅圖來自《USB2.0與OTG規範及開發指南》。第一幅是BULK傳輸的步驟:

 

      1、令牌階段就是主機給裝置傳送一個輸入或輸出的令牌,告訴裝置主機需要和某個地址的裝置的某個端點進行輸入或輸出傳輸。第二幅圖是令牌包的格式,很簡單。這個STM32庫函式的底層會處理,不需程式設計者介入。

 

 

        2、資料階段是關鍵,主機和裝置之間會傳送資料包,首先看一下資料包的格式,如下圖。如圖1所示,這個階段如果是主機向裝置傳送資料包,則使用USBH_BulkSendData(),如果是主機跟裝置要資料則使用USBH_BulkReceiveData()。這兩個函式除了制定了資料傳輸的方向外,還規定了傳輸資料的長度和快取地址。

3、握手階段就是一個應答,告訴對方資料收到了或沒有資料要傳輸或出錯了等等。

 

以上文章是轉載他人的