1. 概述
一個(gè)完整的usb 系統(tǒng)通信流程如下圖所示:整個(gè)系統(tǒng)大致分為三層。
host
客戶軟件:管理接口設(shè)備
usb 系統(tǒng)軟件:管理設(shè)備
USB 總線接口(HDC):管理usb 幀數(shù)據(jù)
device
function :管理接口
usb 邏輯設(shè)備:管理端點(diǎn)
USB 總線接口(UDC):管理usb 幀數(shù)據(jù)
整個(gè)數(shù)據(jù)流向如下:
設(shè)備端:function -> usb logical device -> SIE。
那么usb framed 數(shù)據(jù)到底是怎么產(chǎn)生的?
第一種方式:純軟件行為,軟件添加
第二種方式:硬件加工,生成符合usb 協(xié)議規(guī)范的幀數(shù)據(jù)。
目前市面上大部分主流usb 控制器采用第二種方式:即 CPU 從DDR 搬運(yùn)數(shù)據(jù)到usb 控制器,然后通過(guò)usb phy 模型差分信號(hào)發(fā)送出去。
2. 什么是usb 控制器與phy
了解了前面的usb 數(shù)據(jù)通信基礎(chǔ)流程。那么接下來(lái)我們來(lái)介紹一下,什么是控制器及phy。
2.1 usb 控制器
usb 控制器,可以簡(jiǎn)單理解為用來(lái)控制usb 邏輯及數(shù)據(jù)流傳輸?shù)难b置。我們可以類比其他控制器。包含幾大塊:
中斷
dma(內(nèi)部dma/外部dma)
FIFO(sram)
輸入/輸出:比如與phy 接口
現(xiàn)代復(fù)雜的usb 控制器有的還內(nèi)置usb phy。
2.2 usb phy
所謂 phy,從字面意思就是物理接口。一般完成物理信號(hào)的轉(zhuǎn)換。對(duì)于usb phy 而言,其主要完成以下工作:
usb FS/HS 或者LS 模式選擇
usb 數(shù)據(jù) NRZI 編碼 和 Bit Stuffer
將otg 并行數(shù)據(jù) 轉(zhuǎn)為 差分串行D-/D+ 數(shù)據(jù)
速度枚舉,J/K 信號(hào)產(chǎn)生。
......
一句話總結(jié):usb phy 將usb 控制器的數(shù)據(jù),按字usb 標(biāo)準(zhǔn)協(xié)議編碼,然后轉(zhuǎn)成串行差分?jǐn)?shù)據(jù),并通過(guò)D+/D- 發(fā)送出去。反之,對(duì)于從host 產(chǎn)生的數(shù)據(jù),經(jīng)過(guò)usb phy 解碼,然后到usb 控制器,最后到我們ddr 可以訪問(wèn)的應(yīng)用數(shù)據(jù)。
3. 常見(jiàn)的控制器與phy 的形式
目前市面上主流的控制器與phy 大致有兩種形式:
第一種,控制器集成usb phy
第二種,控制器需要外部接usb phy
不管是內(nèi)部集成,還是外部連接。我們只需要關(guān)心控制器與phy 之間的標(biāo)準(zhǔn)接口即可。對(duì)于USB2.0 一般采用 UTMI 或者UTMI+ 接口。對(duì)于usb3.0 一般采用PIPE 接口。
不管是UTMI 接口還是PIPE 接口,其都是并行的標(biāo)準(zhǔn)接口。因此我們?cè)趯W(xué)習(xí)時(shí),不用關(guān)心特定的phy, 只需要關(guān)心其對(duì)應(yīng)的接口協(xié)議即可。
4. UTMblock
有關(guān)utmi 接口介紹,本文不做詳細(xì)介紹。如下圖是UTM function block。從圖中我們可以看出,其主要的功能:
HS/FS 模式選擇
NRZI 編碼/解碼
Bit Stufer/unstuffer
輸出clk
5. 控制器、PHY 與Soc 連接
控制器與phy 連接是通過(guò)標(biāo)準(zhǔn)的接口UTMI(2.0) 或者PIPE(3.0)
整個(gè)數(shù)據(jù)流程大致如下:
發(fā)送數(shù)據(jù):CPU 通過(guò)cpu 模式/DMA 模式 搬運(yùn)數(shù)據(jù)到 USB 控制器 的端點(diǎn)FIFO, 然后通過(guò)UTMI 接口經(jīng)過(guò)usb phy 通過(guò)usb 發(fā)到host 端
接口數(shù)據(jù):host 到來(lái)的數(shù)據(jù),經(jīng)過(guò)usb phy 經(jīng)utmi 接口轉(zhuǎn)換,到usb 控制器的端點(diǎn)FIFO,然后通過(guò)cpu 或者dma 模式搬運(yùn)到DDR
6. 總結(jié)
本文介紹了usb 控制器與phy 的關(guān)系。旨在幫助我們更好的理解usb 的整個(gè)數(shù)據(jù)流向。當(dāng)我們?cè)谡{(diào)usb 的通信時(shí),到底在調(diào)什么?結(jié)合前面的枚舉流程,來(lái)思考什么時(shí)候usb 的通信到了軟件層面。
事實(shí)上,對(duì)于不調(diào)usb 控制器的廠家來(lái)說(shuō),大部分人都接觸不到usb phy 的知識(shí),因?yàn)楹芏嘣瓘S已經(jīng)幫我們搞定。不過(guò)筆者認(rèn)為,對(duì)于usb 的學(xué)習(xí),不能只停留在軟件層面,應(yīng)該結(jié)合硬件對(duì)整個(gè)協(xié)議才會(huì)有一個(gè)更深入的認(rèn)知。
當(dāng)我們接觸一款新的usb 控制器驅(qū)動(dòng)時(shí),我們應(yīng)該關(guān)心什么?
usb 控制器流程:不同的控制器參考usb ip 廠商給的控制流程。
usb phy 初始化:事實(shí)上,phy 在芯片量產(chǎn)時(shí)基本已定型??膳涞目臻g很小。phy 上大部分信號(hào)都是控制器輸入的。故一般控制器配置ok. phy 上可能只需要微調(diào)一下即可。比如產(chǎn)生復(fù)位或者強(qiáng)制suspend 信號(hào)。
審核編輯:劉清
-
控制器
+關(guān)注
關(guān)注
112文章
16396瀏覽量
178507 -
DDR
+關(guān)注
關(guān)注
11文章
712瀏覽量
65396 -
PHY
+關(guān)注
關(guān)注
2文章
305瀏覽量
51780 -
USB通信
+關(guān)注
關(guān)注
0文章
22瀏覽量
10927 -
hdc
+關(guān)注
關(guān)注
1文章
44瀏覽量
3598
原文標(biāo)題:一文搞懂 USB 控制器與phy 關(guān)系
文章出處:【微信號(hào):漫談嵌入式,微信公眾號(hào):漫談嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論