控制傳輸?shù)淖x寫時(shí)序如下: setup階段首先是setup令牌,,然后是數(shù)據(jù)過(guò)程,最后是狀態(tài)過(guò)程,,對(duì)于數(shù)據(jù)過(guò)程只能使用DATA0包,,設(shè)備在接收到setup數(shù)據(jù)包之后,需要返回ACK信號(hào),,如果接收數(shù)據(jù)錯(cuò)誤,,設(shè)備是不會(huì)返回握手包,。setup數(shù)據(jù)呢就是主機(jī)往設(shè)備發(fā)送的請(qǐng)求數(shù)據(jù)包,,設(shè)備根據(jù)這個(gè)請(qǐng)求數(shù)據(jù)包來(lái)做相應(yīng)的動(dòng)作,,例如:返回設(shè)備描述符或者直接進(jìn)入狀態(tài)階段返回一個(gè)0長(zhǎng)度的數(shù)據(jù)包。SETUP傳輸呢有點(diǎn)類似于OUT傳輸,,只不過(guò)OUT傳輸發(fā)送的是OUT令牌,,SETUP傳輸發(fā)送的是SETUP令牌,。 狀態(tài)階段的傳輸方向同數(shù)據(jù)階段的傳輸方向剛好相反,,即數(shù)據(jù)階段是IN傳輸呢,,狀態(tài)階段就是OUT傳輸,數(shù)據(jù)階段是OUT傳輸呢,,狀態(tài)階段就是IN傳輸,。如果沒(méi)有數(shù)據(jù)階段呢,那就是只能是IN傳輸,。狀態(tài)階段的響應(yīng)信息如圖所示: 中斷傳輸呢分為IN和OUT傳輸,,如果是IN傳輸,設(shè)備返回?cái)?shù)據(jù)或者NAK,、STALL握手信息,。如果端點(diǎn)沒(méi)有新的中斷信息返回,在數(shù)據(jù)過(guò)程中設(shè)備返回的是NAK握手信息,如果此時(shí)端點(diǎn)已經(jīng)被設(shè)置為暫停了,,設(shè)備返回的是STALL握手信息,,如果設(shè)備返回的是中斷信息數(shù)據(jù)包,主機(jī)必須返回一個(gè)ACK握手信息給設(shè)備,,如果數(shù)據(jù)數(shù)據(jù)接收錯(cuò)誤,,將不會(huì)返回握手信息。IN,、OUT傳輸過(guò)程如圖所示 : 同步傳輸也叫做等時(shí)傳輸,也分為IN和OUT傳輸,,但是注意沒(méi)有握手過(guò)程,,所以說(shuō)它并不保證數(shù)據(jù)傳輸是否正確性,但是要保證數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,,所以這種傳輸方式一般用于音頻和視頻流的數(shù)據(jù)傳輸,,例如你的USB攝像頭就是采用的這種傳輸方式,傳輸過(guò)程如下: 塊傳輸也叫做批量傳輸,,塊傳輸并不追求數(shù)據(jù)傳輸?shù)臅r(shí)間,,但是必須保證數(shù)據(jù)傳輸?shù)恼_性,例如U盤就是采用的這種傳輸方式,,傳輸過(guò)程如下: |
|