(转)USB体系结构
轉(zhuǎn)載地址:http://blog.ednchina.com/zenhuateng/203584/Message.aspx
?
USB總線接口層:物理連接、電氣信號(hào)環(huán)境、信息包傳輸機(jī)制;主機(jī)一方由USB主控制器和根集線器組成,而USB方則由設(shè)備中的USB接口組成。
USB設(shè)備層:由主機(jī)方的USB系統(tǒng)軟件和設(shè)備方的USB設(shè)備邏輯視圖組成。
USB功能層:代表客戶軟件和一個(gè)給定的設(shè)備功能接口之間的關(guān)系。
?
USB系統(tǒng)軟件執(zhí)行很多關(guān)鍵的功能,包括:
?????? 設(shè)備的連接/斷開(kāi)檢測(cè);設(shè)備配置;帶寬分配;管理客戶程序和設(shè)備之間的控制流;管理客戶程序和設(shè)備之間的數(shù)據(jù)流;收集狀態(tài)和事務(wù)處理的統(tǒng)計(jì)信息;事務(wù)處理的安排;控制電氣接口。
一套USB系統(tǒng)軟件存在于系統(tǒng)中,用于管理所有和USB總線相連的所有USB設(shè)備的訪問(wèn)。USB系統(tǒng)軟件是由于以下部分組成的:
?????? USB驅(qū)動(dòng)程序(USBD)---為客戶軟件驅(qū)動(dòng)程序提供接口和服務(wù),分配總線帶寬,并管理配置過(guò)程;
?????? USB主控制器驅(qū)動(dòng)程序(HCD)---控制對(duì)主控制器的操作,安排事務(wù)處理,并監(jiān)視事務(wù)處理的完成狀態(tài)。
?
當(dāng)一個(gè)事務(wù)處理被主機(jī)系統(tǒng)初始化以后,所有的傳輸設(shè)備和所有的集線器將看到這一務(wù)處理。每個(gè)事務(wù)處理包含一個(gè)地址字段,它標(biāo)識(shí)目標(biāo)設(shè)備或集線器,低速設(shè)備只能看見(jiàn)低速事務(wù)處理,它總是跟在一個(gè)高帶的前導(dǎo)事務(wù)處理之后。
?
?
?
USB信號(hào)環(huán)境
?
USB采用了NRZI(反相非歸零)編碼和差分信號(hào)。NRZI編碼方式既能夠確保數(shù)據(jù)發(fā)送的完整性,雙不需要獨(dú)立的時(shí)鐘信號(hào)和數(shù)據(jù)一起發(fā)送。數(shù)據(jù)流中的電平跳變代表0,而沒(méi)有跳變則代表1。為保持同步,在連續(xù)傳輸6個(gè)1的情況下,強(qiáng)制在NRZI編碼的數(shù)據(jù)流中加入跳變。這就確保接收器至少可以在每7個(gè)位的時(shí)間間隔內(nèi)從數(shù)據(jù)流中會(huì)檢測(cè)到一次跳動(dòng)變。
?
一個(gè)USB的集線器通過(guò)監(jiān)視差分?jǐn)?shù)據(jù)線來(lái)檢測(cè)設(shè)備是否已連接到自己的一個(gè)端口上。當(dāng)沒(méi)有設(shè)備連接到USB端口時(shí),和D+和D-線相連的下拉電阻(15K)保證數(shù)據(jù)線接地,USB設(shè)備必須至少在D+和D-線的任意一條上有一個(gè)上拉電阻(1.5K)。全速設(shè)備D+上拉,低速設(shè)備D-上拉。保持時(shí)間2.5us。
USB傳輸
中斷傳輸---用于在傳統(tǒng)PC產(chǎn)品中被稱為中斷驅(qū)動(dòng)設(shè)備的器件。由于USB不支持硬件中斷,所以中斷驅(qū)動(dòng)的USB設(shè)備必須要被周期性地查詢,以確定設(shè)備是否有數(shù)據(jù)要傳輸。
塊傳輸---用于傳輸大塊的沒(méi)有周期和傳輸速率要求的數(shù)據(jù)。
同步傳輸---要求有一個(gè)恒定的發(fā)送速率。保證發(fā)送方和接收方之間能夠?qū)崿F(xiàn)傳輸率的匹配。
控制傳輸---用來(lái)把特定的請(qǐng)求傳送給USB設(shè)備,它經(jīng)常在設(shè)備配置中被使用。
?
USB事務(wù)處理
在USB上的每次傳輸廣播都由一些信息包組成。這些信息包組合起來(lái)定義某個(gè)事務(wù)處理而某個(gè)事務(wù)處理又是作為一個(gè)大的傳輸?shù)囊徊糠謭?zhí)行的。事務(wù)處理由主機(jī)進(jìn)行初始化,用于把數(shù)據(jù)發(fā)送到USB設(shè)備和從USB設(shè)備把數(shù)據(jù)發(fā)送出去。
事務(wù)處理般由三個(gè)階段(令牌包階段、數(shù)據(jù)包階段、握手包階段)組成,或者說(shuō)由信息包組成。
令牌包階段:每一個(gè)事務(wù)處理類型都從一個(gè)令牌階段開(kāi)始,它定義了事務(wù)處理的類型。有的令牌包跟隨一個(gè)到兩個(gè)附加的信息包;
數(shù)據(jù)包階段:傳輸相關(guān)的數(shù)據(jù)。在一個(gè)事務(wù)處理中可以傳輸?shù)淖畲髷?shù)據(jù)包是1023字節(jié)。
握手階段:對(duì)數(shù)據(jù)發(fā)送方提供了一個(gè)反饋信號(hào),通知發(fā)送方數(shù)據(jù)是否已經(jīng)被正確接收。
?
信息包有用來(lái)執(zhí)行所有的USB事務(wù)處理的機(jī)制。
?
| 同步序列 | 包ID(標(biāo)識(shí)符) | 包特定信息 | CRC | 包結(jié)束標(biāo)志 |
??????????????????????????????????? 信息包
?
同步序列由8個(gè)位(00000001)組成,由于0用差分?jǐn)?shù)據(jù)上的電平跳變來(lái)編碼,所以這7個(gè)0在每一位開(kāi)始的時(shí)候都建立一個(gè)電平跳變。這就提供了一個(gè)時(shí)鐘,用來(lái)同步。同步性序列還通知USB接收器馬上要有一個(gè)信息包被發(fā)送,這個(gè)信息包緊跟在這8位同步序列之后。
信息包的標(biāo)識(shí)符定義了信息包的目標(biāo)和內(nèi)容,它分為令牌包、數(shù)據(jù)包、握手包、專用包(前導(dǎo)包)。
信息包的ID:由四位標(biāo)識(shí)符字段組成,后接四位包ID的反碼。
信息包的特定信息:這些信息可以組成一個(gè)USB設(shè)備地址,一個(gè)時(shí)間片的序列,從USB設(shè)備發(fā)出或者發(fā)送到USB設(shè)備的數(shù)據(jù),等等。
CRC:數(shù)據(jù)包使用16位的CRC,而別的包則5位的CRC。CRC的產(chǎn)生和檢驗(yàn)僅僅用于信息包的具體數(shù)據(jù)。
信息包的結(jié)束(EOP):每個(gè)信息飯結(jié)束都收發(fā)送方發(fā)出一個(gè)信號(hào)來(lái)表示,具體方法是把兩條差分?jǐn)?shù)據(jù)線上的電壓降低,并且這個(gè)低電壓將持續(xù)兩個(gè)位的傳輸時(shí)間,而且后接一個(gè)位的空閑時(shí)間。
令牌包的四種類型:
SOF(時(shí)間片開(kāi)始)-----指出下一個(gè)毫秒時(shí)間的開(kāi)始;
IN-----表示一個(gè)USB事務(wù)處理,把數(shù)據(jù)從目標(biāo)USB設(shè)備發(fā)送到系統(tǒng);
OUT-----表示一個(gè)USB事務(wù)處理,把數(shù)據(jù)從系統(tǒng)發(fā)送到目標(biāo)USB設(shè)備;
SETUP-----表示一次控制傳輸?shù)拈_(kāi)始。SETUP是控制傳輸?shù)牡谝浑A段,并用來(lái)把一個(gè)請(qǐng)求從系統(tǒng)發(fā)往目標(biāo)USB設(shè)備。
SOF包內(nèi)含有一個(gè)11位的時(shí)間片編號(hào)。SOF包定義了一個(gè)事務(wù)處理,它僅僅由令牌包組成。
?
| 同步序列 | 包ID(標(biāo)識(shí)符) | 11位的時(shí)間片編號(hào) | 5位CRC | 包結(jié)束標(biāo)志 |
?
當(dāng)軟件希望從一個(gè)指定的設(shè)備讀取信息時(shí),就用到一個(gè)IN令牌。IN包通知目標(biāo)USB設(shè)備數(shù)據(jù)正在被系統(tǒng)請(qǐng)求。IN事務(wù)處理用于各種USB傳輸類型中。一個(gè)IN令牌包由ID類型字段、ID校驗(yàn)字段、USB設(shè)備地址和端點(diǎn)地址以及5位的CRC組成。一個(gè)IN事務(wù)處理從一個(gè)IN包廣播開(kāi)始,后接一個(gè)從目標(biāo)USB設(shè)備返回的數(shù)據(jù)包。在某些情況,還包括發(fā)回到目標(biāo)設(shè)備的握手包,用來(lái)確認(rèn)數(shù)據(jù)接收。
?
系統(tǒng)軟件指定一個(gè)OUT事務(wù)處理,當(dāng)數(shù)據(jù)發(fā)送到一個(gè)目標(biāo)USB設(shè)備時(shí),有三種類型的傳輸采用OUT事務(wù)處理,塊傳輸、控制傳輸?shù)臄?shù)據(jù)階段、同步傳輸。一個(gè)OUT包由ID類型字段、ID校驗(yàn)字段、USB設(shè)備地址和端點(diǎn)地址以及5位的CRC組成。OUT令牌包后跟隨一個(gè)數(shù)據(jù)包和一個(gè)握手包(僅用于塊傳輸)。
?
SETUP包僅僅在控制傳輸?shù)慕㈦A段使用。SETUP包后跟隨著一個(gè)數(shù)據(jù)包,和一個(gè)確認(rèn)包。SETUP事務(wù)處理可以跟隨一個(gè)或多個(gè)IN或OUT事務(wù)處理(數(shù)據(jù)階段)。或者可以僅僅伴隨一個(gè)狀態(tài)階段,狀態(tài)階段由一個(gè)最后的數(shù)據(jù)包組成,它從端點(diǎn)傳向主機(jī)系統(tǒng)。一個(gè)SETUP包由ID類型字段、ID校驗(yàn)字段、USB設(shè)備地址和端點(diǎn)地址以及5位的CRC組成。
?
數(shù)據(jù)包---Data0和Data1
數(shù)據(jù)包的傳輸方向由事務(wù)處理類型確定,數(shù)據(jù)既可以傳向USB也可以從USB設(shè)備傳出。一個(gè)數(shù)據(jù)包由ID類型字段、ID校驗(yàn)字段、數(shù)據(jù)字段(0-1023字節(jié))和16位CRC。
?
USB設(shè)備使用握手包來(lái)報(bào)告一個(gè)給定的事務(wù)處理的狀態(tài)。數(shù)據(jù)的接收器負(fù)責(zé)給發(fā)送方發(fā)回一個(gè)握手包。
確認(rèn)包(ACK)---確認(rèn)數(shù)據(jù)包被無(wú)錯(cuò)誤地接收了;
非確認(rèn)包(NACK)---報(bào)告主機(jī)目標(biāo)設(shè)備暫時(shí)不能接收返回的數(shù)據(jù)。在中斷事務(wù)處理中,NACK表示當(dāng)前沒(méi)有數(shù)據(jù)可以返回到主機(jī)。
停止包(STALL)---目標(biāo)設(shè)備用來(lái)報(bào)告它不能完成傳輸,并且要求軟件進(jìn)行干預(yù),使設(shè)備從停止?fàn)顟B(tài)恢復(fù)。
?
前導(dǎo)包
在廣播一個(gè)低速信息包之前,必須廣播一個(gè)前導(dǎo)包,通知所有的集線器在這個(gè)前導(dǎo)包后面跟隨一個(gè)低速的事務(wù)處理。前導(dǎo)包由一個(gè)同步序列和一個(gè)包的ID組成的,該包以全速傳輸。之后延遲四個(gè)全速位的傳輸時(shí)間。
?
?
?
?
事務(wù)處理
IN事務(wù)處理:數(shù)據(jù)被無(wú)錯(cuò)誤地接收;(主機(jī)發(fā)送ACK包)
??????????? 數(shù)據(jù)接收的時(shí)候有錯(cuò)誤; (沒(méi)有握手包)
??????????? 目標(biāo)設(shè)備暫時(shí)不能返回?cái)?shù)據(jù);(USB設(shè)備返回NAK包)
??????????? 錯(cuò)誤狀態(tài)被清除之前,目標(biāo)不能返回?cái)?shù)據(jù);(USB設(shè)備返回STALL停止包)
??????????? 發(fā)生了一次同步傳輸,返回?cái)?shù)據(jù),沒(méi)有握手運(yùn)作。
OUT事務(wù)處理:數(shù)據(jù)被無(wú)錯(cuò)誤地發(fā)送;(USB設(shè)備返回ACK包)
??????????? 數(shù)據(jù)發(fā)送出錯(cuò);? (沒(méi)有握手包)
??????????? 目標(biāo)設(shè)備暫時(shí)不能接收數(shù)據(jù);(USB設(shè)備返回NAK包)
??????????? 錯(cuò)誤狀態(tài)被清除之前,目標(biāo)不能接收數(shù)據(jù);(目標(biāo)設(shè)備返回STALL停止包)
??????????? 發(fā)生了一次同步傳輸,數(shù)據(jù)被發(fā)送到目標(biāo)設(shè)備,沒(méi)有握手運(yùn)作。
SETUP事務(wù)處理/控制傳輸:控制傳輸總是從一個(gè)SETUP事務(wù)處理開(kāi)始,稱為建立階段。建立階段定義控制傳輸?shù)男再|(zhì)。某些控制傳輸包括一個(gè)數(shù)據(jù)階段,該數(shù)據(jù)階段由一個(gè)或幾個(gè)IN或OUT事務(wù)處理組成。控制傳輸?shù)淖罱K階段是狀態(tài)階段。該階段確認(rèn)所要求的操作已經(jīng)成功完成了。控制傳輸以兩種基本基本形式存在:①傳輸由建立階段和狀態(tài)階段組成②傳輸由建立階段、數(shù)據(jù)階段和狀態(tài)階段組成。
SETUP事務(wù)處理的數(shù)據(jù)階段包括8字節(jié)的信息,該信息指出了大量用于定義將被執(zhí)行的設(shè)備請(qǐng)求信息。
錯(cuò)誤恢復(fù)
信息包錯(cuò)誤檢查;
錯(cuò)誤EOP;
總線超時(shí)(沒(méi)有響應(yīng));
數(shù)據(jù)觸發(fā)器錯(cuò)誤檢查;
串?dāng)_---在時(shí)間片結(jié)束之后發(fā)年事務(wù)處理;
LOA---總線活動(dòng)丟失。
?
三種類型的包錯(cuò)誤:包ID(PID);CRC;位填充錯(cuò)誤。發(fā)生以上錯(cuò)誤,接收方忽略這個(gè)信息包,并且不會(huì)返回一個(gè)信息包。
信息包的類型和CRC
| 信息包的類型 | 字段名 | 字段的最大長(zhǎng)度 | CRC |
| SOF | 時(shí)間片編號(hào) | 11位 | 5位 |
| IN | 設(shè)備地址和端點(diǎn)地址 | 11位 | 5位 |
| OUT | 設(shè)備地址和端點(diǎn)地址 | 11位 | 5位 |
| SETUP | 設(shè)備地址和端點(diǎn)地址 | 11位 | 5位 |
| DATA0 | 數(shù)據(jù) | 1023字節(jié) | 16位 |
| DATA1 | 數(shù)據(jù) | 1023字節(jié) | 16位 |
| ACK | 無(wú) | 無(wú) | 無(wú) |
| NAK | 無(wú) | 無(wú) | 無(wú) |
| STALL | 無(wú) | 無(wú) | 無(wú) |
| PREAMBLE | 無(wú) | 無(wú) | 無(wú) |
總線超時(shí):事務(wù)處理的發(fā)送方在16個(gè)位時(shí)間內(nèi)一定不會(huì)超時(shí),但是在18個(gè)位時(shí)間后則一定時(shí)。
錯(cuò)誤的EOP:如果接收方在發(fā)送方實(shí)際完成傳輸之前檢測(cè)到包的結(jié)束(EOP)。錯(cuò)誤的EOP往往會(huì)導(dǎo)致一個(gè)CRC錯(cuò)誤。
數(shù)據(jù)觸發(fā)出錯(cuò):數(shù)據(jù)觸發(fā)是一種機(jī)制,用來(lái)確保數(shù)據(jù)傳輸?shù)陌l(fā)送方和接收方之間保持同步。數(shù)據(jù)觸發(fā)機(jī)制解決了和握手包出錯(cuò)相關(guān)的問(wèn)題。
串?dāng)_:如果在總線上的一個(gè)設(shè)備沒(méi)有結(jié)束它的事務(wù)處理(不停地串?dāng)_),這種不斷的串?dāng)_有可能對(duì)整個(gè)總線造成死鎖。串?dāng)_在時(shí)間片結(jié)束時(shí)被檢測(cè)到,如果設(shè)備在時(shí)間片結(jié)束時(shí)不處于空閑狀態(tài),那么這個(gè)設(shè)備必須被隔離,方法是把和這個(gè)設(shè)備相連的集線器端口禁止掉。
LOA---總線活動(dòng)丟失:一個(gè)設(shè)備從一個(gè)包的傳輸開(kāi)始,后接總線上的一個(gè)恒定的J或K狀態(tài),而且沒(méi)有EOP。檢測(cè)和處理類似串?dāng)_。
USB供電分配
USB電源管理
USB設(shè)備配置
設(shè)備描述符-----描述了設(shè)備所支持的配置的數(shù)量;
配置描述符-----指出了一個(gè)或多個(gè)接口而且定義了某些和這個(gè)配置相關(guān)的屬性;
接口描述符-----定義了端點(diǎn)的數(shù)量,它們和接口相關(guān),而且定義了某些和接口相關(guān)的屬性;
端點(diǎn)描述符-----指出了和給定的端點(diǎn)相關(guān)的屬性,以及那些主機(jī)軟件需要的信息,這些信息可以確定這個(gè)端點(diǎn)應(yīng)該怎樣被訪問(wèn);
字符串描述符-----可選的描述符,由UNICODE字符串組成。
類特定描述符-----設(shè)備類附加的描述符。
每一個(gè)描述符都包含一個(gè)類型字段,用它來(lái)識(shí)別上面列出的這此描述符的類型。
?
設(shè)備描述符:
?
| 字段編號(hào) | 字段名 | 字段大小(字節(jié)) | 字段取值 | 說(shuō)明 |
| 0 | 長(zhǎng)度 | 1 | 數(shù)字 | 描述符的長(zhǎng)度(以字節(jié)為單位) |
| 1 | 描述的符類型 | 1 | 常數(shù) | 設(shè)備描述符,0x01 |
| 2 | USB版本號(hào) | 2 | BCD | ? |
| 4 | 設(shè)備類 | 1 | 類 | 類代碼 |
| 5 | 設(shè)備子類 | 1 | 子類 | 子類代碼 |
| 6 | 設(shè)備協(xié)議 | 1 | 協(xié)議 | ? |
| 7 | 最大數(shù)據(jù)包大小 | 1 | 數(shù)字 | 8、16、32、64 |
| 8 | 設(shè)備供應(yīng)商 | 2 | ID | 供應(yīng)商ID |
| 10 | 產(chǎn)品 | 2 | ID | 產(chǎn)品ID |
| 12 | 系列號(hào) | 2 | BCD | 出廠編號(hào) |
| 14 | 設(shè)備供應(yīng)商索引 | 1 | 索引 | ? |
| 15 | 產(chǎn)品索引 | 1 | 索引 | ? |
| 16 | 系列號(hào)索引 | 1 | 索引 | ? |
| 17 | 配置數(shù)目 | 1 | 數(shù)目 | ? |
配置描述符:
?
| 字段編號(hào) | 字段名 | 字段大小(字節(jié)) | 字段取值 | 說(shuō)明 |
| 0 | 長(zhǎng)度 | 1 | 數(shù)字 | 描述符的長(zhǎng)度(以字節(jié)為單位) |
| 1 | 描述的符類型 | 1 | 常數(shù) | 配置描述符,0x02 |
| 2 | 總長(zhǎng)度 | 2 | 數(shù)字 | 用于配置的返回?cái)?shù)據(jù)的總長(zhǎng)度,包括所有被返回的用于配置的描述符(配置描述符、接口描述符、端點(diǎn)描述符、類或設(shè)備供應(yīng)商自定的描述符)加在一起的長(zhǎng)度。 |
| 4 | 接口的數(shù)目 | 1 | 數(shù)字 | 配置所支持的接口數(shù)目。 |
| 5 | 配置值 | 1 | 數(shù)字 | 作為Set Configuration的一個(gè)參數(shù)選擇配置值。 |
| 6 | 配置索引 | 1 | 索引 | 描述配置的字符串描述符的索引。 |
| 7 | 屬性 | 1 | 位段 | D7???? 總線供電 D6???? 自供電 D5???? 遠(yuǎn)程喚醒 D4..0 ?保留 |
| 8 | 最大供電量 | 1 | 毫安 | 以2毫安為單位 |
每一個(gè)配置描述符都有一個(gè)唯一的配置值,用來(lái)配置這個(gè)設(shè)備。配置軟件通過(guò)使用“Set Configuration”請(qǐng)求配置一個(gè)設(shè)備。這個(gè)配置值是在“Set Configuration”期間的SETUP事務(wù)處理的數(shù)值字段被指定的。
?
?
?
接口描述符:
?
| 字段編號(hào) | 字段名 | 字段大小(字節(jié)) | 字段取值 | 說(shuō)明 |
| 0 | 長(zhǎng)度 | 1 | 數(shù)字 | 描述符的長(zhǎng)度(以字節(jié)為單位) |
| 1 | 描述的符類型 | 1 | 常數(shù) | 接口描述符, |
| 2 | 接口數(shù) | 1 | 數(shù)字 | 接口的編號(hào)。 |
| 3 | 可選設(shè)置 | 1 | 數(shù)字 | 用于為在前面的的字段標(biāo)識(shí)出來(lái)的接口選擇一個(gè)可選設(shè)置的數(shù)值。 |
| 4 | 端點(diǎn)數(shù)目 | 1 | 數(shù)字 | 本接口所使用的端點(diǎn)數(shù)目(0端點(diǎn)除外)。 |
| 5 | 接口類 | 1 | 類 | 類代碼 |
| 6 | 設(shè)備子類 | 1 | 子類 | 子類代碼 |
| 7 | 接口協(xié)議 | 1 | 協(xié)議 | 協(xié)議代碼 |
| 8 | 接口索引 | 1 | 索引 | 字符串描述符的索引。 |
接口數(shù)目和可選設(shè)置的字段用于支持USB的可選設(shè)置特征。設(shè)備可以在相同的配置下定義可選的特征。一個(gè)支持可選設(shè)置的設(shè)備將包含一個(gè)或多個(gè)附加的接口和端點(diǎn)描述符,同樣的接口,但是包含可選的設(shè)置。
?
?
端點(diǎn)描述符:
?
| 字段編號(hào) | 字段名 | 字段大小(字節(jié)) | 字段取值 | 說(shuō)明 |
| 0 | 長(zhǎng)度 | 1 | 數(shù)字 | 描述符的長(zhǎng)度(以字節(jié)為單位) |
| 1 | 描述的符類型 | 1 | 常數(shù) | 端點(diǎn)描述符,0x05 |
| 2 | 端點(diǎn)地址 | 1 | 端點(diǎn) | 描述符所描述的USB設(shè)備上的端點(diǎn)地址 D0..3? 端點(diǎn)號(hào) D4..6? 保留 D7???? 傳輸方向,0:OUT;1:IN |
| 3 | 屬性 | 1 | 位段 | D2..7 保留 D0..1 00 控制傳輸 01 同步傳輸 10 塊傳輸 11 中斷傳輸 |
| 4 | 最大包大小 | 2 | 數(shù)字 | 最大信息包的大小。 對(duì)于同步端點(diǎn),該值用于保留進(jìn)度表中的總線時(shí)間,這是每一個(gè)時(shí)間片傳輸數(shù)據(jù)都需要的。 |
| 6 | 間隔 | 1 | 數(shù)字 | 數(shù)據(jù)傳輸?shù)臅r(shí)候,查詢的時(shí)間間隔,以微秒為單位。對(duì)于塊傳輸端點(diǎn)和控制傳輸端點(diǎn),這個(gè)字段無(wú)效。對(duì)于同步端點(diǎn),這個(gè)字段被置為1,對(duì)于中斷端點(diǎn),它的值為1-255。 |
端點(diǎn)描述符定義了在一個(gè)給定的設(shè)備里實(shí)現(xiàn)的實(shí)際寄存器。定義了每個(gè)寄存器的功能和特定的信息:端點(diǎn)要求的傳輸類型;傳輸?shù)姆较?#xff1b;帶寬需求;查詢間隔。
配置軟件必須確定USB是否能夠支持端點(diǎn)描述所指定的傳輸,傳輸所要求的帶寬大小在MaxPacketSize字段被指定。如果端點(diǎn)的帶寬需求超過(guò)了USB的所能提供的帶寬,那么設(shè)備就不會(huì)被配置,而且用戶會(huì)得到設(shè)備沒(méi)有配置的通知。
轉(zhuǎn)載于:https://www.cnblogs.com/zxc2man/p/5627781.html
總結(jié)
以上是生活随笔為你收集整理的(转)USB体系结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ZooKeeper之(四)配置与命令
- 下一篇: 常见开源协议大白话说明