RM新时代网站-首页

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

USB協(xié)議:控制傳輸(二)

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2023-11-09 11:55 ? 次閱讀

本篇筆記寫的很糙,在這里你會看到很多專業(yè)名詞,可能會一臉懵逼,但還是先發(fā)出來給大家看看,沒有基礎(chǔ)的不用細(xì)看,大概了解即可,后面的筆記將把這些內(nèi)容揉碎了再呈現(xiàn)給大家。而且當(dāng)時看的例程是 HID 鼠標(biāo)的,比較復(fù)雜,內(nèi)核代碼也沒有使用狀態(tài)機,比較難以理解,但是魚鷹接下來的例程用了狀態(tài)機,并且魚鷹畫了整個狀態(tài)機的運行流程圖,將更加清晰易懂,所以 HID 的例程暫時就不再提供給大家。

現(xiàn)在和電腦通信基本上是采用 USB 進行通信,所以我們有必要學(xué)習(xí) USB 協(xié)議。而 USB 協(xié)議中最重要的一種傳輸就是控制傳輸。

串口通信在設(shè)置串口波特率、連上線后是沒有數(shù)據(jù)傳輸?shù)?,只有在電腦或設(shè)備發(fā)送數(shù)據(jù)時,線上才會有數(shù)據(jù)傳輸,而 USB 設(shè)備不同,在設(shè)備插入電腦時,電腦就開始和設(shè)備進行交流了,就像人們剛見面就打招呼似的。但是 USB 主機可不是僅僅問你(USB 設(shè)備)有沒有吃飯什么的,而是全面的了解你的信息(必要信息)。

為了獲得你的信息,就必須有一個通道,還有一個雙方支持的通信格式才行。所以就有了控制端點??刂贫它c是一個具有雙向通信能力的默認(rèn)端點(也叫缺省端點),是一個 USB 設(shè)備必須支持的端點。初期的枚舉過程都在該端點上完成。枚舉過程是一個 USB 設(shè)備必須經(jīng)歷的一個過程。通過枚舉,讓主機了解設(shè)備的一些基本信息。而枚舉過程的實現(xiàn)就是通過控制傳輸實現(xiàn)的。我們通過枚舉過程來了解控制傳輸。

首先確定控制傳輸是四大傳輸之一,也是最基本的傳輸,所有的 USB 設(shè)備都必須支持。它是可靠的傳輸,具有最少兩個個階段,建立階段(Setup Stage)、狀態(tài)階段(Data Stage),還有一個數(shù)據(jù)階段(Status Stage)是可能會有的。建立階段是由建立傳輸事務(wù)(Setup Transaction)實現(xiàn)的,狀態(tài)階段和數(shù)據(jù)階段是由數(shù)據(jù)輸出(Data Out Transaction)或輸入事務(wù)(Data IN Transaction)實現(xiàn)的(如果數(shù)據(jù)太多,將會采用多次數(shù)據(jù)輸入或輸出事務(wù))。如下圖,本文將主要講這圖中的內(nèi)容,一定要明白它們之間的關(guān)系。

各種可能的控制傳輸過程:

(SETUP(0)由三個包組成:SETUP Packet 、DATA0 Packet、ACK Packet;

OUT(1)由三個包組成:OUT Packet 、DATA1 Packet、ACK Packet;

IN(1)由三個包組成:IN Packet 、DATA0 Packet、ACK Packet 。這里的 SETUP 、DATA0 、ACK 、OUT 、IN 是 PID)

一個事務(wù)又是由各種包組成的。包又分為四大類包:Token(令牌)Packet、Data(數(shù)據(jù)) Packet、 Handshake(握手)Packet、特殊 Packet。每類包中又分為各種具體的包(由 PID(Packet ID)確定該包屬于哪一種包)。需要注意的是包是 USB 傳輸最小的傳輸單位、所有數(shù)據(jù)都必須進行打包才可以進行傳輸,包格式如下。

(灰色區(qū)域表示每個包都有,彩色表示可能有)

因為有各種不同的包,各種包的具體格式也不盡相同。所以我們只分析我們需要的包。為了簡化內(nèi)容,讓我們能夠?qū)⒆⒁饬性谖覀冃枰臇|西上,我們都以包來進行說明,包里面具體的其他內(nèi)容,將選擇性的了解,對于包,我們也只對需要的包進行說明。

令牌包:SETUP 包、OUT 包、IN 包。(主機發(fā)送)

主機最開始會發(fā)出的包,標(biāo)志一次傳輸事務(wù)的開始,里面有 PID(標(biāo)志這個是什么包,SETUP 包中的 PID 就是 SETUP)、地址(包括設(shè)備地址,端點地址)、CRC(對地址信息進行校驗)。在程序中我們可以知道是什么類型的包。

數(shù)據(jù)包:DATA0 包、DATA1 包。(主機設(shè)備都可以發(fā)送)

里面有 PID、數(shù)據(jù)、CRC(對數(shù)據(jù)信息進行校驗)。這是用戶真正要關(guān)心的數(shù)據(jù)。里面的數(shù)據(jù)我們是可以進行查看的。我們枚舉過程處理的就是這些數(shù)據(jù)。

握手包:STALL 包、NAK 包、ACK 包(主機只能發(fā)送 ACK 包)

里面只有 PID。

ACK 包:表示正確接收數(shù)據(jù),并且有足夠的空間來容納數(shù)據(jù),主機和設(shè)備都可以用 ACK 確認(rèn),而 NAK,STALL,NYET 只有設(shè)備能夠返回,主機不能使用(因為請求都是主機發(fā)送,當(dāng)主機發(fā)送請求了,就說明已經(jīng)準(zhǔn)備好了,自然不應(yīng)該有這些回答)。

NAK 包:表示沒有數(shù)據(jù)需要返回,或者數(shù)據(jù)接收正確但是沒有足夠的空間來容納數(shù)據(jù),當(dāng)主機收到 NAK 是,知道設(shè)備沒有準(zhǔn)備好,主機會在合適的時機進行重新傳輸。

STALL 包:表示設(shè)備無法執(zhí)行這個請求,或者端點已經(jīng)被掛起,它表示一種錯誤的狀態(tài)。設(shè)備返回 STALL

后需要主機進行干預(yù)才能解除這種 STALL 狀態(tài)。

注意:返回 NAK 并不代表數(shù)據(jù)出錯,只是說明設(shè)備暫時沒有數(shù)據(jù)傳輸或暫時沒有能力接收數(shù)據(jù) . 當(dāng)主機或設(shè)備檢測到數(shù)據(jù)出錯時(如 CRC 校驗出錯,PID 校驗出錯,位填充出錯等 )將什么也不返回。這時等待握手包的一方就會因為收不到握手包而等待超時。

現(xiàn)在有了這些基礎(chǔ)知識,我們?yōu)榱烁宄J(rèn)識控制傳輸,就通過講解 usb_core.h、 usb_core.c 文件(本文必須結(jié)合這兩個文件)來了解枚舉過程,進而認(rèn)識控制傳輸。

之前也說過,枚舉過程是通過控制傳輸實現(xiàn)的,那么現(xiàn)在就來看看當(dāng)你把一個 USB 設(shè)備插入主機時,它的枚舉過程是怎樣的。

首先,弄清楚一點,這兩個文件處理的就是枚舉過程,也是整個 USB 程序中最最核心的部分,所有的 USB 相關(guān)的文件都是以它為基礎(chǔ)。它定義了各種結(jié)構(gòu)體,各種聯(lián)合體。而其他文件就是根據(jù)這個結(jié)構(gòu)體、聯(lián)合體進行具體的定義,并且寫出具體的實現(xiàn)的方法。弄明白這兩個文件是重中之重。

因為控制傳輸比較復(fù)雜,和上一個狀態(tài)有很大關(guān)系。所以定義了一個枚舉類型 CONTROL_STATE 確定程序當(dāng)前的各種狀態(tài)。還有結(jié)構(gòu)體 ENDPOINT_INFO、DEVICE_INFO、DEVICE_PROP,還有一個特殊的結(jié)構(gòu)體 USER_STANDARD_REQUESTS 等各種類型。

CONTROL_STATE:確定當(dāng)前的端點的傳輸狀態(tài)

ENDPOINT_INFO:端點傳輸數(shù)據(jù)的信息,包括要發(fā)送或接收的剩余數(shù)據(jù)長度,已經(jīng)發(fā)送或接收的數(shù)據(jù)偏移,該端點的最大包長(決定了該端點一次處理的數(shù)據(jù)的能力),要發(fā)送或接收數(shù)據(jù)的地址。(數(shù)據(jù)長度和地址由具體的函數(shù)提供,這個結(jié)構(gòu)體有一個函數(shù)指針指向具體實現(xiàn)函數(shù)。也就是說要接收或發(fā)送數(shù)據(jù)的大小和地址是由具體的函數(shù)實現(xiàn)的)。

DEVICE_INFO:包含了設(shè)備的狀態(tài)信息,控制端點的傳輸狀態(tài)(CONTROL_STATE 控制傳輸狀態(tài)),控制端點的信息(ENDPOINT_INFO 的具體實現(xiàn)),還有標(biāo)準(zhǔn)請求的數(shù)據(jù)信息。

DEVICE_PROP:這里面包含了具體的實現(xiàn)函數(shù)。如具體設(shè)備的硬件相關(guān)的函數(shù)實現(xiàn)

void (*Init)(void);,復(fù)位信號發(fā)過來時的處理函數(shù)void (*Reset)(void);,控制傳輸中的狀態(tài)階段的處理函數(shù)void (*Process_Status_IN)(void);void (*Process_Status_OUT)(void);,發(fā)送接收函數(shù)的具體實現(xiàn)函數(shù),就是之前的 ENDPOINT_INFO 中需要的具體實現(xiàn)函數(shù)。等等。

USER_STANDARD_REQUESTS:這個結(jié)構(gòu)體就比較特殊了,因為這個結(jié)構(gòu)體的函數(shù)是用來給用戶使用的。比如主機發(fā)送了什么信息過來,我們把數(shù)據(jù)發(fā)出去了,那么我們還要告知用戶(我們的程序),我們做了這些操作才行,但是這些操作函數(shù)有的可以省去的,而不會影響正常通信,雖然不會影響正常通信,但是對設(shè)備本身還是有可能有影響的。

現(xiàn)在我們來具體看看主機與設(shè)備是怎么通信的,所以看它的使用函數(shù) void CTR_LP(void)(usb_int.c 文件),USB 通信是在中斷函數(shù)中的。

在我們插上 USB 設(shè)備時,枚舉過程數(shù)據(jù)(串口接收到的數(shù)據(jù)):

1.SETUP:80 6 1 0 40 發(fā)送數(shù)據(jù):112 200 0 4000 483 5710 200 201 103 IN:OUT:

2.SETUP:0 5 100 0 0 IN:

3.SETUP:80 6 1 0 12 發(fā)送數(shù)據(jù):112 200 0 4000 483 5710 200 201 103 IN:OUT:

4.SETUP:80 6 2 0 ff 發(fā)送數(shù)據(jù):209 22 101 e000 932 4 100 103 2 2109 100 100 4a22 700 8105 403 2000 IN:OUT:

5.SETUP:80 6 303 904 ff 發(fā)送數(shù)據(jù):31a 38 ff ff ff 33 41 37 31 21 63 15 57 IN:OUT:

6.SETUP:80 6 3 0 ff 發(fā)送數(shù)據(jù):304 409 IN:OUT:

7.SETUP:80 6 203 904 ff 發(fā)送數(shù)據(jù):322 41 4c 49 45 4e 54 45 4b 20 89e6 63a7 55 53 42 9f20 6807 IN:OUT:

8.SETUP:80 6 6 0 a

9.SETUP:80 6 1 0 12 發(fā)送數(shù)據(jù):112 200 0 4000 483 5710 200 201 103 IN:OUT:

10.SETUP:80 6 2 0 9 發(fā)送數(shù)據(jù):209 22 101 e000 932 IN:OUT:

11.SETUP:80 6 2 0 22 發(fā)送數(shù)據(jù):209 22 101 e000 932 4 100 103 2 2109 100 100 4a22 700 8105 403 2000 IN:OUT:

12.SETUP:0 9 100 0 0 IN:

13.SETUP:21 a 0 0 0

注意:因為用的是 printf 函數(shù)發(fā)送的,所以有些是省去了,有些高字節(jié)和低字節(jié)可能換了,所以分析時要注意。

我們現(xiàn)在主要分析傳輸過程,而不是具體數(shù)據(jù)的處理,所以不要太關(guān)心具體數(shù)據(jù)。

我們假設(shè)前期工作都做好了,USB 能通信了,既然如此,程序必定會進入 usb_int.c 文件中的 void CTR_LP(void)函數(shù)。當(dāng)?shù)谝淮芜M入此函數(shù)時,就說明一次傳輸事務(wù)成功完成。從包的角度來看就是主機發(fā)送一個 SETUP 包,再發(fā)一個 DATA 包,設(shè)備確認(rèn)數(shù)據(jù)的正確性(從 PID 和 CRC 確定)然后發(fā)送 ACK 包。設(shè)備硬件將該端點自動設(shè)置為 NAK(此時如果主機發(fā)送包過來,一律以 NAK 回應(yīng),表示忙著呢,還沒有準(zhǔn)備好),使設(shè)備有足夠的時間處理 DATA 包中的數(shù)據(jù)。在這之后程序才運行到了 CTR_LP()函數(shù)里。

程序每運行到這里一次,意味著主機發(fā)送的設(shè)備地址和端點號正確,也意味著一次傳輸事務(wù)的結(jié)束。這一點要牢記。

現(xiàn)在我們看著設(shè)備接收到的數(shù)據(jù)再理一理過程。(以下內(nèi)容必須結(jié)合附帶工程進行驗證)

SETUP:80 6 1 0 40 發(fā)送數(shù)據(jù):112 200 0 4000 483 5710 200 201 103 IN:OUT:

設(shè)備的一次傳輸事務(wù)結(jié)束了(從 SETUP:看出)(第一次進入 CTR_LP()),先判斷這次傳輸事務(wù)是什么類型傳輸事務(wù)(STM32 中有一個標(biāo)志位可以進行判斷),然后發(fā)現(xiàn)是建立令牌包,那么就是建立傳輸事務(wù),現(xiàn)在就轉(zhuǎn)到建立傳輸事務(wù)程序中。

在該程序中,先把數(shù)據(jù)包中的數(shù)據(jù)拷貝出來再說。

拷完了,同時設(shè)置當(dāng)前的設(shè)備狀態(tài)為 SETTING_UP,表示開始處理一次建立事務(wù),然后發(fā)現(xiàn)這是一個有數(shù)據(jù)階段的建立傳輸事務(wù)而且是設(shè)備發(fā)送數(shù)據(jù)給主機(怎么發(fā)現(xiàn)的就看具體的標(biāo)準(zhǔn)請求格式吧,現(xiàn)在只說結(jié)果)。

好吧,看看要什么數(shù)據(jù),發(fā)現(xiàn)要設(shè)備描述符,長度是 64 字節(jié)。那行,只是我的設(shè)備描述符只有 18 字節(jié),怎么辦,不管,就發(fā) 18 字節(jié)過去。

發(fā)送完這 18 字節(jié)后程序第二次進入了 CTR_LP()函數(shù)(從 IN:看出),剛剛設(shè)備把數(shù)據(jù)發(fā)送出去了,這次進入相關(guān)處理函數(shù)也就沒什么事干了,就等著主機發(fā)送狀態(tài)數(shù)據(jù)過來呢,所以設(shè)置設(shè)備狀態(tài)為 WAIT_STATUS_OUT,表示正在等待主機發(fā)送狀態(tài)數(shù)據(jù)(之后發(fā)送端點狀態(tài)設(shè)為 STALL,表示如果主機發(fā)送 IN 令牌包將以 STALL 握手包進行回應(yīng))。

然后第三次進入 CTR_LP()函數(shù)(從 OUT:看出),因為是 OUT 包,所以是一次數(shù)據(jù)輸出事務(wù)的完成(沒有寫錯,就是輸出,這是對于主機來說),這時設(shè)備就知道這應(yīng)該是狀態(tài)階段的數(shù)據(jù)了,經(jīng)過一系列的判斷,發(fā)現(xiàn)確實是(之后發(fā)送接收端點都設(shè)置為 STALL)。

到這里一個完整的控制傳輸過程算是完成了。但是一個枚舉過程是由很多這樣的控制傳輸過程構(gòu)成的。

SETUP:0 5 100 0 0 IN:

第二次建立傳輸事務(wù)又來了(從 SETUP:看出),也標(biāo)志著一次控制傳輸?shù)拈_始(建立階段)。看看有沒有數(shù)據(jù)要發(fā)送或輸入,嗯,好像沒有,而且是設(shè)置地址的(這里有地址信息,就是 1),那行,開始設(shè)置地址吧?

那可不不行,USB 協(xié)議規(guī)定,設(shè)置地址的工作必須在設(shè)備發(fā)送狀態(tài)數(shù)據(jù)(狀態(tài)階段沒有具體的數(shù)據(jù),也就是說數(shù)據(jù)區(qū)為 0 字節(jié))到主機,主機接收到后發(fā)送 ACK 握手包后被設(shè)備接收到才能進行設(shè)置設(shè)備的地址(為什么這么規(guī)定,可能是防止中間出現(xiàn)問題吧)。

所以在程序中還真沒進行設(shè)置地址的工作,而是只是設(shè)置設(shè)備當(dāng)前的狀態(tài)為 WAIT_STATUS_IN,什么意思,就是表示設(shè)備正在等待發(fā)送狀態(tài)數(shù)據(jù)呢(為什么要等,而不是直接發(fā)送,這是因為 USB 是有主從關(guān)系的,主機沒叫你發(fā)送數(shù)據(jù),你是不能發(fā)送數(shù)據(jù)的,你只能把數(shù)據(jù)放在緩存區(qū)中,并且設(shè)置發(fā)送端點有效。當(dāng)設(shè)備收到 IN 令牌包時,它就自動由硬件發(fā)送出去了)。

當(dāng)主機成功收到狀態(tài)階段的數(shù)據(jù)時就會發(fā)送 ACK 握手包。然后設(shè)備接收到了握手包,這時也就意味著一次數(shù)據(jù)輸入事務(wù)(狀態(tài)階段)的結(jié)束,此時,程序再次運行到 CTR_LP()這里(從 IN:看出),并進入到相關(guān)處理函數(shù),這時相關(guān)處理函數(shù)就會設(shè)置地址了,此后發(fā)送和接收的端點再次變?yōu)?STALL。

上面這些都是正常的控制傳輸,如果不正常(不正常不代表數(shù)據(jù)出錯,而是請求不合理)的呢?我們跳過正常的,直接看下面這一次控制傳輸。

SETUP:80 6 6 0 a

看這條請求代碼是 6(后面那個),要求發(fā)送 10 個字節(jié)數(shù)據(jù)給主機,但是我的設(shè)備沒有這種代碼為 6 的描述符,怎么辦。USB 協(xié)議規(guī)定有些請求是必須支持的,但是有些請求卻不一定要支持。這個描述符沒有應(yīng)該怎么處理呢。

分析程序,最終你會發(fā)現(xiàn)控制狀態(tài)設(shè)置為 STALLED,也就是說在主機下一個 IN 令牌包(在此之前主機可能已經(jīng)發(fā)送了多次 IN 令牌包過來,只是設(shè)備都以 NAK 包進行回應(yīng))來的時候,設(shè)備會返回一個 STALL 包,當(dāng)主機收到這個握手包之后,就知道設(shè)備不支持該請求,它就會放棄繼續(xù)發(fā)送 IN 令牌包,而是發(fā)送 SETUP 包,因為設(shè)備控制端點處于 STALL 狀態(tài)時,必須主機進行干預(yù)才能幫助設(shè)備解除這種狀態(tài)。

由于此次控制傳輸是設(shè)備不支持的請求,所以就沒有數(shù)據(jù)階段,同時也沒有狀態(tài)階段,既然不需要發(fā)送或接收數(shù)據(jù),也就不會在建立傳輸事務(wù)來之前再次進入程序了。但是如果發(fā)送的請求為輸出數(shù)據(jù),那么程序就會直接接收數(shù)據(jù)了。

說了這么多,下面進行一些總結(jié):

1. 程序運行到 CTR_LP()里面,就說明一次事務(wù)傳輸?shù)耐瓿?,不管是建立事?wù)還是數(shù)據(jù)輸入輸出事務(wù)。注意是已經(jīng)完成,而不是將要完成。

2. 數(shù)據(jù)如果出錯了,只會有錯誤中斷產(chǎn)生,而不會產(chǎn)生傳輸完成中斷,也就不會進入 CTR_LP()服務(wù)程序中。

3. 注意分析每一次事務(wù)傳輸?shù)耐瓿蓪⑹巩?dāng)前端點的發(fā)送接收狀態(tài)產(chǎn)生何種影響,又會對之后的事務(wù)傳輸產(chǎn)生何種影響。

4. 每一次控制傳輸?shù)慕Y(jié)束,都會使端點發(fā)送和接收狀態(tài)都設(shè)為 STALL。

5. 控制傳輸在請求不支持情況下沒有狀態(tài)階段的數(shù)據(jù)。

6. 建立階段也由三個包組成,SETUP 令牌包 、DATA0 數(shù)據(jù)包(只能是 DATA0)、ACK 握手包。也是一次建立事務(wù)。

7. 數(shù)據(jù)階段也由三個包組成,OUT/IN 令牌包 、DATA0/1 數(shù)據(jù)包、ACK 握手包。也是一次數(shù)據(jù)輸出或輸入事務(wù)。在建立傳輸中有可能有多次該傳輸事務(wù)。

8. 狀態(tài)階段也由三個包組成,OUT/IN 令牌包 、DATA1 數(shù)據(jù)包、ACK 握手包。也是一次數(shù)據(jù)輸出或輸入事務(wù)。但是它沒有用戶所使用的數(shù)據(jù)。

9.OUT、IN 是對于主機來說的。OUT 就是主機向設(shè)備發(fā)送數(shù)據(jù)。

10. 注意根據(jù)實際數(shù)據(jù)進行分析。

注意:如果使用 USB 協(xié)議分析軟件,你會發(fā)現(xiàn)軟件的捕獲數(shù)據(jù)不全,所以要根據(jù)設(shè)備串口發(fā)送的數(shù)據(jù)進行分析

審核編輯 黃宇

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

    關(guān)注

    18

    文章

    6021

    瀏覽量

    135949
  • USB協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    14299
收藏 人收藏

    評論

    相關(guān)推薦

    TCP傳輸控制協(xié)議知識科普拓展

    傳輸控制協(xié)議(TCP,Transmission Control Protocol)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,由I
    的頭像 發(fā)表于 11-27 17:46 ?941次閱讀
    TCP<b class='flag-5'>傳輸</b><b class='flag-5'>控制</b><b class='flag-5'>協(xié)議</b>知識科普拓展

    USB充電協(xié)議端口控制IC

    DSK2001/DSK2002是USB充電協(xié)議端口控制IC,可自動識別充電設(shè)備類型,并通過對應(yīng)的USB充電協(xié)議與設(shè)備握手,使之獲得最大充電電
    發(fā)表于 09-07 10:02

    什么是USB PD協(xié)議

    的電源上。USB PD協(xié)議利用USB Type-C接口的CC(Configuration channel)引腳作為數(shù)據(jù)傳輸通道來協(xié)商充電的電壓、電流和功率
    發(fā)表于 09-15 07:41

    傳輸控制協(xié)議(TCP)/網(wǎng)絡(luò)層協(xié)議是什么意思

    傳輸控制協(xié)議(TCP)/網(wǎng)絡(luò)層協(xié)議是什么意思 傳輸控制協(xié)議
    發(fā)表于 04-06 16:44 ?2746次閱讀

    USB培訓(xùn)_Part1 協(xié)議

    usb協(xié)議介紹,部分協(xié)議??梢詤⒖际褂? 通用串行總線(USB) 2.0 USB技術(shù)簡介 ? 技術(shù)背景 ? 架構(gòu)、系統(tǒng)、
    發(fā)表于 04-28 14:57 ?3次下載

    TCP:傳輸控制協(xié)議

    TCP-IP詳解卷2 TCP:傳輸控制協(xié)議,學(xué)習(xí)TCP很好的資料。歡迎下載。
    發(fā)表于 05-09 14:33 ?0次下載

    USB電源傳輸技術(shù)的詳細(xì)資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是USB電源傳輸技術(shù)的詳細(xì)資料說明包括了:USB電源傳輸規(guī)范概述,USB電源
    發(fā)表于 06-24 08:00 ?4次下載
    <b class='flag-5'>USB</b>電源<b class='flag-5'>傳輸</b>技術(shù)的詳細(xì)資料說明

    一文詳解TCP傳輸控制協(xié)議

    TCP(Transmission Control Protocol 傳輸控制協(xié)議)是一種面向連接(連接導(dǎo)向)的、可靠的、 基于IP的傳輸協(xié)議
    發(fā)表于 05-25 15:38 ?1593次閱讀
    一文詳解TCP<b class='flag-5'>傳輸</b><b class='flag-5'>控制</b><b class='flag-5'>協(xié)議</b>

    傳輸控制協(xié)議TCP是怎樣進行工作的

    傳輸控制協(xié)議(TCP,Transmission Control Protocol)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。
    的頭像 發(fā)表于 08-19 09:17 ?2910次閱讀
    <b class='flag-5'>傳輸</b><b class='flag-5'>控制</b><b class='flag-5'>協(xié)議</b>TCP是怎樣進行工作的

    USB電力傳輸USB PD)和USB Type-C的不同之處是什么?

    USB 電力傳輸(USB PD) 是在一條線纜中同時支持高達(dá)100W電力傳輸和數(shù)據(jù)通信的協(xié)議規(guī)范.
    發(fā)表于 05-08 10:28 ?5475次閱讀
    <b class='flag-5'>USB</b>電力<b class='flag-5'>傳輸</b>(<b class='flag-5'>USB</b> PD)和<b class='flag-5'>USB</b> Type-C的不同之處是什么?

    SCTP流控制傳輸協(xié)議簡析

    SCTP(Stream Control Transmission Protocol,流控制傳輸協(xié)議,RFC 2960、RFC 3286、RFC 3309)是一個 IP 協(xié)議之上的、可靠
    的頭像 發(fā)表于 07-25 10:02 ?2205次閱讀
    SCTP流<b class='flag-5'>控制</b><b class='flag-5'>傳輸</b><b class='flag-5'>協(xié)議</b>簡析

    USB接口控制傳輸包含哪幾個階段?

    控制傳輸一般在USB枚舉的時候見得多,控制傳輸包含三個階段:Setup階段、Data階段、Status階段,其中Data階段是可選的。
    發(fā)表于 09-12 10:24 ?473次閱讀
    <b class='flag-5'>USB</b>接口<b class='flag-5'>控制</b><b class='flag-5'>傳輸</b>包含哪幾個階段?

    FP6606ACLP5 USB電源傳輸3.0協(xié)議控制

    概述FP6606AC是一個簡化的USB電源傳輸3.0協(xié)議控制器。集成了HiSilen快速充電協(xié)議(FCP)和高通快速充電2.0/3.0功能。
    發(fā)表于 08-02 15:57 ?0次下載

    FP6606ACMP5 USB電源傳輸3.0協(xié)議控制

    概述FP6606AC是一個簡化的USB電源傳輸3.0協(xié)議控制器。集成了HiSilen快速充電協(xié)議(FCP)和高通快速充電2.0/3.0功能。
    發(fā)表于 08-02 15:59 ?3次下載

    USB電源傳輸3.0協(xié)議控制器JD6606S數(shù)據(jù)手冊

    概述JD6606S是一個集成的USB電源傳輸3.0協(xié)議控制器。符合HUAWEI快速充電協(xié)議(FCP)、超級充電
    發(fā)表于 02-04 09:05 ?1次下載
    RM新时代网站-首页