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