第 7 章-第 6 講 USB 操作_第1頁
第 7 章-第 6 講 USB 操作_第2頁
第 7 章-第 6 講 USB 操作_第3頁
第 7 章-第 6 講 USB 操作_第4頁
第 7 章-第 6 講 USB 操作_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第五次課在現(xiàn)代微型計算機中,采用兩片類8237模塊級連來組成DMA控制邏輯,除一個通道用于級連外,具有7個獨立的可編程通道。第一個DMA控制器提供通道0~通道3,第二個DMA控制器提供通道5~通道7,DMA的通道4用于兩個DMA控制器的級連。每個DMA控制器中各通道的優(yōu)先級可采用固定模式或旋轉(zhuǎn)模式

。高級DMA操作過程-8237級連應(yīng)用

DMA控制器級連結(jié)構(gòu)圖

通道0通道1通道2通道3DMA控制器1HRQ(到CPU)DMA控制器2通道4通道5通道6通道7第一個DMA控制器在應(yīng)用上與IBMPC/XT機中8237保持兼容,所提供的通道0~通道3按字節(jié)傳輸進行計數(shù);而通道5~通道7為16位傳輸,按字傳輸進行計數(shù)。這種級連的DMA控制器組遵從ISA兼容規(guī)范的24位尋址,每個通道包括一個16位ISA兼容的當(dāng)前寄存器,用于存放24位地址中的低16位,與ISA兼容的頁面寄存器保存24位地址中的高8位。通道0~通道3占用的I/O端口地址為00h~0Fh,頁面寄存器分別為87h、83h、81h、82h。通道4~通道7占用的I/O端口地址為C0h~DFh中的偶數(shù)地址,通道5~通道7頁面寄存器地址分別為8Bh、89h、8Ah。8237級連應(yīng)用

有兩種協(xié)議支持PCI設(shè)備與存儲器之間的DMA傳輸:PC/PCI協(xié)議和分布式DMA協(xié)議。

PC/PCI方式的DMA通過專門的REQUEST和GRANT信號,允許PCI設(shè)備請求DMA控制器中指定的DMA通道進行DMA傳輸,在DMA控制器接收到一個請求,并獲得對PCI總線的控制權(quán)之后,便執(zhí)行一次兩周期的傳輸。在總線轉(zhuǎn)換橋邏輯功能0配置空間中,有一個16位的配置寄存器(偏移地址通常為90h),它分成7個2位域,這些域用于配置7個DMA通道。PCI總線上的DMA操作

PCIDMA執(zhí)行過程與標準DMA執(zhí)行過程不同,標準DMA執(zhí)行過程中的DMA控制器通過DREQ/DACK信號直接支持各通道的DMA請求與應(yīng)答,對于PCIDMA執(zhí)行過程中的DMA請求與應(yīng)答采用的是一種以信號對REQ#/GNT#為參考的PC/PCI串行協(xié)議,該協(xié)議也稱為擴展通道通過協(xié)議。

PCI請求設(shè)備必須對通道的請求信息進行編碼,為了響應(yīng)DMA通道請求0~7,CH0~CH7必須維持一個時鐘周期的有效高電平。

PCIDMA擴展協(xié)議

PCIDMA擴展協(xié)議

PCICLKREQ#GNT#CH0CH1CH2CH3CH4CH5CH6CH7起始位0位1位2起始

DMA控制器在GNT#上給出許可通道的編碼信息,這些二進制位與圖7-24所顯示的意義相同。例如:編碼值[起始:位0:位1:位2]=0100時,表示DMA控制器許可通道1上的DMA請求;編碼值[起始:位0:位1:位2]=0011時,表示DMA控制器許可通道6上的DMA請求。

由于標準的DMA控制器并不提供對PCIDMA擴展協(xié)議的支持,因此必須在標準DMA控制器的基礎(chǔ)上,提供一個擴展的PCIDMA輔助邏輯來完成這種協(xié)議與標準DMA控制器之間的接口。按PC/PCIDMA串行協(xié)議設(shè)計的這種接口滿足如下3條要求,以支持現(xiàn)代微型計算機對DMA傳輸?shù)撵`活應(yīng)用。

PCIDMA擴展協(xié)議

1.如果PCIDMA輔助邏輯上有多個DMA請求有效,必須在其中之一被允許使用總線并完成其傳輸之后重新發(fā)出DMA請求串行協(xié)議。

2.如果PCIDMA輔助邏輯在DMA控制器驅(qū)動GNT#有效之前已經(jīng)使一個DMA請求變?yōu)闊o效,則它必須根據(jù)新請求向PCIDMA輔助邏輯重新發(fā)出擴展通道通過協(xié)議。

3.如果PCI輔助邏輯已經(jīng)發(fā)送其串行請求信息,并且在接收到GNT#之前又接收到一個新的DMA請求,該輔助邏輯則必須按新的請求信息重新發(fā)送串行請求。PCIDMA擴展協(xié)議與支持ISA中的直接傳輸周期(即相當(dāng)于一次I/O讀/寫周期)不同,DMA控制器采用雙周期傳輸來支持PC/PCIDMA傳輸,該雙周期由先讀取I/O設(shè)備周期后寫入存儲器周期組成,或由先讀取存儲器周期后寫入I/O設(shè)備周期組成。該雙周期中與存儲器相關(guān)的部分產(chǎn)生一個PCI類型的存儲器讀或存儲器寫總線周期,以此來尋址所選擇的存儲器,存儲器單元的地址由DMA控制器的當(dāng)前地址寄存器提供;與I/O相關(guān)的部分產(chǎn)生一個PCI類型的I/O周期,其I/O端口地址根據(jù)PCI周期類型的不同而不同,對于正常的I/O讀/寫周期,傳輸期間為00h,最后一次傳輸為04h;對于校驗方式I/O讀周期,傳輸期間為0C0h,最后一次傳輸為0C4h。PCIDMA擴展周期

智能驅(qū)動電路IDE(IntelligentDriveElectronics)亦稱作ATA(PC/ATAttached-PC/AT附屬)端口,支持微型計算機系統(tǒng)與硬盤等外部存儲器的連接。硬盤驅(qū)動器的接口實際上是ISA總線信號的一個子集,這種接口就稱為IDE接口,IDE接口最大支持528MB的硬盤驅(qū)動器。

智能驅(qū)動電路IDE接口

IDE接口信號定義

引腳編號功能定義引腳編號功能定義引腳編號功能定義引腳編號功能定義1:RESET復(fù)位鍵11:DD3D_321:DMARQDMA請求31:INTRQ中斷請求2:GND地12:DD12D_1222:GND地32:IOCS1616位I/O3:DD7D_713:DD2D_223:DIOWI/O寫33:DA1地址位A14:DD8D_814:DD13D_1324:GND地34:PDIAQ診斷信號5:DD6D_615:DD1D_125:DIORI/O讀35:DA0地址位A06:DD9D_916:DD14D_1426:GND地36:DA2地址位A27:DD5D_517:DD0D_027:IORDYI/O準備好37:CS0片選08:DD10D_1018:DD15D_1528:CSEL電纜選擇38:CS2片選29:DD4D_419:GND地29:DMACKDMA應(yīng)答39:DASP設(shè)備有效10:DD11D_1120:鍵位30:GND地40:GND地通過改進IDE接口性能,使其支持對多個驅(qū)動器接口(一般支持兩個接口:第一個IDE接口和第二個IDE接口),提高數(shù)傳輸率,擴大對單個硬盤驅(qū)動器容量的支持,這種增強型的IDE接口稱為EIDE或ATA-2接口,通過EIDE接口連接的單個硬盤容量最大為8GB。

EIDE規(guī)范中還通過一種稱為ATAPI(ATAttachedPackedInterface-AT附屬包接口)的新標準,使IDE或ATA接口支持CD-ROM驅(qū)動器。

EIDE接口的數(shù)據(jù)傳輸率達到16MB/s

。增強型IDE(EIDE)ATA-2接口

通過對IDE接口信號的重新定義,采用DMA傳輸協(xié)議可使源設(shè)備與目標設(shè)備之間的數(shù)據(jù)傳輸率達到33MB/s或66MB/s,但需要雙方接口的支持。超級DMA/33/66協(xié)議并不要求在IDE連接器的基礎(chǔ)上增加額外的信號引腳,當(dāng)工作在超級DMA/33/66模式時,只是對一些標準的IDE控制信號進行了重新定義。使IDE接口工作在超級DMA/33/66模式時,必須預(yù)先進行初始化編程,這種初始化編程分成兩部分:一個是對IDE接口的使能和配置,一個是對IDE設(shè)備的使能和配置。

超級DMA/33/66接口協(xié)議

超級DMA/33/66接口協(xié)議

DMARQ(驅(qū)動)DMACK#(主)STOP(主)DMARDY#(主)STROBE(驅(qū)動)DD[15:0]DA[2:0],CS[1:0]啟動一次突發(fā)讀突發(fā)操作終止一次DMA突發(fā)CRC在數(shù)據(jù)傳輸相位期間,可連續(xù)執(zhí)行數(shù)據(jù)的突發(fā)傳輸,數(shù)據(jù)在STROBE的上升沿和下降沿被接收者鎖存,數(shù)據(jù)發(fā)送者可以通過STROBE信號的高低電平來暫停數(shù)據(jù)的突發(fā)傳輸,STROBE狀態(tài)翻轉(zhuǎn)時又恢復(fù)數(shù)據(jù)的突發(fā)傳輸,接收者則可以通過驅(qū)動DMARDY#無效來暫停數(shù)據(jù)的突發(fā)傳輸,通過驅(qū)動DMARDY#有效來恢復(fù)數(shù)據(jù)的突發(fā)傳輸。通過IDE接口來暫停突發(fā)傳輸是用于防止內(nèi)部的數(shù)據(jù)緩沖發(fā)生溢出,如果用于數(shù)據(jù)緩沖區(qū)計數(shù)的當(dāng)前PRD字節(jié)計數(shù)器計完,IDE接口也可以暫停傳輸,而在下一次RPD裝載時又可以恢復(fù)。

超級DMA/33/66接口協(xié)議通用串行總線(USB)

為了規(guī)范眾多接插件的不同接入標準,提出并現(xiàn)實了一種稱為通用串行總線USB(UniversalSerialBus)接口標準。USB規(guī)范支持三種數(shù)據(jù)傳輸速率:1.5Mb/s(USB1.1)、12Mb/s(USB1.1)和480Mb/s(USB2.0)。電纜最大連接長度為5米,最多可連接127個設(shè)備(含主機、集線器和各功能節(jié)點),支持各設(shè)備的智能配置。USB規(guī)范要求主控器具有根集線器的功能,為USB設(shè)備與主控器之間提供電氣接口,兩個對外連接端口,連接形式具有星型拓撲結(jié)構(gòu)。進行數(shù)據(jù)的控制傳輸,甚至還可以具有電源管理的能力。通常根集線器被集成在主控器中。USB集線器的拓撲結(jié)構(gòu)

功能功能功能功能功能功能功能功能功能集線器1集線器2集線器3主控器主控器/根集線器端口1端口2通用串行總線組成結(jié)構(gòu)

客戶驅(qū)動軟件通用串行總線驅(qū)動程序(USBD)通用主控器驅(qū)動程序(HCD)(數(shù)據(jù)結(jié)構(gòu)的形成與管理)通用主控器(HC)(傳輸數(shù)據(jù)包的形成與管理)USB設(shè)備系統(tǒng)軟件硬件通用主控器接口(UHCI)范圍客戶驅(qū)動軟件層(ClientDriverSoftware):位于主PC上的該軟件層用于與某一特定的USB設(shè)備進行通信,該客戶軟件通常作為操作系統(tǒng)的一部分或者由USB設(shè)備生產(chǎn)商所提供。USB驅(qū)動程序USBD(USBDriver)層:該層是某一特定操作系統(tǒng)中支持USB操作的USBD系統(tǒng)軟件。主控制器驅(qū)動程序HCD(HostControllerDriver):該驅(qū)動程序為USB主控器硬件與USBD之間的軟件層,用于USB主控硬件為USBD解釋/建立幀列表、傳輸描述子、隊列頭以及數(shù)據(jù)緩沖和數(shù)據(jù)結(jié)構(gòu)。HCD還在系統(tǒng)主存儲器中建立數(shù)據(jù)結(jié)構(gòu),用于主控器中的客戶軟件與USB設(shè)備進行點對點通信。USB主控器HC(HostController):USB主控器由HCD軟件層進行管理,按HCD產(chǎn)生的指令列表進行執(zhí)行:根據(jù)命令產(chǎn)生串行總線令牌和/或數(shù)據(jù)包,啟動USB上的數(shù)據(jù)傳輸,報告USB與HCD信息交換時的狀態(tài)。對于需要從USB上接收數(shù)據(jù)的命令,主控器接收數(shù)據(jù),將它們傳送到命令所指的系統(tǒng)主存儲器中。USB設(shè)備:用戶終端設(shè)備,通過USB的硬件層和軟件層與計算機進行數(shù)據(jù)交換。通用串行總線組成結(jié)構(gòu)等時傳輸:位于USB設(shè)備與主控器之間的數(shù)據(jù)傳輸速率為常數(shù)。其中采用等時傳輸?shù)牡湫蚒SB接口設(shè)備有音頻數(shù)據(jù)流設(shè)備和電話設(shè)備。但這種傳輸并不能絕對保證數(shù)據(jù)傳輸?shù)耐暾?,傳輸失敗后不再重傳。中斷傳輸:用于支持傳輸?shù)據(jù)量少、但具有突發(fā)性的一類設(shè)備,中斷傳輸類型用于支持要求一個可預(yù)測的服務(wù)時間片斷,但不需要產(chǎn)生一個可預(yù)測的數(shù)據(jù)流的一類設(shè)備,因此中斷傳輸只能用于數(shù)據(jù)輸入傳輸,通常用于鍵盤和位置點采集(如鼠標、數(shù)字化儀等)一類設(shè)備??刂苽鬏敚河糜趥鬏斸槍Ω髟O(shè)備控制、狀態(tài)讀取和配置寫入等類型的信息??刂苽鬏斢糜谔峁┮粭l從主控器到USB設(shè)備的控制通道,總是由一個建立相位和緊跟在一個狀態(tài)相位之后的多個數(shù)據(jù)相位(也可以無數(shù)據(jù)相位)所組成,按先進先出FIFO方式進行傳輸。分塊傳輸:為客戶與主控器之間允許較大延遲的大容量數(shù)據(jù)傳輸提供傳輸途徑,適應(yīng)這種傳輸?shù)腢SB設(shè)備(如打印機)必須忍受較大的傳輸延遲。USB數(shù)據(jù)結(jié)構(gòu)與類型

在USB上,傳輸數(shù)據(jù)的幀時長為1毫秒,每一次傳輸幀由一個起始幀(SOF)開始,如果需要傳輸?shù)臄?shù)據(jù)為等時數(shù)據(jù),主控器首先傳輸?shù)葧r數(shù)據(jù)。主控器確保有足夠的時間完成所有待傳的等時數(shù)據(jù),以及隨后的中斷傳輸和分塊傳輸。USB數(shù)據(jù)結(jié)構(gòu)與類型

SOF等時幀中斷幀控制幀分塊幀EOF1毫秒數(shù)據(jù)傳輸幀時間

控制SOF計數(shù)器幀計數(shù)器幀計數(shù)寄存器SOF修正寄存器幀列表基地址寄存器主控器12MHz7位11位20位低10位1毫秒幀列表基地址(A[31:12])10230幀列表索引(A[11:2])(每一幀時間增量1)幀列表系統(tǒng)存儲器指針指針控制指針控制指針控制在UHCI數(shù)據(jù)結(jié)構(gòu)中,包含一個幀列表、等時傳輸描述子、隊列頭、和隊列傳輸描述子。這些信息被HCD軟件調(diào)用,用于構(gòu)造一個位于主存儲器中指令序列表,再供USB主控器執(zhí)行。根據(jù)幀列表中的連接指針、傳輸描述子TDs(TransferDescriptors)、和隊列頭QH(QueueHead),可以執(zhí)行所有相關(guān)指令序列。

通用主控器接口UHCI數(shù)據(jù)結(jié)構(gòu)

通用主控器接口UHCI數(shù)據(jù)結(jié)構(gòu)

幀列表基地址寄存器幀計數(shù)器基地址索引00幀指針QT幀指針QT幀指針QT幀指針QTTDTDTDTDTDTDTDTDTDQHTDTDTD連接指針元素連接指針T=終止Q=傳輸描述子或隊列頭幀列表橫向執(zhí)行等時傳輸描述子橫向執(zhí)行QHTDTDTD連接指針元素連接指針311211210TDQHTDTDTD連接指針元素連接指針QHTDTDTD元素連接指針TDTD縱向執(zhí)行隊列頭控制和塊隊列頭中斷幀列表是一個最多具有1024個入口的存儲陣列,作為幀調(diào)度緩沖區(qū)位于系統(tǒng)存儲器中,每個入口與一個特定的幀(1毫秒)相對應(yīng),為USB主控器處理數(shù)據(jù)交換時提供控制信息。每個入口中包含一個指向其它數(shù)據(jù)結(jié)構(gòu)(如傳輸描述子或隊列頭)和控制位的指針,USB主控器不能修改幀列表中的這些域,幀列表入口中的域由HCD軟件進行管理。幀列表傳輸描述子TD包含一個指向數(shù)據(jù)緩沖區(qū)(32字節(jié),注意:該數(shù)據(jù)緩沖區(qū)并非幀列表區(qū))的指針、用于數(shù)據(jù)交換的控制和狀態(tài)域。如果指針無效,說明該傳輸描述子沒有數(shù)據(jù)緩沖區(qū)(即為空數(shù)據(jù))。傳輸描述子分等時傳輸描述子和隊列傳輸(包括中斷描述子、控制描述子和成堆描述子)描述子,它們的結(jié)構(gòu)相同。

傳輸描述子TDs(TransferDescriptors)傳輸描述子TDs(TransferDescriptors)

(前16字節(jié)定義)包識別PID3130292827262524232120191816151411108743210緩沖區(qū)指針最大許可長度實際傳輸長度設(shè)備地址終節(jié)點狀態(tài)連接指針RSPDC_ERRLSISOIOCRDR0VfQT隊列頭QH用于組織非等時傳輸描述子進入傳輸隊列中,隊列頭及其相關(guān)的傳輸描述子、中斷、控制、數(shù)據(jù)塊、數(shù)據(jù)傳輸類型都能夠被保存在隊列中。隊列頭中包含兩個連接指針:一個縱向指針,選擇被處理隊列內(nèi)容中下一個傳輸描述子;一個橫向指針,連接下一個隊列頭或被處理的傳輸描述子。隊列頭QH由兩個雙字組成,用于控制、分塊、中斷傳輸?shù)奶厥饨Y(jié)構(gòu)信息。第一個雙字為隊列頭連接指針,該指針指向在隊列中任何要求處理的請求完成之后下一個被處理的數(shù)據(jù)對象。第二個雙字為隊列元素連接指針,該指針指向在該隊列中的第一個數(shù)據(jù)對象TD(也可能是QH)。隊列頭QH(QueueHead)

USB主控器模塊包含有兩組軟件可以訪問的寄存器組,即:輸入/輸出寄存器組和可選擇使用的PCI配置寄存器組,只有使用了USB主控器的PCI設(shè)備才需要PCI配置寄存器。其中的USB命令寄存器給出USB主控器執(zhí)行時采用的命令,對該寄存器進行一次寫入操作將引起USB主控器執(zhí)行一次寫入的命令。狀態(tài)寄存器反映USB主控器在被讀取是時未處理的中斷和所處的狀態(tài)。通用串行總線編程寄存器組

USB包傳輸

SOF數(shù)據(jù)包數(shù)據(jù)包結(jié)尾包結(jié)尾包結(jié)尾包空包SOFSOFSOFSOF情況A情況B情況C取取EOF時間EOF時間EOF時間EOF時間空64字節(jié)可用包大小舉例64字節(jié)32字節(jié)超前SOF點幀周期(1毫秒)n毫秒n+1毫秒情況A說明:如果在取下一個命令的傳輸描述子期間,或初始寫數(shù)據(jù)取期間,超前SOF點到達,命令被終止;情況B說明:此時無數(shù)據(jù)寫回到系統(tǒng)存儲器;情況C說明:如果主控器在超前SOF之前,在總線上啟動數(shù)據(jù)交換,命令將執(zhí)行到結(jié)束,只有當(dāng)前幀列表中最后的傳輸描述子才被執(zhí)行。

USB包傳輸USB內(nèi)部數(shù)據(jù)傳輸-傳輸基本描述令牌數(shù)據(jù)包隊列訪問數(shù)據(jù)HSK預(yù)交換存儲器訪問讀數(shù)據(jù)1讀數(shù)據(jù)N讀描述子總線到系統(tǒng)存儲器串行總線第N次交換延后交換存儲器訪問

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論