《USB的通訊協(xié)議通俗易懂課件.ppt》由會員分享,可在線閱讀,更多相關《USB的通訊協(xié)議通俗易懂課件.ppt(75頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 集 線 器( 復 合 設 備 ) 游 戲 桿 USB設 備(根 階 梯 )階 梯 0掃 描 儀 鼠 標集 線 器 USB設 備階 梯 1階 梯 2PC主 機( 根 集 線 器 )圖 16-1 USB主 機 和 USB設 備 的 連 接 表 16-1 USB纜 線 的 信 號 與 顏 色 1234 1 24 3A型 連 接 頭 B型 連 接 頭圖 16-2 USB連 接 頭 圖 16-3 在 USB電 纜 上 使 用 雙 向 不 歸 零 編 碼 和 差 動 信 號 的 傳 輸 NRZI編 碼 器 電 纜 段 差 分 驅 動 器 NRZI解 碼 器差 分 驅 動 器 D+ D-USB的 數(shù) 據(jù)
2、包 使 用 反 向 不 歸 零 編 碼 ( NRZI) 。 圖 16-3描 述 了 在USB電 纜 段 上 傳 輸 信 息 的 步 驟 。 反 向 不 歸 零 編 碼 由 傳 送 信 息 的USB代 理 程 序 完 成 ; 然 后 , 被 編 碼 的 數(shù) 據(jù) 通 過 差 分 驅 動 器 送 到USB電 纜 上 ; 接 著 , 接 收 器 將 輸 入 的 差 分 信 號 進 行 放 大 , 將 其 送給 解 碼 器 。 使 用 該 編 碼 和 差 動 信 號 傳 輸 方 式 可 以 更 好 地 保 證 數(shù) 據(jù)的 完 整 性 并 減 少 噪 聲 干 擾 。 圖 16-4 反 向 不 歸 零 編 碼
3、 空 閑數(shù) 據(jù)反 向 不歸 零 碼 0 1 1 0 1 0 0 0 1 1 1 0 1 0使 用 反 向 不 歸 零 編 碼 方 式 可 以 保 證 數(shù) 據(jù) 傳 輸 的 完 整 性 , 而 且 不要 求 傳 輸 過 程 中 有 獨 立 的 時 鐘 信 號 。 反 向 不 歸 零 編 碼 不 是 一 個新 的 編 碼 方 式 。 它 在 許 多 方 面 都 有 應 用 。 圖 16-4給 出 了 一 個 數(shù)據(jù) 流 和 編 碼 之 后 的 結 果 。 在 反 向 不 歸 零 編 碼 時 , 遇 到 “ 0”轉 換 ,遇 到 “ 1”保 持 。 反 向 不 歸 零 碼 必 須 保 持 與 輸 入 數(shù)
4、 據(jù) 的 同 步 性 ,以 確 保 數(shù) 據(jù) 采 樣 正 確 。 反 向 不 歸 零 碼 數(shù) 據(jù) 流 必 須 在 一 個 數(shù) 據(jù) 窗口 被 采 樣 , 無 論 前 一 個 位 時 間 是 否 發(fā) 生 過 轉 換 。 解 碼 器 在 每 個位 時 間 采 樣 數(shù) 據(jù) 以 檢 查 是 否 有 轉 換 。 圖 16-5在 USB電 纜 上 使 用 雙 向 不 歸 零 編 碼 和 差 動 信 號 的 傳 輸0 0 0 1 1 1 11 1 1 1 0 1 1數(shù) 據(jù)空 閑雙 向 不 歸 零 碼填 充 后 數(shù)據(jù) 填 充 位 若 重 復 相 同 的 “ 1”信 號 一 直 進 入 時 , 就 會 造 成 數(shù)
5、據(jù) 長 時 間 無 法 轉 換 , 逐 漸 的 積 累 ,而 導 致 接 收 器 最 終 丟 失 同 步 信 號 的 狀 況 , 使 得 讀 取 的 時 序 會 發(fā) 生 嚴 重 的 錯 誤 。 因 此 , 在NRZI編 碼 之 間 , 還 需 執(zhí) 行 所 謂 的 位 填 充 的 工 作 。 位 填 充 要 求 數(shù) 據(jù) 流 中 如 果 有 連 續(xù) 的 六 個“ 1”就 要 強 行 轉 換 。 這 樣 接 收 器 在 反 向 不 歸 零 碼 數(shù) 據(jù) 流 中 最 多 每 七 個 位 就 檢 測 到 一 次 跳轉 。 這 樣 就 保 證 了 接 收 器 與 輸 入 數(shù) 據(jù) 流 保 持 同 步 。 反
6、向 不 歸 零 碼 的 發(fā) 送 器 要 把 “ 0”( 填充 位 ) 插 到 數(shù) 據(jù) 流 中 。 接 收 器 必 須 被 設 計 成 能 夠 在 連 續(xù) 的 六 個 “ 1”之 后 識 別 一 個 自 動 跳轉 , 并 且 立 即 扔 掉 這 六 個 “ 1”之 后 的 “ 0”位 。 圖 16-5的 第 一 行 是 送 到 接 收 器 的 原 始 數(shù) 據(jù) 。 注 意 數(shù) 據(jù) 流 包 括 連 續(xù) 的 八 個 “ 1”。 第 二行 表 示 對 原 始 數(shù) 據(jù) 進 行 了 位 填 充 , 在 原 始 的 第 六 個 和 第 七 個 “ 1”之 間 填 入 了 一 個 “ 0”。第 七 個 “ 1”
7、延 時 一 個 位 時 間 讓 填 充 位 插 入 。 接 收 器 知 道 連 續(xù) 六 個 “ 1”之 后 將 是 一 個 填 充位 , 所 以 該 位 就 要 被 忽 略 。 注 意 , 如 果 原 始 數(shù) 據(jù) 的 第 七 個 位 是 “ 0”, 填 充 位 也 同 樣 插 入 ,在 填 充 過 的 數(shù) 據(jù) 流 中 就 會 有 兩 個 連 續(xù) 的 “ 0”。 USB主 機 USB低 速設 備USB數(shù) 據(jù) 線+5VD+D- 15千 歐 1.5千 歐 VccD+D-地15千 歐USB主 機 USB全 速設 備USB數(shù) 據(jù) 線+5VD+D- 15千 歐 1.5千 歐 VccD+D-地15千 歐 主
8、 機(PC) USB設 備1. IN令 牌 封 包2. DATA1數(shù) 據(jù) 封 包3. ACK握 手 封 包圖 16-8控 制 讀 取 的 IN數(shù) 據(jù) 交 換 的 過 程 示 意 圖 主 機(PC) USB設 備1.OUT令 牌 封 包2. DATA1數(shù) 據(jù) 封 包3. ACK握 手 封 包圖 16-9控 制 寫 入 的 OUT數(shù) 據(jù) 交 換 的 過 程 示 意 圖 bmRequestType bRequest wValue wIndex wLength Data00000000B(0端 點 )00000001B(1端 點 )00000010B(2端 點 ) CLEAR_FEATUR( 01H)
9、 特 性 選 擇 0接 口 端 點 0 無該 請 求 中 的 wValue表 示 特 性 選 擇 器 , 它 對 應 的 值 為 : 0 端 點 , 1 設備 。 當 某 個 特 點 不 允 許 取 消 , 或 該 特 性 根 本 不 存 在 , 或 者 是 指 向 一 個 根本 不 存 在 的 接 口 或 端 點 時 , 該 請 求 將 會 導 致 設 備 請 求 失 敗 。 如 果 端 點 被固 件 設 為 停 止 狀 態(tài) , 主 機 軟 件 (總 線 驅 動 程 序 )也 可 以 發(fā) 送 一 個 值 為 0的CLEAR_FEATURE命 令 清 除 該 端 點 的 停 止 狀 態(tài) , 本
10、 實 例 中 就 是 這 樣 使 用該 請 求 的 。 該 請 求 中 的 wValue的 高 字 節(jié) 表 示 要 取 的 描 述 符 類 型 , 低 字 節(jié) 表 示 描 述 符 的 索 引值 , 描 述 的 類 型 有 : 1表 示 設 備 描 述 符 , 2表 示 配 置 描 述 符 , 3表 示 字 符 串 描 述 符 ,4表 示 接 口 描 述 符 , 5表 示 端 點 描 述 符 。 wIndex的 值 為 0或 語 言 ID; 當 要 取 的 描述 符 是 字 符 串 描 述 符 時 , 該 域 的 值 為 語 言 ID; 當 為 其 他 的 描 述 符 時 , 該 域 為 0。w
11、Length表 示 要 返 回 的 數(shù) 據(jù) 長 度 , 如 果 SETUP階 段 的 地 址 使 用 的 是 預 設 地 址 0( ENDP字 段 為 0) , 這 時 的 wLength值 會 大 于 實 際 的 描 述 的 值 。 這 是 為 什 么 呢 ?原 因 是 用 戶 以 預 設 的 地 址 0來 取 得 設 備 描 述 符 時 , 不 管 設 多 少 字 節(jié) , 用 戶 最 多 只取 其 前 8字 節(jié) , 即 在 控 制 傳 輸 過 程 只 有 一 次 數(shù) 據(jù) 階 段 。 但 是 , 如 果 用 戶 以 新 的 地址 ( ENDP字 段 不 為 0) 來 取 得 設 備 描 述
12、符 時 , 這 時 wLength的 值 就 要 注 意 了 。bmRequestType bRequest wValue wIndex wLength Data10000000B GET_DESCRIPTOR( 06H) 描 述 符 類 型 與 描 述 符 指 針 0或 語 言 ID 描 述 符 的 長度 各 個 描 述符 該 請 求 與 其 他 的 請 求 有 一 個 重 要 的 不 同 點 , 該 請 求 下 , USB設 備 一 直 不 改 變 它的 地 址 , 直 到 該 請 求 的 狀 態(tài) 階 段 被 成 功 地 完 成 , 而 其 他 請 求 的 操 作 都 是 在 狀 態(tài) 階段
13、 之 前 完 成 , 可 以 閱 讀 本 實 例 加 深 對 該 點 的 理 解 。 若 特 定 的 設 備 地 址 大 于 127,或 者 wIndex 或 wLength為 非 0值 , 那 么 該 請 求 不 執(zhí) 行 。bmRequestType bRequest wValue wIndex wLength Data00000000B SET_ADDRESS( 05H) 設 備 地 址 0 0 無 bmRequestType bRequest wValue wIndex wLength Data00000000B(0端 點 )00000001B(1端 點 )00000010B(2端 點
14、) CLEAR_FEATUR( 01H) 特 性 選 擇 0接 口 端 點 0 無該 請 求 中 的 wValue域 的 低 字 節(jié) 表 示 設 置 的 值 , 該 值 必 須 為 0或 者 與 配 置 描 述 符中 的 配 置 值 相 匹 配 。 如 果 設 置 值 等 于 0, 表 示 設 備 在 地 址 狀 態(tài) 。 如 果 wIndex 或 wLength為 非 0值 , 那 么 該 請 求 不 執(zhí) 行 。 JB8具 有 20、 28、 44三種 封 裝 形 式 , 不 同 封 裝只 是 引 腳 數(shù) 量 和 形 式 有所 區(qū) 別 , 其 它 方 面 是 一致 的 , JB8單 片 機 的
15、 封裝 見 圖 16-10所 示 , 其中 a,b,c分 別 給 出 了 28,20, 44三 種 封 裝 形 式 的管 腳 圖 。 $0000$003F$0040$013F$0140$DBFF$DC00$FBFF$FC00$FDFF$FE00$FE0F$FE10 $FEDF$FFE0$FFEF$FFF0$FFFF 64字 節(jié) 的 I/O寄 存 器 區(qū)256字 節(jié) 的 RAM區(qū)56000字 節(jié) 未 定 義 區(qū)8192字 節(jié) Flash存 儲 器 區(qū)512字 節(jié) 監(jiān) 視 ROM區(qū) 1控 制 及 狀 態(tài) 寄 存 器 區(qū)464字 節(jié) 監(jiān) 視 ROM區(qū) 2 16字 節(jié) Flash向 量 區(qū)16字 節(jié)
16、保 留 區(qū)圖 16-11 JB8存 儲 映 像 圖 USB控 制邏 輯 收 發(fā) 器USB寄 存 器 D+D- USB接 口CPU總 線 USB功 能 模 塊 圖 數(shù) 據(jù) 位 D7 D6 D5 D4 D3 D2 D1 D0定 義 USBEN UADD6 UADD5 UADD4 UADD3 UADD2 UADD1 UADD0復 位 0 0 0 0 0 0 0 0 數(shù) 據(jù) 位 D7 D6 D5 D4 D3 D2 D1 D0定 義 EOPIE SUSPND TXD2IE RXD2IE TXD1IE 未 定 義 TXD0IE RXD0IE復 位 0 0 0 0 0 0 0 0 數(shù) 據(jù) 位 D7 D6 D
17、5 D4 D3 D2 D1 D0定 義 EOPF RSTF TXD2F RXD2F TXD1F RESUMF TXD0F RXD0F復 位 0 0 0 0 0 0 0 0 數(shù) 據(jù) 位 D7 D6 D5 D4 D3 D2 D1 D0定 義 EOPFR RSTFR TXD2FR RXD2FR TXD1FR RESUMFR TXD0FR RXD0FR復 位 0 0 0 0 0 0 0 0 數(shù) 據(jù) 位 D7 D6 D5 D4 D3 D2 D1 D0定 義 T0SEQ 未 定 義 TX0E RX0E TP0SIZ3 TP0SIZ2 TP0SIZ1 TP0SIZ0復 位 0 0 0 0 0 0 0 0 數(shù)
18、 據(jù) 位 D7 D6 D5 D4 D3 D2 D1 D0定 義 T1SEQ STALL1 TX1E FRESUM TP1SIZ3 TP1SIZ2 TP1SIZ1 TP1SIZ0復 位 0 0 0 0 0 0 0 0 數(shù) 據(jù) 位 D7 D6 D5 D4 D3 D2 D1 D0定 義 T2SEQ STALL2 TX2E RX2E TP2SIZ3 TP2SIZ2 TP2SIZ1 TP2SIZ0復 位 0 0 0 0 0 0 0 0 數(shù) 據(jù) 位 D7 D6 D5 D4 D3 D2 D1 D0定 義 TX1ST TX1STR OSTALL0 ISTALL0 未 定 義 PULLEN ENABLE2 EN
19、ABLE1復 位 0 0 0 0 0 0 0 0 數(shù) 據(jù) 位 D7 D6 D5 D4 D3 D2 D1 D0定 義 未 定 義 未 定 義 未 定 義 未 定 義 未 定 義 FUSBO FDP FDM復 位 0 0 0 0 0 0 0 0 數(shù) 據(jù) 位 D7 D6 D5 D4 D3 D2 D1 D0定 義 R0SEQ SETUP 未 定 義 未 定 義 RP0SIZ3 RP0SIZ2 RP0SIZ1 RP0SIZ0復 位 0 0 0 0 0 0 0 0 數(shù) 據(jù) 位 D7 D6 D5 D4 D3 D2 D1 D0定 義 R2SEQ TXACK TXANK TXSTL RP2SIZ3 RP2SIZ
20、2 RP2SIZ1 RP2SIZ0復 位 0 0 0 0 0 0 0 0 端 點 0接 收 數(shù)據(jù) 產(chǎn) 生 的 中 斷 USB初 始 化開 始 YSETUP事 務 ?N N 端 點 0接 收 數(shù)據(jù) 產(chǎn) 生 的 中 斷 YN復 位 產(chǎn) 生 的 中 斷 ?調(diào) 用 處 理 端 點 0OUT事 務 處 理 YN 退 出 中 斷 調(diào) 用 處 理 端 點 0IN事 務 處 理調(diào) 用 SETUP事務 處 理 Y Y 查 詢 方 式 接 收 數(shù) 據(jù) UIR1 的 BM_RXD2F位 為 1禁 止 端 點 2輸 入 ( 將 UCR2 的 BM_RX2E位 置 0)清 RXD2F位 ( 將 UIR2 的 BM_RX
21、D2FR位 置 0)從 端 點 2的 接 收 緩 沖 區(qū) 中 讀 取 數(shù) 據(jù)允 許 端 點 2輸 入 ( 將 UCR2 的 BM_RX2E位 置 1)N開 始 查 詢 方 式 發(fā) 送 數(shù) 據(jù)UIR1 的 BM_TXD1F位 為 1禁 止 端 點 1輸 出 ( 將 UCR1 的 BM_TX1E位 置 0)清 TXD1F位 ( 將 UIR2 的 BM_TXD1FR位 置 0) 向 端 點 1的 數(shù) 據(jù) 緩 沖 區(qū) 中 寫 入 數(shù) 據(jù)設 置 發(fā) 送 數(shù) 據(jù) 的 個 數(shù) 和 TES1Q位 ,允 許 端 點 1輸 出( 將 UCR2 的 BM_RX2E位 置 1)開 始 NY 開 始不 是 是捕 捉 到 WM_DEVICECHANGE消 息判 斷 USB設 備 類 型USB存 儲 設 備 其 他 類 型 USB設 備JB8 USB設 備取 得 描 述 符根 據(jù) 描 述 符 判 斷 是 否 為 SU-USB-TEST設 備發(fā) 送 握 手 信 號 $FE和 將 要 發(fā) 送 的 字 節(jié) 數(shù) N給 USB設 備發(fā) 送 N個 字 節(jié) 的 數(shù) 據(jù) 給 USB設 備接 收 USB設 備 回 發(fā) 的 N個 字 節(jié) 數(shù) 據(jù) , 并 顯 示USB測 試 程 序 PC機 方 VB程 序 流 程 圖