1. 什么是UTMI?
UTMI (USB2.0 Transceiver Macrocell Interface):USB2.0 通用傳輸接口。最初設(shè)計(jì)是為了減少開發(fā)廠商的工作量,旨在提供一種通用標(biāo)準(zhǔn),來完成USB 2.0 的 底層協(xié)議數(shù)據(jù)處理。UTMI 的出現(xiàn)是為了加速USB2.0 外設(shè)的開發(fā)。
UTMI 最主要的作用主要是負(fù)責(zé)USB 協(xié)議中最底層的物理電信號(hào)的轉(zhuǎn)換。其本質(zhì)是一個(gè)接口規(guī)范,與usb phy 相連。
(相關(guān)資料圖)
下圖總結(jié)了在這個(gè)規(guī)范中表達(dá)的一些概念:
USB 2.0 Transceiver Macrocell(UTM):
Serial Interface Engine(SIE):串行接口引擎
Device Specific Logic:設(shè)備特殊邏輯
1.1 UTM
UTM 處理低級(jí)別的USB協(xié)議和信號(hào)。這包括諸如;數(shù)據(jù)序列化和反序列化、位填充和時(shí)鐘恢復(fù)和同步等特性。
UTM的主要焦點(diǎn)是將數(shù)據(jù)的時(shí)鐘域從USB 2.0速率轉(zhuǎn)移到與ASIC中的一般邏輯兼容的速率。
UTM 的關(guān)鍵特點(diǎn):
消除了高速USB 2.0邏輯設(shè)計(jì)
標(biāo)準(zhǔn)收發(fā)器接口為USB 2.0 SIE VHDL提供多個(gè)IP源
支持480 Mbit/s“高速”(HS)/ 12 Mbit/s“全速”(FS);僅支持FS和“低速”(LS);僅支持 LS 1.5 Mbit/s串行數(shù)據(jù)傳輸速率。
利用8位并行接口傳輸和接收USB 2.0電纜數(shù)據(jù)。
SYNC/EOP生成和檢查
高速和全速運(yùn)行,以支持“雙模式”設(shè)備的發(fā)展
bit-stuffing/bit-unstuffing, bit error detect
能夠在FS和HS終端/信號(hào)之間切換
等等
UTMI被設(shè)計(jì)用于支持HS/FS、僅FS和僅LS的UTM實(shí)現(xiàn)。這三個(gè)選項(xiàng)允許一個(gè)單一的SIE實(shí)現(xiàn)被使用與任何速度的USB收發(fā)器。供應(yīng)商可以選擇最滿足其需求的收發(fā)器性能。
1.2 Serial Interface Engine(SIE)
SIE 可以進(jìn)一步細(xì)分為兩種類型的子塊:SIE 控制邏輯 和 端點(diǎn)邏輯。
SIE 控制邏輯包含 USB PID 和 地址識(shí)別邏輯,以及其他處理USB數(shù)據(jù)包和事務(wù)的排序和狀態(tài)機(jī)邏輯。
端點(diǎn)邏輯:包含特定于端點(diǎn)的邏輯:端點(diǎn)編號(hào)識(shí)別、FIFO和FIFO控制等。
一般來說,任何USB實(shí)現(xiàn)都需要SIE控制邏輯,而端點(diǎn)的數(shù)量和類型將隨著應(yīng)用程序和性能要求的不同而變化。
1.3 Device Specific Logic
這是將USB接口與設(shè)備的特定應(yīng)用程序連接起來的邏輯。
1.4 UTM function block
UTM block 如上圖。
Device-> HOST:并行 TxData -> bit Stufffer -> NRZI Encoder -> xmit -> D+/D- -> HOSTHOST -> Device:Host -> D+/D- -> NRZI Decoder -> Bit Unstuffer -> 并行Rx Data -> Device
2. UTMI 版本
UTMI 第一個(gè)版本,是2001 年 發(fā)布的(UTMI spec V1.05)。后續(xù)隨著UTM 發(fā)展,引出了UMTI+ 版本。具體的版本如下:
版本 | 功能 | 備注 |
---|---|---|
UTMI+ level0 | 僅僅支持 USB2.0 設(shè)備 | 也是UTMI 第一個(gè)版本, V1.05 版本 |
UTMI+ leve1 | 支持USB2.0 設(shè)備、host 和 OTG 功能(HS/FS)。 | 不支持 LS, 2.0 用得最廣的接口 |
UTMI+ level2 | 支持USB2.0 設(shè)備、host 和 OTG 功能 (HS/FS/LS with no hub support) | 支持LS 模式 |
UTMI+ level3 | 支持 USB2.0 設(shè)備、host 和 OTG 功能(HS/FS/LS with hub support) |
UTMI+ 不同版本接口協(xié)議規(guī)范是向下兼容的。對(duì)于學(xué)習(xí)USB2.0 我們可以研究UTMI+ level0 或者level1 就夠了,高版本的協(xié)議無非是在舊有的協(xié)議基礎(chǔ)上新增了一些信號(hào)處理。
3. UTMI 接口介紹
UMTI+ 不同版本之間信號(hào)還是很多的。我們以u(píng)sb2.0 device 為主先介紹level0/level1。
3.1 UTMI+ level0
UTMI+ level0 規(guī)范,來源于UTMI 1.05 接口規(guī)范。下圖給出了具有16位接口的UTMT+ level0 收發(fā)器所需要的所有接口信號(hào):
對(duì)于具有8位接口的UTMI+0級(jí)收發(fā)器,TXValidH、RXValidH、DataBus16_8、DataIn(15:8)和DataOut(15:8)信號(hào),則是不需要的。
對(duì)于 USB 2.0 phy 調(diào)試我們需要關(guān)注的幾個(gè)信號(hào)(注意phy 的調(diào)試可能只在芯片fpga階段,或者外掛usb phy 才存在。一旦芯片集成完了,無法修改,后續(xù)的調(diào)試就大概率涉及不到phy 的調(diào)試):
CLK:UTMI_CLK 輸出時(shí)鐘
Reset:UTMI_RST
XcvrSelect:傳輸模式選擇
Term Select:終端選擇
LineState:D+/D- 狀態(tài)。高速枚舉的時(shí)候確認(rèn)電平狀態(tài)是否ok
DataBus_16_8:8bit/16bit 選擇。
一旦速度枚舉成功,說明整個(gè)輸入輸出信號(hào)無誤,剩下的就到軟件層面了。
3.2 UTMI+ level1
UTMI+ level1 規(guī)范相對(duì)于 level0 多了對(duì)OTG 設(shè)備的支持。新增了一些OTG /HOST 相關(guān)的接口。
信號(hào)接口如下:
對(duì)于USB2.0, 我們大多數(shù)情況下,用得最多的就是level1。同時(shí)支持:
device mode
host mode
OTG mode
對(duì)于單純的只需要device 的設(shè)備我們?cè)谛酒O(shè)計(jì)階段可以考慮,選擇level0 的接口phy。
當(dāng)然無論level 幾,都可以向前兼容的。關(guān)鍵是usb 控制器的輸入信號(hào)給的是什么標(biāo)準(zhǔn)。
usb 2.0 設(shè)備 默認(rèn)信號(hào):
3.3 UTMI+ level2
與UTMI+1相比,增加1bit的XcvrSelect信號(hào)來控制LS選擇。另外需要注意linestate等信號(hào)在LS時(shí)也要表示不一樣狀態(tài)。
新增接口:
LineStare 狀態(tài):
在全速和低速模式下,lineState(0)總是反應(yīng)DP,而lineState(1)總是反應(yīng)DM。
下行端口lineState:設(shè)備端
上行端口lineState:host 端
修復(fù)一個(gè)前文錯(cuò)誤:
下行端口(downstream):設(shè)備到主機(jī)行為。
上行端口(upstream):主機(jī)到設(shè)備行為
3.4 UTMI+ level3
與UTMI+2相比,沒有增加新的信號(hào)。只增加XcvrSelect=2"b11時(shí)的功能,該功能定義在UTMI+2中該位是保留的。
這是對(duì)level2的進(jìn)一步增強(qiáng)。在這個(gè)級(jí)別中,處理必須通過FS集線器從主機(jī)發(fā)送到LS設(shè)備的LS流量是可行的。
在level2中,如果使用并行接口,USB On-the-Go DRD的主機(jī)控制器部分只能與直接連接到主機(jī)的LS設(shè)備進(jìn)行通信。
如果XcrvSelect是11b,則收發(fā)器將在發(fā)送LS分組之前在FS處發(fā)送 preamble packet。在接收模式下,它將等待在LS收發(fā)器啟用的情況下接收LS數(shù)據(jù)包。收發(fā)器必須使用FS令牌(快速上升和下降時(shí)間以及相反的極性)發(fā)送所有數(shù)據(jù)(FS preamble packet和LS數(shù)據(jù))。注意,此時(shí)的令牌為特殊令牌PRE(有關(guān)PRE,本文不做介紹)。
一句話總結(jié):level2 只能直接和LS 設(shè)備通信, level3 可以通過hub 外接LS 設(shè)備。
4. 其他
4.1 Chrip Sequence
對(duì)于高速設(shè)備連接到整個(gè)usb host 整個(gè)時(shí)序如圖所示:
FS detect:全速設(shè)備檢測(cè)
Host Driver:主機(jī)產(chǎn)生SE0,持續(xù)10ms
Device Responds:設(shè)備回應(yīng)chirp K
Host Responds:主機(jī)回應(yīng) chirpk/j 對(duì),設(shè)備切換到高速模式
HS Idle:高速Idle
通常我們關(guān)注最多的就是 USB 設(shè)備端的這段信號(hào)(DP/DM)。對(duì)于XcverSelect optmode linestate 等信號(hào),一般對(duì)軟件層面是隱藏的。一旦這些信號(hào)有問題。說明IC 設(shè)計(jì)有問題,比如信號(hào)連接不對(duì),比如控制器輸出的信號(hào)有問題 。
4.2 不同的信號(hào)模式
5. 總結(jié)
本文主要介紹了UTMI 及 UTMI+ 接口規(guī)范。詳細(xì)對(duì)比了level0/level1/levle2/level3 。對(duì)于初學(xué)者而言,可以先以level0 為基準(zhǔn)學(xué)習(xí),后續(xù)再逐步深入到其他規(guī)范。
本文檔適用于哪些人員:IC 設(shè)計(jì)人員、FPGA 驗(yàn)證人員、USB 底層深入學(xué)習(xí)人員。
審核編輯:湯梓紅
標(biāo)簽: