99久久久久,美女裸身被男人玩奶头的视频,亚洲A V无码久久网站飞鱼,黄片进入网站

<samp id="mwoyc"></samp>
  • 
    
  • <ul id="mwoyc"><tbody id="mwoyc"></tbody></ul>
    <ul id="mwoyc"></ul>

    深圳市凱茉銳電子科技有限公司深圳市凱茉銳電子科技有限公司

    新聞中心

    News

    USB協(xié)議簡介

    來源:深圳市凱茉銳電子科技有限公司2025-02-17

    USB–Universal Serial Bus即通用串行總線,簡化了計(jì)算機(jī)與外圍設(shè)備的連接;

    1 USB概念

     

    主機(jī)host: 主機(jī)是 USB 系統(tǒng)的控制中心,通常是一個(gè)計(jì)算機(jī)或其他設(shè)備,負(fù)責(zé)管理和協(xié)調(diào)所有 USB 設(shè)備的通信。

     

     

    Hub: 集線器用于擴(kuò)展 USB 系統(tǒng),允許多個(gè)設(shè)備連接到同一個(gè)主機(jī)。

     

     

    設(shè)備device:設(shè)備是連接到 USB 系統(tǒng)的終端設(shè)備,如鍵盤、鼠標(biāo)、打印機(jī)、存儲(chǔ)設(shè)備等。

     

     

    端點(diǎn)endpoint:端點(diǎn)是設(shè)備上的一個(gè)邏輯實(shí)體,用于與主機(jī)進(jìn)行數(shù)據(jù)傳輸。每個(gè)設(shè)備可以有多個(gè)端點(diǎn),每個(gè)端點(diǎn)都有唯一的地址。

     

     

    管道Pipe: 管道是主機(jī)和設(shè)備端點(diǎn)之間的通信路徑。每個(gè)管道都有特定的傳輸類型和屬性。

     

    1.1 USB基本名詞

     

    USB協(xié)議均是版本向下兼容。

     

     

    USB 1.0/1.1(low/full speed),傳輸速率最大為12Mbps

     

     

    USB 2.0(high speed), 傳輸速率最大480Mbps

     

     

    USB 3.0(super speed), 采用8b/10b編碼,增加一對超高速差分線 傳輸速率最大5Gbps

     

     

    USB 3.1 采用 128b/132b 編碼,速度提高 1 倍,供電 20V/5A,同時(shí)增加了 A/V 影音傳輸標(biāo)準(zhǔn) 10 Gbps

     

     

    USB 3.2 增加一對超高速傳輸通道,速度再次翻倍,只能在 C 型接口上運(yùn)行 20Gbps

     

    2.USB物理接口形式分類:Type A、Type C;這兩種是最常見的物理接口;

    3.PIPE(管道):主機(jī)和endpoint之間的數(shù)據(jù)傳輸是PIPE;
    4.方向:端點(diǎn)是有方向的,主機(jī)到從機(jī)成為out端點(diǎn),從機(jī)到主機(jī)成為in端點(diǎn)。
    5.管道通信方式:pipe中的數(shù)據(jù)通信方式有兩種,一種是stream一種是message。message要求進(jìn)出進(jìn)出方向必須要求同一個(gè)管道。
    6.傳輸方式:USB endpiont有四種類型,分別對應(yīng)了不同的數(shù)據(jù)傳輸方式,分別為control transfers控制傳輸、interrupt transfers中斷傳輸、Bluk Data transfers批量傳輸、Isochronous Data Tranfers等時(shí)傳輸。

     

    控制傳輸:用于配置和管理設(shè)備,包括設(shè)備枚舉、設(shè)置配置和獲取狀態(tài)信息。

     

     

    中斷傳輸:用于傳輸小量的定時(shí)數(shù)據(jù),如鍵盤和鼠標(biāo)的輸入。中斷傳輸提供定期的輪詢機(jī)制,確保數(shù)據(jù)的及時(shí)傳輸。

     

     

    批量傳輸:用于傳輸大量數(shù)據(jù),如文件傳輸和打印任務(wù)。批量傳輸保證數(shù)據(jù)的完整性和可靠性,但不保證實(shí)時(shí)性。

     

     

    等時(shí)傳輸:用于實(shí)時(shí)數(shù)據(jù)傳輸,如音頻和視頻流。等時(shí)傳輸保證數(shù)據(jù)的實(shí)時(shí)性和帶寬,但不保證數(shù)據(jù)的完整性。

     

    1.2 描述符

    主設(shè)備之所以能區(qū)分不同的從設(shè)備,靠的就是描述符;USB協(xié)議里就規(guī)定了各種不同的USB描述符。

    +------設(shè)備描述符
            +----------配置描述符1
                +----------接口描述符1
                    +----------端點(diǎn)描述符1
                    +----------端點(diǎn)描述符2
                    +....
                +----------接口描述符2
                    +----------端點(diǎn)描述符1
                    +....
                +....
            +----------配置描述符2
                +----------接口描述符1
                    +----------端點(diǎn)描述符1
                    +----------端點(diǎn)描述符2
                    +....
                +....
            +....

    1.2.1 設(shè)備描述符

    設(shè)備描述符:用來描述該設(shè)備,一個(gè)設(shè)備只有一個(gè)設(shè)備描述符,包含了設(shè)備類型、設(shè)備遵循的協(xié)議、廠商ID、產(chǎn)品id、序列號(hào)等。
    一個(gè)描述符Demo:

    DEVICE DESCRIPTOR
        bLength: 18
        bDescriptorType: 0x01 (DEVICE)
        bcdUSB: 0x0200
        bDeviceClass: Vendor Specific (0xff)
        bDeviceSubClass: 255
        bDeviceProtocol: 255
        bMaxPacketSize0: 64
        idVendor: Marvell Semiconductor, Inc. (0x1286)
        idProduct: Unknown (0x812a)
        bcdDevice: 0x0000
        iManufacturer: 3
        iProduct: 2
        iSerialNumber: 0
        bNumConfigurations: 1

    1.2.2 配置描述符

    用來配置設(shè)備,一個(gè)設(shè)備同一時(shí)刻只能有一種配置生效,而且要區(qū)分配置和設(shè)置的區(qū)別。
    配置描述符內(nèi)容:

    ONFIGURATION DESCRIPTOR
        bLength: 9
        bDescriptorType: 0x02 (CONFIGURATION)
        wTotalLength: 121
        bNumInterfaces: 4
        bConfigurationValue: 1
        iConfiguration: 0
        Configuration bmAttributes: 0xc0  SELF-POWERED  NO REMOTE-WAKEUP
            1... .... = Must be 1: Must be 1 for USB 1.1 and higher
            .1.. .... = Self-Powered: This device is SELF-POWERED
            ..0. .... = Remote Wakeup: This device does NOT support remote wakeup
        bMaxPower: 250  (500mA)

    1.2.3 接口描述符

    一個(gè)interface就代表一個(gè)設(shè)備。USB interface用來處理一類 USB 邏輯連接, 例如一個(gè)鼠標(biāo), 一個(gè)鍵盤, 或者一個(gè)音頻流.但一些 USB 設(shè)備有多個(gè)接口。

    INTERFACE DESCRIPTOR (2.0): class Vendor Specific
        bLength: 9
        bDescriptorType: 0x04 (INTERFACE)
        bInterfaceNumber: 2
        bAlternateSetting: 0
        bNumEndpoints: 2
        bInterfaceClass: Vendor Specific (0xff)
        bInterfaceSubClass: 0x00
        bInterfaceProtocol: 0x00
        iInterface: 8

    1.2.4 端點(diǎn)描述符

    USB通信的基本物理單位,一個(gè)endpiont只能承載一個(gè)方向的數(shù)據(jù)。endpiont分為如下幾種:

     

    CONTROL
    控制端點(diǎn)被用來允許對 USB 設(shè)備的不同部分存取. 通常用作配置設(shè)備, 獲取關(guān)于設(shè)備的信息, 發(fā)送命令到設(shè)備, 或者獲取關(guān)于設(shè)備的狀態(tài)報(bào)告. 這些端點(diǎn)在尺寸上常常較小.每個(gè) USB 設(shè)備有一個(gè)控制端點(diǎn)稱為"端點(diǎn) 0", 被 USB CORE用來在插入時(shí)配置設(shè)備. 這些傳送由 USB 協(xié)議保證來總有足夠的帶寬使它到達(dá)設(shè)備.

     

     

    INTERRUPT
    中斷端點(diǎn)傳送小量的數(shù)據(jù), 以固定的速率在每次 USB 主請求設(shè)備數(shù)據(jù)時(shí). 這些端點(diǎn)對 USB 鍵盤和鼠標(biāo)來說是主要的傳送方法. 它們還用來傳送數(shù)據(jù)到 USB 設(shè)備來控制設(shè)備, 但通常不用來傳送大量數(shù)據(jù). 這些傳送由 USB 協(xié)議保證來總有足夠的帶寬使它到達(dá)設(shè)備.

     

     

    ISOCHRONOUS
    同步端點(diǎn)也傳送大量數(shù)據(jù), 但是這個(gè)數(shù)據(jù)常常不被保證它完成. 這些端點(diǎn)用在可以處理數(shù)據(jù)丟失的設(shè)備中, 并且更多依賴于保持持續(xù)的數(shù)據(jù)流. 實(shí)時(shí)數(shù)據(jù)收集, 例如音頻和視頻設(shè)備, 一直都使用這些端點(diǎn).

     

    BULK端點(diǎn)描述符數(shù)據(jù)內(nèi)容如下:

    ENDPOINT DESCRIPTOR
        bLength: 7
        bDescriptorType: 0x05 (ENDPOINT)
        bEndpointAddress: 0x86  IN  Endpoint:6
            1... .... = Direction: IN Endpoint
            .... 0110 = Endpoint Number: 0x6
        bmAttributes: 0x02
            .... ..10 = Transfertype: Bulk-Transfer (0x2)
        wMaxPacketSize: 512
            .... ..10 0000 0000 = Maximum Packet Size: 512
        bInterval: 0

    1.3 USB的分層

    1.3.1 協(xié)議層

    協(xié)議層主要包括:數(shù)據(jù)包類型、數(shù)據(jù)包的格式、對主機(jī)和設(shè)備發(fā)送的數(shù)據(jù)包的預(yù)期響應(yīng)、描述了四種USB 3.0事務(wù)類型、支持批量傳輸類型的流式傳輸支持、設(shè)備/主機(jī)可能接收/發(fā)送的各種響應(yīng)和數(shù)據(jù)包的定時(shí)參數(shù)。
    整個(gè)協(xié)議包的類型有:

    640.webp.png

    1.3.2 鏈路層

    Link Layer鏈路層主要包括:數(shù)據(jù)包幀、鏈路命令、鏈路管理和流量控制、鏈路錯(cuò)誤規(guī)則/恢復(fù)、重置、鏈路狀態(tài)機(jī)描述;

    1.3.3 物理層

    定義了高速組件之間互操作性所需的電氣層參數(shù)。

    1.4 USB傳輸

    USB總線上傳輸數(shù)據(jù)是以包(packet)為基本單位的,必須把不同的包組織成事務(wù)(transaction)才能傳輸數(shù)據(jù)。
    USB協(xié)議定義了四種傳輸(transfer)類型: 批量傳輸 , 同步傳輸 , 中斷傳輸 , 控制傳輸 .其中,批量傳輸、同步傳輸、中斷傳輸每傳輸一次數(shù)據(jù)都是一個(gè)事務(wù)。

    1.4.1 包packet

    一個(gè)包被分為不同域,根據(jù)不同類型的包,所含的域也是不一樣的。但都要以同步域SYNC開始,緊跟一個(gè)包標(biāo)識(shí)符PID,最終以包結(jié)束符EOP來結(jié)束這個(gè)包。

    PID域: PID用來標(biāo)識(shí)一個(gè)包的類型,它共有8位,只使用低四位,高四位取反,用來校驗(yàn)PID;
    PID規(guī)定了四類包: 令牌包 、 數(shù)據(jù)包 、 握手包 、 特殊包 . 同類的包又各分為具體的四種包:

    地址域: 地址共占11位,其中低7位是設(shè)備地址,高4位是端點(diǎn)地址;

     

    幀號(hào)域:幀號(hào)占11位,主機(jī)每發(fā)一幀,幀號(hào)都會(huì)自動(dòng)加1,當(dāng)幀號(hào)達(dá)到0x7FF時(shí),將歸零重新開始計(jì)數(shù)。

     

     

    數(shù)據(jù)域:根據(jù)傳輸類型的不同,數(shù)據(jù)域的數(shù)據(jù)長度從0到1024字節(jié)不等。

     

    CRC域: 計(jì)算地址域和幀號(hào)域的CRC,或數(shù)據(jù)域數(shù)據(jù)的CRC;

    1.4.2 包類型

     

    令牌包–四種:
    OUT: 通知設(shè)備將要輸出一個(gè)數(shù)據(jù)包
    IN: 通知設(shè)備返回一個(gè)數(shù)據(jù)包
    SETUP: 只用在控制傳輸中,也是通知設(shè)備將要輸出一個(gè)數(shù)據(jù)包,域OUT令牌的區(qū)別是:只使用DATA0數(shù)據(jù)包,且只能發(fā)到device的控制端點(diǎn)
    SOF: 在每幀開始時(shí)以廣播的形式發(fā)送,針對USB全速設(shè)備,主機(jī)每1ms產(chǎn)生一個(gè)幀,USB主機(jī)會(huì)對當(dāng)前幀號(hào)進(jìn)行統(tǒng)計(jì),每次幀開始時(shí)通過SOF包發(fā)送幀號(hào)

     

    數(shù)據(jù)包
    數(shù)據(jù)包沒有地址域和幀號(hào)域,根據(jù)transfer的類型不同,數(shù)據(jù)包最大長度有所不同。

     

    握手包–4種
    ACK: 傳輸正確完成
    NAK: 設(shè)備暫時(shí)沒有準(zhǔn)備好接收數(shù)據(jù),或沒有準(zhǔn)備好發(fā)送數(shù)據(jù)
    STALL: 設(shè)備不能用于傳輸
    NYET/ERR: 僅用于高速傳輸,設(shè)備沒有準(zhǔn)備好或出錯(cuò)

     

    握手包僅有PID域:

    1.5 傳輸transfer

    事務(wù)可以分為三類:

     

    setup事務(wù): 主機(jī)用來向設(shè)備發(fā)送控制命令

     

     

    數(shù)據(jù)輸入事務(wù): 主機(jī)用來從設(shè)備讀取數(shù)據(jù)

     

     

    數(shù)據(jù)輸出事務(wù): 主機(jī)用來向設(shè)備發(fā)送數(shù)據(jù)

     

    1.5.1 批量傳輸

    批量傳輸使用批量傳輸事務(wù)(IN傳輸/OUT傳輸),一次批量傳輸事務(wù)分為三個(gè)階段: 令牌包階段、數(shù)據(jù)包階段、握手包階段

    描述:
    1.令牌階段: 主機(jī)發(fā)送BULK令牌包,令牌包中包含設(shè)備地址、端點(diǎn)號(hào)、數(shù)據(jù)方向
    2.數(shù)據(jù)包階段:
    從機(jī)如果接收令牌包出錯(cuò),無響應(yīng),讓主機(jī)等待超時(shí)
    從機(jī)端點(diǎn)不存在,回送STALL
    從機(jī)端點(diǎn)數(shù)據(jù)未準(zhǔn)備好,回送NAK
    從機(jī)數(shù)據(jù)準(zhǔn)備好,回送數(shù)據(jù)包

    3.握手包階段:數(shù)據(jù)包正確,并有足夠的空間保留數(shù)據(jù),設(shè)備返回ACK握手包括:NYET握手包(只有高速模式才有NYET握手包,表示本次數(shù)據(jù)接收成功,但沒有能力接收下一次傳輸)
        數(shù)據(jù)包正確,但沒有足夠的空間保存數(shù)據(jù),設(shè)備返回NAK握手包。主機(jī)收到NAK后,延時(shí)一段時(shí)間后,再重新進(jìn)行批量輸出事務(wù)
        數(shù)據(jù)包正確,但端點(diǎn)處于掛起狀態(tài);設(shè)備返回一個(gè)STALL握手包
        數(shù)據(jù)包錯(cuò)誤,設(shè)備不返回任何握手包,讓主機(jī)等待超時(shí)

        CRC錯(cuò)誤或位填充錯(cuò)誤: 設(shè)備不返回任何握手包,讓主機(jī)等待超時(shí);

    1.5.2 中斷傳輸

        中斷傳輸一般用于小批量的和非連續(xù)的數(shù)據(jù)傳輸,但實(shí)時(shí)性高的場合,主要應(yīng)用于人機(jī)交互設(shè)備(HID)的鼠標(biāo)和鍵盤。

    1.5.3 同步傳輸

        同步傳輸是不可靠的傳輸,只關(guān)心數(shù)據(jù)的實(shí)時(shí)性,不關(guān)心數(shù)據(jù)的正確性,它沒有握手包,也不支持PID翻轉(zhuǎn)。主機(jī)在排定事務(wù)傳輸時(shí),同步傳輸有最高優(yōu)先級(jí).應(yīng)用在數(shù)據(jù)量大,對實(shí)時(shí)性要求較高的場合,如視頻設(shè)備,音頻設(shè)備;

    同步傳輸包含兩個(gè)階段: 令牌階段、數(shù)據(jù)階段:

    1.5.4 控制傳輸

        控制傳輸是一種特殊的傳輸方式。當(dāng)USB設(shè)備初次連接主機(jī)時(shí),用控制傳輸傳送控制命令等對設(shè)備進(jìn)行配置。同時(shí)設(shè)備接入主機(jī)時(shí),需要通過控制傳輸去獲取USB設(shè)備的描述符以及 對設(shè)備進(jìn)行識(shí)別,在設(shè)備的枚舉過程中都是使用控制傳輸進(jìn)行數(shù)據(jù)交換。

    控制傳輸分為三個(gè)階段:

    建立過程:

    主機(jī)發(fā)送令牌包: SETUP

    主機(jī)發(fā)送數(shù)據(jù)包: DATA0

    設(shè)備返回握手包: ACK或不應(yīng)答

    2.數(shù)據(jù)過程(可選): 一個(gè)數(shù)據(jù)過程可以不包含或包含多個(gè)數(shù)據(jù)事務(wù),但所有數(shù)據(jù)事務(wù)必須是同一方向的。若數(shù)據(jù)方向發(fā)生了改變則認(rèn)為進(jìn)入了狀態(tài)過程. 數(shù)據(jù)過程中的第一個(gè)數(shù)據(jù)包必須是DATA1,然后 每次正確傳輸一個(gè)數(shù)據(jù)包后就在DATA0和DATA1之間交替;

                3.狀態(tài)過程: 狀態(tài)過程只使用DATA1包,并且傳輸方向與數(shù)據(jù)方向相反。

    2 USB1.1 示例
        此Demo只展示創(chuàng)建一個(gè)簡單的 USB 設(shè)備模塊,該模塊能夠響應(yīng)主機(jī)的請求,并發(fā)送和接收數(shù)據(jù);實(shí)現(xiàn)最基本的控制傳輸功能。

    module usb_device (
    input wire clk, // 時(shí)鐘信號(hào)
    input wire reset_n, // 復(fù)位信號(hào),低電平有效
    input wire usb_dp, // USB D+ 信號(hào)
    input wire usb_dm, // USB D- 信號(hào)
    output reg usb_dp_out, // USB D+ 輸出
    output reg usb_dm_out, // USB D- 輸出
    output reg [7:0] data_out, // 發(fā)送到主機(jī)的數(shù)據(jù)
    input wire [7:0] data_in, // 從主機(jī)接收的數(shù)據(jù)
    output reg data_valid, // 數(shù)據(jù)有效信號(hào)
    output reg data_ready // 數(shù)據(jù)準(zhǔn)備好信號(hào)
    );

    // 內(nèi)部狀態(tài)機(jī)狀態(tài)
    typedef enum logic [2:0] {
    IDLE,
    SYNC,
    TOKEN,
    DATA,
    HANDSHAKE
    } state_t;

    state_t state, next_state;

    // 內(nèi)部寄存器
    reg [7:0] token_reg;
    reg [7:0] data_reg;
    reg [7:0] handshake_reg;

    // 組合邏輯部分
    always_comb begin
    next_state = state;
    usb_dp_out = 1'bz;
    usb_dm_out = 1'bz;
    data_valid = 1'b0;
    data_ready = 1'b0;

    case (state)
    IDLE: begin
    if (usb_dp && !usb_dm) begin
    next_state = SYNC;
    end
    end
    SYNC: begin
    if (!usb_dp && usb_dm) begin
    next_state = TOKEN;
    end
    end
    TOKEN: begin
    token_reg = {usb_dm, token_reg[7:1]};
    if (token_reg[0]) begin
    next_state = DATA;
    end
    end
    DATA: begin
    if (token_reg[0]) begin
    // 接收數(shù)據(jù)
    data_reg = {usb_dm, data_reg[7:1]};
    if (data_reg[0]) begin
    data_out = data_reg;
    data_valid = 1'b1;
    next_state = HANDSHAKE;
    end
    end else begin
    // 發(fā)送數(shù)據(jù)
    usb_dp_out = data_in[7];
    usb_dm_out = ~data_in[7];
    data_in = {1'b0, data_in[7:1]};
    if (data_in[0]) begin
    data_ready = 1'b1;
    next_state = HANDSHAKE;
    end
    end
    end
    HANDSHAKE: begin
    // 發(fā)送握手包
    handshake_reg = 8'b00000011; // ACK
    usb_dp_out = handshake_reg[7];
    usb_dm_out = ~handshake_reg[7];
    handshake_reg = {1'b0, handshake_reg[7:1]};
    if (handshake_reg[0]) begin
    next_state = IDLE;
    end
    end
    endcase
    end

    // 時(shí)序邏輯部分
    always_ff @(posedge clk or negedge reset_n) begin
    if (!reset_n) begin
    state <= IDLE;
    end else begin
    state <= next_state;
    end
    end

    endmodule


    相關(guān)資訊

    專業(yè)工程師

    24小時(shí)在線服務(wù)提交需求快速為您定制解決方案

    13798538021