Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 5 驅動程式.

Similar presentations


Presentation on theme: "Chapter 5 驅動程式."— 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 (I/O Resource Mananger)
Device Manager loads Regenum.dll (for ISA busses) Registry enumerator is re-entrant loads Device.exe (I/O Resource Mananger) loads Regenum.dll 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 Layered Device Driver MDD DDSI function PDD Hardware

19 階層式vs.單層式 (cont.) 階層式裝置驅動程式(Layered Device Driver) MDD PDD
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 Stream Interface Driver,
串流介面驅動程式架構 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 XXX_Close 裝置管理員在初始化裝置
裝置管理員呼叫以釋放之前配置的資源 XXX_Open 開啟裝置-應用程式呼叫CreateFile XXX_Close 關閉裝置-應用程式呼叫CloseHandle

25 串流介面驅動程式進入點(cont.) XXX_IOControl XXX_Read XXX_Write XXX_Seek
傳送控制命令-應用程式呼叫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函數主要工作 USB裝置驅動程式 Windows CE執行USB函數
管理所有USB裝置與電腦之間建立的root hub 適當時間載入/卸載USB裝置驅動程式 與USB裝置建立通訊以執行設定與狀態相關工作

30 USB架構 (cont.) USB函數 USBD執行高層的USBD介面由HCD 所提供 OEM只須提供HCD 模組(PDD層)
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的主機控制器驅動程式範例 OEM只須負責PDD層的驅動程式

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

34 USBD函數 函數名稱 敘述 Transfer 傳輸函數負責處理USB裝置的資料傳送與接收。有 四個基本的傳輸型態:控制、大量、中斷與等時。
Pipe 管道函數負責處理USB裝置驅動程式與USB裝置之 間,通訊頻道的開啟與關閉。 Frame 控制匯流排上的實體特殊訊框時間。 Configuration 初始化特定型態資料轉換。 Miscellaneous 負責與USB系統軟體相關的工作。

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

36 簡單的USB類別裝置驅動程式 人機介面類別驅動程式 USB印表機類別驅動程式 大量記憶體(Mass Storage)類別驅動程式 控制桿
滑鼠 軌跡球 鍵盤 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 NDIS驅動程式架構 Transport TCP/IP IrDA PPP Network NDIS Miniport TR LAN WAN
Data Link Network Interface IR Port Physical

43 NDIS驅動程式架構 Protocol Driver NDIS 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驅動程式 提供多種類型的驅動程式範例

51 謝謝指教!


Download ppt "Chapter 5 驅動程式."

Similar presentations


Ads by Google