freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

本科--基于單片機的usb口控制彩燈系統(tǒng)的設計-資料下載頁

2024-12-07 08:50本頁面

【導讀】司于1994年推出的通用串行總線。USB作為一種新型的接口技術,以其簡單易用、速度快、為控制系統(tǒng)重要的發(fā)展方向。本文論述了通過USB接口控制彩燈系統(tǒng)的軟件和硬件設計。首先簡要介紹USB接口的。特點、硬件結構、數(shù)據(jù)流傳送以及外設控制器的實現(xiàn)方式。設計,該設計主要包括輸入模塊、USB口通信模塊、彩燈控制模塊和主機顯示模塊四部分。的通信;利用AT89C52單片機的控制系統(tǒng)完成了彩燈的顯示。

  

【正文】 數(shù)據(jù)包節(jié)省了總線帶寬,提高了傳輸效率。 ( 3) SPLIT 令牌包 當 主機在高速總線上與低 /全速設備通信時,由 集線器負責速度轉換,將來自上游的高速事務轉換為低 /全速。由于高速比全速快 40 倍,比低速快 320 倍,在這種情況下,為了不讓整個總線等待,主機將使用分割事 務。 USB 為分割事務定義了一個特殊令牌包 :SPLIT。它是一個 4 字節(jié)的令牌包。一個分割事務包括兩部分 :開始分割事務(SSPLIT)和完成分割事務 (CSPLIT),對應的令牌分別為 SSPLIT 令牌和 CSPLIT 令牌,這兩個令牌包的 PID 都使用表 21所示的 SPLIT 包標識號,在包中用一位來區(qū)分是 SSPLIT 還是CSPLIT,其它字段兩者是完全一樣的,分別給出了包要到達的集線器地址、集線器端口號,以及該端口連接的是低速還是全速設備。 開始分割事務包括一個 SSPLIT 令牌包和一個低 /全速令牌包,根據(jù)不同的事務類型 和數(shù)據(jù)傳輸方向,令牌包后面是可選的數(shù)據(jù)包和握手包。如圖 18所示。 令牌相 圖 18 開始分割事務 完成分割事務包括一個 CSPLIT 令牌包和一個低 /全速令牌包,根據(jù)不同的事務類型和數(shù)據(jù)傳輸方向,令牌包后面是可選的數(shù)據(jù)包和握手包。如圖 29所示。 令牌相 圖 19 完成分割事務 SSPLIT令牌 低 /全速令牌 數(shù)據(jù)包 握手包 CSPLIT令牌 低 /全速令牌 數(shù)據(jù)包或握手包 19 對于 IN 事務, 主機首先向 集線器發(fā)出一個開始分割命令,其中包含SSPLIT 令牌和 IN 令牌,然后主機去處理其它高速事務,集線器收到開始分割命令后,隨后發(fā)出一個低 /全速的 IN 令牌,設備回傳數(shù)據(jù)包響應 IN 令牌,集線器收到數(shù)據(jù)包后向設備傳送一個握手包,最后,主機在適當?shù)臅r間發(fā)出一個完成分割令牌包,集線器將設備的數(shù)據(jù)包傳送給主機,結束整個事務。見圖 110。 圖 110 輸入事務的高速分割 對于 OUT 事務, 主機首先向 集線器發(fā)出一個開始分割命令,其中包含CSPIT 令牌、 OUT 令牌和數(shù)據(jù)包,集線器收到該命令以后,將 OUT 令牌和收到的數(shù)據(jù)包傳給設備,設備正確收到后,回傳一個 ACK。最后主機發(fā)出一個分割完成命令,集線器以 ACK應答,表示設備成功接收到數(shù)據(jù),從而結束整個事務。見圖 212。 集線器 主機 OUT DATA0 ACK CSPLIT OU主 T ACK 設備 1 開始分割 開始分割 SSPLITOUT DATASSPLIT OUT DATA00 主 2 低 /全速 高速總線 3 完成分割 低 /全速總線 SSPLIT OUT DATA0 集線器 主機 IN令牌 DATA0 ACK SSPLIT IN令牌 CSPLIT IN令牌 DATA0 設備 1 開始分割 2 低 /全速 高速總線 3 完成分割 低 /全速總線 20 圖 111 輸入事務的高速分割 連接方式 USB芯片在外設領域的應用面很廣。 USB 控制器一般有兩種類型:一種是 MCU 集成在芯片里面的,如 CYPRESS 的 EZUSB;另一種就是純粹的 USB 接口芯片,僅處理 USB 通信,如 PHILIPS 的 PDIUSBD12,National Semiconductor 的 USBN9604 等 。 集成 MCU 的 USB 控制芯片 優(yōu)點是 CPU 與控制器在同一片芯片里, CPU 只需要訪問一系列寄存器和存儲器,便可實現(xiàn) USB 口的數(shù)據(jù)傳輸,最大限度的發(fā)揮 USB 高速的特點。而且簡化了程序的設計,極大地降低了 USB 外設的開發(fā)難度。缺點是靈活性不夠高,開發(fā)成本較大。 純粹的 USB 接口芯片 的優(yōu)點是系統(tǒng)組成靈活,可根據(jù)不同的系統(tǒng)需求,搭配不同的MCU,具有較高的性能價格比。但因為 USB 控制器是通過串行口或并行口與 MCU 連接,在傳輸速度方面不如集成了 MCU 的控制芯片。 不同的實現(xiàn)方式在設計開銷、元器件開銷和引腳數(shù)方面 各有優(yōu)劣,選擇不同的方案意味著在以上各項指標中進行取舍。 USB驅動程序 驅動程序模型 在 Windows 系統(tǒng)下,主機與設備之間的 USB 通信必須經(jīng)過設備驅動程序來傳輸。設備驅動程序是位于主機的一個軟件組件,有了設備驅動程序,應用程序在訪問設備的時候,只需要知道外設的名字 (如 HP Laser}et)或功能 (如游戲桿 )即可,而不必知道設備的物理地址、傳輸?shù)男盘柗N類和通信所需要的協(xié)議等,這一切由設備驅動程序來完成。 USB 系統(tǒng)驅動程序的設計是基于 WDM( Windowsdriver model)驅動程序模型的。 WDM模型是微軟公司為當前主流操作系統(tǒng) Win98 和 Win2021 設計的一種驅動程序構架。它和傳統(tǒng)的 Win95使用的 VxD的驅動是完全不同的體系結構。對于最終用戶來說,WDM驅動程序在 Windows98 和 Windows2021 下很相似。圖 21 中給出了 Windows 2021 操作系統(tǒng)結構和 WDM 驅動程序的分層模式,整個系統(tǒng)被分為用戶模式和內核模式。 從圖中可以明顯看出 Il0 操作最后是怎樣作用到硬件上的。用戶模式下的應用程序對Win32 子系統(tǒng)進行 win32API 調用,這個調用由 I/O 系統(tǒng)服務接口作用到 I/O 管理器 (嚴格地說,在 Windows 系統(tǒng)中不存在 I/O 管理器這樣的獨立模塊,這個只是為了方便敘述而將各種核心功能調用的集合稱作 I/O 管理器 ), I/O 管理器進行必要的參數(shù)匹配和操作安全性檢查,把這個請求打包形成 IRP(I/O RequestPackage,I/O 請求包 )結構,并把此 IRP 傳給 21 驅動程序。在 WDM 體系結構中,對 IRP 的處理實行分層處理模式,每層驅動再把 I/O 請求劃分成更簡單的請求,以傳給更下層的驅動執(zhí)行。 從驅動程序的角度看,每個設備都被看 成若千個設備對象 (DO),這些設備對象的來歷各不相同,每個設備對象都有驅動程序與之對應,它們根據(jù)一定的規(guī)則組成設備對象堆棧,也就是對應的驅動程序堆棧。總線驅動程序負責枚舉設備,也就是說,它負責發(fā)現(xiàn)總線上的所有設備并檢測設備何時添加到總線上或從總線上刪除,總線驅動程序每發(fā)現(xiàn)一個設備就為之創(chuàng)建一個對應的物理設備對象( PDO)。功能驅動程序負責完成設備的特定功能,知道如何控制設備工作,它在驅動程序棧中位于總線驅動程序上面,功能驅動程序負責創(chuàng)建一個功能設備對象 (FDO)。一個設備只允許有一個 PDO,卻可以擁有多個 FDO,在驅動程序中直接操作的不是硬件而是相應的 PDO 與 FDO。在功能驅動程序的上方和下方的過濾驅動程序是對功能驅動程序的補充,用來增加功能驅動程序的能力。 WDM 的這種層次結構,可以使得用戶在編寫驅動程序的時候,不用再考慮內存分配 IO端口配置、 DMA 申請等, Windows 將資源申請全部自動化,由總線驅動程序完成,編寫驅動程序時只要考慮控制設備本身即可。 應用程序 I/O 管理器 功能驅動驅動程序 WIN32子系統(tǒng) I/O系統(tǒng)服務 上層過濾驅動程序 底層過濾驅動程序 總線驅動程序 硬件設備 內存管理器 用戶模式 終端用戶 內核模式 特定硬件接口 圖 21 WDM 驅動程序模型型號 驅動程序棧 API調用 IRP 22 USB 驅動程序 USB 驅動程序概述 和其它 WDM 驅動程序一樣, USB 也使用分層驅動模型,每層處理一部分通信任務,其中總線驅動程序由集線器驅動程序、總線類別驅動程序和主控制器驅動程序共同組成。如圖 22所示。 USB 設備的 USB 客戶軟件 (功能驅動程序 )會通過一個 Windows 所定義的一個軟件接口來同集線器驅動程序進行通信,集線器驅動程序用來管理連接端口的初始化,而 USB 集線器驅動程序則要通過 USBDI 通用串行總線驅動程序接口 )來實現(xiàn)同串行總線驅動 (USBD)的通信, USBD 負責管理總線的電源、檢測 USB 設備和管理 USB 事務,然后, USBD 會選擇三種主控制器驅動程序之一來同其下方的主控制器通信,最終,由主控制器直接實現(xiàn)對 USB 物理總線的訪問。 當應用程序和 USB 設備通信的時候,不需要知道 USB 協(xié)議的細節(jié),甚至不需要知道該設備是否是一個 USB 設備,這一切都由設備驅動程序來完成,它只需要調用一個 API 函數(shù)來讀或寫設備, Windows 會將此調用傳遞給適當?shù)墓δ茯寗映绦?,功能驅動程序將此要求轉換成 USB 總線類別可以理解的格式。象其它 WDM 驅動程序一樣, USB 驅動程序軟件堆棧內的層間通信也使用 IRP 的結構來互相通信,對于 USB 通信, IRP 使 用 USB 請求塊 ((URB)的結構。在 DDK 中有 URB 結構的定義。 23 圖 22驅動程序構成 開發(fā) USB 驅動程序 在 USB 的驅動程序中,所有的總線驅動程序都不需要用戶編寫, Window 都自帶這些驅動程序。功能驅動程序可以通過兩種方式來定義,一種方式是使用類別驅動程序,比如人機接口類別 (HID)、大容量存儲器類別等,當一個設備不屬于系統(tǒng)支持的任何類別時,就需要編寫特定設備的功能驅動程序。對于使用類別驅動程序的設備,如果其要求超過類 別驅動程序的能力時,需要輔助的過濾驅動程序,比如 HID 包括的范圍非常廣,有些設備并不是標準 HID 設備,用戶可以通過編寫過濾驅動程序,來完成這些設備對 HID 類別的支持。 要編寫一個設備驅動程序,必須有 Microsoft 的 VisualC++編譯器,編譯器中包含完整的 WDM 開發(fā)環(huán)境與調試的功能,除此以外,其它工具對編寫 WDM 驅動程序也有不同程度的幫助,它們包括 Windows DDK。 MSDN、驅動程序工具軟件等。 Windows DDK 中包含有關于USB 驅動程序的范例代碼和文件說明,以及 usbview 工具軟件等,可 以在 Microsoft 的網(wǎng)站上下載 Windows DDK o MSDN 是微軟所有產(chǎn)品的總集,包括了大量的文件、范例代碼以及開發(fā)工具。 使用驅動程序工具軟件可以幫助我們快速地開發(fā)驅動程序,這些工具有 BSQUARE 的WinRT for USB(在 )和 Jungo的 WinDriver USB(在 網(wǎng)站下載 ),這兩個工具軟件都可以自動生成源代碼,使用起來簡單、方便,但它們不適合所有的設備,因為它們無法建立過濾驅動程序,達不到最佳化。此外,還有 3 個工具軟件 :BSQLlARE 的 WinDK ,CompuWare NuMega 的 DriverWorks 和 Jungo 的 KernelDriver,這3個工具軟件都提供 Wizard與程序代碼函數(shù)庫,來幫助建立驅動程序,需要用戶填入 Wizard所提供的骨架碼 (Skeleton code,然后編譯驅動程序。在實際應用中,根據(jù)項目的具體情況,需要選擇一種合適的驅動程序工具。 應用程序HC 功能驅動程序(客戶軟件) 主 控 制 器 驅 動 程 序( UHCI,OpenHCI,EHCI) 主控制器( HC) USB總線類驅動程序( USBD) 集線器驅動程序 總線驅動程序 USB總線 24 如何選擇驅動程序 當一個新的 USB 設備插入后,如果此設備從未被 Windows 檢測過, Windows 使用 .inf文件來尋找設備的驅動程 序。 .inf 是一個文本文件,此文件用來告訴 Windows 使用哪一個驅動程序,以及存儲在注冊表內的設備信 J息、。設備管理器將從枚舉過程中得到的設備信息,與保存在系統(tǒng)注冊表中的 .inf 文件相比較,然后選擇合適的驅動程序,如果在系統(tǒng)注冊表中找不到符合的 .inf 文件,它會顯示一個 [添加新硬件向導 ]對話框,添加新硬件向導在指定的位置找到該設備的 .inf 文件,并復制到系統(tǒng)注冊表的 INF 文件夾中,然后加載 .inf文件指定的驅動程序。為了防止每次檢測到新設備時都要讀 .inf 文件本身, Windows 維護著一個驅動信息庫,在驅 動信息庫中保存著從這個 .inf 文件調用的信息,信息庫文件為 和 ,保存在 windowslinf 文件夾里。 如果一個設備屬于 Windows 支持的標準設備類別,則不需要自己的 .inf 文件來確認該設備。設備管理器在設備第一次連接時,通過枚舉過程中得到的設備描述符來
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1