USB2.0信號測試分析應用方案
- 公司名稱 上海堅融實業(yè)有限公司
- 品牌 其他品牌
- 型號
- 產地
- 廠商性質 生產廠家
- 更新時間 2025/3/10 19:42:02
- 訪問次數 3925
聯(lián)系方式:凌工15000330092 查看聯(lián)系方式
聯(lián)系我們時請說明是化工儀器網上看到的信息,謝謝!
產地類別 | 國產 |
---|
專業(yè)儀器設備和測試方案供應商——上海堅融實業(yè)有限公司JETYOO INDUSTRIAL & 堅友(上海)測量儀器有限公司JETYOO INSTRUMENTS,由前安捷倫Agilent【現 是德KEYSIGHT】產品——堅 JET 和 吉時利KEITHLEY【現 泰克Tektronix】產品忠實用戶使用工程師——融 YOO于2011年共同創(chuàng)立,,志在*電子測量行業(yè)代理經銷商只專業(yè)做商務銷售,,不專業(yè)做售前測試方案,不專業(yè)做售后使用培訓的空白,。
USB2.0信號測試分析應用方案前言
USB 是很常見的串行協(xié)議,。USB 有熱插拔的特性,當 USB 裝置插入主機時,,主機會偵測到,,并且軟件會對其作規(guī)劃,即插即用,。USB 的連接線供應裝置電源,,可提供 DC +5V 的電壓,電流供應約 100mA~500mA,。
USB 的連接線共有四條,,其中兩條是電源與地線,另兩條是訊號線,,分別是 D+與 D-,。一般情況兩條線的訊號是相反的,若其中一條的訊號為 High,,則另一條的訊號就為 Low,。如此的差動訊號能提升訊號抗噪聲抗干擾的能力,USB 就是利用 D+ D-兩條訊號線的差動訊號,,來達成高速傳輸的目的,。
USB 主機端在沒有裝置連接時,D+ D-上會有一個 1.5K 奧姆的電阻接地,,確保這兩條線是在接地狀態(tài),。可支持至127 個地址,,也就是說,,一個 USB 系統(tǒng)支持 127 個裝置,主機會周期性的探詢每個集線器以便得知裝置的連接狀態(tài)。以 USB2.0 而言,,分為低速,、全速及高速三個模式。低速傳輸率為 1.5M/s ,,全速為 12M/s,,高速為 480M/s。高速模式時,,1 秒 / 480M ,,每個 bit 的寬度約 2.08ns。
USB 封包簡介
封包是組成 USB 傳輸的單位,。 一個 Transaction 通常由三個封包組成,,但依傳輸型態(tài)而定,一個 Transaction 可能包含一個,、兩個、三個封包:
圖一 USB 封包架構概述
Token 封包:
每個 Transaction 以 Token 封包做起始,。Token 封包定義裝置,、Endpoint 數量,傳輸的方向,。其中 SOF (Start Of Frame) Token包含目前的 frame 數,,而且會廣播 (broadcast) 給所有的 full-speed 裝置知道。SOF 也是一個不目標的 Token,。TokenPacket 長度固定為 4 個 Byte,。
Data 封包:
Data 封包包含處理此動作的數據。 一個 Transaction 中,, Data 封包的資料量為 1023 個 Bytes,, 高速模式時可達 1024 個 Bytes以上,其中 Data0 及 Data1 是兩個基本的數據封包,,這些數據封包都是接續(xù)在 Address 之后,,且 Data0 及 Data1 采取交互出現方式以達到同步與除錯的效果。 另外在 USB2.0 當中更增加了 Data2 及 MData 數據封包,, 用于執(zhí)行高速的實時傳輸(IsochronousTransfers),。
e Handshake 封包:
除了實時型傳輸(Isochronous)之外,所有的傳輸都保證數據的傳遞正確,。Handshake 封包響應資料是否正確的被收到,。若執(zhí)行處理動作中發(fā)生錯誤,此處理動作將重新執(zhí)行,。
封包格式:
封包是執(zhí)行所有處理動作的機制,。圖八是 USB 封包的基本格式。封包緊跟在 Synchronization sequence (SYNC,同步列) 之后,,Synchronization sequence 使 USB 裝置能跟封包中的位速率同步,。封包的 Type 由一個 Packet ID 來定義。Packet ID 之后是隨著封包 Type 而定義的信息,,如 Address 或 Data,。后,每個封包以一個 CRC (Cyclic Redundancy Check)做結尾,。CRC 是用來確認數據是否正確的傳輸,。每個封包始使用 EOP (End Of Paekct) 狀態(tài)來做辨識。
圖二 USB 封包的基本格式
Synchronization sequence( 同步序列) ) :
圖九是 Synchronization sequence 的波形,。Synchronization sequence 由八個 bit 組成,,數值是二進制的 00000001,依照 NRZI 編碼原理,,數據 0 代表訊號要轉換,,所以前七個 0 之中的每個 Bit 都會在相對應的 Bit 時間中轉換,作用就好像提供了一組可用來同步的 Clock,。
圖三 Synchronization sequence
Packet ID :
Packet ID定義封包的目的與內容,。封包主要有四種型態(tài):標志(Token)、數據(Data),、交握(Handshake)及特殊,。其中Token封包定義傳輸的型態(tài);Data封包接在Token之后,,將傳輸的數據輸出或輸入USB裝置中,,Handshake則是提供傳輸成功或失敗的訊息,特殊PID是針對USB2.0*的PID,,包含了PING(檢查端點裝置是否能接受數據),、SPLIT(高頻寬的USB分割傳輸)、PRE(低頻寬的USB前導封包),、ERR(分割傳輸任務錯誤),。
Packet ID 的訊號格式如圖四。 Packet ID 總共有 8 個 Bit,, 前四個 Bit 代表 ID(Type Field),, 后 4 個 Bit 是檢查字段 (Check Field),其值固定是 ID 的反向,。如 ID 為二進制的 1001,,則檢查字段就是 0110,合起來就是 10010110,。
圖四 Packet ID 訊號格式
封包種類:
所有處理動作都是由一個 Token 封包開始,。USB 定義四種 Token 封包:SOF,,IN, OUT,,SETUP,。圖十一是四個封包的 PID與功能描述。
圖五 四種 Token 封包狀態(tài)
SOF 封包:
USB 裝置用 SOF 封包來判斷訊框的起點,。當每個 frame 開始的時候,,SOF 封包被送至每個全速的裝置。實時型傳輸裝置可經由 SOF 封包來達到同步傳輸的作用,。低速裝置不支持實時型傳輸,,所以 SOF 封包不會送至低速裝置。
如圖六所示,,SOF 封包包含一個長度為 11 bit 的 frame number(訊框號碼),,接收器使用 5 bit 的 CRC 位來確認 frame number。
SOF 封包不含任何數據,,其傳輸也不保證一定成功,。當 USB 裝置對此 SOF 封包 PID 檢查碼錯誤時,裝置忽略此封包,;當CRC 檢查錯誤時,,忽略此 frame number。注意 PID 與 Frame Number 都是 LSB 在前面 MSB 在后面,。
圖六 Start of Frame (SOF)
圖七是一個 SOF 封包的實際波形。PID 前四個 bit “0101" 就是 SOF 封包,。PID 之后的是 11 bit 的 Frame Number,,這個例子的 Frame Number 是 10101100010,換算為十進制就是 1378,,也就是第 1378 個 Frame,。
圖七 SOF 封包實際波形
IN 封包:
Token 還有兩種封包,IN 封包與 OUT 封包,。所謂 IN 與 OUT 是指對于 PC 而言,。IN 封包是 PC 需要由裝置讀進來數據時使用的;OUT 則是 PC 需要送出數據給裝置時使用的,。IN 封包可以使用在中斷型傳輸,、巨量型傳輸、控制型傳輸的數據時期,、實時型傳輸等傳輸,。
圖八是 IN 封包格式示意圖與實際量測圖。如圖所示,,除了基本的 Type 字段與 Check 字段之外,,IN 封包包含 7 bit 的 DeviceAddress 與 4 bit 的 End Point Number,。執(zhí)行 IN 封包動作時,首先 PC 送出一個 IN 封包,,接著裝置回傳一個數據封包,, 后 PC 送出一個交握封包給 Device,表示已收到資料,。但在實時型傳輸中,,IN 處理動作不使用交握封包。IN 傳輸所能傳輸的數據量取決于傳輸型態(tài),。
圖八 IN 封包格式示意圖與實際量測圖
圖九是一個實際的 IN 封包,。PID 的前 4 bit 為 “1001" 就是 IN 封包的 ID。再來是 7 bit 的 Address,,這個例子的 Address
是 “1",。再來是 4 bit 的 Endpoint,這個例子的 Endpoint 是 "0",。后是 5 bit 的 CRC,。
圖九 IN 封包實際波形
OUT 封包:
當數據將被送出給某個 Device 時,系統(tǒng)會進行一個 OUT 傳輸,。有三種傳輸型態(tài)用到 OUT 傳輸:巨量型傳輸,、控制型傳輸的數據時期、 實時型傳輸,。 OUT 封包除了 PID 之外,, 其余數據格式都與 IN 封包相同, 一樣有 7 bit 的 Address,, 4 bit 的 Endpoint(如圖十所示),。
圖十 OUT 封包格式示意圖與實際量測圖
圖十一是一個實際的 OUT 封包。PID 為“0001"就是 OUT 封包,。這個例子的 Address 是“1",。再來是 4 bit 的 Endpoint,這個例子的 Endpoint 是 "0",。后是 5 bit 的 CRC,。
圖十一 OUT 封包實際波形
SETUP 封包:
SETUP 封包只有在控制型傳輸的設定階段使用。SETUP 處理動作啟動一個控制型傳輸,,并且定義為設定階段,。SETUP 處理動作在形式上類似一個 OUT 動作: SETUP 封包后跟著一個 Data0 封包與一個回復封包。SETUP 封包的目的是傳送一個要求給 Device 執(zhí)行,。下圖是 SETUP 封包的格式,。SETUP 封包除了 PID 之外,其余數據格式都與 IN/OUT 封包相同,,一樣有 7bit 的 Address,,4 bit 的 Endpoint(如圖十二所示),。
圖十二 SETUP 封包格式示意圖與實際量測圖
圖十三是一個實際的SETUP封包。 PID為 “1101" 就是SETUP封包,。 這個例子的 Address是“1",。 再來是4 bit 的Endpoint,這個例子的 Endpoint 是 "0",。后是 5 bit 的 CRC,。
圖十三 SETUP 封包實際波形
Data0 與 1 Data1 封包:
Data封包跟在IN、OUT,、SETUP三種封包之后,。IN封包之后的Data封包是將數據傳入PC;OUT與SETUP之后的封包是將數據傳出給Device,。傳輸數據時,,Data0封包與Data1 封包是交互的使用,如果此次傳輸數據是用Data0封包,,則下次傳輸數據就是使用Data1封包,,反之亦然。這是為了用來當作一個同步機制使用,。一個很大量的數據,,會被切成多個小封包來傳輸,此時 Data0 與Data1封包交互的使用就可以當作一個同步的機制,。在高速模式底下還有Data2及MData兩種實時傳輸數據封包,。
圖十四是 Data0 與 Data1 的封包格式。PID 為“1100"就是 Data0 封包,,PID 為 “1011"就是 Data1 封包,。
圖十四 Data0 與 Data1 的封包格式
Data2 及 MData 兩種實時傳輸數據封包的 PID 分別為 0111 及 1111。
交握封包 (Handshake Packets) :
交握封包用來回報處理動作的完成狀況,。交握封包有三種。
ACK封包:確認數據正確無誤的被接收,。
NAK封包:告知主機現在目標裝置暫時無法接收或傳回數據,。
STALL封包:無法完成傳輸,且需要軟件介入以便使得裝置能從STALL狀態(tài)復原,。
在USB2.0中還有一種NYET封包,,表示數據尚未備妥無法傳輸。NYET的PID為0110,。
圖十五是三種交握封包的格式圖,。交握封包沒有資料,也沒有 CRC,,只有 SYNC 與 PID,。ACK 的 PID 是 0010,,NAK 的 PID是 1010,STALL 的 PID 是 1110,。
圖十五 三種交握封包格式圖
前導封包 (Preamble Packet) :
前導封包用在低速傳輸時,。 在傳送一個低速封包前, 一個前導封包必須被送出,, 主機保證前導封包之后的封包是低速傳送,。
圖十六是前導封包示意圖。 前導封包由一個 SYNC 與一個 PID 組成,, PID 是 1100,。 有一點必須注意的是, 前導封包不以 EOP結尾,。
圖十六 前導封包示意圖
USB2.0 總線協(xié)議模塊設定
圖十七 孕龍科技 USB2.0 分析模塊
總線協(xié)議模塊設定方便又快速,, 如圖十八所示使用者只需要依照連接說明將USB2.0硬件模塊連接至邏輯分析儀,在 USB2.0 總線協(xié)議模塊中設定高速模式,,點下 OK 后就可以將 USB2.0 訊號譯碼,。
圖十八 USB2.0 總線協(xié)議模塊
串行協(xié)定封包列表
為更加方便分析以及提高效率,孕龍邏輯分析儀更加在新版軟件中加入串行協(xié)議封包列表功能,,能夠將串行訊號采取封包段落顯示以直列方式把數據內容顯示出來,,讓使用者清楚了解各封包先后出現的時序關系。圖十九為USB2.0 訊號使用串行協(xié)議封包列表顯示的結果
圖十九 USB2.0 訊號使用串行協(xié)議封包列表顯示的結果
在圖十九中的封包列表,,除了將各種 USB2.0 封包使用直列方式顯示外,,在封包列表窗口上方更設置了過濾條件,依照 USB PID 規(guī)范可對已擷取封包進行篩選,,更可在龐大的數據封包中快速進行分析,。
USB2.0信號測試分析應用方案總結
總線協(xié)議常常被應用在嵌入式系統(tǒng)的設計中,但是若僅使用示波器分析這些訊號是非?;ㄙM時間的,,孕龍的PC-BASE 邏輯分析儀可以提供工程師們更強大的觸發(fā)功能、近百種的總線協(xié)議譯碼模塊及便利的數據搜尋,,讓工程師在開發(fā)產品時更能夠得心應手,,近期更推出了可與各大廠牌示波器進行堆棧,藉以同時測量數字及模擬信號,,快速解決電路開發(fā)中各種難題,。
關于孕龍
「孕龍科技股份有限公司」Zeroplus Technology Co., Ltd.,于 1997 年創(chuàng)立,。在 2004 年擴展事業(yè)版圖于電子量測儀器市場,,研發(fā)團隊擁有新進微處理控制技術,開發(fā)出新技術之量測儀器-「PC-Based 邏輯分析儀」 ,;du家創(chuàng)新技術獲得多項技術,,申請國家遍及各地,,目前仍持續(xù)增加數量與國家。2005 年甫上市即獲得產業(yè)界 IC 上市公司等數百家科技大廠,,及各大高等教育學府采用,,締造優(yōu)異銷售成績,成為中國臺灣*zui高的邏輯分析儀,。