您的位置:極速下載站 → 電腦軟件 → 系統(tǒng)軟件 → 裝機(jī)必備 → WinUSB
有時候我們需要重裝系統(tǒng)或者進(jìn)入PE系統(tǒng),我們常用的方法是使用U盤啟動盤,前提是你需要有一個U盤和一款U盤啟動盤制作工具,怎么制作U盤啟動盤?極速小編為你介紹一款國外的U盤啟動制作工具(WinUSB),它可以幫你將多個系統(tǒng)例如Win7/Win8/Win10裝在你的U盤中,然后隨時啟動你需要的系統(tǒng),非常強(qiáng)大。
基本介紹
如果您正在開發(fā)需要與PC通話的設(shè)備,那么涉及USB的可能性很大。對于每個USB設(shè)備,PC分配一個軟件驅(qū)動程序。 Windows為符合定義的USB類(例如人機(jī)界面,打印機(jī)或大容量存儲)的設(shè)備提供驅(qū)動程序。如果您的設(shè)備不適合定義的類,則可以使用Microsoft的WinUSB驅(qū)動程序。
在本文中,我將展示如何編程和訪問WinUSB設(shè)備。 WinUSB驅(qū)動程序要求使用Windows XP SP2或更高版本的PC,包括Windows Vista和Windows 7。
每種用途的傳輸類型
每個USB數(shù)據(jù)傳輸位于PC或其他USB主機(jī)與設(shè)備端點(diǎn)之間。設(shè)備端點(diǎn)是存儲接收到的數(shù)據(jù)或要發(fā)送的數(shù)據(jù)的緩沖區(qū)。每個設(shè)備必須支持端點(diǎn)零,這是雙向的。另外,可選的端點(diǎn)地址每個都有一個數(shù)字(1-15)和一個方向(IN或OUT)。
即使端點(diǎn)駐留在設(shè)備上,USB規(guī)范也會從主機(jī)PC的角度定義端點(diǎn)方向。 IN端點(diǎn)向PC發(fā)送數(shù)據(jù),OUT端點(diǎn)從PC接收數(shù)據(jù)。在為設(shè)備端編寫代碼時,這種命名約定可能會引起混淆!
USB如此多才多藝的一個原因是它支持四種傳輸類型,每種類型都有不同的優(yōu)勢。 WinUSB支持控制,批量和中斷傳輸?刂苽鬏斒褂枚它c(diǎn)零。其他傳輸類型可以使用端點(diǎn)1和更高端點(diǎn)。
控制傳輸提供了一種結(jié)構(gòu)化的方式來發(fā)送請求和數(shù)據(jù)并接收響應(yīng)?刂妻D(zhuǎn)移是唯一一種可以在單一轉(zhuǎn)移中雙向傳遞信息的類型。設(shè)備連接后,在一個名為枚舉的過程中,主機(jī)使用控制傳輸來了解設(shè)備。
WinUSB設(shè)備也可以使用控制傳輸在供應(yīng)商定義的請求中發(fā)送和接收數(shù)據(jù)。例如,您可以定義設(shè)置或讀取開關(guān)的請求,發(fā)送數(shù)據(jù)以配置設(shè)備操作或接收傳感器讀數(shù)。
控制轉(zhuǎn)移有兩個或三個階段。要了解新連接的設(shè)備,主機(jī)使用控制傳輸從設(shè)備請求稱為描述符的數(shù)據(jù)結(jié)構(gòu)。在安裝階段,主機(jī)發(fā)送請求。在數(shù)據(jù)階段,設(shè)備發(fā)送請求的描述符。在狀態(tài)階段,主機(jī)確認(rèn)接收描述符。主機(jī)也可以使用控制傳輸將信息發(fā)送到數(shù)據(jù)階段的設(shè)備,設(shè)備在狀態(tài)階段進(jìn)行確認(rèn)。有些請求沒有數(shù)據(jù)階段。
USB主機(jī)為控制傳輸保留一部分總線帶寬:低速和全速端點(diǎn)為10%,高速端點(diǎn)為20%。如果總線不忙,控制傳輸可以使用多于預(yù)留帶寬。但所有設(shè)備必須共享總線,因此在繁忙的總線上,控制權(quán)轉(zhuǎn)移可能不得不等待。
其他傳輸類型不具有多個階段,可以為任何目的傳輸數(shù)據(jù)。在另外一輛閑置的公交車上,批量轉(zhuǎn)運(yùn)是比較快的。但批量傳輸沒有保證的帶寬,所以在繁忙的公交車上,批量傳輸必須等待。批量傳輸?shù)某R娪猛臼谴蛴C(jī)和掃描儀,快速傳輸很好,但不是必需的。
對于中斷傳輸,主機(jī)保證來自IN端點(diǎn)的數(shù)據(jù)請求或向OUT端點(diǎn)發(fā)送數(shù)據(jù)的比較大時間間隔。中斷傳輸?shù)某R娪猛臼?a href="/zhuanti/shubiaoliandianqi/">鼠標(biāo)和鍵盤,它們需要將用戶輸入快速傳輸?shù)街鳈C(jī)。
等時傳輸具有保證的傳輸速率,但與其他傳輸類型不同,等時傳輸不使用確認(rèn),并且接收器沒有定義的方式來請求重新傳輸損壞的數(shù)據(jù)。等時傳輸?shù)某R娪猛臼橇魇揭纛l和視頻,用戶不會注意到或?qū)⑷萑桃恍⿹p壞或丟失的數(shù)據(jù)包。 WinUSB不支持同步傳輸。
使用USB框架
我的示例代碼是針對Microchip Technology的PIC18F4550單片機(jī)和MPLAB C18編譯器的。我在Microchip的PICDEM FS-USB開發(fā)板上測試了代碼。從我的網(wǎng)站上可以找到完整的用于PIC的WinUSB項(xiàng)目以及配套的Visual Basic和Visual C#應(yīng)用程序。
我的PIC代碼使用了Microchip的免費(fèi)USB框架,它是一組處理低級USB通信的源代碼模塊。使用框架可以節(jié)省很多時間和麻煩。
對于除端點(diǎn)0之外的每個端點(diǎn),設(shè)備都提供端點(diǎn)描述符。此列表顯示了每個方向上批量和中斷端點(diǎn)的端點(diǎn)描述符:
文件信息
文件大。5799384 字節(jié)
文件版本:3.7.0.1
MD5:76DB37A2F69135667083B048900E22FC
SHA1:5147CD450158D82E6AEE4F7FB242199471E69FF0
CRC32:2B50C289
官方網(wǎng)站:http://www.winusb.net/