一、USB通信協(xié)議 是什么?
USB是一種支持在USB主機和USB設(shè)備之間進行串行數(shù)據(jù)傳輸?shù)耐ㄐ艆f(xié)議,。主機作為總線的主叫方,,采用兩種信令模式:全速模式12Mb/s和低速模式1.5Mb/s。USB使用四種數(shù)據(jù)傳輸方式:控制傳輸(control),、中斷傳輸(interrupt),、批量傳輸(bulk)及等時傳輸(isochronous)。其中控制模式主要用于控制指令傳輸及USB規(guī)范的實現(xiàn),,等時傳輸主要用于音頻及視頻傳輸,。USB通過兩次總線列舉(Enumeration and Renumertion)來實現(xiàn)設(shè)備識別以及驅(qū)動程序析加載。其具體過程為:USB設(shè)備連到主機后,,主機依據(jù)USB規(guī)范在特定地址通過端口0(endpoint0)與外設(shè)通信,,并將外設(shè)視為默認(rèn)設(shè)備。外設(shè)與主機通信將其6設(shè)備標(biāo)識(DID,、PID,、VID)發(fā)給主機進行第二次總線列舉。主機根據(jù)設(shè)備標(biāo)識,,加載相應(yīng)設(shè)備驅(qū)動程序,,重新分配地址,并將控制權(quán)轉(zhuǎn)交給外設(shè)固件(firmware),,通過固件與設(shè)備驅(qū)動程序及主機應(yīng)用程序的交互通信,,來實現(xiàn)外設(shè)的功能。
二,、USB通信協(xié)議——數(shù)據(jù)交易
表列出了組成4種傳輸類型的元素,。在這里,讀者就需要注意一些通信協(xié)議的結(jié)構(gòu),。例如,,傳輸與數(shù)據(jù)交易、數(shù)據(jù)交易與封包,、封包與字段之間的關(guān)系,。當(dāng)然,,這是相當(dāng)復(fù)雜且容易弄混淆的地方。其中,,傳輸包含1個或是更多的數(shù)據(jù)交易,,每一個數(shù)據(jù)交易又包含1個、2個或是3個封包,。而封包中,,又包含封包標(biāo)識符(PID)字段、檢查字段(CRC)以及額外的信息字段,。
表 傳輸類型,、數(shù)據(jù)交易與封包的關(guān)系表
*每一個封包是往下端接口傳遞出去的,若是低速,,前面還會再放置PRE封包,。
因此,若要了解完整的USB通信協(xié)議就必須從數(shù)據(jù)域談起,。通過由下而上,,從簡易至復(fù)雜的通信協(xié)議單位來組合出各種復(fù)雜的通信協(xié)議,進而構(gòu)建出完整的通信協(xié)議,。
從表的第2欄中,,可以知道其中包含了3種數(shù)據(jù)交易類型。這3種數(shù)據(jù)交易是根據(jù)其目的與數(shù)據(jù)流方向來決定的,。其中,,SETUP數(shù)據(jù)交易用來送出控制傳輸要求給設(shè)備;IN數(shù)據(jù)交易是數(shù)據(jù)從設(shè)各傳回主機,;OUT數(shù)據(jù)交易是將數(shù)據(jù)傳送出去給設(shè)各,。每一個數(shù)據(jù)交易中,包含了辨識,、錯誤檢核,、狀態(tài)以及控制信息,同樣也包含了要交換的數(shù)據(jù)等,。此外,,一個完整的數(shù)據(jù)交易可能占用多個幀。但是數(shù)據(jù)交易卻是一個實現(xiàn)USB通信協(xié)議的最基本的結(jié)構(gòu)組成,。也即是,,在總線上沒有任何通信能夠去切斷該數(shù)據(jù)交易的溝通過程。當(dāng)然,,除非是錯誤的USB通信過程,。
此外,一個小量數(shù)據(jù)的傳輸也許僅需一個數(shù)據(jù)交易,。如果是大量的數(shù)據(jù),,傳輸可能就需使用多個數(shù)據(jù)交易,,每一次傳輸一部分?jǐn)?shù)據(jù)。讀者或許會認(rèn)為表的通信協(xié)議的結(jié)構(gòu)非常復(fù)雜,。其中,,尤其是第1欄所列的控制傳輸是較為嚴(yán)謹(jǐn)與必須去實現(xiàn)的。
根據(jù)上述不同封包的組合與搭配就可以執(zhí)行各種數(shù)據(jù)交易,。但最重要的是,,數(shù)據(jù)交易的格式必須與前面所提及的4種傳輸類型互相配合。這是因為不同的傳輸類型就會執(zhí)行不同的數(shù)據(jù)交易,。其中,,除了等時傳輸外,控制傳輸,、中斷傳輸與批量傳輸都以下列的3個階段來組成一個數(shù)據(jù)交易的動作。
等時傳輸卻只有包含如下所列的2個階段而已,。若等時傳輸在傳輸?shù)倪^程中發(fā)生錯誤,,不會重送一次,所以也就不具有握手階段,。
因此,,為了方便讀者的記憶與了解整個USB的通信協(xié)議,在此以一個較簡易的方式來向讀者介紹,。即是通過一個小口訣來介紹USB通信概念,。這個口訣即是:5 4 2 3 3,如圖所示,。
這個口訣相當(dāng)簡單,,有點像是通關(guān)秘訣,而整個數(shù)字的順序即可串聯(lián)出USB的通信協(xié)議,。5,,4,2即分別為每個封包(令牌,、數(shù)據(jù)與握手)的字段數(shù)目,,其后的3則為實現(xiàn)一個數(shù)據(jù)交易所需的3個封包階段(令牌、數(shù)據(jù)與握手),,而最后的3則為實現(xiàn)一個控制傳輸所需的3個數(shù)據(jù)交易層,。讀者可以對照表,且只須以這個簡易的數(shù)字順序,,從下層到上層,,即可構(gòu)建出一個完整的控制傳輸。而以下,,先從USB封包類型與其所包含的字段來談起,。
北京迪陽公司推出市場上最暢銷的USB協(xié)議分析儀. 價格:5500元起
USB協(xié)議分析儀是USB產(chǎn)品的開發(fā)和測試工具,,它記錄在USB總線上發(fā)送和接收的數(shù)據(jù),通過上位機軟件提供的強大的分析和篩選功能,,迅速定位數(shù)據(jù)中存在的錯誤和問題,,從而改善USB產(chǎn)品的開發(fā)質(zhì)量,縮短開發(fā)周期,。是USB產(chǎn)品開發(fā)人員和USB設(shè)備制造工廠理想的測試設(shè)備,。
HD-USB12 USB協(xié)議分析儀支持USB1.1低速及USB2.0全速設(shè)備。
通過連接一臺全速USB集線器(Full-Speed USB Hub),,HD-USB12 USB協(xié)議分析儀也可以支持USB2.0高速設(shè)備,。
功能特點
1、 非侵入式全速/低速USB數(shù)據(jù)總線傳輸監(jiān)測,;
2,、 自動識別全速/低速USB設(shè)備;
3,、 支持21ns分辨率數(shù)據(jù)時序顯示,;
4、 支持實時數(shù)據(jù)過濾,,方便迅速定位數(shù)據(jù),;
5、 支持重復(fù)數(shù)據(jù)包壓縮,。
6,、支持OTG (On-The-Go)——記錄及分析HNP 及 SRP協(xié)議, 包括捕獲VBus及D+/D-脈
7、支持USB1.1 及 USB 2.0 低速,、全速及高速數(shù)據(jù)通訊的采集
8,、支持 VBus電壓電流監(jiān)控;
9,、記錄容量不受限制——可以長時間大容量數(shù)據(jù)通訊捕獲及記錄,,數(shù)據(jù)存儲于系統(tǒng)硬盤;
10,、無干擾高阻抗端口——確保對USB端口通訊無干擾,;
11、支持任意設(shè)備類——不但支持目前已有的設(shè)備類還支持未知的設(shè)備類協(xié)議分析,;
12,、任意可編程觸發(fā)——用戶可以隨意設(shè)置多個觸發(fā)條件;
硬件連接
上圖顯示了兩種不同類型的硬件連接方式,。
方式一:
監(jiān)控計算機與USB主機使用同一臺PC機,;
在這種連接方式下,如果監(jiān)控計算機上安裝有其它全速或低速USB設(shè)備,,監(jiān)控計算機向這些設(shè)備廣播的數(shù)據(jù)包將會被“HD-USB12協(xié)議分析儀”捕捉并顯示,,這些不需要的數(shù)據(jù)可以使用過濾“IN(Orphaned)”數(shù)據(jù)包的方式濾除(詳見《操作手冊》4.2.4之第6小點),。
方式二:
監(jiān)控計算機使用獨立的PC機,USB主機使用另外一臺PC機或其它形式的USB HOST,。
硬件連接注意事項:
1,、監(jiān)控計算機端口必須使用USB2.0高速端口,并直接連接至電腦主板,。其長度不應(yīng)超過2米,;
2、從USB設(shè)備到USB主機的電纜長度之和不應(yīng)超過5米,;
3,、USB主機電纜最好直接連接至主機主板,以減少數(shù)據(jù)采集時的傳輸錯誤,。
使用方法
要使用“HD-USB12協(xié)議分析儀”對某個USB設(shè)備進行數(shù)據(jù)分析,,可按照以下步驟操作:
1、將分析儀監(jiān)控端(MONITOR)用USB電纜連接至監(jiān)控計算機(監(jiān)控計算機的USB端口必須為2.0高速端口),;
2,、將分析儀捕獲端端口USB I或端口USB II用USB電纜連接至USB主機,注意:此時暫不連接USB設(shè)備,;
3,、在監(jiān)控計算機上運行“HD-USB12”軟件,,在軟件的狀態(tài)欄上可以看到分析儀與監(jiān)控計算機的連接狀態(tài),。確保分析儀與監(jiān)控計算機已連接;
4,、單擊工具條上的“設(shè)置”按鈕,,設(shè)置合適的數(shù)據(jù)緩沖區(qū)限制及數(shù)據(jù)緩沖區(qū)增量,緩沖區(qū)大小不應(yīng)超過系統(tǒng)可用內(nèi)存的50%,。默認(rèn)的數(shù)據(jù)緩沖區(qū)為128M,;默認(rèn)的數(shù)據(jù)緩沖區(qū)增量為2M;
5,、在“數(shù)據(jù)過濾區(qū)域”中設(shè)置過濾條件,,以濾除不需要的數(shù)據(jù)包。過濾條件設(shè)置完成后用鼠標(biāo)單擊工具欄的“過濾”按鈕啟動過濾,;
6,、在軟件工具條上用鼠標(biāo)單擊“ 開始”按鈕啟動數(shù)據(jù)采集;
7,、將分析儀另一個捕獲端端口用USB電纜連接至需要分析的USB設(shè)備,,此時捕獲的USB設(shè)備總線數(shù)據(jù)將實時顯示在監(jiān)控計算機的軟件中。
單擊軟件工具條上“停止”按鈕可停止數(shù)據(jù)采集,。
可以在數(shù)據(jù)捕獲之前,,數(shù)據(jù)捕獲當(dāng)中或數(shù)據(jù)捕獲之后在“數(shù)據(jù)過濾區(qū)域”中設(shè)置不同的過濾條件,,以快速獲得需要的數(shù)據(jù)包。
選擇“文件”菜單的“保存”命令,,可將捕獲的數(shù)據(jù)保存為擴展名是.USB的二進制文件,;
選擇“文件”菜單的“導(dǎo)出”命令,可將過濾后的數(shù)據(jù)保存為擴展名是.USB的二進制文件,。
性能指標(biāo)
1,、 監(jiān)控USB端口:;USB2.0 High Speed
2,、 采集USB端口支持:USB2.0 Full Speed&USB1.1 Low Speed
3,、 采集端消耗電流:<8mA
4、兼容于所有USB2.0 的三種速度,;
5,、于測試速度下自動發(fā)現(xiàn)鏈接;
6,、USBbus 狀態(tài)與低階protocols 的量測,;
7、支持每個研發(fā)人員均可擁有一部的可負(fù)擔(dān)價格,;
8,、非侵入式分析;
9,、小型但強健的封裝,,電源由USB 供給;
10,、絕佳的Off-Site 介入,;
11、以高速USB2.0 連接實時地下載分析的數(shù)據(jù),;
12,、可加附式(Scalable) 設(shè)計的硬件;
13,、可顯示Transactions 與傳輸?shù)膶蛹?Transfers Layers),;
14、需求及描述元(Descriptor) 之高階解碼,;
15,、功能強大的顯示過濾器;
16,、可以多種形式(XML ,、text 、raw 等等)輸出分析過的數(shù)據(jù);
17,、有條理的明細(xì)表顯示,;
18、有軟件開發(fā)套件可利用,;
19,、免費的Viewer 軟件。
USB協(xié)議分析儀在實際USB連通中的作用
在現(xiàn)代電子設(shè)備中,,越來越多的使用USB接口,,不僅因為其使用方便,即插即拔,,更因為其價格低廉,,協(xié)議開放,而廣泛使用在各種電子設(shè)備上,,并且已經(jīng)發(fā)展為不可缺少的一種接口形式,。但USB接口的開發(fā)過程中,對于工程師來說還是會遇到這樣或那樣的問題,,如何提高調(diào)試效率,,縮短研發(fā)周期,就需要一種調(diào)試測試工具——USB協(xié)議分析儀,。
USB協(xié)議分析儀
USB協(xié)議分析儀是協(xié)議層的分析工具,,是測試設(shè)備的一種。對于USB這種高速串行總線來說,,僅僅進行物理層測試是遠(yuǎn)遠(yuǎn)不夠的,,由于在高低電平中寓含著豐富的指令,傳遞著大量信息,。所以對于USB傳輸協(xié)議就需要專用的USB協(xié)議分析儀來分析測試,,USB協(xié)議分析儀是按照標(biāo)準(zhǔn)的USB協(xié)議來分解數(shù)據(jù),,將包含有用信息的數(shù)據(jù)提取出來,,并解釋這些數(shù)據(jù)的含義。隨著設(shè)備之間傳遞數(shù)據(jù)速度的不斷提高,,越來越多的高速串行總線被使用,,如SATA、SAS,、Ethernet,、FC等等,這些高速串行總線也同樣有其協(xié)議分析工具,。
為了讓讀者更好的了解USB協(xié)議分析儀的功能與用途,,本文列舉一個調(diào)試USB通信的小例子。
實驗環(huán)境
如圖所示,,左側(cè)計算機安裝USB協(xié)議分析儀軟件,,加上USB協(xié)議分析儀主機構(gòu)成USB協(xié)議分析系統(tǒng),。DE2實驗板作為USB設(shè)備,右側(cè)計算機安裝應(yīng)用程序?qū)E2進行操作,。我們主要關(guān)心安裝有應(yīng)用程序的計算機與DE2實驗板之間的USB通信是否正常,,并且希望了解這個通信過程是怎樣完成的。
DE2實驗板是教學(xué)過程中使用的開發(fā)板,,針對USB通信接口部分有一片接口控制芯片,,可通過加載固件程序控制USB數(shù)據(jù)傳輸,對于USB開發(fā)工程師來說,,編寫固件程序是實現(xiàn)USB通信的重要部分,,但很難驗證固件程序是否正確,是否按照工程師的意愿執(zhí)行,。在PC端安裝有應(yīng)用程序控制實現(xiàn)哪些功能,,是在設(shè)備底層還需要編寫驅(qū)動程序,確??蓪崿F(xiàn)USB通信,,在生產(chǎn)研發(fā)中,驅(qū)動程序部分和應(yīng)用程序部分大多由軟件工程師完成,,所以USB協(xié)議分析儀是硬件工程師和軟件工程師都需要的測試設(shè)備,。
USB協(xié)議分析儀是按照USB協(xié)議,將總線上的信號翻譯成數(shù)據(jù),,再將數(shù)據(jù)逐層解析,,分析其傳輸數(shù)據(jù)的含義。在這個過程中,,可將USB傳輸過程中的錯誤明確的指示出來,,用戶可根據(jù)上下文關(guān)系找到問題所在。
分析過程
在本實驗中,,如圖所示,,PC端應(yīng)用程序的主要功能是:按下ADD鍵,給DE2發(fā)送加1的指令,,顯示在DE2實驗板的液晶顯示屏上,;按下CLEAR鍵,給設(shè)備發(fā)送清零的指令,,DE2實驗板的液晶顯示屏上的顯示為00,;通過這個簡單的應(yīng)用程序,我們可以了解實驗板上USB固件程序,,計算機上USB驅(qū)動程序是否可以正確工作,。
如圖所示,在應(yīng)用程序的源程序中,點擊ADD,,發(fā)送的數(shù)據(jù)為“AA AB AC AD AE AF A0 A1”,,這個就是我們要在USB通信過程中需要傳輸?shù)臄?shù)據(jù)。傳輸了這一組數(shù)據(jù)也就表示傳輸了ADD指令,。
點擊ADD鍵發(fā)送的指令數(shù)據(jù):
AA AB AC AD AE AF A0 A1
下面,,我們用Ex200來捕獲發(fā)送的ADD指令數(shù)據(jù)以及其前后過程。分析捕捉到的數(shù)據(jù)搜索到DATA0,,DATA1數(shù)據(jù)包內(nèi)容皆為“AA AB AC AD AE AF A0 A1”,,與源代碼一致。如圖所示,,為DATA0數(shù)據(jù)包的內(nèi)容,。我們每次按下ADD控件,就可以捕獲到這一組數(shù)據(jù),,這說明USB通信沒有問題,,可以進行下一步的大數(shù)據(jù)量傳輸與通信。
又如圖所示,,在應(yīng)用程序的源程序中,,點擊CLEAR,發(fā)送的數(shù)據(jù)為“55 55 5C 5D 5E 5F 50 51”,,這個就是我們要在USB通信過程中需要傳輸?shù)臄?shù)據(jù),。傳輸了這一組數(shù)據(jù)也就表示傳輸了CLEAR指令。:
點擊CLEAR鍵發(fā)送的指令數(shù)據(jù):
55 55 5C 5D 5E 5F 50 51
我們用Ex200來捕獲發(fā)送的CLEAR指令數(shù)據(jù)以及其前后過程,。分析捕捉到的數(shù)據(jù)搜索到DATA0,,DATA1數(shù)據(jù)包內(nèi)容皆為“55 55 5C 5D 5E 5F 50 51”,與源代碼一致,。如圖所示,,為DATA0數(shù)據(jù)包的內(nèi)容。我們每次按下CLEAR控件,,就可以捕獲到這一組數(shù)據(jù),。
另外,USB協(xié)議分析儀是一種很好的學(xué)習(xí)USB協(xié)議的工具,,如圖所示,,通過USB協(xié)議分析儀可分析并了解USB設(shè)備枚舉過程,,在教學(xué)中可以生動地說明USB通信傳輸過程,,在實際研發(fā)中,也可提高效率,,縮短開發(fā)周期,。
小結(jié)
USB協(xié)議分析儀是在USB開發(fā)過程中必不可少的工具,在研發(fā)過程中起到事半功倍的效果,隨著USB通信接口的廣泛使用,,USB協(xié)議分析儀也會成為更普及的測試儀器,。經(jīng)過一段時間的發(fā)展,USB協(xié)議分析儀也趨于成熟,,主機體積更加小巧,,不需要外加電源即可工作,軟件界面更加人性化,,讓人一目了然,。USB協(xié)議從1.0到2.0,再到最新的USB3.0,,協(xié)議分析儀也會追隨USB協(xié)議發(fā)展的腳步,,支持所有版本的測試。