本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-0x09 ULPI接口協(xié)議其他工作模式介紹 (qq.com)
ULPI(其他工作模式介紹)
1.1 前言
上一篇講解了ULPI基本的一些概念,這一篇就重點(diǎn)講解其具體的工作模式,同步模式是重點(diǎn)內(nèi)容比較多放在下一篇,這一篇先講其他模式。
1.2 低功耗模式
當(dāng)USB總線(xiàn)掛起時(shí),LINK可以選擇性地將PHY置于低功耗模式。PHY可以關(guān)閉除接口引腳和全速接收器之外的所有電路。如果存在VBUS,總線(xiàn)電阻器也必須通電。如果設(shè)置了相應(yīng)的寄存器位,則對(duì)應(yīng)功能都必須通電,包括中斷源和電荷泵。如果PLL斷電,則必須停止時(shí)鐘而不出現(xiàn)毛刺。
1.2.1 低功耗模式的Data線(xiàn)重定義
當(dāng)處于低功耗模式時(shí),PHY使用下表中列出的信號(hào)驅(qū)動(dòng)數(shù)據(jù)線(xiàn)(3:0)。當(dāng)處于低功耗模式時(shí),必須從FS接收器組合驅(qū)動(dòng)LineState。
每當(dāng)發(fā)生任何未屏蔽的中斷時(shí),都會(huì)使得int引腳信號(hào)有效。
PHY必須直接從模擬電路鎖存中斷事件,因?yàn)闀r(shí)鐘已斷電。
LINK忽略8位數(shù)據(jù)總線(xiàn)的數(shù)據(jù)位(7:4)的信號(hào)。
輸入時(shí)鐘和輸出時(shí)鐘模式都必須遵循這些規(guī)則。
信號(hào) | 映射到 | 方向 | 描述 |
---|---|---|---|
nestate(0) | data(0) | OUT | LineState(0) 由FS 模擬接收器直接驅(qū)動(dòng)。 |
nestate(1) | data(1) | OUT | LineState(1) 由FS 模擬接收器直接驅(qū)動(dòng)。 |
reserved | data(2) | OUT | 保留,PHY必須拉低該引腳。 |
int | data(3) | OUT | 高有效,有未屏蔽中斷時(shí)PHY拉高該引腳。 |
1.2.2 進(jìn)入低功耗模式
LINK寫(xiě)Function Control 寄存器的SuspendM 為0b使得PHY進(jìn)入低功耗模式。
如圖所示LINK或PHY時(shí)鐘可以在PHY接受寄存器寫(xiě)入數(shù)據(jù)后至少停止五個(gè)周期。
當(dāng)處于低功耗模式時(shí),PHY拉高dir,并保持nxt為低。
在拉高dir之后,提供了一個(gè)數(shù)據(jù)總線(xiàn)周轉(zhuǎn)周期turn around,在此期間,數(shù)據(jù)上的值無(wú)效。
PHY在turn around周期之后立即開(kāi)始按照低功耗模式的Data線(xiàn)重定義信號(hào)驅(qū)動(dòng)data[3:0]。
1.2.3 退出低功耗模式
如圖所示,LINK通過(guò)異步拉高stp向PHY發(fā)出退出低功率模式的信號(hào)。PHY立即開(kāi)始喚醒其內(nèi)部電路。當(dāng)PHY時(shí)鐘滿(mǎn)足ULPI時(shí)序要求時(shí),PHY拉低dir。PHY必須確保在拉低dir之前至少驅(qū)動(dòng)了5個(gè)時(shí)鐘周期。PHY還必須確保在拉低dir之前將SuspendM寄存器自動(dòng)設(shè)置為1b。
LINK在檢測(cè)到dir拉低的一個(gè)CLK之后,拉低stp。
在拉低dir之后,提供了一個(gè)數(shù)據(jù)總線(xiàn)周轉(zhuǎn)周期turn around,在此期間,數(shù)據(jù)上的值無(wú)效。
PHY在turn around之前立即停止按照低功耗模式的Data線(xiàn)重定義信號(hào)驅(qū)動(dòng)data[3:0]。
當(dāng)LINK提供輸入時(shí)鐘時(shí),PHY必須在TPREP內(nèi)同步其內(nèi)部時(shí)鐘TPREP是實(shí)現(xiàn)相關(guān)的。
PHY提供輸出時(shí)鐘時(shí)的退出低功耗
LINK提供輸入時(shí)鐘時(shí)的退出低功耗
1.2.4 拒絕虛假恢復(fù)
由于USB環(huán)境的噪聲,可能導(dǎo)致低功耗模式下PHY驅(qū)動(dòng)的異步LineState 輸出,有短暫的non-J-state條件或者毛刺。
LineState上的毛刺可能導(dǎo)致LINK短暫的拉高stp,這應(yīng)該要認(rèn)為是虛假的恢復(fù)PHY必須拒絕這個(gè)事件。PHY可以在重新啟動(dòng)時(shí)鐘之前選擇性地拒絕stp上的毛刺,如圖所示。PHY必須通過(guò)在PHY拉低dir時(shí)在時(shí)鐘的邊沿去檢查stp是否拉高,來(lái)確定是否滿(mǎn)足退出低功耗模式的條件。
如果在dir被拉低的周期中stp沒(méi)有被拉高,那么PHY必須重新拉高dir并返回到低功率模式,而無(wú)需LINK的進(jìn)一步操作,如圖所示。
1.3 全速/低速串行模式(可選)
全速/低速串行模式(FsLsSerialMode)使LINK能夠直接訪(fǎng)問(wèn)FS/LS串行模擬收發(fā)器。
ULPI中定義了兩種類(lèi)型的串行模式:3p FsLsSerialMode和6p FsL sSerialmode。
這兩種模式都是可選的。與低功率模式不同,F(xiàn)S/LS收發(fā)器必須通電。
如果設(shè)置了相應(yīng)的寄存器位,則對(duì)應(yīng)功能都必須通電,包括中斷源和電荷泵。
1.3.1 FsLsSerialMode的數(shù)據(jù)線(xiàn)重定義
6p串行模式為UTMI+中定義的每個(gè)串行信號(hào)提供一條單獨(dú)的數(shù)據(jù)線(xiàn)。3p串行模式將USB接收和傳輸數(shù)據(jù)壓縮到雙向數(shù)據(jù)線(xiàn)上,并提供4位數(shù)據(jù)總線(xiàn)PHY實(shí)現(xiàn)可以支持串行信號(hào)。
在任一模式中,UTMI+的低有效tx_enable_n信號(hào)被轉(zhuǎn)換為高有效tx_enable,用于在ULPI總線(xiàn)上傳輸,這允許默認(rèn)的ULPI總線(xiàn)空閑狀態(tài)保持在00h。
在兩種串行模式中,都提供了一個(gè)中斷引腳。只要發(fā)生未屏蔽的中斷事件,就會(huì)拉高int引腳。
當(dāng)處于6p串行模式時(shí),PHY使用下表中列出的信號(hào)驅(qū)動(dòng)數(shù)據(jù)(7:0)。
當(dāng)處于3p串行模式時(shí),PHY使用下表中列出的信號(hào)驅(qū)動(dòng)數(shù)據(jù)(3:0)。
1.3.2 進(jìn)入FsLsSerialMode模式
為了進(jìn)入6p串行模式,LINK在接口控制寄存器Interface Control中設(shè)置6-Pin FsLsSerialMode位,使數(shù)據(jù)總線(xiàn)切換到異步操作,并采用新的總線(xiàn)數(shù)據(jù)定義。
為了進(jìn)入3p串行模式,LINK在接口控制寄存器Interface Control中設(shè)置3-Pin FsLsSerialMode位,使數(shù)據(jù)總線(xiàn)切換到異步操作,并采用新的總線(xiàn)數(shù)據(jù)定義。
默認(rèn)情況下,輸出時(shí)鐘斷電以減少串行模式下的功耗,如圖所示。進(jìn)入串行模式后至少5個(gè)時(shí)鐘周期后,時(shí)鐘停止,當(dāng)時(shí)鐘不可用時(shí),PHY必須拉高dir。在拉高dir之后,提供了一個(gè)數(shù)據(jù)總線(xiàn)周轉(zhuǎn)周期turn around,在此期間,數(shù)據(jù)上的值無(wú)效。PHY在周轉(zhuǎn)周期之后立即開(kāi)始驅(qū)動(dòng)串行模式信號(hào)。
如果LINK要求時(shí)鐘在串行模式下運(yùn)行,它可以在進(jìn)入串行模式之前在接口控制寄存器Interface Contro中設(shè)置ClockSuspendM信號(hào),如圖所示。
1.3.3 退出FsLsSerialMode模式
當(dāng)LINK檢測(cè)到int為高時(shí),它應(yīng)該通過(guò)拉高stp來(lái)退出FsLsSerialMode。
當(dāng)ULPI接口返回同步模式時(shí),LINK可以讀取USB中斷鎖存寄存器USB Interrupt Latch以確定中斷源。如果時(shí)鐘未運(yùn)行,退出FsLsSerialMode與退出低功率模式相同,如圖所示。
如果時(shí)鐘正在運(yùn)行,則LINK通過(guò)拉高stp向PHY發(fā)出退出FsLsSerialMode的信號(hào)。
PHY在檢測(cè)到stp拉高后將拉低dir 1個(gè)或多個(gè)周期,如圖所示。在拉低dir之后的一個(gè)時(shí)鐘中,LINK取消拉高stp。與低功率模式一樣,在取消拉高dir之后的周期中,有一個(gè)時(shí)鐘的總線(xiàn)數(shù)據(jù)周轉(zhuǎn)周期,在周轉(zhuǎn)周期內(nèi),數(shù)據(jù)上的值無(wú)效。PHY在緊接周轉(zhuǎn)周期之前停止驅(qū)動(dòng)串行模式信號(hào)。
1.4 Carkit模式(可選)
當(dāng)設(shè)置接口控制寄存器Interface Control中的CarkitMode位時(shí),選擇該模式。
它允許LINK使用UART信號(hào)通過(guò)PHY與遠(yuǎn)程車(chē)載套件進(jìn)行通信。
默認(rèn)情況下,當(dāng)PHY進(jìn)入Carkit模式時(shí),時(shí)鐘會(huì)斷電。進(jìn)入和退出Carkit模式與串行模式相同。如果LINK要求時(shí)鐘在Carkit模式下運(yùn)行,它可以在進(jìn)入Carkit模式之前在接口控制寄存器Interface Control中設(shè)置ClockSuspendM信號(hào)。
只要發(fā)生未屏蔽的中斷事件,就會(huì)拉高int引腳。當(dāng)LINK檢測(cè)到int為高時(shí),它應(yīng)該通過(guò)拉高stp來(lái)喚醒時(shí)鐘(如果斷電)。如果時(shí)鐘已經(jīng)在運(yùn)行,LINK拉高stp一個(gè)周期,將接口切換到同步模式。
當(dāng)PHY處于同步模式時(shí),LINK可以讀取Carkit中斷鎖存寄存器Carkit Interrupt Latch以確定中斷源。
1.5 保護(hù)PHY輸入信號(hào)
由于包括但不限于硬件復(fù)位或緩慢通電的原因,LINK可能無(wú)法正確驅(qū)動(dòng)ULPI接口。在這種情況下,當(dāng)PHY的dir拉低時(shí),LINK無(wú)法將數(shù)據(jù)驅(qū)動(dòng)到空閑00h狀態(tài)。PHY數(shù)據(jù)輸入信號(hào)上的未知值可能會(huì)啟動(dòng)未經(jīng)請(qǐng)求的USB活動(dòng)、寄存器寫(xiě)入、串行或Carkit傳輸。
因此,PHY必須始終保護(hù)其數(shù)據(jù)輸入。
為了防止數(shù)據(jù)輸入上的錯(cuò)誤命令,PHY必須在stp上包含一個(gè)弱上拉電阻器。
任何時(shí)候stp出乎意料地高,PHY都認(rèn)為L(zhǎng)INK無(wú)法驅(qū)動(dòng)接口,并且必須進(jìn)入保持狀態(tài)。
當(dāng)處于保持狀態(tài)時(shí),PHY不得使用數(shù)據(jù)上的命令,并且不得拉高dir,除非其內(nèi)部時(shí)鐘不穩(wěn)定。LINK還被允許在任何時(shí)候?qū)tp驅(qū)動(dòng)為高電平,從而迫使PHY停止使用數(shù)據(jù)上的命令。
當(dāng)PHY處于保持狀態(tài)時(shí),它可以選擇性地在數(shù)據(jù)上啟用弱下拉電阻器,防止它們浮動(dòng)。
當(dāng)PHY處于保持狀態(tài)時(shí)發(fā)生的所有RXCMD更改必須用單個(gè)RX CMD更新來(lái)替換,當(dāng)ULPI總線(xiàn)可用時(shí),PHY退出保持狀態(tài)時(shí)發(fā)送該更新。RX CMD更新必須始終傳達(dá)當(dāng)前RXCMD值,而不是以前或舊的值。
如果LINK始終可以將stp和數(shù)據(jù)驅(qū)動(dòng)到已知值,則可以通過(guò)將接口控制寄存器Interface Control中的接口保護(hù)禁用位Interface Protect Disable設(shè)置為1b來(lái)禁用保護(hù)功能,這會(huì)降低功耗。
當(dāng)時(shí)鐘運(yùn)行時(shí),LINK應(yīng)在停止驅(qū)動(dòng)ULPI接口之前將stp驅(qū)動(dòng)高至少一個(gè)時(shí)鐘周期,迫使PHY進(jìn)入保持狀態(tài)以保護(hù)其數(shù)據(jù)輸入。PHY中的上拉將在隨后的周期中保持stp為高,如圖所示。
對(duì)于LINK在停止驅(qū)動(dòng)ULPI接口之前無(wú)法將stp驅(qū)動(dòng)為高電平的實(shí)現(xiàn),無(wú)法保證PHY操作的安全性。
在通電期間或時(shí)鐘未運(yùn)行時(shí),PHY始終拉高dir,以保護(hù)其數(shù)據(jù)輸入,如圖所示。如果當(dāng)PHY拉低dir時(shí)stp為高,則PHY將立即進(jìn)入保持狀態(tài)并保護(hù)其數(shù)據(jù)輸入。當(dāng)LINK將stp驅(qū)動(dòng)為低時(shí),PHY立即開(kāi)始處理其數(shù)據(jù)輸入。
如圖所示,如果當(dāng)LINK停止驅(qū)動(dòng)ULPI接口時(shí)PHY處于低功耗模式,則stp上的上拉將自動(dòng)喚醒PHY。如果LINK不希望PHY自動(dòng)喚醒,則它必須將stp驅(qū)動(dòng)為低電平。
如果當(dāng)LINK恢復(fù)驅(qū)動(dòng)ULPI接口時(shí)dir為高,則LINK應(yīng)當(dāng)假定PHY處于低功率模式并且驅(qū)動(dòng)stp為高以喚醒PHY,如圖所示,在拉低dir之后的時(shí)鐘中,LINK拉低stp。當(dāng)dir和stp都為低電平時(shí),PHY在當(dāng)前時(shí)鐘周期中開(kāi)始處理其數(shù)據(jù)輸入。這也適用于通電期間。
如圖所示,當(dāng)dir為高時(shí),LINK可以在通電期間將stp驅(qū)動(dòng)為低電平。
當(dāng)dir被拉低時(shí),PHY在周轉(zhuǎn)周期之后開(kāi)始處理其數(shù)據(jù)輸入。
1.6 總結(jié)
本篇講解了低功耗,全速/低速串行模式,Carkit模式,以及PHY輸入信號(hào)的保護(hù)處理。其中低功耗模式是必須的,其他的是可選實(shí)現(xiàn)的。
1.7 參考
《UTMI+ Low Pin Interface (ULPI) Specification Revision 1.1 October 20, 2004》
《MicroChip AN 19.17 ULPI Design Guide》
審核編輯:湯梓紅
-
接口協(xié)議
+關(guān)注
關(guān)注
5文章
41瀏覽量
18739 -
接口
+關(guān)注
關(guān)注
33文章
8885瀏覽量
152974 -
usb
+關(guān)注
關(guān)注
60文章
8066瀏覽量
269676 -
總線(xiàn)
+關(guān)注
關(guān)注
10文章
2936瀏覽量
89150 -
電荷泵
+關(guān)注
關(guān)注
3文章
250瀏覽量
29932 -
DWC2
+關(guān)注
關(guān)注
0文章
35瀏覽量
210
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-0x01開(kāi)篇介紹與新思DWC2 USB2.0控制器簡(jiǎn)介

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

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

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

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

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

基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-IAD描述符詳解

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

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

基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-高速設(shè)備枚舉為全速設(shè)備問(wèn)題案例分析

基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-設(shè)備類(lèi)驅(qū)動(dòng)框架

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

基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-數(shù)據(jù)不能發(fā)送問(wèn)題分析案例

新思 DWC2 的參考手冊(cè)從哪里可以下載
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-0x0A ULPI接口同步模式介紹

評(píng)論