1 / 51

Chapter 5 驅動程式

Chapter 5 驅動程式. 大綱. 加強的 Windows CE .NET 驅動程式 裝置驅動程式架構 裝置驅動程式 串流介面驅動程式 USB 驅動程式架構 NDIS 驅動程式架構. 驅動程式. 驅動程式是一種軟體 介於應用程式與硬體之間 負責作業系統與硬體間的溝通 不同的驅動程式對應不同的硬體 控制硬體運作. Windows CE .NET 驅動程式特色. 以拖拉方式開發專案 支援更多硬體平台與理器 透過裝置介面將裝置驅動程式分類 支援廣泛的電源管理 有彈性的電源控制 加入 CPS 驅動程式以支援 CPU 原生周邊設備

Download Presentation

Chapter 5 驅動程式

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 5 驅動程式

  2. 大綱 • 加強的Windows CE .NET驅動程式 • 裝置驅動程式架構 • 裝置驅動程式 • 串流介面驅動程式 • USB驅動程式架構 • NDIS驅動程式架構

  3. 驅動程式 • 驅動程式是一種軟體 • 介於應用程式與硬體之間 • 負責作業系統與硬體間的溝通 • 不同的驅動程式對應不同的硬體 • 控制硬體運作

  4. Windows CE .NET驅動程式特色 • 以拖拉方式開發專案 • 支援更多硬體平台與理器 • 透過裝置介面將裝置驅動程式分類 • 支援廣泛的電源管理 • 有彈性的電源控制 • 加入CPS驅動程式以支援CPU原生周邊設備 • 增加支援新類別裝置驅動程式 • 簡單移轉驅動程式至新平台

  5. 大綱 • 加強的Windows CE .NET驅動程式 • 裝置驅動程式架構 • 裝置驅動程式 • 串流介面驅動程式 • USB驅動程式架構 • NDIS驅動程式架構

  6. 裝置驅動程式架構 • 驅動程式啟動方式 • GWES • 裝置管理 • 檔案系統模組 • 裝置驅動程式

  7. 裝置驅動程式架構(cont.) Device Manager File System GWES Device Drivers

  8. GWES • 視窗 • 回送訊息至對應的視窗 • 使用者 • 接收使用者的訊息或事件 • 圖形介面 • 提供文字與圖形表現的模組

  9. Device Manager (cont.) • 在Windows CE中啟動Device.exe • 偵測使用者安裝的周邊設備 • 啟用串流介面驅動程式 • 搜尋合適的裝置驅動程式 • 讀寫註冊鍵值以載入與追踨驅動程式 • 御載長時間不需使用的裝置驅動程式

  10. Device Manager Regenum.dll (for ISA busses) loads Registry enumerator is re-entrant loads Device.exe (I/O Resource Mananger) Regenum.dll loads loads loads Pcibus.dll Kernel

  11. File System (cont.) • 處理物件儲存(Object Store) • 檔案系統 • 註冊表 • Windows CE專有資料庫 • 可自行建立檔案系統 • 可透過Win 32 API存取檔案系統

  12. File System (cont.) • 註冊表 • 應用程式 • 驅動程式 • 使用者設定 • 系統設定 • 其他資料 • 提供儲存設定資料的地方

  13. File System • Windows CE有特有資料庫 • 只有一個資料表 • 非關連資料庫 • 儲存記憶體、唯讀記憶體或可案裝的檔案系統

  14. 大綱 • 加強的Windows CE .NET驅動程式 • 裝置驅動程式架構 • 裝置驅動程式 • 串流介面驅動程式 • USB驅動程式架構 • NDIS驅動程式架構

  15. 裝置驅動程式 • 如同一般作業系統負責管理驅動裝置 • 使用動態鏈結庫(DLL)載入驅動程式 • 以標準Windows CE中Win32 API執行 • 不需透過WDM (Windows Devices Model)處理

  16. 內建驅動程式vs.可安裝驅動程式 • 內建驅動程式 • 電池、LED • 以靜態方式與GWES連結 • 不能以單獨DLL存在系統 • 可安裝驅動程式 • PCMCIA、Serial、Ethernet • 硬體獨立廠商必須撰寫 • 裝置管理員載入才能驅動裝置 • 須手動安裝到系統

  17. 原生裝置驅動程式 • 由GWES管理 • 依平台上的內建裝置而生 • 由OEM內建在Windows CE平台上 • 系統啟動時就將驅動程式載入 • 區分成MDD與PDD • Windows CE提供原生驅動程式範例 • 顯示器 • 電池 • 鍵盤 • 觸控式螢幕 • LED

  18. 階層式vs.單層式 (cont.) GWES DDI function DDI function Layered Device Driver Monolithic Device Driver MDD DDSI function PDD Hardware

  19. 階層式vs.單層式 (cont.) • 階層式裝置驅動程式(Layered Device Driver) • MDD (Model Device Driver) • PDD (Platform Device Driver) • MDD • 針對所有通用驅動程式類型 • 呼叫特定PDD程序 • 改寫不保證問題不會發生(微軟方面提出) • PDD • 自行撰寫驅動特定裝置 • 完全開放自由改寫 • 獨立於MDD

  20. 階層式vs.單層式 • MDD透過與DDI (Device Driver Interface)作業系統溝通 • DDSI (Device Driver Service Interface)為MDD與PDD之間溝通的介面 • 單層式裝置驅動程式(Monolithic Device Driver) • 某些狀況下較有效率 • 須撰寫中斷服務執行緖與指定平台類型

  21. 大綱 • 加強的Windows CE .NET驅動程式 • 裝置驅動程式架構 • 裝置驅動程式 • 串流介面驅動程式 • USB驅動程式架構 • NDIS驅動程式架構

  22. 串流介面驅動程式 • 大多數Windows CE的驅動程式為串流介面驅動程式 • 支援Windows CE新增硬體 • 動態載入驅動程式 • 由裝置管理員(Device Manager) 管理 • 類似一般檔案系統的API • 支援多樣性裝置 • 可由標準Win32檔案輸出/輸入以存取裝置

  23. 串流介面驅動程式架構 Application File APIs Stream Interface Driver, Loaded at boot time File System/IOCTLs File System Device Manager Windows CE Kernel Interrupt events Software Hardware Platform Hardware

  24. 串流介面驅動程式進入點(cont.) • XXX_Init • 裝置管理員在初始化裝置 • XXX_Deinit • 裝置管理員呼叫以釋放之前配置的資源 • XXX_Open • 開啟裝置-應用程式呼叫CreateFile • XXX_Close • 關閉裝置-應用程式呼叫CloseHandle

  25. 串流介面驅動程式進入點(cont.) • XXX_IOControl • 傳送控制命令-應用程式呼叫DeviceIOControl • XXX_Read • 讀取裝置內資料-應用程式呼叫ReadFile • XXX_Write • 寫入資料到裝置中-應用程式呼叫WriteFile • XXX_Seek • 操作裝置指標-應用程式呼叫SetFilePointer

  26. 串流介面驅動程式進入點 • XXX_PowerUp • 裝置電源開啟 • XXX_PowerDown • 裝置電源關閉

  27. 大綱 • 加強的Windows CE .NET驅動程式 • 裝置驅動程式架構 • 裝置驅動程式 • 串流介面驅動程式 • USB驅動程式架構 • NDIS驅動程式架構

  28. USB驅動程式架構 • 不為處理器與記憶體之間的匯流排 • 不為主機板各晶片之間的匯流排 • 主機電腦與周邊裝置之間的連接

  29. USB架構 (cont.) • USB系統軟體 • USB裝置驅動程式 • Windows CE執行USB函數 • USB函數主要工作 • 管理所有USB裝置與電腦之間建立的root hub • 適當時間載入/卸載USB裝置驅動程式 • 與USB裝置建立通訊以執行設定與狀態相關工作

  30. USB架構 (cont.) • USB函數 • USBD (Universal Serial Bus Driver) • HCD (Host Controller Driver) • USBD執行高層的USBD介面由HCD 所提供 • OEM只須提供HCD 模組(PDD層)

  31. USB架構 ActiveSync App. Client Driver Bus Driver HCD MS provided for XP Host controller Hub Mouse Pocket PC

  32. 主機控制器驅動程式 (cont.) • 二個設計標準 • 開啟主機控制器介面(OHCI):主要由康柏電腦與微軟定訂而成 • 通用主機控制器介面(UHCI):由英特爾所定訂標準 • 微軟提供OHCI與UHCI的主機控制器驅動程式範例 • OEM只須負責PDD層的驅動程式

  33. 主機控制器驅動程式 • PDD層的HCD模組 • 只有分配給記憶體內主機控制器的硬體位址, • 提供MDD層的硬體位址 • 指標指向共享記憶體區塊

  34. USBD函數

  35. USB函數控制器驅動程式 • 利用低層USB的API來執行虛擬序列埠 • 桌上型電腦需要類似驅動程式來驅動使用 • 同步運作軟體可以透過虛擬序列埠來運作 • Windows CE平台中的USB主機控制器 • 含有USB函數控制器驅動程式 • USB序列主機驅動程式 • 執行在桌上型電腦中 • 做出標準Win32序列埠介面

  36. 簡單的USB類別裝置驅動程式 • 人機介面類別驅動程式 • 控制桿 • 滑鼠 • 軌跡球 • 鍵盤 • USB印表機類別驅動程式 • 串流介面驅動程式 • 一次同時只能連接10台印表機 • 大量記憶體(Mass Storage)類別驅動程式 • 串流介面驅動程式 • 一次同時只能連接10個裝置

  37. USB與WDM的比較 • Windows CE .NET使用USBDI的傳輸函數其速率為8k • USB模組與WDM模組不能相容 • 客戶端驅動程式是屬於核心模式的驅動程式 • Windows CE則是使用者模式的執行緖 • 客戶端驅動程式,利用WDM的I/O要求的封包架構 • USBD函數提供建立時的要求

  38. 大綱 • 加強的Windows CE .NET驅動程式 • 裝置驅動程式架構 • 裝置驅動程式 • 串流介面驅動程式 • USB驅動程式架構 • NDIS驅動程式架構

  39. NDIS • Windows .NET支援網路驅動程式介面規格(Network Driver Interface Specification, NDIS) • Windows CE新支援的部分 • RNDIS (Remote NDIS) • NDISWAN • Token Ring • 改善與介面卡之間封裝 • 階層的迷你埠(miniport)架構 • 加強測試的應用程式

  40. NDIS (cont.) • 微軟與3Com共同發展 • NDIS程式庫(Ndis.dll)提供完整自由的介面 • NDIS程式庫提供所有Windows CE的核心模式函數來使用 • NDIS介於 • 通訊協定 • 迷你埠(miniport)驅動程式 • 中繼 (intermediate)驅動程式 • 硬體裝置 • NDIS能與上層的IrDA、TCP/IP與點對點(Point-to-Point, PPP)通訊協定來溝通

  41. Windows CE的NDIS支援通訊 • 區域網路 • Zero Configuration • Ethernet • Token Ring • IrDA • 廣域網路 • NDSIWAN • 個人區域網路 • Bluetooth

  42. Data Link Miniport TR LAN WAN IrDA NDIS NDIS驅動程式架構 Transport TCP/IP IrDA PPP Network Network Interface IR Port Physical

  43. NDIS驅動程式架構 NDIS Protocol Driver Intermediate Driver Miniport Driver NIC Hardware

  44. 迷你埠(Miniport)驅動程式 • 可以直接管理網路卡 • 提供高層次的驅動程式介面 • 利用NDIS程式庫與網路卡和通訊協定來通訊

  45. 中繼 (Intermediate)驅動程式 • 介於通訊協定驅動程式與迷你埠驅動程式之間 • 不能使用NDIS函數來硬體裝置 • 完成不同的封包過濾、格式轉換等工作 • 可來分割某些封包或是執行特殊函數 • 解壓縮與壓縮資料

  46. 通訊協定驅動程式 • 可執行TDI (Transport Driver Interface)介面或是其他應用程式特定介面 • 傳送/接收封包 • Windows CE所支援的通訊協定驅動程式 • TCP/IP • PPP • IrDA

  47. NDIS與Windows XP的比較 • Windows CE不用完全支援所有網路卡或是單層的網路驅動程式 • Windows CE所執行的NDIS並不支援DMA的運作 • 為了能使用DMA傳輸功能 • 迷你埠驅動程式必須配置管理虛擬記憶體緩衝區

  48. 中斷處理(cont.) • 核心的ISR (Interrupt Service Routine)工作是將邏輯ID傳回給核心 • 核心會呼叫適當的使用者的IST (Interrupt Service Thread )執行緖來操作 • 原生裝置驅動程式必須在初始化期間的適當時機註冊ISR與產生IST

  49. 中斷處理

  50. 結論 • 分層的驅動程式架構 • 一致的驅動程式架構 • 串流介面驅動程式 • USB驅動程式 • NDIS驅動程式 • 提供多種類型的驅動程式範例

More Related