主頁 >  其他 > 通訊總線總結

通訊總線總結

2021-06-09 18:06:54 其他

通信總線協議總結

【學習筆記】

一、UART總線

簡介

UART(Universal Asynchronous Receiver/Transmitter)即通用異步收發器

特點

串行、異步通信、兩條資料線、全雙工發送和接收、點對點通信,

應用場合

在嵌入式系統中常用于主機與輔助設備之間的通信(嵌入式領域應用廣泛)

UART幀格式

image

1、起始位:發送1位邏輯0(低電平),開始傳輸資料,
2、資料位:可以是5~8位的資料,先發低位,再發高位,一般常見的就是8位(1個位元組),其他的如7位的ASCII碼,
3、校驗位:奇偶校驗,將資料位加上校驗位,1的位數為偶數(偶校驗),1的位數4為奇數(奇校驗),【校驗位可有可無,根據需求選擇】
4、停止位:停止位是資料傳輸結束的標志,可以是1/1.5/2位的邏輯1(高電平),
5、空閑位:空閑時資料線為高電平狀態,代表無資料傳輸,

發送的波特率和接受的波特率要保持一致,且為了避免累計誤差,不能連續發送多個位元組,這就是資料最多發送8位的原因,

位元率的概念

UART傳輸速率的概念——位元率,

位元率的單位是bps,全稱是bit per second,意為每秒鐘傳輸的bit數量,

位元率9600bps,代表每秒鐘傳輸bit的數量為9600,那么傳輸1bit資料的時間就是1/9600=104us,位元率115200bps,代表傳輸1bit資料的時間是8us,

硬體連接

交叉連接

image

設定引腳功能的本質:就是將引腳與相應的功能相連接,如連接到GPIO,或連接到UART

UART暫存器配置

(1)設定發送引腳和接收引腳

(2)設定UART幀格式

(3)設定UART發送發送和接收模式

(4)設定UART的波特率

發送資料

(1)等待發送暫存器為空

(2)將發送的資料寫入發送暫存器

接收資料

(1)判斷接收暫存器是否接收到了資料

(2)如果接收到,則讀取到暫存器

一般在開發中很少直接用串口進行編程,因為它存在很多問題,在實際應用中,通常用優化的UART:RS232、RS485

UART存在的問題

1、電氣介面不統一

UART只是對信號的時序進行了定義,而未定義介面的電氣特性

(1)UART沒有規定不同器件連接時連接器的標準,所以不同器件之間通過UART通信時連接很不方便

(2)UART通信時一般直接使用處理器使用的電平,即TTL電平,但不同的處理器使用的電平存在差異,所以不同的處理器使用UART通信時一般不能直接相連,

2、抗干擾能力差

一般直接使用TTL(+5V等價于邏輯“1”,0V等價于邏輯“0”)信號表示0和1,但是TTL信號抗干擾能力較差,資料在傳輸程序中很容易出錯,

3、通信距離極短

由于TTL信號的抗干擾能力差,所以其通信舉例也很短,一般只能用于一個電路板上的兩個不同芯片之間的通信,

二、RS232、RS485總線

簡介:這兩個協議只是單純的電氣層面的協議,是依賴于串口UART的,

1、RS232協議

RS232協議是在1970年由美國電子工業協會(EIA)聯合貝爾系統、調制解調器廠家、計算機終端生產廠家共同制定的用于串行通訊的標準,起初為25根線,后來被IBM簡化為9根線,但是現代工業控制的RS-232介面一般只使用RXD、TXD、GND三條線,

改標準規定采用一個標準的連接器,標準中對連接器的每一個引腳的作用加以規定,還對信號的電平加以規定,

該標準的信號規定

邏輯“1”:電平為-5V到-15V

邏輯“0”:電平為+5V到+15V

選用該電氣標準的目的在于提高抗干擾能力,增大通信距離,其傳送距離一般可達15m,

電平轉換MAX232:可以把TTL信號和232信號相互轉化,以延長通信距離(15m),

RS232存在的問題

(1)介面信號電平值較高,容易損壞介面電路的芯片,又因為與TTL電平不兼容,所以需要使用電平轉換芯片才能與TTL電路連接,

(2)通信速度較低

(3)易產生共模干擾,抗噪聲干擾性弱

(4)傳輸距離較短(15m)

2、RS485協議

特點:

(1)也是對串口在電氣層面的改良,相比于RS232,RS485提高了抗干擾能力,并且極大增強了通信的距離(1500m)

(2)具有多站能力,這樣可以利用單一的RS485介面方便的建立起一個設備網路,不在是點對點的通信,而是類似于IIC一樣可以掛很多芯片設備,從而組成一個網路,

采用雙絞線,用兩根線的差分電壓值高低表示邏輯電平,并消除共模干擾,

由于兩根線傳輸差分信號,所以發送和接收不能同時進行,故只能采用半雙工的方式作業,

電平轉換:

由于處理器產生的信號一般都是TTL信號并不是符合RS485標準的信號,所以一般還需要再處理器外部去添加電路將TTL信號轉換成差分信號,

RS485的優勢

(1)介面信號電平值較低,不易損壞介面電路的芯片,且與TTL電平兼容,可方便地與TTL電路連接,

(2)通信速度快

(3)抗噪聲干擾強

(4)傳輸距離較遠(1500m)

(5)可實作多節點組網

三、IIC總線

簡介

IIC(Inter-Integrated Circuit)其實是IICBus簡稱,所以中文應該叫集成電路總線,由飛利浦公司推出,

特點

串行、半雙工、硬體結構簡單、成本低、應用廣泛、非點對點通信,

應用場合

近距離、低速芯片之間的通信(抗干擾差,不能用于長距離)

資料線SDA:用于收發資料

時鐘線SCL:用于通信雙方的時鐘同步

接線

把芯片的SCL接到總線SCL上,把芯片的SDA接到總線SDA上,

IIC總線是一種多主機總線,連接在總線的器件分為主機和從機,主機有權發起和結束一次通信,而從機智能被呼叫,

當由多個主機同時啟用總線時,IIC也具有沖突檢測和仲裁的功能來防止錯誤的產生,

每個器件都可以作為主機或者從機,但是同一時刻只能由一個主機,總線上增加和洗掉器件,不影響其他器件正常作業,

每一個連接到IIC總線上的器件都有一個唯一的地址(7bit),

一個器件,當它接收資料的時候是作為接收器,發送資料的時候作為發送器,

通信程序

(1)主機發送起始信號啟用總線【其他主機接收到信號,知道總線被占用,則待機,從機接收到信號,準備好接收信號】

(2)主機發送第一個位元組資料指明從機地址和后續位元組的傳送方向【高7bit指明從機地址,而最后第零位,用于確定是主機給從機發送資料(0表示主機到從機)還是從機給主機發送資料(1表示從機到主機)】

image

(3)被尋址的從機發送應答信號回應主機【其他從機閉嘴了】

(4)發送器發送一個位元組的資料【發送器是誰,要看最后一位是0還是1】

(5)接收器發送應答信號回應發送器

(...)回圈步驟4、5【這兩步和2、3兩步本質上一樣】【這兩步的前提是主從機都已經確定好了,即通信程序中改變不了方向】

(n)通信完成后主機發送停止信號釋放總線

第一個資料必須是主機給從機發,用于確定地址和方向,后續的方向由位元組的第一位決定,通信程序中可以連續發送無數個位元組的資料,方向不允許改變,

整個程序就包含了四種信號:起始信號、發送一個位元組、應答信號...、停止信號

起始信號:SCL為高電平時,SDA由高變低表示起始信號

停止信號:SCL為高電平時,SDA由低變高表示停止信號

起始信號和停止信號都是由主機發出,起始信號產生后總線處于占用狀態,停止信號產生后總線處于空閑狀態,

在起始信號和停止信號之間,用于已經做好應答的主從機之間的通信,其他主機是不能啟用總線的,

位元組傳輸與應答

IIC總線通信時每個位元組為8位長度,資料傳輸時先發高位、再發低位,

發送器每發完一個位元組資料,接收器必須發送1位應答位來回應發送器,即一幀共有9位,

IIC總線協議:

image

四、CAN總線

來自CAN總線報文淺析

簡介

CAN是控制器局域網路(Controller Area Network, CAN)的簡稱,是一種能夠實作分布式實時控制的串行通信網路,

優點

傳輸速度最高到1Mbps,通信距離最遠到10km,無損位仲裁機制,多主結構,近些年來,CAN控制器價格越來越低,

(1)低成本:ECUs通過單個CAN介面進行通信,布線成本低,

(2)高集成:CAN總線系統允許在所有ECUs上進行集中錯誤診斷和配置,

(3)可靠性:該系統對子系統的故障和電磁干擾具有很強的魯棒性,是汽車控制系統的理想選擇,

(4)高效率:可以通過id對訊息進行優先級排序,以便最高優先級的id不被中斷,

(5 )靈活性:每個ECU包含一個用于CAN總線收發芯片,隨意添加CAN總線節點,

應用范圍

CAN的高性能和可靠性已被認同,并被廣泛的應用與工業自動化、船舶、醫療設備、工業設備等方面,

CAN總線網路結構

image

CAN總線網路主要掛在CAN_H和CAN_L,各個節點通過這兩條線實作信號的串行差分傳輸,為了避免信號的反射和干擾,還需要在CAN_H和CAN_L之間接上120歐姆的終端電阻為什么是120Ω,因為電纜的特性阻抗為120Ω,為了模擬無限遠的傳輸線,

CAN收發器

CAN收發器作用是負責邏輯電平和信號電平之間的轉換

image

TXD:發送資料輸入

RXD:接收資料輸入

CANL:低電平CAN總線

CANH:高電平CAN總線

S:選擇進入高速模式還是靜音模式

CAN總線信號表示

CAN總線采用不歸零碼位填充技術,也就是說CAN總線上的信號有兩種不同的信號狀態,分別是顯性的(Dominant)邏輯0和隱形的(recessive)邏輯1,信號每一次傳輸完后不需要回傳到邏輯0(顯性)的電平,

image

顯性與隱性電平的解釋:

CAN的資料總線有兩條,一條是黃色的CAN_High,一條是綠色的CAN_Low,當沒有資料發送時,兩條線的電平一樣都為2.5V,稱為靜電平,也就是隱性電平,當有信號發送時,CAN_High的電平升高1V,即3.5V,CAN_Low的電平降低1V,即1.5V,

顯性和隱性定義

CAN_H-CAN_L < 0.5V 時候為隱性的,邏輯信號表現為"邏輯1"- 高電平,

CAN_H-CAN_L > 0.9V 時候為顯性的,邏輯信號表現為"邏輯0"- 低電平,

CAN總線信號傳輸

發送程序: CAN控制器將CPU傳來的信號轉換為邏輯電平(即邏輯0-顯性電平或者邏輯1-隱性電平),CAN發射器接收邏輯電平之后,再將其轉換為差分電平輸出到CAN總線上,

image

接收程序: CAN接收器將CAN_H 和 CAN_L 線上傳來的差分電平轉換為邏輯電平輸出到CAN控制器,CAN控制器再把該邏輯電平轉化為相應的信號發送到CPU上,

image

CAN資料傳輸

CAN總線傳輸的是CAN幀,CAN的通信幀分成五種,分別為資料幀、遠程幀、錯誤幀、過載幀和幀間隔,

其中資料幀根據仲裁段長度不同分為標準幀(2.0A)和擴展幀(2.0B)

以下是資料幀的兩種幀格式:

image

資料幀格式

幀起始

由一個顯性(低電平)組成

幀結束

由七個隱形位(高電平)組成

image

仲裁段

只要總線空閑,總線上任何節點都可以發送報文,如果有兩個或兩個以上的節點開始傳送報文,那么就會存在總線訪問沖突的可能,但是CAN使用了識別符號的逐位仲裁方法可以解決這個問題,

CAN總線控制器在發送資料的同時監控總線電平,如果電平不同,則停止發送并做其他處理,如果該位位于仲裁段,則退出總線競爭;如果位于其他段,則產生錯誤事件,

image

幀ID越小,優先級越高,由于資料幀的RTR位為顯性電平,遠程幀為隱性電平,所以幀格式和幀ID相同的情況下,資料幀優先于遠程幀;由于標準幀的IDE位為顯性電平,擴展幀的IDE位為隱形電平,對于前11位ID相同的標準幀和擴展幀,標準幀優先級比擴展幀高,

image

控制段

控制段共6位,標準幀的控制段由擴展幀標志位IDE、保留位r0和資料長度代碼DLC組成;擴展幀控制段則由IDE、r1、r0和DLC組成

image

資料段

一個資料幀傳輸的資料量為0~8個位元組,這種短幀結構使得CAN-bus實時性很高,非常適合汽車和工控應用場合

image

資料量小,發送和接收時間短,實時性高,被干擾的概率小,抗干擾能力強,

CRC段

CAN-bus使用CRC校驗進行資料檢錯,CRC校驗值存放于CRC段, CRC校驗段由15位CRC值和1位CRC界定符構成

image

ACK段

當一個接收節點接收的幀起始到CRC段之間的內容沒發生錯誤時,它將在ACK段發送一個顯性電平

image

遠程幀格式

與資料幀相比,遠程幀結構上無資料段,由6個段組成,同理分為標準格式和擴展格式,且RTR位為1(隱性電平)

image

如下圖所示由于資料幀的RTR位為顯性電平,遠程幀的RTR位為隱性電平,

所以幀格式和幀ID都相同情況下,資料幀的優先級比遠程幀優先級高

image

資料幀與遠程幀的區別

image

錯誤幀

盡管CAN-bus是可靠性很高的總線,但依然可能出現錯誤;CAN-bus的錯誤型別共有5種

image

當出現5種錯誤型別之一時,發送或接收節點將發送錯誤幀,錯誤幀的結構如下,其中錯誤標識分為主動錯誤標識和被動錯誤標識

image

為防止自身由于某些原因導致無法正常接收的節點一直發送錯誤幀,干擾其他節點通信,CAN-bus規定了節點的3種狀態及其行為

image

(注:這些錯誤處理的機制是由硬體自主完成的這樣做的目的就是只要CAN在收到資料肯定是正確的資料),

過載幀

當某個接收節點沒有做好接收下一幀資料的準備時,將發送過載幀以通知發送節點;過載幀由過載標志和過載幀界定符組成

image

由于存在多個節點同時過載且過載幀發送有時間差問題,可能出現過載標志疊加后超過6個位的現象

image

幀間隔

幀間隔用于將資料幀或遠程幀和他們之前的幀分離開,但過載幀和錯誤幀前面不會插入幀間隔,

image

幀間隔過后,如果無節點發送幀,則總線進入空閑,

image

幀間隔過后,如果被動錯誤節點要發送幀,則先發送8個隱性電平的傳輸延遲,再發送幀,

image

CAN總線發送總流程

CAN-bus整個鏈路層處理資料的流程

image

五、SPI總線

來自SPI通信協議

簡介

SPI是串行外設介面(Serial Peripheral Interface)的縮寫,是 Motorola 公司推出的一
種同步串行介面技術,是一種高速的,全雙工,同步的通信總線,

特點

高速、同步、串行、全雙工、非差分、總線式、主從機通信模式、通信簡單、資料傳輸率快,

缺點

沒有應答機制確定是否收到資料,可靠性較IIC差,

介面

(1)SDO/MOSI:主設備資料輸出,從設備資料輸入

(2)SDI/MISO:主設備資料輸入,從設備資料輸出

(3)SCLK:時鐘信號,由主設備產生

(4)CS/SS:從設備使能信號,由主設備控制

當有多個從設備的時候,因為每個從設備上都有一個片選引腳接入到主設備機中,當我們的主設備和某個從設備通信時將需要將從設備對應的片選引腳電平拉低或者是拉高,

SPI總線結構

image

SPI四種模式

SPI通信有4種不同的模式,不同的從設備可能在出廠是就是配
置為某種模式,這是不能改變的;但我們的通信雙方必須是作業在同一模式下,所以我們
可以對我們的主設備的SPI模式進行配置,通過CPOL(時鐘極性)和CPHA(時鐘相位)來

控制我們主設備的通信模式,具體如下:
image

時鐘極性CPOL是用來配置SCLK的電平出于哪種狀態時是空閑態或者有效態,時鐘相位CPHA
是用來配置資料采樣是在第幾個邊沿:
CPOL=0,表示當SCLK=0時處于空閑態,所以有效狀態就是SCLK處于高電平時
CPOL=1,表示當SCLK=1時處于空閑態,所以有效狀態就是SCLK處于低電平時
CPHA=0,表示資料采樣是在第1個邊沿,資料發送在第2個邊沿
CPHA=1,表示資料采樣是在第2個邊沿,資料發送在第1個邊沿

例如:
CPOL=0,CPHA=0:此時空閑態時,SCLK處于低電平,資料采樣是在第1個邊沿,也就是
SCLK由低電平到高電平的跳變,所以資料采樣是在上升沿,資料發送是在下降沿,

CPOL=0,CPHA=1:此時空閑態時,SCLK處于低電平,資料發送是在第1個邊沿,也就是
SCLK由低電平到高電平的跳變,所以資料采樣是在下降沿,資料發送是在上升沿,

CPOL=1,CPHA=0:此時空閑態時,SCLK處于高電平,資料采集是在第1個邊沿,也就是
SCLK由高電平到低電平的跳變,所以資料采集是在下降沿,資料發送是在上升沿,

CPOL=1,CPHA=1:此時空閑態時,SCLK處于高電平,資料發送是在第1個邊沿,也就是
SCLK由高電平到低電平的跳變,所以資料采集是在上升沿,資料發送是在下降沿,

六、USART協議

簡介

USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/異步串行接收/發送器,USART通信線路簡單,可勝任較長距離的可靠通信(RS-232為例,最大通信距離可達15米),被廣發應用于工業控制、醫療設備、POS系統等,

同步和異步通信的區別

USART的同步通信幀格式

image

所謂同步通信,是指資料傳送是以資料塊(一組字符)為單位,字符于字符之間、字符內部的位與位之間都同步,

同步串行通信特點

(1)以資料塊位單位傳送資訊

(2)在一個資料塊(資訊幀)內,字符與字符間無間隔

(3)接收時鐘與發送時鐘嚴格同步

簡言之:由時鐘同步

USART異步通信幀格式

image

所謂異步通信,是指資料傳送以字符位單位,字符與字符之間的傳送是完全異步的,位于位之間的傳送基本上是同步的,

異步串行通信的特點

(1)以字符為單位傳送資訊

(2)相鄰兩個字符間的間隔是任意長

(3)接收時鐘和發送時鐘只要相近就可以

異步方式特點簡單說就是:字符間異步,字符內部各位同步

由于異步通信不需要同步時鐘,使用簡單,因此一般傳統通信都采用異步模式,

一幀資料由4個部分組成

(1)1位起始位,規定位低電平0

(2)5~8位為資料位,即要傳送的有效資訊

(3)1位奇偶校驗位

(4)1~2位停止位,規定高電平1

七、USB協議

來自USB協議詳解

簡介

一個transfer(傳輸)由一個或多個transaction(事務)構成,一個transaction(事務)由一個或多個packet(包)構成,一個packet(包)由一個或多個sync(域)構成,

1.傳輸資料通信

USB的資料通訊首先是基于傳輸(transfer)的,傳輸的型別有:中斷傳輸、批量傳輸、同步傳輸、控制傳輸,

2.事務資料通訊

一次傳輸由一個或多個事務(transaction)構成,事務可以分為:in事務、out事務、setup事務,

3.包資料通訊

一個事務由一個或多個包(packet)構成,包可分為:令牌包(setup)、資料包(data)、握手包(ack)、特殊包,

4.域資料通訊

一個包由多個域構成,域可分為:同步域(sync)、標識域(pid)、地址域(addr)、端點域(endp)、幀號域(fram)、資料域(data)、校驗域(crc),

傳輸

傳輸分為四種型別:批量傳輸、等時(同步)傳輸、中斷傳輸、控制傳輸,

1、批量(大容量資料)傳輸(Bulk Transfers): 非周期性,突發

大容量資料的通信,資料可以占用任意帶寬,并容忍延遲 ,如USB列印機、掃描儀、大容量儲存設備等,

批量輸出事務:
(1)主機先發出一個OUT令牌包(包含設備地址,端點號),
(2)然后再發送一個DATA包,這時地址和端點匹配的設備就會收下這個資料包,主機切換到接收模式,等待設備回傳握手包,
(3)設備解碼令牌包,資料包都準確無誤,并且有足夠的緩沖區來保存資料后就會使用ACK/NYET握手包來應答主機(只有高速模式才有NYET握手包,他表示本次資料成功接收,但是沒有能力接收下一次傳輸),如果沒有足夠的緩沖區來保存資料,就回傳NAC,告訴主機目前沒有緩沖區可用,主機會在稍后時間重新該批量傳輸事務,如果設備檢查到資料正確,但端點處于掛起狀態,回傳STALL,如果檢測到有錯誤(如校驗錯誤,位填充錯誤),則不做任何回應,讓主機等待超時,
批量輸入事務:
(1)主機首先發送一個IN令牌包(包含設備地址,端點號),
(2)主機切換到接收資料狀態等待設備回傳資料,如果設備檢測到錯誤,不做任何回應,主機等待超時,如果此時有地址和端點匹配的設備,并且沒有檢測到錯誤,則該設備作出反應:設備有資料需要回傳,就將一個資料包放在總線上;如果沒有資料需要回傳,設備回傳NAK回應主機;如果該端點處于掛起狀態,設備回傳STALL,如果主機收到設備發送的資料包并解碼正確后,使用ACK握手包應答設備,如果主機檢測到錯誤,則不做任何回應,設備會檢測到超時,注意:USB協議規定,不允許主機使用NAK來拒絕接收資料包,主機收到NAK,知道設備暫時沒有資料回傳,主機會在稍后時間重新該批量輸入事務,

image

image

2、中斷傳輸(Interrupt Transfers): 周期性,低頻率,

允許有限延遲的通信 如人機介面設備(HID)中的滑鼠、鍵盤、軌跡球等,
中斷傳輸是一種保證查詢頻率的傳輸,中斷端點在端點描述符中要報告它的查詢間隔,主機會保證在小于這個時間間隔的范圍內安排一次傳輸,

image

3、等時(同步)傳輸(Isochronous Transfers): 周期性 ,

持續性的傳輸,用于傳輸與時效相關的資訊,并且在資料中保存時間戳的資訊 ,如音頻視頻設備,

等時(同步)傳輸用在資料量大、對實時性要求高的場合,如音頻設備,視頻設備等,這些設備對資料的延遲很敏感,對于音頻或視頻設備資料的100%正確性要求不高,少量的資料錯誤是可以容忍的,主要是保證資料不能停頓,所以等時傳輸是不保證資料100%正確的,當資料錯誤時,不再重傳操作,因此等時傳輸沒有應答包,資料是否正確,由資料的CRC校驗來確認,

image

4、控制傳輸(Control Transfers): 非周期性,突發,

用于命令和狀態的傳輸

控制傳輸可分為三個程序:(1)建立程序 (2)資料程序(可選) (3)狀態程序
特性:
每個USB設備都必須有控制端點,支持控制傳輸來進行命令和狀態的傳輸,USB主機驅動將通過控制傳輸與USB設備的控制端點通信,完成USB設備的列舉和配置 ,
方向:
控制傳輸是雙向的傳輸,必須有IN和OUT兩個方向上的特定端點號的控制端點來完成兩個方向上的控制傳輸 ,

USB事物

image

USB包

包的組成:

image

包的內容:

image

1、PID:

image

這里只用(PID04),PID47是PID0~4的取反,用來校驗PID
PID1~0:01 令牌包、11 資料包、10 握手包、00 特殊包

image

2、地址:

image

3、幀號:

image

4、資料:

image

5、CRC:

image

Packet分四大類:

命令 (Token) 、Packet 幀首 (Start of Frame) 、Packet 資料 (Data) 、Packet 握手 (Handshake) Packet

不同型別包,以上的組成部件有所不同

1、四種Packet型別之令牌包(Token Packet):

令牌包用來啟動一次USB傳輸,
輸出(OUT)令牌包:用來通知設備將要輸出一個資料包
輸入(IN)令牌包:用來通知設備回傳一個資料包
建立(SETUP)令牌包:只用在控制傳輸中,和輸出令牌包作用一樣,也是通知設備將要輸出一個資料包,兩者區別在于:
SETUP令牌包后只使用DATA0資料包,且只能發送到設備的控制端點,并且設備必須要接收,而OUT令牌包沒有這些限制
image
例子:

image

2、四種Packet型別之SOF Packet

幀起始包:在每幀(或微幀)開始時發送,以廣播的形式發送,所有USB全速設備和高速設備都可以接收到SOF包,

image

例子:

image

0xA5:1010 0101:對應上面PID表可知是幀起始包

3、四種Packet型別之Data Packet

image

例子:

image

4、四種Packet型別之Handshake Packet

image

例子:

image

USB 設備列舉及描述符介紹

當一個USB設備插入主機后,會有以下活動:
image

在USB設備的邏輯組織中,包含設備、配置、介面和端點4個層次,設備通常有一個或多個配置,配置通常有一個或多個介面,介面通常有零個或多個端點, ![img]image

image

image

image

image

例程分析

我們插上滑鼠后后出現如下的資訊,我們先來分析第一個傳輸:

image

我們看到第一個是控制傳輸,它包含了4個事物,分別是:1個setup事務,3個in事務,1個out事務,我們先打開setup事務:

image

我們看到這個事務里包含了3個包

第一個包是令牌包,它由主控制器發送給目標設備的0號埠,用于設定目標設備的地址和埠號,我們看到后面兩個包都預設了地址與埠號,在usb系統中,所有的通信都是由主機發出相應的令牌所引起的,

第二個是資料包,由主控器發送給目標設備,其中資料的內容表示:

80:表示要求設備向主機發送資訊

06:表示GET_DESCRIPTOR,即設備向主機發送設備描述符

00與01:Word-sized field that varies according to request

00與40:Word-sized field that varies according to request; typically used to pass an index or offset

00:Number of bytes to transfer if there is a:Data stage

總結一下第二個包就是向默認地址0 發送GET_DESCRIPTOR 指令包,請求設備發送設備描述符

第三個是應答包:設備接收到主機發送的資料后會給出應答

接著我們看第一個in事務

image

我們看到這個事務里也有三個包

第一個是in包:由主機發送給設備,表示要設備向主機發送上面請求的設備描述符

第二個是資料包:由設備發送給主機,當然是發送設備描述符,我們來分析一下:

12:表示接下來要求主機向設備發送資訊

01:CLEAR_FEATURE、

第三個是應答包,由主機發送給設備

接著我們來看第二個in事務

image

這個事務里依舊是3個包

第一個是in包:由主機發送給設備,表示需要輸入

第二個是資料包:由設備發送給主機,我們來決議一下:

6D:表示要求主機發給設備資料

04:Reserved for future use

第三個是主機給設備的應答包

最后來看out事務

image

第一個是out包:由主機發給設備

第二個是資料包:由主機發給設備,無資料

第三個包是設備給主機的應答包

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/285829.html

標籤:其他

上一篇:強化學習入門之智能走迷宮-價值迭代演算法

下一篇:Linux編程環境

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more