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