USB的電氣特性 作者: 時(shí)間:2016-12-15 來源:網(wǎng)絡(luò) 加入技術(shù)交流群 掃碼加入和技術(shù)大咖面對(duì)面交流海量資料庫查詢 收藏 標(biāo)準(zhǔn)的USB使用4根線:5V電源線(Vbus),差分?jǐn)?shù)據(jù)線負(fù)(D-),差分?jǐn)?shù)據(jù)線正(D+),地(Gnd)。在USB OTG中,又增加了一種mini接口,使用的是5根線,比標(biāo)準(zhǔn)的USB多了一根身份識(shí)別(ID)線。USB使用的是差分傳輸模式,有兩根數(shù)據(jù)線,分別是D+和D-。在USB的低速和全速模式中,采用的是電壓傳輸模式。而在高速模式下,則是電流傳輸模式。關(guān)于具體的高低電平門限值,請(qǐng)參看USB協(xié)議。為了防止出現(xiàn)長時(shí)間的0或者1(這樣不利于時(shí)鐘信號(hào)的提取),在發(fā)送數(shù)據(jù)前要經(jīng)過位填充處理。然后再將數(shù)據(jù)串行化,發(fā)送到數(shù)據(jù)線上,由兩根數(shù)據(jù)線的差分值來表示0或者1。而在接收端,則剛好是相反的過程。接收端采樣數(shù)據(jù)線,將數(shù)據(jù)并行化,并同時(shí)去掉未填充,然后解析數(shù)據(jù)。通常,我們使用現(xiàn)成的USB芯片,像位填充,串行化這些芯片內(nèi)部的硬件已經(jīng)幫我們做好了,因此通常我們并不用關(guān)心這些細(xì)節(jié)。在設(shè)備接收數(shù)據(jù)時(shí),芯片的串行接口引擎(SIE)會(huì)接收屬于自己地址的數(shù)據(jù),并根據(jù)相應(yīng)的端口號(hào),放到相應(yīng)的緩沖區(qū)內(nèi),并返回ACK給主機(jī)進(jìn)行確認(rèn),然后產(chǎn)生中斷請(qǐng)求,通知我們的程序,已經(jīng)收到數(shù)據(jù)包了。在我們還未處理完緩沖區(qū)的數(shù)據(jù)之前,如果再收到對(duì)該端點(diǎn)的輸出請(qǐng)求,USB芯片將會(huì)使用NAK返回,告訴主機(jī)端點(diǎn)現(xiàn)在忙,主機(jī)檢測到NAK后,過段時(shí)間會(huì)重試輸出數(shù)據(jù),直到超時(shí)為止;發(fā)送數(shù)據(jù)時(shí),用戶將數(shù)據(jù)寫入U(xiǎn)SB芯片的緩沖區(qū),并通知USB芯片緩沖區(qū)內(nèi)數(shù)據(jù)可用,然后USB芯片檢測到主機(jī)請(qǐng)求對(duì)應(yīng)的端點(diǎn)輸入時(shí),它就會(huì)將數(shù)據(jù)返回,數(shù)據(jù)發(fā)送完畢并收到主機(jī)的ACK確認(rèn)之后,產(chǎn)生中斷請(qǐng)求通知應(yīng)用程序數(shù)據(jù)已經(jīng)發(fā)送完畢。如果USB芯片已經(jīng)收到了輸入請(qǐng)求,但是用戶程序還未填充好緩沖區(qū),它也會(huì)用NAK返回,告訴主機(jī)數(shù)據(jù)還未準(zhǔn)備好。主機(jī)收到NAK后,過段時(shí)間會(huì)重試,直到超時(shí)為止。在USB協(xié)議中規(guī)定,設(shè)備在未配置之前,可以從Vbus上最多獲取100mA的電流;在配置之后,最多可從Vbus上獲取500mA的電流。Vbus是5V的電壓,具體的參數(shù)請(qǐng)參看USB協(xié)議。
評(píng)論