91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

基于DWC2的USB驅(qū)動開發(fā)-0x09 ULPI接口協(xié)議其他工作模式介紹

嵌入式USB開發(fā) ? 來源:嵌入式USB開發(fā) ? 作者:嵌入式USB開發(fā) ? 2023-06-02 15:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文轉(zhuǎn)自公眾號,歡迎關注

基于DWC2的USB驅(qū)動開發(fā)-0x09 ULPI接口協(xié)議其他工作模式介紹 (qq.com)

ULPI(其他工作模式介紹)

1.1 前言

上一篇講解了ULPI基本的一些概念,這一篇就重點講解其具體的工作模式,同步模式是重點內(nèi)容比較多放在下一篇,這一篇先講其他模式。

1.2 低功耗模式

USB總線掛起時,LINK可以選擇性地將PHY置于低功耗模式。PHY可以關閉除接口引腳和全速接收器之外的所有電路。如果存在VBUS,總線電阻器也必須通電。如果設置了相應的寄存器位,則對應功能都必須通電,包括中斷源和電荷泵。如果PLL斷電,則必須停止時鐘而不出現(xiàn)毛刺。

1.2.1 低功耗模式的Data線重定義

當處于低功耗模式時,PHY使用下表中列出的信號驅(qū)動數(shù)據(jù)線(3:0)。當處于低功耗模式時,必須從FS接收器組合驅(qū)動LineState。

每當發(fā)生任何未屏蔽的中斷時,都會使得int引腳信號有效。

PHY必須直接從模擬電路鎖存中斷事件,因為時鐘已斷電。

LINK忽略8位數(shù)據(jù)總線的數(shù)據(jù)位(7:4)的信號。

輸入時鐘和輸出時鐘模式都必須遵循這些規(guī)則。

信號 映射到 方向 描述
nestate(0) data(0) OUT LineState(0) 由FS 模擬接收器直接驅(qū)動。
nestate(1) data(1) OUT LineState(1) 由FS 模擬接收器直接驅(qū)動。
reserved data(2) OUT 保留,PHY必須拉低該引腳。
int data(3) OUT 高有效,有未屏蔽中斷時PHY拉高該引腳。

1.2.2 進入低功耗模式

LINK寫Function Control 寄存器的SuspendM 為0b使得PHY進入低功耗模式。

如圖所示LINK或PHY時鐘可以在PHY接受寄存器寫入數(shù)據(jù)后至少停止五個周期。

當處于低功耗模式時,PHY拉高dir,并保持nxt為低。

在拉高dir之后,提供了一個數(shù)據(jù)總線周轉(zhuǎn)周期turn around,在此期間,數(shù)據(jù)上的值無效。

PHY在turn around周期之后立即開始按照低功耗模式的Data線重定義信號驅(qū)動data[3:0]。

image.png

1.2.3 退出低功耗模式

如圖所示,LINK通過異步拉高stp向PHY發(fā)出退出低功率模式的信號。PHY立即開始喚醒其內(nèi)部電路。當PHY時鐘滿足ULPI時序要求時,PHY拉低dir。PHY必須確保在拉低dir之前至少驅(qū)動了5個時鐘周期。PHY還必須確保在拉低dir之前將SuspendM寄存器自動設置為1b。

LINK在檢測到dir拉低的一個CLK之后,拉低stp。

在拉低dir之后,提供了一個數(shù)據(jù)總線周轉(zhuǎn)周期turn around,在此期間,數(shù)據(jù)上的值無效。

PHY在turn around之前立即停止按照低功耗模式的Data線重定義信號驅(qū)動data[3:0]。

當LINK提供輸入時鐘時,PHY必須在TPREP內(nèi)同步其內(nèi)部時鐘TPREP是實現(xiàn)相關的。

PHY提供輸出時鐘時的退出低功耗

image.png

LINK提供輸入時鐘時的退出低功耗

image.png

1.2.4 拒絕虛假恢復

由于USB環(huán)境的噪聲,可能導致低功耗模式下PHY驅(qū)動的異步LineState 輸出,有短暫的non-J-state條件或者毛刺。

LineState上的毛刺可能導致LINK短暫的拉高stp,這應該要認為是虛假的恢復PHY必須拒絕這個事件。PHY可以在重新啟動時鐘之前選擇性地拒絕stp上的毛刺,如圖所示。PHY必須通過在PHY拉低dir時在時鐘的邊沿去檢查stp是否拉高,來確定是否滿足退出低功耗模式的條件。

image.png

如果在dir被拉低的周期中stp沒有被拉高,那么PHY必須重新拉高dir并返回到低功率模式,而無需LINK的進一步操作,如圖所示。

image.png

1.3 全速/低速串行模式(可選)

全速/低速串行模式(FsLsSerialMode)使LINK能夠直接訪問FS/LS串行模擬收發(fā)器。

ULPI中定義了兩種類型的串行模式:3p FsLsSerialMode和6p FsL sSerialmode。

這兩種模式都是可選的。與低功率模式不同,F(xiàn)S/LS收發(fā)器必須通電。

如果設置了相應的寄存器位,則對應功能都必須通電,包括中斷源和電荷泵。

1.3.1 FsLsSerialMode的數(shù)據(jù)線重定義

6p串行模式為UTMI+中定義的每個串行信號提供一條單獨的數(shù)據(jù)線。3p串行模式將USB接收和傳輸數(shù)據(jù)壓縮到雙向數(shù)據(jù)線上,并提供4位數(shù)據(jù)總線PHY實現(xiàn)可以支持串行信號。

在任一模式中,UTMI+的低有效tx_enable_n信號被轉(zhuǎn)換為高有效tx_enable,用于在ULPI總線上傳輸,這允許默認的ULPI總線空閑狀態(tài)保持在00h。

在兩種串行模式中,都提供了一個中斷引腳。只要發(fā)生未屏蔽的中斷事件,就會拉高int引腳。

當處于6p串行模式時,PHY使用下表中列出的信號驅(qū)動數(shù)據(jù)(7:0)。

image.png

當處于3p串行模式時,PHY使用下表中列出的信號驅(qū)動數(shù)據(jù)(3:0)。

image.png

1.3.2 進入FsLsSerialMode模式

為了進入6p串行模式,LINK在接口控制寄存器Interface Control中設置6-Pin FsLsSerialMode位,使數(shù)據(jù)總線切換到異步操作,并采用新的總線數(shù)據(jù)定義。

為了進入3p串行模式,LINK在接口控制寄存器Interface Control中設置3-Pin FsLsSerialMode位,使數(shù)據(jù)總線切換到異步操作,并采用新的總線數(shù)據(jù)定義。

默認情況下,輸出時鐘斷電以減少串行模式下的功耗,如圖所示。進入串行模式后至少5個時鐘周期后,時鐘停止,當時鐘不可用時,PHY必須拉高dir。在拉高dir之后,提供了一個數(shù)據(jù)總線周轉(zhuǎn)周期turn around,在此期間,數(shù)據(jù)上的值無效。PHY在周轉(zhuǎn)周期之后立即開始驅(qū)動串行模式信號。

image.png

如果LINK要求時鐘在串行模式下運行,它可以在進入串行模式之前在接口控制寄存器Interface Contro中設置ClockSuspendM信號,如圖所示。

image.png

1.3.3 退出FsLsSerialMode模式

當LINK檢測到int為高時,它應該通過拉高stp來退出FsLsSerialMode。

當ULPI接口返回同步模式時,LINK可以讀取USB中斷鎖存寄存器USB Interrupt Latch以確定中斷源。如果時鐘未運行,退出FsLsSerialMode與退出低功率模式相同,如圖所示。

image.png

如果時鐘正在運行,則LINK通過拉高stp向PHY發(fā)出退出FsLsSerialMode的信號。

PHY在檢測到stp拉高后將拉低dir 1個或多個周期,如圖所示。在拉低dir之后的一個時鐘中,LINK取消拉高stp。與低功率模式一樣,在取消拉高dir之后的周期中,有一個時鐘的總線數(shù)據(jù)周轉(zhuǎn)周期,在周轉(zhuǎn)周期內(nèi),數(shù)據(jù)上的值無效。PHY在緊接周轉(zhuǎn)周期之前停止驅(qū)動串行模式信號。

image.png

1.4 Carkit模式(可選)

當設置接口控制寄存器Interface Control中的CarkitMode位時,選擇該模式。

它允許LINK使用UART信號通過PHY與遠程車載套件進行通信

默認情況下,當PHY進入Carkit模式時,時鐘會斷電。進入和退出Carkit模式與串行模式相同。如果LINK要求時鐘在Carkit模式下運行,它可以在進入Carkit模式之前在接口控制寄存器Interface Control中設置ClockSuspendM信號。

只要發(fā)生未屏蔽的中斷事件,就會拉高int引腳。當LINK檢測到int為高時,它應該通過拉高stp來喚醒時鐘(如果斷電)。如果時鐘已經(jīng)在運行,LINK拉高stp一個周期,將接口切換到同步模式。

當PHY處于同步模式時,LINK可以讀取Carkit中斷鎖存寄存器Carkit Interrupt Latch以確定中斷源。

image.png

1.5 保護PHY輸入信號

由于包括但不限于硬件復位或緩慢通電的原因,LINK可能無法正確驅(qū)動ULPI接口。在這種情況下,當PHY的dir拉低時,LINK無法將數(shù)據(jù)驅(qū)動到空閑00h狀態(tài)。PHY數(shù)據(jù)輸入信號上的未知值可能會啟動未經(jīng)請求的USB活動、寄存器寫入、串行或Carkit傳輸。

因此,PHY必須始終保護其數(shù)據(jù)輸入。

為了防止數(shù)據(jù)輸入上的錯誤命令,PHY必須在stp上包含一個弱上拉電阻器。

任何時候stp出乎意料地高,PHY都認為LINK無法驅(qū)動接口,并且必須進入保持狀態(tài)。

當處于保持狀態(tài)時,PHY不得使用數(shù)據(jù)上的命令,并且不得拉高dir,除非其內(nèi)部時鐘不穩(wěn)定。LINK還被允許在任何時候?qū)tp驅(qū)動為高電平,從而迫使PHY停止使用數(shù)據(jù)上的命令。

當PHY處于保持狀態(tài)時,它可以選擇性地在數(shù)據(jù)上啟用弱下拉電阻器,防止它們浮動。

當PHY處于保持狀態(tài)時發(fā)生的所有RXCMD更改必須用單個RX CMD更新來替換,當ULPI總線可用時,PHY退出保持狀態(tài)時發(fā)送該更新。RX CMD更新必須始終傳達當前RXCMD值,而不是以前或舊的值。

如果LINK始終可以將stp和數(shù)據(jù)驅(qū)動到已知值,則可以通過將接口控制寄存器Interface Control中的接口保護禁用位Interface Protect Disable設置為1b來禁用保護功能,這會降低功耗。

當時鐘運行時,LINK應在停止驅(qū)動ULPI接口之前將stp驅(qū)動高至少一個時鐘周期,迫使PHY進入保持狀態(tài)以保護其數(shù)據(jù)輸入。PHY中的上拉將在隨后的周期中保持stp為高,如圖所示。

對于LINK在停止驅(qū)動ULPI接口之前無法將stp驅(qū)動為高電平的實現(xiàn),無法保證PHY操作的安全性。

image.png

在通電期間或時鐘未運行時,PHY始終拉高dir,以保護其數(shù)據(jù)輸入,如圖所示。如果當PHY拉低dir時stp為高,則PHY將立即進入保持狀態(tài)并保護其數(shù)據(jù)輸入。當LINK將stp驅(qū)動為低時,PHY立即開始處理其數(shù)據(jù)輸入。

image.png

如圖所示,如果當LINK停止驅(qū)動ULPI接口時PHY處于低功耗模式,則stp上的上拉將自動喚醒PHY。如果LINK不希望PHY自動喚醒,則它必須將stp驅(qū)動為低電平。

image.png

如果當LINK恢復驅(qū)動ULPI接口時dir為高,則LINK應當假定PHY處于低功率模式并且驅(qū)動stp為高以喚醒PHY,如圖所示,在拉低dir之后的時鐘中,LINK拉低stp。當dir和stp都為低電平時,PHY在當前時鐘周期中開始處理其數(shù)據(jù)輸入。這也適用于通電期間。

image.png

如圖所示,當dir為高時,LINK可以在通電期間將stp驅(qū)動為低電平。

當dir被拉低時,PHY在周轉(zhuǎn)周期之后開始處理其數(shù)據(jù)輸入。

image.png

1.6 總結

本篇講解了低功耗,全速/低速串行模式,Carkit模式,以及PHY輸入信號的保護處理。其中低功耗模式是必須的,其他的是可選實現(xiàn)的。

1.7 參考

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

MicroChip AN 19.17 ULPI Design Guide》

審核編輯:湯梓紅

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

    關注

    5

    文章

    43

    瀏覽量

    19069
  • 接口
    +關注

    關注

    33

    文章

    9518

    瀏覽量

    156994
  • usb
    usb
    +關注

    關注

    60

    文章

    8437

    瀏覽量

    284385
  • 總線
    +關注

    關注

    10

    文章

    3039

    瀏覽量

    91650
  • 電荷泵
    +關注

    關注

    3

    文章

    425

    瀏覽量

    30758
  • DWC2
    +關注

    關注

    0

    文章

    35

    瀏覽量

    372
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

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

    本文介紹接口協(xié)議時序
    的頭像 發(fā)表于 05-10 15:37 ?4653次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</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 架構<b class='flag-5'>介紹</b>之<b class='flag-5'>接口</b>和<b class='flag-5'>協(xié)議</b>時序

    基于DWC2USB驅(qū)動開發(fā)-0x08 ULPI接口協(xié)議概覽

    本篇概述了ULPI相關的內(nèi)容,內(nèi)容比較多后面還有工作模式和寄存器相關內(nèi)容會分開講。
    的頭像 發(fā)表于 06-02 13:08 ?1.2w次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>0x</b>08 <b class='flag-5'>ULPI</b><b class='flag-5'>接口</b><b class='flag-5'>協(xié)議</b>概覽

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

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

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

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

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

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

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

    本文轉(zhuǎn)自公眾號歡迎關注 基于DWC2USB驅(qū)動開發(fā)-USB復位詳解 (qq.com) 一.前言 ? ? ? ? ?上一篇我們詳細
    的頭像 發(fā)表于 07-07 11:18 ?18.7w次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>USB</b>復位詳解

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

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

    基于DWC2USB驅(qū)動開發(fā)-高速設備枚舉為全速設備問題案例分析

    本文轉(zhuǎn)自公眾號,歡迎關注 基于DWC2USB驅(qū)動開發(fā)-高速設備枚舉為全速設備問題案例分析 (qq.com) 一.前言 ? 本文分享一個高速設備被枚舉為全速的問題。 ? ? 高速設備速
    的頭像 發(fā)表于 07-10 17:12 ?2672次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-高速設備枚舉為全速設備問題案例分析

    基于DWC2USB驅(qū)動開發(fā)-設備類驅(qū)動框架

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

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

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

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

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

    新思 DWC2 的參考手冊從哪里可以下載

    最近在學習STM32F4 USB驅(qū)動,有看到 dwc2驅(qū)動的代碼,但是沒有手冊用來參考,ST手冊上寄存器不全,從網(wǎng)上看到有下面兩個手冊,但是一直找不到下載的資源 《DesignWar
    發(fā)表于 01-22 11:32

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

    同步模式ULPI必須支持的且主要的模式,內(nèi)容比較多,對于軟件開發(fā)人員來說重點關注下總線時序,即數(shù)據(jù)是如何交互的,這樣必要的的時候可以使用邏輯分析儀進行抓包分析。另外重點關注下各個狀態(tài)
    的頭像 發(fā)表于 06-04 15:35 ?6920次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</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>同步<b class='flag-5'>模式</b><b class='flag-5'>介紹</b>