0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于DWC2的USB驅(qū)動(dòng)開發(fā)-0x08 ULPI接口協(xié)議概覽

嵌入式USB開發(fā) ? 來源:嵌入式USB開發(fā) ? 作者:嵌入式USB開發(fā) ? 2023-06-02 13:08 ? 次閱讀

本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注

基于DWC2的USB驅(qū)動(dòng)開發(fā)-0x08 ULPI接口協(xié)議概覽 (qq.com)

一. ULPI(協(xié)議概覽)

1.1 前言

前面我們介紹了GLPI接口,ULPI即基于GLPI接口的UTMI協(xié)議的實(shí)現(xiàn)。ULPI用于USB中LINK和PHY的通訊,主要應(yīng)用于外置PHY的場(chǎng)景。了解ULPI接口對(duì)整個(gè)USB驅(qū)動(dòng)開發(fā)也有一些幫助,掌握USB也需要掌握USB整個(gè)鏈路的數(shù)據(jù)流,PHY到LINK這一層的數(shù)據(jù)流至關(guān)重要,雖然對(duì)于編程來說這一層對(duì)軟件可見度幾乎為0,但是了解其有利于解決分析問題,尤其是一些疑難雜癥.

1.2 概述

ULPI是LPI接口規(guī)范應(yīng)用于UTMI+協(xié)議的一個(gè)具體實(shí)現(xiàn), 相對(duì)于UTMI,使用ULPI減少了引腳數(shù)量,適合于外接USB收發(fā)器(PHY)的場(chǎng)景,支持OTG,主機(jī),設(shè)備的應(yīng)用。

一般外接USB收發(fā)器比如原型驗(yàn)證階段時(shí)采用ULPI接口,因?yàn)?a target="_blank">ASIC或者SOC的引腳數(shù)是比較受限的;而如果USB收發(fā)器集成封裝在ASIC,SOC內(nèi),則使用UTMI接口,因?yàn)樵?a href="http://srfitnesspt.com/v/tag/137/" target="_blank">芯片內(nèi)部,不占用芯片的引腳。

UTMI才是LINK-PHY之間的標(biāo)準(zhǔn)接口,ULPI只是為了外置PHY等場(chǎng)景有低引腳需求才增加的實(shí)現(xiàn)。所以即使使用ULPI接口, LINK內(nèi)部實(shí)際也是有一個(gè)UTMI-ULPI的橋轉(zhuǎn)換為UTMI接口的,而PHY封裝在芯片內(nèi)部直接使用UTMI就不需要UMTI-ULPI的橋了,避免了橋接性能等方面的損失,這也是為什么PHY集成在芯片內(nèi)部都是直接使用UTMI接口的一個(gè)原因。

ULPI規(guī)范詳細(xì)說明了對(duì)UTMI+Level 3的支持,但PHY實(shí)現(xiàn)者可以選擇支持UTMI+中定義的任何級(jí)別。

ULPI定義了LINK到PHY之間的信號(hào)8個(gè)或者12個(gè),即4個(gè)DATA或者8個(gè)DATA+nxt,stp,dir,clock。ULPI對(duì)UTMI+的引腳縮減,是通過對(duì)相對(duì)靜態(tài)的信號(hào)通過寄存器配置,數(shù)據(jù)線改為雙向,提供了一種訪問ULPI收發(fā)器上寄存器數(shù)據(jù)的方法來實(shí)現(xiàn)的。

如下圖所示:ULPI規(guī)格建議使用ULPI Link Wrapper和ULPI PHY Wrapper在原來的UTMI+ IP上封裝,這樣可以保持原來的UTMI+部分不變, 但是根據(jù)實(shí)現(xiàn)而定,也可以不要這個(gè)橋直接就使用ULPI接口。

image.png

WDC2控制器同時(shí)支持UTMI和ULPI的,可以配置為同時(shí)支持,軟件動(dòng)態(tài)選擇,其PHY Interface Unit (PIU)框圖如下:

image.png

1.3 結(jié)構(gòu)

首先要從整體上了解下ULPI接口所處的層次以及其作用,這樣有利于后面的理解。

ULPI是LINK和PHY之間的接口,結(jié)構(gòu)圖下

所以有必要先了解下LINK和PHY分別是做什么的:

PHY:

即物理層設(shè)備Physical Layer ,也就是收發(fā)器Transceiver,比如USB334x就是用的比較多的MicroChip的PHY芯片。在PHY芯片的手冊(cè)中一般用收發(fā)器Transceiver的稱呼。而在描述UBS協(xié)議的規(guī)格書等中一般稱為PHY(Physical Layer),兩者說的是同一個(gè)東西,只是不同場(chǎng)景側(cè)重點(diǎn)不一樣,前者側(cè)重一個(gè)具體的東西所以叫做收發(fā)器,后者側(cè)重一個(gè)抽象的概念所以叫做PHY。

PHY即數(shù)字部分和模擬部分的橋梁, PHY的一邊通過ULPI接口和LINK通訊,這邊都是數(shù)字部分。PHY另一邊就是直接的總線信號(hào)比如USB的D+,D-這邊是模擬部分。

PHY的技術(shù)含量是比較高的,涉及到模擬的或者是模數(shù)的技術(shù)都有一定門檻,所以你可以看到國(guó)產(chǎn)很多企業(yè)能做控制器LINK,MAC這部分(雖然很可能大概也是買的IP),但是基本沒有能做PHY的,前者是數(shù)字部分,設(shè)計(jì)驗(yàn)證相對(duì)來說更簡(jiǎn)單,后者則更復(fù)雜設(shè)計(jì)驗(yàn)證更加困難(所以后者都是購買集成)。

PHY部分主要實(shí)現(xiàn),總線信號(hào)的收發(fā),bit-stuff等,和LINK通過ULPI/UTMI接口通訊,則是以包為單位了,當(dāng)然包括PHY的狀態(tài)返回控制等。

LINK:

LINK即SOC這邊的控制器部分,實(shí)現(xiàn)數(shù)據(jù)鏈路層的處理,由于是純數(shù)字部分,這部分也比較好仿真驗(yàn)證。有些文獻(xiàn)也叫Serial Interface Engine (SIE)

image.png

ULPI PHY必須要實(shí)現(xiàn)以下UTMI+的特征

  1. Linestate:必須在2-3個(gè)時(shí)鐘內(nèi)精確反映D+/D-的狀態(tài)。由LINK使用Linestate去計(jì)時(shí)總線事件。
  2. 濾波以防止由于D+和D-之間的偏斜而在Linestate上出現(xiàn)虛假的SE0/SE1狀態(tài)。低速濾波14個(gè)時(shí)鐘,全速和高速濾波2個(gè)時(shí)鐘。
  3. PHY在發(fā)送時(shí)內(nèi)部需要阻塞接收路徑,接收路徑在Squelch(HS)和SE0-to-J(FS/LS)時(shí)退出阻塞。
  4. TxReady必須用于包括Chirp的所有數(shù)據(jù)發(fā)送。
  5. 由于USB上的噪聲,有可能RxActice有效到無效而沒有接收到任何有效數(shù)據(jù),即RxValid不會(huì)有效。LINK必須能處理這種RxActive有效而RxValid無效的場(chǎng)景。

1.4 信號(hào)

ULPI的PHY接口信號(hào)基于PLPI定義,還增加了USB接口,其他雜項(xiàng)接口。

PHY接口是固定的,其他接口可能可變,以下只是一個(gè)通常的指導(dǎo)設(shè)計(jì)。

且規(guī)定了PHY必須是主機(jī)。這里需要注意和UTMI相比這里總線權(quán)顛倒了,UTMI是LINK掌握,這里是PHY掌握了,這是因?yàn)镈ATA是雙向數(shù)據(jù)了,為了保證接收數(shù)據(jù)時(shí)不被LINK打斷。

信號(hào) 方向(PHY的角度) 描述
PHY Interface
clock I/O 接口時(shí)鐘.PHY必須支持輸出60MHz時(shí)鐘,即必須支持時(shí)鐘輸出模式.可選支持輸入60MHz時(shí)鐘,即輸入時(shí)鐘模式是可選的.如果PHY支持這兩種時(shí)鐘模式,則必須由PHY自行配置,不能依賴ULPI的控制和數(shù)據(jù)信號(hào)去設(shè)置.
data I/O 數(shù)據(jù)總線,在ULPI總線空閑時(shí)即PHY和LINK都沒有數(shù)據(jù)要發(fā)送時(shí),PHY拉低dir監(jiān)聽總線,此時(shí)由LINK發(fā)送數(shù)據(jù),而LINK又沒有數(shù)據(jù)要發(fā)送,所以就發(fā)送特殊值0,表示無效數(shù)據(jù)。必須支持8位數(shù)據(jù)寬,單邊沿,上升沿傳輸數(shù)據(jù)可選支持4位數(shù)據(jù)寬,雙邊沿,上下邊沿都傳輸數(shù)據(jù)
dir OUT 由PHY驅(qū)動(dòng)控制數(shù)據(jù)總線的方向.PHY如果不能接收LINK發(fā)送過來的數(shù)據(jù)時(shí)拉高dir.比如PHY的PLL沒有穩(wěn)定時(shí)這適用于PHY的兩種時(shí)鐘模式.
stp IN LINK拉高stp表示USB包傳輸或者寄存器寫的結(jié)束,也可結(jié)束任何接收。Stp必須是在最后一個(gè)有效數(shù)據(jù)之后的CLK拉高。
nxt OUT PHY拉低nxt以掐斷除了寄存器讀和RX_CMD外的所有傳輸。與USB接收期間的RxValid和USB傳輸期間的TxReady相同。如果dir先前為低,則PHY還可同時(shí)設(shè)置nxt和dir以指示USB接收激活(RxActive)。PHY不容許在LINK發(fā)送TX_CMD時(shí)的第一個(gè)時(shí)鐘拉低nxt
USB****接口
D+ I/O USB的****D+引腳必須有
D- I/O USB的****D-****引腳必須有
ID IN USB的ID引腳 只有支持OTG的PHY才需要
VBUS I/O USB的VBUS引腳。支持OTG的PHY才需要。用于驅(qū)動(dòng)VBUS和VBUS比較器
其他雜項(xiàng)
XI IN 晶體輸入或者時(shí)鐘輸入引腳,由廠家實(shí)現(xiàn)決定支持的晶體頻率
XO OUT 晶體輸出引腳如果是只支持時(shí)鐘輸入的則沒有該引腳
C+ I/O 電荷泵電容器正極端子
C- I/O 電荷泵電容器負(fù)極端子
SPKR_L IN 可選的Carkit left/mono speaker輸入
SPKR_MIC I/O 可選的Carkit right speaker輸入或者麥克風(fēng)輸出
RBIAS I/O 偏置電流電阻器

如下是一個(gè)典型的信號(hào)連接示例

使用的是PHY的時(shí)鐘輸出模式,即CLOCK由PHY提供

image.png

1.5框圖

image.png

UTMI+ Level 3 PHY core

ULPI PHY可以包含符合任何UTMI+級(jí)別的核心,ULPI中不支持16位數(shù)據(jù)總線的信號(hào)。上述顯示了3級(jí)UTMI+核心的典型框圖,PHY供應(yīng)商必須指定預(yù)期的UTMI+級(jí)別,并提供符合該級(jí)別所需的功能。

ULPI PHY Wrapper

ULPI PHY橋?qū)TMI+接口簡(jiǎn)化為ULPI中描述的低引腳接口。UTMI+Level 3 PHY核心上顯示的所有信號(hào)都減少為ULPI接口信號(hào)

clock**, data , dir , stp , nxt . **寄存器映射存儲(chǔ)UTMI+接口的相對(duì)靜態(tài)信號(hào)。

Crystal Oscillator and PLL

當(dāng)晶體連接到PHY時(shí),內(nèi)部時(shí)鐘和外部60MHz接口時(shí)鐘由內(nèi)部PLL產(chǎn)生即PHY的時(shí)鐘輸出模式。

當(dāng)沒有連接晶體時(shí),PHY可以可選地從LINK提供的輸入60MHz時(shí)鐘生成內(nèi)部時(shí)鐘,即時(shí)鐘輸入模式。

General Biasing

內(nèi)部模擬電路需要精確的偏置電流。這通常是使用外部精確的參考電阻器產(chǎn)生的。

DrvVbusExternal and ExternalVbusIndicator

PHY可以可選地經(jīng)由可選引腳DrvVbusExternal來控制外部VBUS電源。

例如,外部電源可以是使用電源開關(guān)控制的電荷泵或5V電源。

外部電源由DrvVbus和OTG控制寄存器中的可選DrvVbusExternal位控制。

DrvVbusExternal輸出引腳的極性取決于實(shí)現(xiàn)方式。

如果提供對(duì)外部VBUS源的控制,則PHY可以可選地在可選引腳ExternalVbusIndicator上提供VBUS電源反饋信號(hào)。

如果提供該引腳,則該引腳的使用由OTG控制和接口控制寄存器中的可選控制位定義。

Power-On-Reset

必須在PHY中提供上電復(fù)位電路。當(dāng)電源首次施加到PHY時(shí),通電復(fù)位將重置所有電路,并使ULPI接口處于可用狀態(tài)。

Carkit Option

PHY可以可選地支持車載套件模式Carkit Mode。在該模式下,LINK和USB接口之間的麥克風(fēng)和喇叭信號(hào)由PHY路由。在Carkit單聲道模式下,SPKR_L輸入單聲道揚(yáng)聲器信號(hào),SPKR_MIC輸出麥克風(fēng)信號(hào)MIC。在Carkit立體聲模式中,SPKR_L輸入左揚(yáng)聲器信號(hào),SPKR_MIC輸入右揚(yáng)聲器信號(hào)SPKR_R。

1.6 模式

ULPI接口可以在下表中列出的五種獨(dú)立模式中的一種模式下運(yùn)行。默認(rèn)情況下,接口處于同步模式。其他模式由功能控制和接口控制寄存器中的位啟用。在同步模式下,數(shù)據(jù)總線傳輸命令和數(shù)據(jù)。在其他模式中,數(shù)據(jù)引腳會(huì)使用不同的功能重新定義。同步模式和低功率模式是強(qiáng)制性的。

模式名 模式描述
Synchronous Mode同步模式 這是一般的操作模式.ULPI接口發(fā)送數(shù)據(jù)和命令和 clock同步.
Low Power Mode低功耗模式 PHY掉電時(shí)鐘停止.PHY保持拉高 dir,data總線重定義為 LineState和中斷信號(hào)。
6-pin FS/LS Serial Mode(optional) data總線重定義為6-pin串行模式,包括6個(gè)引腳發(fā)送和接收USB的串行數(shù)據(jù)和1個(gè)引腳用于中斷信號(hào)事件.時(shí)鐘可使能或者不使能.該模式只有在支持8位data模式時(shí)才可能有。
3-pin FS/LS Serial Mode(optional) data總線重定義為3-pin串行模式,包括3個(gè)引腳發(fā)送和接收USB的串行數(shù)據(jù)和1個(gè)引腳用于中斷信號(hào)事件.時(shí)鐘可使能或者不使能.
Carkit Mode(optional) Data總線重定義為Carkit模式,包括2個(gè)引腳用于串行UART數(shù)據(jù)傳輸和1個(gè)引腳用于中斷信號(hào)事件,時(shí)鐘可選停止

1.7上電和復(fù)位

ULPI PHY提供內(nèi)部通電復(fù)位電路,該電路在通電時(shí)復(fù)位所有邏輯,包括UTMI+核心、ULPI接口和寄存器。

通電后,當(dāng)時(shí)鐘開始翻轉(zhuǎn)時(shí),LINK必須通過寫入功能控制寄存器Function Control 中的Reset 位來重置PHY。當(dāng)該位被置位時(shí),PHY將拉高dir并復(fù)位數(shù)字核心。

復(fù)位完成后PHY拉低dir,自動(dòng)清除Function Control****寄存器的Reset位。

在拉低dir之后,PHY必須立即重新拉高dir,并向LINK發(fā)送RX CMD更新狀態(tài)。

復(fù)位期間,數(shù)據(jù)總線由PHY驅(qū)動(dòng),但數(shù)據(jù)未定義,LINK需要丟棄該數(shù)據(jù)。

在復(fù)位完成且dir被重新拉低之前,LINK不得嘗試訪問PHY。ULPI接口和寄存器不受復(fù)位的影響,除非寄存器定義中另有說明。

如下是一個(gè)典型的上電復(fù)位過程

image.png

T0表示電源穩(wěn)定

T2表示POR上電復(fù)位完成

對(duì)于時(shí)鐘輸出模式,當(dāng)PHY正在復(fù)位時(shí),DIR引腳將被驅(qū)動(dòng)為高電平,直到60 MHz輸出時(shí)鐘穩(wěn)定為止。

在時(shí)鐘輸入模式的情況下,DIR將保持高電平,直到內(nèi)部PLL鎖定并穩(wěn)定。

一旦PHY和LINK都完成復(fù)位,PHY就會(huì)向LINK發(fā)送RXCMD

PHY有可選的引腳復(fù)位RESETB,拉低RESETB將導(dǎo)致60 MHz輸出時(shí)鐘停止,DIR被驅(qū)動(dòng)為高電平。PHY內(nèi)部將以與POR相同的方式進(jìn)行復(fù)位,PLL將重新鎖定,ULPI寄存器將返回到其默認(rèn)狀態(tài)。

1.8中斷事件通知

在任何模式下,PHY都能夠檢測(cè)中斷事件,并通知LINK中斷事件已經(jīng)發(fā)生。

。中斷事件通知由USB Interrupt Enable Rising 、USB InterruptEnable Falling 和Carkit Interrupt Enable 這幾個(gè)寄存器配置。

如果啟用了中斷,則無論P(yáng)HY處于哪種模式,PHY都必須為所需的電路供電,唯一的例外是僅在同步模式下有效的HostDisconnect中斷,以及由IdPullup控制的IdGnd中斷。

為了確保時(shí)鐘停止時(shí)能夠檢測(cè)到中斷,LINK應(yīng)同時(shí)啟用上升沿和下降沿觸發(fā)。

如果處于同步模式,則中斷事件會(huì)導(dǎo)致PHY向LINK發(fā)送RX CMD命令字節(jié)。

如果不處于同步模式,則中斷事件導(dǎo)致PHY控制int引腳來通知中斷,當(dāng)Link檢測(cè)到int有效時(shí),它會(huì)喚醒時(shí)鐘(如果是停止的),然后讀取USB中斷鎖存USB Interrupt

Latch和Carkit中斷鎖存寄存器 Carkit Interrupt Latch,以確定中斷源。

1.9 時(shí)序

1.9.1 時(shí)鐘

下表總結(jié)了時(shí)鐘時(shí)序。8位接口的時(shí)序來自UTMI。可選的4位接口添加了新的時(shí)序。ULPI還引入了幾個(gè)必須由PHY供應(yīng)商填寫的新參數(shù)。如果PHY支持可選輸入時(shí)鐘,則LINK時(shí)鐘必須滿足表中的要求和任何供應(yīng)商特定的要求。

image.png

  1. 4位接口時(shí)鐘頻率和占空比容差減少一半到5%,因?yàn)殡p邊沿傳輸,上下邊沿都需要傳輸數(shù)據(jù)。

  2. Clock startup time after de-assertion of SuspendM: Peripheral 該事件計(jì)算了以滿足chirp 時(shí)序,來源于UTMI規(guī)格書

  3. Clock startup time after de-assertion of SuspendM: HOST,廠商填寫,建議啟動(dòng)時(shí)間小于1ms以滿足恢復(fù)時(shí)間resume要求。如果PHY用作主機(jī),并且接口時(shí)鐘不能設(shè)計(jì)為在1ms內(nèi)可用,則必須在內(nèi)部自動(dòng)發(fā)送恢復(fù)resume 信號(hào)。

  4. 如果PHY支持可選的輸入時(shí)鐘功能,則PHY供應(yīng)商必須說明準(zhǔn)備時(shí)間PHY preparation time after first transition of input clock。PHY必須同步其PLL,并準(zhǔn)備在指定時(shí)間前接受來自LINK的傳輸命令。LINK時(shí)鐘啟動(dòng)時(shí)間加上PHY準(zhǔn)備時(shí)間,必須滿足外圍設(shè)備5.6ms的啟動(dòng)時(shí)間(UTMI規(guī)格書中的說明),建議主機(jī)的總啟動(dòng)時(shí)間為1ms。

    輸出時(shí)鐘模式

PHY必須能夠提供輸出時(shí)鐘,并滿足上表中列出的要求。

8位外設(shè)的輸出時(shí)鐘時(shí)序遵循UTMI規(guī)范,穩(wěn)態(tài)頻率(FSTEADY)提供USB高速數(shù)據(jù)所需的±500ppm精度。啟動(dòng)時(shí)間(TSTART_DEV)允許外圍設(shè)備喚醒其時(shí)鐘,并在7ms的最大允許時(shí)間內(nèi)完成Chirp-K的傳輸(TSTART_DEV+TSTEADY)。

對(duì)于具有8位數(shù)據(jù)總線的主機(jī),ULPI定義了一個(gè)新的輸出時(shí)鐘啟動(dòng)時(shí)間(TSTART_host)。

當(dāng)USB主機(jī)檢測(cè)到遠(yuǎn)程喚醒信號(hào)時(shí),它必須喚醒時(shí)鐘,并在1ms的最大允許時(shí)間內(nèi)開始發(fā)送resume-K,PHY供應(yīng)商必須指定此值。

對(duì)于可選的4位數(shù)據(jù)接口,上升沿和下降沿都用于時(shí)鐘數(shù)據(jù)。為了提供可用的下降沿,ULPI將頻率(FSTART_4BIT)和占空比(DSTART_4BIT)容差降低了5%。

在所有情況下,當(dāng)PHY掛起suspended 或時(shí)鐘不“可用”時(shí),必須停止輸出時(shí)鐘。

如下是一個(gè)PHY時(shí)鐘輸出模式的示意,時(shí)鐘輸出模式是PHY必須要支持的,

REFCLK輸入晶體或者時(shí)鐘源通過內(nèi)部PLL產(chǎn)生時(shí)鐘CLKOUT。

image.png

輸入時(shí)鐘模式(可選)

PHY可以可選地支持來自LINK的60MHz輸入時(shí)鐘,從而不需要晶體。PHY必須從60MHz輸入時(shí)鐘驅(qū)動(dòng)其內(nèi)部PLL。

PHY供應(yīng)商負(fù)責(zé)指定所需的輸入時(shí)鐘時(shí)序。PHY供應(yīng)商必須說明所需的頻率、占空比、抖動(dòng)、上升和下降時(shí)間偏差,如上表所示。還必須指定內(nèi)部PHY時(shí)鐘準(zhǔn)備時(shí)間TPREP。如有必要,需求應(yīng)包括輸入電容以及吸電流和源電流能力

LINK可以選擇在低功率模式期間禁用或關(guān)閉其PLL,并且在其PLL穩(wěn)定之前不應(yīng)激活其時(shí)鐘輸出。不穩(wěn)定的LINK時(shí)鐘可能導(dǎo)致PHY PLL需要更長(zhǎng)的時(shí)間來穩(wěn)定。

該模式是可選的,如下是一個(gè)示意

比如對(duì)于USB334x則CLKOUT接VDDIO表示使用該模式,不同芯片可能會(huì)不一樣,要看手冊(cè)決定。

image.png

輸入時(shí)鐘的抖動(dòng)

如下的時(shí)序測(cè)試平面中

USB規(guī)格強(qiáng)制要求,在連接器A(TP2)處測(cè)得的高速傳輸眼圖的抖動(dòng)不大于7.5%

在PHY引腳(TP1)處測(cè)得的抖動(dòng)建議不大于5%.

ULPI規(guī)范沒有指定LINK輸出時(shí)鐘引腳(TP0)處的時(shí)鐘抖動(dòng)要求,

然而LINK和PHY設(shè)計(jì)者應(yīng)當(dāng)最小化他們的時(shí)鐘抖動(dòng),使得LINK加PHY抖動(dòng)的總和滿足推薦的5%抖動(dòng)預(yù)算。

image.png

1.9.2 控制和數(shù)據(jù)

控制和數(shù)據(jù)時(shí)序要求如下,這些時(shí)序僅適用于同步模式。所有時(shí)序都是相對(duì)于在PHY時(shí)鐘引腳處看到的時(shí)鐘來測(cè)量的??刂菩盘?hào)和8位數(shù)據(jù)總是在時(shí)鐘的上升沿上計(jì)時(shí),而可選的雙沿4位數(shù)據(jù)信號(hào)在上升沿和下降沿上計(jì)時(shí)。

主要關(guān)注建立時(shí)間和保持時(shí)間。

image.png

image.png

4位數(shù)據(jù)時(shí)鐘(可選)

PHY可以可選地支持4位數(shù)據(jù)總線而不是8位數(shù)據(jù)總線。原始的8位數(shù)據(jù)或命令被分成兩個(gè)4位的“半字節(jié)”。最低有效半字節(jié),數(shù)據(jù)(3:0),首先在時(shí)鐘的上升沿傳輸。最高有效的半字節(jié),數(shù)據(jù)(7:4),在時(shí)鐘的下降沿被第二次傳輸。不允許傳輸奇數(shù)個(gè)4位半字節(jié),這確保了完整字節(jié)的數(shù)據(jù)到達(dá)與8位設(shè)計(jì)的上升沿相同。

LINK和PHY必須滿足關(guān)于上升沿和下降沿規(guī)定的更嚴(yán)格的定時(shí)。允許輸出和輸入時(shí)鐘模式。

控制信號(hào)dir、stp和nxt僅在60MHz接口時(shí)鐘的上升沿上同步,因?yàn)閿?shù)據(jù)傳輸總是字節(jié)對(duì)齊的。

時(shí)序如圖所示

image.png

1.10總結(jié)

本篇概述了ULPI相關(guān)的內(nèi)容,內(nèi)容比較多后面還有工作模式和寄存器相關(guān)內(nèi)容會(huì)分開講。

1.11參考

《UTMI+ Low Pin Interface (ULPI) Specification Revision 1.1 October 20, 2004》

《MicroChip AN 19.17 ULPI Design Guide》
審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8366

    瀏覽量

    150542
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7851

    瀏覽量

    263332
  • PHY
    PHY
    +關(guān)注

    關(guān)注

    2

    文章

    299

    瀏覽量

    51620
  • 驅(qū)動(dòng)開發(fā)

    關(guān)注

    0

    文章

    130

    瀏覽量

    12054
  • DWC2
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    117
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于DWC2USB驅(qū)動(dòng)開發(fā)-0x01開篇介紹與新思DWC2 USB2.0控制器簡(jiǎn)介

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開發(fā)-0x01開篇介紹與新思DWC2
    的頭像 發(fā)表于 05-08 18:10 ?4381次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>0x</b>01開篇介紹與新思<b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0控制器簡(jiǎn)介

    基于DWC2USB驅(qū)動(dòng)開發(fā)-0x02 DWC2 USB2.0 IP功能特征介紹

    DWC2即新思(Synopsys )的DesignWare? Cores USB 2.0 HiSpeed On-The-Go (OTG)控制器IP,被大量使用。從linux的內(nèi)核源碼驅(qū)動(dòng)中就帶
    的頭像 發(fā)表于 05-09 10:09 ?8774次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>0x</b>02 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0 IP功能特征介紹

    基于DWC2USB驅(qū)動(dòng)開發(fā)-0x03 DWC2 USB2.0 IP 架構(gòu)介紹之接口協(xié)議時(shí)序

    本文介紹接口協(xié)議時(shí)序
    的頭像 發(fā)表于 05-10 15:37 ?2896次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>0x</b>03 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0 IP 架構(gòu)介紹之<b class='flag-5'>接口</b>和<b class='flag-5'>協(xié)議</b>時(shí)序

    基于DWC2USB驅(qū)動(dòng)開發(fā)-0x08 GLPI接口詳解

    本文詳細(xì)介紹介紹GLPI接口。
    的頭像 發(fā)表于 06-02 09:05 ?1243次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>0x08</b> GLPI<b class='flag-5'>接口</b>詳解

    基于DWC2USB驅(qū)動(dòng)開發(fā)-0x0D PHY寄存器讀寫代碼編寫與測(cè)試

    我們前面重點(diǎn)介紹了ULPI接口和PHY的寄存器,這一篇來進(jìn)行PHY寄存器讀寫的代碼編寫與測(cè)試。從這一篇開始就正真進(jìn)入了驅(qū)動(dòng)編寫的過程了。
    的頭像 發(fā)表于 06-06 13:03 ?2027次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>0x0</b>D PHY寄存器讀寫代碼編寫與測(cè)試

    基于DWC2USB驅(qū)動(dòng)開發(fā)-0x0E 使用邏輯分析儀分析ULPI數(shù)據(jù)

    工欲善其事必先利其器,所以在USB開發(fā)中工具很重要,示波器,邏輯分析儀,USB協(xié)議分析儀等都不可少。在底層問題分析時(shí)缺少有力工具時(shí)很難進(jìn)一步分析,本文分享了
    的頭像 發(fā)表于 06-07 16:56 ?1551次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>0x0</b>E 使用邏輯分析儀分析<b class='flag-5'>ULPI</b>數(shù)據(jù)

    基于DWC2USB驅(qū)動(dòng)開發(fā)-IAD描述符詳解

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開發(fā)-IAD描述符詳解 (qq.com) 一.? 前言 IAD描述符用于一個(gè)設(shè)備功能關(guān)聯(lián)多個(gè)接口
    的頭像 發(fā)表于 06-27 08:45 ?5w次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-IAD描述符詳解

    基于DWC2USB驅(qū)動(dòng)開發(fā)-USB復(fù)位詳解

    本文轉(zhuǎn)自公眾號(hào)歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開發(fā)-USB復(fù)位詳解 (qq.com) 一.前言 ? ? ? ? ?上一篇我們?cè)敿?xì)介紹了
    的頭像 發(fā)表于 07-07 11:18 ?5w次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>USB</b>復(fù)位詳解

    基于DWC2USB驅(qū)動(dòng)開發(fā)-USB連接詳解

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開發(fā)-USB連接詳解 (qq.com) 一.前言 ? 之前一直在閱讀手冊(cè),規(guī)格書,練習(xí)招式
    的頭像 發(fā)表于 07-07 08:46 ?3417次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>USB</b>連接詳解

    基于DWC2USB驅(qū)動(dòng)開發(fā)-設(shè)備類驅(qū)動(dòng)框架

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開發(fā)-設(shè)備類驅(qū)動(dòng)框架 (qq.com) 一.前言 從軟件頂層,從數(shù)據(jù)流的角度來看
    的頭像 發(fā)表于 07-16 15:56 ?1217次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-設(shè)備類<b class='flag-5'>驅(qū)動(dòng)</b>框架

    基于DWC2USB驅(qū)動(dòng)開發(fā)-發(fā)送相關(guān)的寄存器DMA寄存器詳解

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開發(fā)-發(fā)送相關(guān)的寄存器DMA寄存器詳解 (qq.com) 前言 如下寄存器DIEPxxx,對(duì)應(yīng)IN端點(diǎn),和發(fā)送數(shù)據(jù)相關(guān),這一篇先介紹和
    的頭像 發(fā)表于 07-16 16:42 ?1513次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-發(fā)送相關(guān)的寄存器DMA寄存器詳解

    基于DWC2USB驅(qū)動(dòng)開發(fā)-數(shù)據(jù)不能發(fā)送問題分析案例

    本文轉(zhuǎn)自公眾號(hào)歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開發(fā)-數(shù)據(jù)不能發(fā)送問題分析案例 (qq.com) ? 一.前言 ? ? ? ?對(duì)于驅(qū)動(dòng)
    的頭像 發(fā)表于 08-08 09:43 ?1978次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-數(shù)據(jù)不能發(fā)送問題分析案例

    如何對(duì)基于hal庫的DWC2 USB IP進(jìn)行調(diào)試呢

    背景之前適配 DWC2 USB IP 的時(shí)候,主要是基于 st 的 hal 庫來走的,當(dāng)時(shí)我就對(duì)他們的 hal 庫代碼不滿,只是無奈,迫于時(shí)間就沒重構(gòu),果不其然,usb bug 一堆,隨意舉例,這還
    發(fā)表于 06-14 15:23

    基于DWC2USB驅(qū)動(dòng)開發(fā)-0x0A ULPI接口同步模式介紹

    同步模式是ULPI必須支持的且主要的模式,內(nèi)容比較多,對(duì)于軟件開發(fā)人員來說重點(diǎn)關(guān)注下總線時(shí)序,即數(shù)據(jù)是如何交互的,這樣必要的的時(shí)候可以使用邏輯分析儀進(jìn)行抓包分析。另外重點(diǎn)關(guān)注下各個(gè)狀態(tài)是如何反應(yīng)在ULPI的寄存器中的
    的頭像 發(fā)表于 06-04 15:35 ?3660次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>0x0</b>A <b class='flag-5'>ULPI</b><b class='flag-5'>接口</b>同步模式介紹

    基于DWC2USB驅(qū)動(dòng)開發(fā)-抽絲剝繭再論切換到狀態(tài)階段標(biāo)志DOEPINTn.StsPhseRcvd

    本文轉(zhuǎn)自公眾號(hào)系列文章,歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開發(fā)-USB包詳解 (qq.com) 一.前言 前面我們對(duì)SETUP完成標(biāo)志DOE
    的頭像 發(fā)表于 07-24 18:04 ?1355次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-抽絲剝繭再論切換到狀態(tài)階段標(biāo)志DOEPINTn.StsPhseRcvd