小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Explore USB with WinUSB

 夢醉千秋 2019-03-07
    文章原出處: Nuts & Volts

文章前面基礎部分講的很簡單易懂,后面全是結合自己的PIC單片機所開發(fā)的內(nèi)容,所以不具備通用性也就不翻譯了,有興趣點開鏈接看看。

如果你在開發(fā)一個設備需要和PC通信,使用USB是一個好的機會。對于每個USB設備,PC分配一個軟件驅動。Windows會提供一些特定的USB類的驅動,例如human interface,printer,或者mass storage。 若你的設備并不屬于這些類,微軟的WinUSB是一個好的選擇。
在這個文章里,我會展示怎么去編輯和訪問WinUSB設備。WinUSB驅動需要PC環(huán)境是XP SP2或者之后的版本,包括了Vista和win7.

傳輸類型
每一個USB的數(shù)據(jù)傳輸都是建立在PC和USB設備的端點之間的。設備端點則是設備中的一個緩沖區(qū)來儲存接收的數(shù)據(jù)或者將要發(fā)送的數(shù)據(jù)。每一個USB設備都必須支持0號端點,0號端點是一個雙方向端點。除此之外,其他的端點可以任意配置為IN或OUT。 

即使端點在設備內(nèi)部,但根據(jù)USB規(guī)范,端點的方向還是從PC端來看的。即,IN端點表示從設備把數(shù)據(jù)傳輸?shù)絇C。OUT端點表示從PC把數(shù)據(jù)送到設備。這個命名方法在設備端編程的時候很容易搞混。

USB現(xiàn)在大規(guī)模使用的一個原因是它支持4個傳輸方式,每一個都有不同的特性。WinUSB支持control,bulk,和interrupt傳輸。control傳輸使用的是端點0號,而其他的傳輸方式則可以用其他的端點。

control傳輸方式是一個有固定樣式的數(shù)據(jù)傳輸方式。在一個單傳輸里,只有control傳輸可以在兩方向傳輸。在設備插入PC后,通過一個叫枚舉的過程,PC使用control傳輸來識別設備。

WinUSB設備可以在用戶自定義命令下使用control傳輸來收發(fā)數(shù)據(jù)。例如,你可以定義一個請求來設置或者讀取一個開關的值,發(fā)送數(shù)據(jù)來配置設備操作,或者得到傳感器內(nèi)容之類的。

一個control傳輸有2個或者3個階段。為了識別新插入的USB設備,PC會使用control傳輸來從設備獲取一些叫descriptor的數(shù)據(jù)結構。在Setup階段,PC發(fā)送請求。在Data階段,設備發(fā)送所要求的descriptor。在Status階段,PC發(fā)送一個ACK來表示收到了descriptor。 PC也可以在Data階段用control傳輸來發(fā)送數(shù)據(jù)信息到設備,則在Status階段,由設備來發(fā)送ACK信息表示收到數(shù)據(jù)。有一些請求沒有Data階段。

一個USB主機會保留一部分總線帶寬給control傳輸: 在low-speed和full-speed端點下10%,在high-speed端點下20%。如果總線不忙,control傳輸可以使用比保留帶寬更大的帶寬。但是所有的設備都使用一個總線,所以總線忙的時候,control傳輸可能需要等待。

其他的傳輸模式則沒有多個傳輸階段且任意傳輸數(shù)據(jù)。在總線理想情況下,bulk傳輸最快。但是bulk傳輸沒有保留的帶寬,所以在總線忙的時候,bulk傳輸需要等待。一般bulk傳輸使用在打印機或者掃描儀這類只需要快速傳輸?shù)脑O備上。

對于interrupt傳輸,主機確保了一個IN端點收到數(shù)據(jù)或者OUT端點發(fā)送數(shù)據(jù)的最大時間間隔。一般用于鼠標,鍵盤等需要快速反應用戶輸入的設備。

isochronous傳輸有一個確定的傳輸速度但是不像其他的傳輸模式,它不用ACK且數(shù)據(jù)接受者不能要求重新發(fā)送壞掉的數(shù)據(jù)。一般用于用戶不會太在意小量的數(shù)據(jù)破損的流媒體通信。WinUSB不支持isochronous傳輸。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多