USB2.0 信號分析技巧
USB有熱插拔的特性,當USB裝置插入主機時,主機會偵測到,并且軟件會對其作規劃,即插即用。USB的連接線供應裝置電源,可提供DC +5V的電壓,電流供應約100mA~500mA。USB的連接線共有四條,其中兩條是電源與地線,另兩條是訊號線,分別是D+與D-。一般情況兩條線的訊號是相反的,若其中一條的訊號為High,則另一條的訊號就為Low。如此的差動訊號能提升訊號抗噪聲抗干擾的能力,USB就是利用D+ D-兩條訊號線的差動訊號,來達成高速傳輸的目的。
本文引用地址:http://www.ex-cimer.com/article/127891.htmUSB主機端在沒有裝置連接時,D+ D-上會有一個1.5K奧姆的電阻接地,確保這兩條線是在接地狀態??芍С种?27個地址,也就是說,一個USB系統最多支持127個裝置,主機會周期性的探詢每個集線器以便得知裝置的連接狀態。以USB2.0而言,分為低速、全速及高速三個模式。低速傳輸率為 1.5Mb/s ,全速為 12Mb/s,高速為480Mb/s。高速模式時,每個bit的寬度約2.08ns。
USB包簡介
包是組成USB傳輸的最小單位。一個Transaction通常由三個包組成,但依傳輸型態而定,一個Transaction可能包含一個、兩個、三個包。
Token 包 :每個Transaction以Token 包做起始,Token 包定義裝置、Endpoint數量,傳輸的方向。其中SOF (Start Of Frame) Token包含目前的frame數,而且會廣播 (broadcast) 給所有的full-speed裝置知道。SOF也是唯一一個不指定目標的Token。Token Packet 長度固定為4個Byte。
Data 包 :Data包包含處理此動作的數據,一個Transaction中,Data包最大的資料量為1023個Bytes,高速模式時可達1024個Bytes以上,其中Data0及Data1是兩個基本的數據包,這些數據包都是接續在Address之后,且Data0及Data1采取交互出現方式以達到同步與除錯的效果;另外在USB2.0當中更增加了Data2及MData數據包,用于執行高速的實時傳輸(Isochronous Transfers)。
Handshake包:除了實時型傳輸(Isochronous)之外,所有的傳輸都保證數據的傳遞正確。Handshake包響應資料是否正確的被收到。若執行處理動作中發生錯誤,此處理動作將重新執行。
包格式
包是執行所有處理動作的機制。圖2是USB包的基本格式。包緊跟在同步序列(Synchronization sequence,SYNC) 之后,使USB裝置能跟包中的位速率同步。包的類型由一個包 ID來定義。包ID之后是隨著包Type而定義的信息,如Address或Data。最后,每個包以一個CRC (Cyclic Redundancy Check)做結尾。CRC是用來確認數據是否正確的傳輸。每個包始使用EOP (End Of Paekct) 狀態來做辨識。
同步序列
圖3是同步序列的波形。同步序列由八個bit組成,數值是二進制的00000001,依照NRZI編碼原理,數據0代表訊號要轉換,所以前七個0之中的每個Bit都會在相對應的Bit時間中轉換,作用就好像提供了一組可用來同步的Clock。
模擬信號相關文章:什么是模擬信號
評論