USB的通訊協(xié)議(通俗易懂)_第1頁
USB的通訊協(xié)議(通俗易懂)_第2頁
USB的通訊協(xié)議(通俗易懂)_第3頁
USB的通訊協(xié)議(通俗易懂)_第4頁
USB的通訊協(xié)議(通俗易懂)_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、集線器集線器(復(fù)合設(shè)備)(復(fù)合設(shè)備)游戲桿游戲桿USB設(shè)備設(shè)備(根階梯根階梯)階梯階梯0掃描儀掃描儀鼠標(biāo)鼠標(biāo)集線器集線器USB設(shè)備設(shè)備階梯階梯1階梯階梯2PC主機主機(根集線器)(根集線器)圖圖16-1 USB主機和主機和USB設(shè)備的連接設(shè)備的連接 表表16-1 USB纜線的信號與顏色纜線的信號與顏色 12341243A型連接頭型連接頭B型連接頭型連接頭圖圖16-2 USB連接頭連接頭圖16-3 在USB電纜上使用雙向不歸零編碼和差動信號的傳輸 NRZI編碼器電纜段差分驅(qū)動器NRZI解碼器差分驅(qū)動器D+ D-USB的數(shù)據(jù)包使用反向不歸零編碼(的數(shù)據(jù)包使用反向不歸零編碼(NRZI)。圖)。圖16

2、-3描述了在描述了在USB電纜段上傳輸信息的步驟。反向不歸零編碼由傳送信息的電纜段上傳輸信息的步驟。反向不歸零編碼由傳送信息的USB代理程序完成;然后,被編碼的數(shù)據(jù)通過差分驅(qū)動器送到代理程序完成;然后,被編碼的數(shù)據(jù)通過差分驅(qū)動器送到USB電纜上;接著,接收器將輸入的差分信號進行放大,將其送電纜上;接著,接收器將輸入的差分信號進行放大,將其送給解碼器。使用該編碼和差動信號傳輸方式可以更好地保證數(shù)據(jù)給解碼器。使用該編碼和差動信號傳輸方式可以更好地保證數(shù)據(jù)的完整性并減少噪聲干擾。的完整性并減少噪聲干擾。 圖16-4 反向不歸零編碼 空閑數(shù)據(jù)反 向 不歸零碼01101000111010使用反向不歸零編

3、碼方式可以保證數(shù)據(jù)傳輸?shù)耐暾?,而且不使用反向不歸零編碼方式可以保證數(shù)據(jù)傳輸?shù)耐暾?,而且不要求傳輸過程中有獨立的時鐘信號。反向不歸零編碼不是一個要求傳輸過程中有獨立的時鐘信號。反向不歸零編碼不是一個新的編碼方式。它在許多方面都有應(yīng)用。圖新的編碼方式。它在許多方面都有應(yīng)用。圖16-4給出了一個數(shù)給出了一個數(shù)據(jù)流和編碼之后的結(jié)果。在反向不歸零編碼時,遇到據(jù)流和編碼之后的結(jié)果。在反向不歸零編碼時,遇到“0”轉(zhuǎn)換,轉(zhuǎn)換,遇到遇到“1”保持。反向不歸零碼必須保持與輸入數(shù)據(jù)的同步性,保持。反向不歸零碼必須保持與輸入數(shù)據(jù)的同步性,以確保數(shù)據(jù)采樣正確。反向不歸零碼數(shù)據(jù)流必須在一個數(shù)據(jù)窗以確保數(shù)據(jù)采樣正確。反

4、向不歸零碼數(shù)據(jù)流必須在一個數(shù)據(jù)窗口被采樣,無論前一個位時間是否發(fā)生過轉(zhuǎn)換。解碼器在每個口被采樣,無論前一個位時間是否發(fā)生過轉(zhuǎn)換。解碼器在每個位時間采樣數(shù)據(jù)以檢查是否有轉(zhuǎn)換。位時間采樣數(shù)據(jù)以檢查是否有轉(zhuǎn)換。 圖圖16-5在在USB電纜上使用雙向不歸零編碼和差動信號的傳輸電纜上使用雙向不歸零編碼和差動信號的傳輸00011111111011數(shù)據(jù)數(shù)據(jù)空閑空閑雙向不歸零碼雙向不歸零碼填充后數(shù)填充后數(shù)據(jù)據(jù)填充位填充位 若重復(fù)相同的若重復(fù)相同的“1”信號一直進入時,就會造成數(shù)據(jù)長時間無法轉(zhuǎn)換,逐漸的積累,信號一直進入時,就會造成數(shù)據(jù)長時間無法轉(zhuǎn)換,逐漸的積累,而導(dǎo)致接收器最終丟失同步信號的狀況,使得讀取的時

5、序會發(fā)生嚴重的錯誤。因此,在而導(dǎo)致接收器最終丟失同步信號的狀況,使得讀取的時序會發(fā)生嚴重的錯誤。因此,在NRZI編碼之間,還需執(zhí)行所謂的位填充的工作。位填充要求數(shù)據(jù)流中如果有連續(xù)的六個編碼之間,還需執(zhí)行所謂的位填充的工作。位填充要求數(shù)據(jù)流中如果有連續(xù)的六個“1”就要強行轉(zhuǎn)換。這樣接收器在反向不歸零碼數(shù)據(jù)流中最多每七個位就檢測到一次跳就要強行轉(zhuǎn)換。這樣接收器在反向不歸零碼數(shù)據(jù)流中最多每七個位就檢測到一次跳轉(zhuǎn)。這樣就保證了接收器與輸入數(shù)據(jù)流保持同步。反向不歸零碼的發(fā)送器要把轉(zhuǎn)。這樣就保證了接收器與輸入數(shù)據(jù)流保持同步。反向不歸零碼的發(fā)送器要把“0”(填(填充位)插到數(shù)據(jù)流中。接收器必須被設(shè)計成能夠在

6、連續(xù)的六個充位)插到數(shù)據(jù)流中。接收器必須被設(shè)計成能夠在連續(xù)的六個“1”之后識別一個自動跳之后識別一個自動跳轉(zhuǎn),并且立即扔掉這六個轉(zhuǎn),并且立即扔掉這六個“1”之后的之后的“0”位。位。 圖圖16-5的第一行是送到接收器的原始數(shù)據(jù)。注意數(shù)據(jù)流包括連續(xù)的八個的第一行是送到接收器的原始數(shù)據(jù)。注意數(shù)據(jù)流包括連續(xù)的八個“1”。第二。第二行表示對原始數(shù)據(jù)進行了位填充,在原始的第六個和第七個行表示對原始數(shù)據(jù)進行了位填充,在原始的第六個和第七個“1”之間填入了一個之間填入了一個“0”。第七個第七個“1”延時一個位時間讓填充位插入。接收器知道連續(xù)六個延時一個位時間讓填充位插入。接收器知道連續(xù)六個“1”之后將是一個

7、填充之后將是一個填充位,所以該位就要被忽略。注意,如果原始數(shù)據(jù)的第七個位是位,所以該位就要被忽略。注意,如果原始數(shù)據(jù)的第七個位是“0”,填充位也同樣插入,填充位也同樣插入,在填充過的數(shù)據(jù)流中就會有兩個連續(xù)的在填充過的數(shù)據(jù)流中就會有兩個連續(xù)的“0”。 USB主機主機USB低速低速設(shè)備設(shè)備USB數(shù)據(jù)線數(shù)據(jù)線+5VD+D-15千歐千歐1.5千歐千歐VccD+D-地地15千歐千歐USB主機主機USB全速全速設(shè)備設(shè)備USB數(shù)據(jù)線數(shù)據(jù)線+5VD+D-15千歐千歐1.5千歐千歐VccD+D-地地15千歐千歐 主機主機(PC)(PC)USBUSB設(shè)備設(shè)備1. IN1. IN令牌封包令牌封包2. DATA12.

8、 DATA1數(shù)據(jù)封包數(shù)據(jù)封包3. ACK3. ACK握手封包握手封包圖圖16-816-8控制讀取的控制讀取的ININ數(shù)據(jù)交換的過程示意圖數(shù)據(jù)交換的過程示意圖主機主機(PC)(PC)USBUSB設(shè)備設(shè)備1.OUT1.OUT令牌封包令牌封包2. DATA12. DATA1數(shù)據(jù)封包數(shù)據(jù)封包3. ACK3. ACK握手封包握手封包圖圖16-916-9控制寫入的控制寫入的OUTOUT數(shù)據(jù)交換的過程示意圖數(shù)據(jù)交換的過程示意圖該請求中的該請求中的wValue表示特性選擇器,它對應(yīng)的值為:表示特性選擇器,它對應(yīng)的值為:0端點,端點,1設(shè)設(shè)備。當(dāng)某個特點不允許取消,或該特性根本不存在,或者是指向一個根備。當(dāng)某個

9、特點不允許取消,或該特性根本不存在,或者是指向一個根本不存在的接口或端點時,該請求將會導(dǎo)致設(shè)備請求失敗。如果端點被本不存在的接口或端點時,該請求將會導(dǎo)致設(shè)備請求失敗。如果端點被固件設(shè)為停止?fàn)顟B(tài),主機軟件固件設(shè)為停止?fàn)顟B(tài),主機軟件(總線驅(qū)動程序總線驅(qū)動程序)也可以發(fā)送一個值為也可以發(fā)送一個值為0的的CLEAR_FEATURE命令清除該端點的停止?fàn)顟B(tài),本實例中就是這樣使用命令清除該端點的停止?fàn)顟B(tài),本實例中就是這樣使用該請求的。該請求的。該請求中的該請求中的wValue的高字節(jié)表示要取的描述符類型,低字節(jié)表示描述符的索引的高字節(jié)表示要取的描述符類型,低字節(jié)表示描述符的索引值,描述的類型有:值,描述的

10、類型有:1表示設(shè)備描述符,表示設(shè)備描述符,2表示配置描述符,表示配置描述符,3表示字符串描述符,表示字符串描述符,4表示接口描述符,表示接口描述符,5表示端點描述符。表示端點描述符。wIndex的值為的值為0或語言或語言ID;當(dāng)要取的描;當(dāng)要取的描述符是字符串描述符時,該域的值為語言述符是字符串描述符時,該域的值為語言ID;當(dāng)為其他的描述符時,該域為;當(dāng)為其他的描述符時,該域為0。wLength表示要返回的數(shù)據(jù)長度,如果表示要返回的數(shù)據(jù)長度,如果SETUP階段的地址使用的是預(yù)設(shè)地址階段的地址使用的是預(yù)設(shè)地址0(ENDP字段為字段為0),這時的),這時的wLength值會大于實際的描述的值。這是

11、為什么呢?值會大于實際的描述的值。這是為什么呢?原因是用戶以預(yù)設(shè)的地址原因是用戶以預(yù)設(shè)的地址0來取得設(shè)備描述符時,不管設(shè)多少字節(jié),用戶最多只來取得設(shè)備描述符時,不管設(shè)多少字節(jié),用戶最多只取其前取其前8字節(jié),即在控制傳輸過程只有一次數(shù)據(jù)階段。但是,如果用戶以新的地字節(jié),即在控制傳輸過程只有一次數(shù)據(jù)階段。但是,如果用戶以新的地址(址(ENDP字段不為字段不為0)來取得設(shè)備描述符時,這時)來取得設(shè)備描述符時,這時wLength的值就要注意了。的值就要注意了。該請求與其他的請求有一個重要的不同點,該請求下,該請求與其他的請求有一個重要的不同點,該請求下,USB設(shè)備一直不改變它設(shè)備一直不改變它的地址,直

12、到該請求的狀態(tài)階段被成功地完成,而其他請求的操作都是在狀態(tài)階的地址,直到該請求的狀態(tài)階段被成功地完成,而其他請求的操作都是在狀態(tài)階段之前完成,可以閱讀本實例加深對該點的理解。若特定的設(shè)備地址大于段之前完成,可以閱讀本實例加深對該點的理解。若特定的設(shè)備地址大于127,或者或者wIndex 或或wLength為非為非0值,那么該請求不執(zhí)行。值,那么該請求不執(zhí)行。該請求中的該請求中的wValue域的低字節(jié)表示設(shè)置的值,該值必須為域的低字節(jié)表示設(shè)置的值,該值必須為0或者與配置描述符或者與配置描述符中的配置值相匹配。如果設(shè)置值等于中的配置值相匹配。如果設(shè)置值等于0,表示設(shè)備在地址狀態(tài)。如果,表示設(shè)備在地

13、址狀態(tài)。如果wIndex 或或 wLength為非為非0值,那么該請求不執(zhí)行。值,那么該請求不執(zhí)行。 JB8具有具有20、28、44三三種封裝形式,不同封裝種封裝形式,不同封裝只是引腳數(shù)量和形式有只是引腳數(shù)量和形式有所區(qū)別,其它方面是一所區(qū)別,其它方面是一致的,致的,JB8單片機的封單片機的封裝見圖裝見圖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$F

14、FFF64字節(jié)的字節(jié)的I/O寄存器區(qū)寄存器區(qū)256字節(jié)的字節(jié)的RAM區(qū)區(qū)56000字節(jié)未定義區(qū)字節(jié)未定義區(qū)8192字節(jié)字節(jié)Flash存儲器區(qū)存儲器區(qū)512字節(jié)監(jiān)視字節(jié)監(jiān)視ROM區(qū)區(qū)1控制及狀態(tài)寄存器區(qū)控制及狀態(tài)寄存器區(qū)464字節(jié)監(jiān)視字節(jié)監(jiān)視ROM區(qū)區(qū)216字節(jié)字節(jié)Flash向量區(qū)向量區(qū)16字節(jié)保留區(qū)字節(jié)保留區(qū)圖16-11 JB8存儲映像圖 USB控制控制邏輯邏輯收收 發(fā)發(fā) 器器USB寄存器寄存器D+D-USB接口接口CPU總線總線USB功能模塊圖功能模塊圖數(shù)據(jù)位數(shù)據(jù)位D7D6D5D4D3D2D1D0定義定義R2SEQTXACKTXANKTXSTLRP2SIZ3RP2SIZ2RP2SIZ1RP2

15、SIZ0復(fù)位復(fù)位00000000端點端點0接收數(shù)接收數(shù)據(jù)產(chǎn)生的中斷據(jù)產(chǎn)生的中斷USB初始化初始化開始開始YSETUP事務(wù)事務(wù)?NN端點端點0接收數(shù)接收數(shù)據(jù)產(chǎn)生的中斷據(jù)產(chǎn)生的中斷YN復(fù)位產(chǎn)生的中斷?復(fù)位產(chǎn)生的中斷?調(diào)用處理端點調(diào)用處理端點0OUT事務(wù)處理事務(wù)處理YN退出中斷退出中斷調(diào)用處理端點調(diào)用處理端點0IN事務(wù)處理事務(wù)處理調(diào)用調(diào)用SETUP事事務(wù)處理務(wù)處理YY查詢方式接收數(shù)據(jù)查詢方式接收數(shù)據(jù)UIR1 的的BM_RXD2F位為位為1禁止端點禁止端點2輸入(將輸入(將UCR2 的的BM_RX2E位置位置0)清清RXD2F位(將位(將UIR2 的的 BM_RXD2FR位置位置0)從端點從端點2的接收緩沖區(qū)中讀取數(shù)據(jù)的接收緩沖區(qū)中讀取數(shù)據(jù)允許端點允許端點2輸入(將輸入(將UCR2 的的BM_RX2E位置位置1)N開始開始查詢方式發(fā)送數(shù)據(jù)查詢方式發(fā)送數(shù)據(jù)UIR1 的的BM_TXD1F位為位為1禁止端點禁止端點1輸出(將輸出(將UCR1 的的BM_TX1E位置位置0)清清TXD1F位(將位(將UIR2 的的 BM_TXD1FR位置位置0)向端點向端點1的數(shù)據(jù)緩沖區(qū)中寫入數(shù)據(jù)的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論