【正文】
且有硬件數(shù)據(jù)保護機制,防止誤操作引起的數(shù)據(jù)華北科技學院畢業(yè)設計(論文) 第 31 頁 共 57 頁 丟失。 圖 34是 D12器件和它的外圍電路原理圖, D12的 D0~ D7引腳接系統(tǒng)數(shù)據(jù)總線, A0接數(shù)據(jù)線 A0,片選信號接數(shù)據(jù)線 A5,這樣 D12的數(shù)據(jù)口地址就可以定為 10h,而地址口地址定為 11h(由于 A5不參與其它芯片的地址譯碼,所以這樣的地址分配不會引起沖突)。 80C51USB接口的設計 第 30 頁 共 57 頁 的多位地址和數(shù)據(jù)總線可直接與 PDIUSBD12 的數(shù)據(jù)總線相連, 80C51 的頻率輸入可由PDIUSBD12 的 CLKOUT 提供。還支持主端點與本地共享 RAM之間直接讀取的 DMA傳輸。這就允許微控制器以它自己的速率對 USB信息包進行讀寫。該特性為 USB器件,集線器和 USB通信狀態(tài)提供了用戶友好的指示。 g GoodLinkTM GoodLinkTM技術(shù)可提供良好的 USB連接指示。這就允許系統(tǒng)微控制器在決定與 USB建立連接之前完成 初華北科技學院畢業(yè)設計(論文) 第 29 頁 共 57 頁 始化時序。該模塊的功能包括:同步模式的識別,并行 /串行轉(zhuǎn)換,位填充 /解除填充, CRC校驗 /產(chǎn)生,PID校驗 /產(chǎn)生,地址識別和握手評估 /產(chǎn)生。 d 位時鐘恢復 位時鐘恢復電路使用 4X過采樣規(guī)則,從進入的 USB數(shù)據(jù)流中恢復時鐘。該電壓還作為輸出連接到外部 的上拉電阻。該位在多路地址 /數(shù)據(jù)總線配置時可忽略,應將其接高電平。 25 D A USB D數(shù)據(jù)線 26 D+ A USB D+數(shù)據(jù)線 27 P 調(diào)整輸出。將其固定為低電平時,用于單地址 /數(shù)據(jù)總線配置。 PDIUSBD12所具有的低掛起功耗連同 Lazy Clock輸出可以滿足使用 ACPI, On NOW和USB電源管理的要求低的 操作功耗可應用于使用總線供電的外設。它還支持本地的 DMA傳輸。 USB接口的設計 第 24 頁 共 57 頁 12345678161514131211109R P 11 K * 8D1LEDD2LEDD3LEDD5LEDD4LEDD6LEDD7LEDD8LED1243S1S W D I P 2C51 0 μ FR31KR51KR41KD03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U27 4 L S 3 7 3+ 5 VE A / V P31X119X218R E S E T9RD17WR16I N T 012I N T 113T014T115P 1 01P 1 12P 1 23P 1 34P 1 45P 1 56P 1 67P 1 78P 0 039P 0 138P 0 237P 0 336P 0 435P 0 534P 0 633P 0 732P 2 021P 2 122P 2 223P 2 324P 2 425P 2 526P 2 627P 2 728P S E N29A L E / P30T X D11R X D10U1A T 8 9 C 5 1+ 5 V+ 5 V+ 5 VGND12345678161514131211109S2I N P U T+ 3 .3 V1 2 3 4 5 6 7 816 15 14 13 12 11 10 9R P 21 0 K * 8B018B117B216B315B414B513B612B711A02A13A24A35A46A57A68A79D I R1E19GND10Vcc20U57 4 L V 2 4 5+ 3 .3 VGNDU S B I N TM C U C L KAD0AD1AD2AD3AD4AD5AD6AD7AD0AD1AD2AD3AD4AD5AD6AD7.. .A D [7 . . 0 ]A0A1A2A3A4A5A6A7P 2 0P 2 1P 2 2P 2 3P 2 4P 2 5P 2 6P 2 7P 2 [7 . . 0 ]P 2 0P 2 1P 2 2P 2 3P 2 4P 2 5P 2 6P 2 7P S / 2 D A T AP S / 2 C L KC 1 50 .1 μ F 圖 31 AT89C51和外圍器件 在構(gòu)建最小系統(tǒng)的同時,為了方便調(diào)試,還為單片機擴展了 8 位 LED 輸出和 8位撥碼開關(guān)控制的電 平輸入,分別接在 AT89C51 的 P1口和 P2 口上, LED 可備調(diào)試設備固件程序時使用。主機可以控制 Flashrom的讀寫,這一功能的加入是為了方便將來大容量存儲設備的實現(xiàn)。其核心就是單片機控制器,它負責完成設備所有的控制功能; USB 接口芯片和其它輸入輸出模塊作為單片機的外圍部件掛接在系統(tǒng)總線上,所有器件在單片機的控制下協(xié)同工作。 本章小結(jié) 本章詳細闡述了 USB 總線的規(guī)范、結(jié)構(gòu)和數(shù)據(jù)傳輸機制等一系列的根本問題 , 給出了關(guān)于 USB 的一個清晰的概念和輪廓 , 還有它的工作過程,為我們利用 USB 開發(fā)外設打好基礎。當然, USB 的產(chǎn)品大部分還是以鼠標、鍵盤以及搖桿等慢速的人工接口設備為主。每個 Hub 有若干個接頭,整個 USB 網(wǎng)絡中最多可連接 127 個設備。而 12Mbps 的 USB 因傳輸限制,它只能連接低速設備。此外, USB也為從打印機到掃描儀,以及 Ether、 DSL、 ISDN 等高速通信或衛(wèi)星通信的應用提供了新的機會。從此表可以看出,工作在全速模式的 USB總線可以包含中速和低速數(shù)據(jù)通信范圍應用空間。 G PC 工業(yè)構(gòu)成最佳的結(jié)合 : 從其實現(xiàn)和一體化看,本協(xié)議是簡單的;符合 PC的即插即用結(jié)構(gòu)原則;對當前的操作系統(tǒng)接口有巨大的影響。 C 等時帶寬 : 數(shù)據(jù)的帶寬得到保證,等待時間很短,這適合電話和音頻信號的傳送;等時工作負載可在整個的帶寬范圍內(nèi)使用。 C 數(shù)據(jù)傳送過程 對于一個采用同步傳輸?shù)臄?shù)字設備來說,數(shù)據(jù)傳送過程如下: a 應用軟件在內(nèi)存中開辟緩沖區(qū),并通過標準 USB 命令字向外設發(fā)出數(shù)據(jù)請求( IRPs) b 主機 USB 系統(tǒng)軟件通過對該 IRPs 的翻譯形成 Token 數(shù)據(jù)包發(fā)送到外設,這時主機進入等待狀態(tài); c 外設對數(shù)據(jù)包進行 NRZI(不歸零就反向 ) 解碼和 位反填塞( bitunstuffing) 操作及 CRC 校驗 ,確認后接收主機 PID 字段中所包含的命令并開始采集數(shù)據(jù); d 采集到的并行數(shù) 據(jù)首先進入 FIFOs(先進先出的數(shù)據(jù)緩存器 ),并通過并/串轉(zhuǎn)換部件形成串行脈沖; e 根據(jù)器件配置寄存器的要求對數(shù)據(jù)進行符合條件的分割,配置數(shù)據(jù)包的 PID 字段等以形成原始數(shù)據(jù)包; USB接口的設計 第 20 頁 共 57 頁 f 通過 CRC 校驗產(chǎn)生器對每一個數(shù)據(jù)包生成 CRC 校驗字段, SOP& EOP 信號產(chǎn)生器為數(shù)據(jù)包加入同步字段頭和數(shù)據(jù)包結(jié)束符; g 數(shù)據(jù)包的 NRZI(不歸零就反向)編碼 和 位填塞( bitstuffing) 操作; h 使用收發(fā)器將數(shù)據(jù)流驅(qū)動到 USB 電纜上; i 主機控制器將 USB 數(shù)據(jù)轉(zhuǎn)化為普通的數(shù)據(jù)傳送到緩沖區(qū)以進行數(shù)據(jù)的進一步處理。 數(shù)據(jù)字段作為一次 USB 數(shù)據(jù)傳輸?shù)闹行哪康模谝粋€ USB 數(shù)據(jù)包中可以包含 0-1203Byte 的數(shù)據(jù)。信道和外設所定義的數(shù)據(jù)傳輸模式以及外設的功能部件特性有關(guān)(如緩存大小、數(shù)據(jù)傳輸?shù)姆较虻龋C糠N外設都支持控制傳輸類型,這樣主機 PC 與外設之間就可以傳華北科技學院畢業(yè)設計(論文) 第 19 頁 共 57 頁 送配置和命令/狀態(tài)信息。當有可以利用的總線時間出現(xiàn)時,系統(tǒng)可以為一個受到否定應答的處理操作重新發(fā)出令牌分組。當一個 USB 設備上電后,控制管道 0這一消息管道就總是存在。 USB 總線上的這種在主機和設備端點之間的數(shù)據(jù)傳輸模型稱之為“管道” , 共有兩種管道類型:流管道和消息管道。被尋址的 USB 設備通過對恰當?shù)牡刂酚蜻M行解碼就可以知道這是發(fā)給自己的分組。其具體提供的軟件機制有: 命令機制 — 允許客戶設定和控制 USBD 操作,從而設定和控制 USB 設備的運行。 C 客戶軟件 a 操作系統(tǒng)中的客戶軟件 : Windows 操作系統(tǒng)已經(jīng)配置了有關(guān)的軟件(稱之為驅(qū)動軟件)。 功能參數(shù)設置:對于特定的設備驅(qū)動需要完成特定的一些功能。UHCD 負責處理任務在 USB 中廣播的計劃工作。 B USB 系統(tǒng)驅(qū)動軟件 a 操作系統(tǒng)中的驅(qū)動程序內(nèi)容 : USB 設備驅(qū)動(或客戶驅(qū)動)程序向 USBD 發(fā)出輸入輸出請求包( IRP)。通常 USBD 客戶軟件是負責處理特定 USB的設備驅(qū)動器。 b USB 驅(qū)動器( USBD) : USB 系統(tǒng)軟件的第二個主要部分是 USB 驅(qū)動器( USBD),它位于 UHCD 之上。 USB 軟件結(jié)構(gòu) A 軟件模塊結(jié)構(gòu) USB 系統(tǒng)是基于模塊化、面向?qū)ο蠓椒ǖ慕Y(jié)構(gòu)。 由圖 21的階層梯式星形的拓撲結(jié)構(gòu),可以看到主機端與集線器或設備必須依循由上→下或由下→上的連接方向。 ② 集線器 :它 是 USB 結(jié)構(gòu)的特定成分,它提供總線連接接口、設備的連接和懸掛及設備電源等關(guān)鍵特性,還提供總線故障檢測和恢復。 USB 的功能設備作為 USB 功能,它必需保持和 USB協(xié)議的完全兼容,并可以回應標準的 USB操作。每個系統(tǒng)允許僅有一個主機,而為 USB 器件連接主機系統(tǒng)提供主機接口的部件被稱為 USB主機控制器。 華北科技學院畢業(yè)設計(論文) 第 15 頁 共 57 頁 USB 硬件結(jié)構(gòu) 一個 USB系統(tǒng)一般分三個部分: USB 主機、 USB 設備、 USB 集線器。換句話說,任 何在傳輸中電氣方面出現(xiàn)的錯誤都不能用像重試這樣的硬件機制來加以糾正。同步數(shù)據(jù)的典型例子是聲音信號。為了保持定時關(guān)系,同步數(shù)據(jù)必須按照接收的速率進行傳輸。它們由一個或數(shù)個字節(jié)組成,例如來自一個指定設備的同步信號。而且,批量數(shù)據(jù)可以占有總線上所有可用的和其它傳輸類型未用的帶寬。這種數(shù)據(jù)傳輸不會丟失數(shù)據(jù)。 USB 的共享特性被存放在客戶和其設備之間所存在的一個 USB 軟件堆棧內(nèi),也就是說,一個客戶不能直接訪問設備硬件。從互連的角度看,一個類似的 USB 總線接口由主機和設備一起提供。主機上的實際通信用垂直箭頭指出。由于在令牌封包中,包含了 4 個位的端點地址(位于端點數(shù)據(jù)域, ENDP)以及一個位于端點描述符中的輸入 /輸出方向( IN/OUT)位,所以在一個單獨的小虛擬管線內(nèi)最多可再分割成 16 組的微虛擬管線( 端點),也就是可對 16 個輸入 /輸出的端點(共 32 個端點) 尋址,并可將 USB 的令牌封包中定義為 IN(設備至主機)或 OUT(主機至設備)兩類型的令牌封包。但是由于地址 0是預設地址,且用來指定給所有剛連上的設備。而在目前 USB的數(shù)據(jù)傳輸類別有四種類型:控制、中斷( interrupt)、批量( bulk)與等時( isochronous)。每個接口設備都具有“端點”( endpoint)地址,它是由令牌封包內(nèi)的 4位字段(