首先,全速和低速很好區(qū)分:因?yàn)樵谠O(shè)備端有一個(gè) 1.5K 的上拉電阻,當(dāng)設(shè)備插入控制器或上電時(shí),有上拉電阻的那根數(shù)據(jù)線就會(huì)被拉高,控制器根據(jù) D+/D-上的電平判斷所掛載的是全速設(shè)備還是低速設(shè)備。全速設(shè)備D+端有1.5K上拉電阻,低速設(shè)備D-端有1.5K上拉電阻。
控制器檢測(cè)到有設(shè)備插入/上電時(shí),向主機(jī)通報(bào),主機(jī)發(fā)送一個(gè)請(qǐng)求讓控制器復(fù)位新插入的設(shè)備。設(shè)備復(fù)位操作是控制器通過(guò)驅(qū)動(dòng)數(shù)據(jù)線到復(fù)位狀態(tài)SE0(即 D+和 D-全為低電平)。
高速設(shè)備看到復(fù)位信號(hào)后,通過(guò)內(nèi)部的電流源向D-線持續(xù)灌一個(gè)小電流,加上內(nèi)部的等效阻抗近似于45R,所以在控制端可以看到一個(gè)約800mV的電壓,這就是?Chirp K 信號(hào)(由設(shè)備發(fā)起)。
在控制器端,雖然下達(dá)了復(fù)位信號(hào),并一直驅(qū)動(dòng)著SE0,但控制器端的USB2.0 的高速接收器一直在檢測(cè)設(shè)備端發(fā)起的ChirpK信號(hào),如果沒(méi)有看到ChirpK信號(hào),就繼續(xù)復(fù)位操作,直到復(fù)位結(jié)束,之后就在全速模式下操作。如果只是一個(gè)全速的控制器,不支持高速操作,那么該控制器不理會(huì)設(shè)備端發(fā)送的ChirpK信號(hào),之后設(shè)備也不會(huì)切換到高速模式。
再回到設(shè)備端來(lái),設(shè)備檢測(cè)到控制器發(fā)出的Chirp信號(hào)后,它必須在 500us 內(nèi)切換到高速模式??刂破靼l(fā)送出來(lái)的 Chirp KJ 序列幅值降到了原先的一半,為400mV。這是因?yàn)樵O(shè)備端會(huì)掛載新的終端電阻,此時(shí)等效阻抗為22.5R,正好是之前阻抗的一半。以后高速操作的信號(hào)幅值就是400mV而不像全速/低速那樣的800mV。
至此,高速設(shè)備與 USB2.0控制器握手完畢,進(jìn)行后續(xù)的480Mbps 高速信號(hào)通信,這就是咱們常說(shuō)的USB握手協(xié)議,關(guān)于USB接口就先介紹到這里,希望能對(duì)屏幕前的小伙伴提供幫助。