USB裝置的bulk-only批量傳輸
任何USB傳輸只能由主機發起
主機發送IN或OUT的請求只需一個令牌包,這個包含在USBH_BulkSendData()和USBH_BulkReceiveData()函式中,不需要程式設計者操心。
為了詳細一點的說明這些,我要放幾幅圖,這幾幅圖來自《USB2.0與OTG規範及開發指南》。第一幅是BULK傳輸的步驟:
1、令牌階段就是主機給裝置傳送一個輸入或輸出的令牌,告訴裝置主機需要和某個地址的裝置的某個端點進行輸入或輸出傳輸。第二幅圖是令牌包的格式,很簡單。這個STM32庫函式的底層會處理,不需程式設計者介入。
2、資料階段是關鍵,主機和裝置之間會傳送資料包,首先看一下資料包的格式,如下圖。如圖1所示,這個階段如果是主機向裝置傳送資料包,則使用USBH_BulkSendData(),如果是主機跟裝置要資料則使用USBH_BulkReceiveData()。這兩個函式除了制定了資料傳輸的方向外,還規定了傳輸資料的長度和快取地址。
3、握手階段就是一個應答,告訴對方資料收到了或沒有資料要傳輸或出錯了等等。
以上文章是轉載他人的
相關推薦
USB裝置的bulk-only批量傳輸
任何USB傳輸只能由主機發起 主機發送IN或OUT的請求只需一個令牌包,這個包含在USBH_BulkSendData()和USBH_BulkReceiveData()函式中,不需要程式設計者操心。 為了詳細一點的說明這些,我要放幾幅圖,這幾幅圖來自《U
使用Bulk Binding批量綁定的模式高效處理ORACLE大量數據
tar html 上下文 font line pda test all dbms 用批量綁定(bulk binding)的方式。當循環執行一個綁定變量的sql語句時候,在PL/SQL 和SQL引擎(engines)中,會發生大量的上下文切換(context s
基於LabVIEW和Python的USB串口數據傳輸
傳輸 表示 串口編程 一個 信息 發現 實現 上位機 功能 1.目的是想通過上位機LabVIEW編程,實現通過USB串口傳輸至樹莓派,樹莓派接收到數據後顯示,並把收到的數據返還給上位機。 2.樹莓派USB串口編程: (1)在網上借閱有關樹莓派USB通信,就會發現,Pytho
如何檢視LINUX下的一個USB裝置使用的驅動模組
http://unix.stackexchange.com/questions/60078/find-out-which-modules-are-associated-with-a-usb-device Finding the Kernel Driver(s) Th
虛擬機器VMware下ubuntu無法識別usb裝置的除錯過程
插入U盤或者串列埠轉USB裝置,採用lsusb命令找不到新插入的U盤 shell中執行ls /dev/tty*也找不到USB相關裝置 按照網上教程,設定虛擬機器->設定->硬體 ,將usb相關選項全打鉤,新增串列埠並將其物理連結至windows裝置管理器下顯示
WDF開發USB裝置驅動教程(1)
PDF下載地址(1.2版):連結地址 CY001開發板討論帖:連結地址 注:本文件新版本已出,請在部落格中查詢,或下載PDF全文文件。 連結地址WDF開發USB裝置驅動教程 by 張佩 文件說明 &
winusb —— 不再為你的usb裝置編寫驅動
【blog.csdn.net/lanmanck】 曾幾何時我們找工作還發現有個驅動工程師職位,月薪也不低,沒接觸過的人程式碼壓根看不懂。 今天可好了,如果不太追求差異化,不用驅動也能讓系統與USB裝置通訊了,Linux就不說了,libusb很好用,現在說下windows的。 Winusb
Windows下USB磁碟開發系列二:列舉系統中所有USB裝置
上篇 《Windows下USB磁碟開發系列一:列舉系統中U盤的碟符》介紹了很簡單的獲取系統U盤碟符的辦法,現在介紹下如何列舉系統中所有USB裝置(不光是U盤)。 主要呼叫的API如下: 1,呼叫SetupDiGetClassDevs()獲取指定裝置型別的控制代碼; 2,呼叫SetupDi
獲取指定USB裝置的VID PID和SerialNumber
裝置廠商ID 查詢, google www.usb.org + vendor id list 所需標頭檔案庫檔案: #include <Setupapi.h> , Setupapi.lib void CCamera
kvm虛擬機器讀取宿主機usb裝置
1、檢視usb裝置,用lsusb檢視宿主機usb裝置資訊; 2、在kvm虛擬機器的xml檔案中新增如下: <hostdev mode='subsystem' type='usb'> <s
STM32 自定義HID USB裝置的實現
最近需要使用STM32開發一個裝置通過HID協議與主機通訊,於是開始學習USB,發現USB這個體系實在太龐大了,直接看USB的例程根本看不懂,完全找不到突破口,最後在網上找到一本不錯的書《圈圈教你玩USB》,這本書能夠很好地帶你入門。列舉過程,請求,令牌,資料包,端點,描述符,這些知識都講的很清
USB裝置路徑是什麼,是什麼格式的?
原始博文連結地址:https://www.silabs.com/community/interface/knowledge-base.entry.html/2013/11/21/windows_usb_devicep-aGxD 現整理翻譯如下,但鼓勵還是看原文好,因為我的英語也很菜o(╥﹏╥)o
Linux下,檢視USB裝置資訊
Linux下,檢視USB裝置資訊 首先需要將usbfs掛載一下,然後才能檢視。$ mount -t usbfs none /proc/bus/usb $ cat /proc/bus/usb/devices 或者在檔案(/etc/fstab)中新增如下這句:
Linux USB 驅動開發(一)—— USB裝置基礎概念
Linux USB 驅動開發(一)—— USB裝置基礎概念 在終端使用者看來,USB裝置為主機提供了多種多樣的附加功能,如檔案傳輸,聲音播放等,但對USB主機來說,它與所有USB裝置的介面都是一致的。一個USB裝置由3個功
Linux USB裝置驅動程式設計 和 USB下載線驅動設計
Linux USB裝置驅動程式設計 和 USB下載線驅動設計 USB裝置驅動模型 USB裝置包括配置(configuration)、介面(interface)和端點(endpoint),一個USB裝置驅動程式對應一個USB介面,而非整個USB裝置。 在Lin
java流:轉換流,裝置之間資料的傳輸,更換輸入源、輸出源
轉換流InputStreamReader、OutputStreamWriter package com.qianfeng.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io
USB裝置的VID與PID
一、VID和PID PID/VID唯一標識一個裝置,HardwareID是為了給系統識別的 ,他是根據PID/VID而生成的。這個與序列號沒什麼關係,序列號一般都是廠家固化到晶片中的資訊而已。GUID只是為了標誌你安裝的裝置是屬於一個什麼類當中,這個類可以顯示再裝置管理器中。
USB裝置模擬框架設計指南——2.DSF體系結構
DSF程式設計環境由實現USB裝置模擬器的各種元件的一組COM物件、一組執行時服務和USB 2.0EHCI控制器模擬器組成。 EHCI控制器模擬器被實現為EHCI迷你埠(Usbehci_dsf.sys)的DSF特定版本上的較低裝置過濾器。EHCI小埠的DSF版本與控制器模擬
關於VMware找不到USB裝置問題
這幾天在調cubieboard的液晶屏的時鐘,今天早上開啟VMware,開啟虛擬機器後,發現插上cubieboard但虛擬機器中找不到USB介面,在終端中輸入adb shell說是找不到裝置,我去了 ,前幾天都沒事的說,我發現手機連上了電腦但是虛擬機器還是找不到。電腦上有連線