日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

USB协议基础知识笔记

發布時間:2025/4/16 编程问答 91 豆豆
生活随笔 收集整理的這篇文章主要介紹了 USB协议基础知识笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

usb協議

功能層: 控制傳輸、中斷傳輸、塊傳輸(批量傳輸)、同步傳輸

設備層:管理USB設備、分配地址、讀取設備描述符

總線接口層:采用NRZI編碼-反向非歸零編碼(0將前一個電平翻轉,1不翻轉)

電氣特性

電壓:4.75~5.25V

電流:USB2.0高輸出功率最大500mA、低輸出功率最大100mA、 USB3.0最大輸出900mA

USB事務

usb事務處理是主機和設備數據通信的基礎。由: 令牌階段、數據階段、握手階段組成。

常用字段

  • 同步字段(SYSC): 每個信息包以SYSC開始,低速/全速同步字段長度為8位,數據為10000000B,從低位開始發送。高速同步字段長度為32位,數據為80000000H。

  • 包標志字段(PID):字段長度為8位,低4位類型字段和高4位校驗字段組成,校驗字段是類型字段的補碼,可驗證數據的正確性。4種信息包類型: 令牌包、握手包、特殊包和數據包。

    包類型PID[3:0] 二進制包名說明
    令牌包1001OUT PID數據從主機發送到設備
    ?0001IN PID數據從設備發送到主機
    ?0101SOF PID作為幀的開始信息
    ?1101SETUP PID主機向設備發送的配置信息
    握手包0010ACK PID接收方正確接收到數據
    ?1010NACK PID接收方未能正確接收到數據
    ?1110STALL PID使用的端點被掛起
    ?0110NYET PID接收方沒有任何響應
    數據包0011DATA0 PID數據包為偶數據包
    ?1011DATA1 PID數據包為奇數據包
    ?0111DATA2 PID高速同步事務專用數據包
    ?1111MDATA PIDSPLIT事務專用數據包
    特殊包1100PRE PID令牌,主機發送先導包,使能低速通信
    ?1011ERR PID握手信息,SPLIT事務中的錯誤握手信號
    ?1000SPLIT PID高速SPLIT事務的令牌信息
    ?0100PING PID數據流量檢測控制
  • 地址字段: 長度為7位,共128個地址值。地址0缺省,實際只有127個地址。在USB上電的時候主機先通過缺省地址0和usb設備進行通信,配置完成后,主機重新為設備分配一個地址。

  • 端點字段: 長度為4位,總共可表示16個端點。低速:3個端點, 高速/全速:16個端點。,端點0是所有USB設備必須的,主要在設備上電初期和USB主機進行通信、完成配置。

  • 幀號字段: 長度為11位,最大值07FFH,表示當前幀的幀號,每個幀發送的時候,該字段加1

  • 數據字段: 最大長度1024字節,長度由傳輸類型和程序的需要決定。首先傳輸低字節,再傳輸高字節。

  • CRC字段: 循環冗余校驗字段。一般在發送方進行位填充之前進行。令牌包一般采用5位CRC校驗;數據包采用16位CRC校驗。

令牌包

  • IN令牌包: PID字段+ADDR字段+ENDP字段+CRC字段 數據從 設備 到 主機

? PID: 數據從設備發送至主機

? ADDR:USB設備地址

? ENDP: 發送數據的端點號

? CRC: ADDR和ENDP字段進行校驗

  • OUT令牌包: PID +ADDR + ENDP + CRC 數據從 主機 到 設備

  • SETUP令牌包: PID + ADDR + ENDP + CRC 數據從主機 到 設備, 配置信息

  • PING令牌包: PID +ADDR + ENDP + CRC 數據從 設備 到 主機, 握手信號傳輸

  • PRE令牌包: PID 低速數據傳輸先導包,在開始發送數據之前必須先發送該包(主機與集線器之間進行傳輸)。

  • 數據包: PID + 數據字段 + 16位CRC PID指定數據包DATA0-DATA2或MDATA。數據字段的長度根據協議規定:低速最大長度8字節,全速最大長度 1023字節,高速最大長度1024字節

  • 握手包:PID 接收方反饋狀態給發送方

事務處理

  • IN事務處理

    主機發送IN令牌包: SYNC+IN+EOP

    設備發送數據包: SYNC+數據包+EOP

    主機發送握手包: SYNC+確認+EOP

  • OUT事務處理

  • ? 主機發送OUT令牌包: SYNC+OUT+EOP

    ? 主機發送數據包: SYNC+數據包+EOP

    ? 設備發送握手包: SYNC+確認+EOP

    ? 3.SETUP事務處理(利用其對設備進行配置,常用于建立階段)

    ? 主機發送SETUP令牌包: SYNC+SETUP+EOP

    ? 主機發送數據包: SYNC+DATA0+EOP

    ? 設備發送握手包: SYNC+確認+EOP

    ? 4.PING事務處理(主要用于高速數數據傳輸中)

    ? 主機發送PING令牌包: SYNC+PING+EOP

    ? 設備發送握手包: SYNC+確認+EOP

    ? 5.SOF事務處理

    ? 主機主動發送。低速或者全速usb傳輸,每隔1ms產生一個SOF令牌包,對于高速傳輸,每

    ? 隔125us產生一個小幀,每隔7個小幀,產生一個SOF令牌包,不需要握手包。

    USB設備的狀態

    • 連接狀態: usb總線開始向usb設備供電,直到電源穩定。

    • 上電狀態: usb設備處于上電狀態,當沒有被復位

    • 缺省狀態: usb設備響應usb主機發出的復位信號,進行復位操作,復位結束后,設備進入缺省狀態。該狀態下:電流小于100mA,并且使用缺省的設備地址對一些usb事務進行處理。

    • 地址狀態: 復位結束后,usb主機重新為設備分配一個唯一的地址。

    • 配置狀態: 主機發出setconfiguration請求。

    • 掛起狀態: usb設備在3ms內沒有檢測到總線活動,自動進入掛起狀態,保持原有的地址和配置。

    USB數據傳輸

    • 塊傳輸: 適用于傳輸大量且對傳輸時間和傳輸速率沒有要求的場合。數據包長度 -- 全速端點,可以是8、16、32、64字節;高速端點只能是512字節。數據量如果超過最大的數據包長,主控制器會將其分成多個塊事務處理。處理過程:

    ? 令牌 >> 數據 >> 握手

    ? 第一個數據包為DATA0,第二個應該是DATA1,之后可以是DATA0/DATA1

    • 中斷傳輸: 適用于傳輸少量或對數據處理有周期要求的場合。數據長度 -- 低速端點最大數據包長度8字節;全速端點最大為64字節;高速端點為1024字節。

    • 同步傳輸: 只能用于全速、高速設備。適用于傳輸大量、速率恒定的,且對周期有要求的數據。例如:音頻、視頻等。數據長度 -- 全速端點最大為1023字節;高速端點最大為1024字節

    • 控制傳輸: 主要用于傳輸少量的,對傳輸時間和傳輸速率均無要求、但必須保證傳輸的數據。數據長度 -- 低速端點最大為8字節;全速端點可謂8、16、32、64字節;高速端點只能是64字節。

      ? 建立階段 + 數據階段 + 狀態階段

    USB設備配置

    • 設備描述符:表示USB設備的總體信息,一個USB設備只有一個設備描述符。固定18字節。

    • 配置描述符: USB設備可以有一個或者多個配置,每個配置必須有一個配置描述符。固定9字節。

    • 字符串描述符: 可選。用于保存供應商的名稱、產品序列等文本信息。

    • 接口描述符: 接口為端點的集合,負責完成該USB設備的特定功能。固定9字節。

    • 端點描述符: 指出端點的特性。固定7字節。

    • 設備限定描述符: 設備既需要告訴傳輸也需要全速傳輸,則必須支持設備限定描述符。固定10字節。

    • 其他速率配置描述符: 既采用高速傳輸又采用全速傳輸,則必須支持該描述符。固定9字節。

    • ?

    ?

    轉載于:https://www.cnblogs.com/BlogsOfLei/p/7749434.html

    總結

    以上是生活随笔為你收集整理的USB协议基础知识笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。