USB入門系列之三 —— USB的電氣特性

 標準的USB使用4根線:5V電源線(Vbus),差分數據線負(D-),差分數據線正(D+),地(Gnd)。在USB OTG中,又增加了一種mini接口,使用的是5根線,比標準的USB多了一根身份識別(ID)線。USB使用的是差分傳輸模式,有兩根數據線,分別是D+和D-。在USB的低速和全速模式中,採用的是電壓傳輸模式。而在高速模式下,則是電流傳輸模式。關於具體的高低電平門限值,請參看USB協議。爲了防止出現長時間的0或者1(這樣不利於時鐘信號的提取),在發送數據前要經過位填充處理。然後再將數據串行化,發送到數據線上,由兩根數據線的差分值來表示0或者1。而在接收端,則剛好是相反的過程。接收端採樣數據線,將數據並行化,並同時去掉未填充,然後解析數據。通常,我們使用現成的USB芯片,像位填充,串行化這些芯片內部的硬件已經幫我們做好了,因此通常我們並不用關心這些細節。在設備接收數據時,芯片的串行接口引擎(SIE)會接收屬於自己地址的數據,並根據相應的端口號,放到相應的緩衝區內,並返回ACK給主機進行確認,然後產生中斷請求,通知我們的程序,已經收到數據包了。在我們還未處理完緩衝區的數據之前,如果再收到對該端點的輸出請求,USB芯片將會使用NAK返回,告訴主機端點現在忙,主機檢測到NAK後,過段時間會重試輸出數據,直到超時爲止;發送數據時,用戶將數據寫入USB芯片的緩衝區,並通知USB芯片緩衝區內數據可用,然後USB芯片檢測到主機請求對應的端點輸入時,它就會將數據返回,數據發送完畢並收到主機的ACK確認之後,產生中斷請求通知應用程序數據已經發送完畢。如果USB芯片已經收到了輸入請求,但是用戶程序還未填充好緩衝區,它也會用NAK返回,告訴主機數據還未準備好。主機收到NAK後,過段時間會重試,直到超時爲止。
    在USB協議中規定,設備在未配置之前,可以從Vbus上最多獲取100mA的電流;在配置之後,最多可從Vbus上獲取500mA的電流。Vbus是5V的電壓,具體的參數請參看USB協議。

(來自USB小組專區:http://group.ednchina.com/93/
                       By computer00 @ 2007-08-17)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章