Chapter 5 驅動程式.

Slides:



Advertisements
Similar presentations
先介绍计算机网络基础知识,再分析网络视频监 控系统的架构、原理与维护。
Advertisements

LinkIt ONE開發板的簡介.
《网络基础与Internet应用》.
計算機程式語言實習課.
課程名稱:計算機概論 授課老師:李春雄 博士
第2章 计算机网络的协议与体系结构 2.1 计算机网络体系结构的形成 2.2 协议与划分层次 2.3 计算机网络的原理体系结构
第8章 系統架構.
操作系统结构.
第一章 计算机网络基础 授课教师:买买提艾力
實驗六 路由器操作設定實驗 教師: 助教:.
Windows 95 & 98 操作 林信鋒 教授 國立東華大學資訊工程系
“ SNA 解決方案 ” ● TN3270 Servers ● SNA LAN Gateway
医学仪器中的嵌入式系统设计  T06.WinCE 网络与通信
第 1 章 使用 APP INVENTOR 2 開發 ANDROID APP
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
通訊協定 OSI分層模式 與 TCP/IP協定
TCP協定 (傳輸層).
Q101 在701 SDX Linux上的標準安裝與使用程序v2
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
Socket () and TCP client-server
第1章 認識Arduino.
雲端運算的基石(4) 虛擬化技術實作(Win 8篇)
计算机组成与系统结构 陈泽宇 副教授.
WinCE Device Manager 電源管理器:管理系統的能源分配策略,決定系統的能量消耗狀態變化。
Working with Databases (II) 靜宜大學資管系 楊子青
資料庫操作.
HiNet 光世代非固定制 用戶端IPv6設定方式說明
家用網路所遇到的問題 與解決方案 演講者:徐子浩 指導老師:梁明章 老師.
桌面環境簡介及IDE開發工具 Outline (一)什麼是Linux? (二)桌面環境系統簡介 (三)IDE開發工具.
R教學 安裝RStudio 羅琪老師.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
網絡形態 及 網絡拓撲學.
安裝JDK 安裝Eclipse Eclipse 中文化
DMA-2440XP WinCE5.0安裝與使用 長高科技 顏旭偉.
Echo Server/Client Speaker:Fang.
App Inventor2呼叫PHP存取MySQL
雲端運算的基石(2) 虛擬化技術實作(XP篇─上)
第二章 SPSS的使用 2.1 啟動SPSS系統 2.2 結束SPSS系統 2.3 資料分析之相關檔案 2.4 如何使用SPSS軟體.
FTP檔案上傳下載 實務與運用.
網際網路與電腦應用 林偉川 2001/11/08.
DHCP for W2K.
Session 2: Testing Windows CE .NET
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
虛擬機器 下載QEMU Windows版 (0.9.1) 下載Kqemu Windows版 安裝QEMU 安裝Kqumu
Topic Introduction—RMI
VS.NET 2003 IDE.
PLC-GPPW軟體使用教學 授課教師:張祖烈
TB-054A  周天穎 編著 儒林圖書公司 發行.
Linux作業系統 電腦教室Linux使用說明.
TA教育訓練 微處理機系統實習.
IIS Internet Information Services
VS.NET 2003 IDE.
FTP使用教學 簡介: 軟體名稱:FileZilla 軟體性質:Freeware 版本: 繁體中文版
無線感測網路截取ZigBee/ 封包 分析工具實作
指導教授:梁明章 A 許之青 國立高雄大學 2010/06/25
MicroSim pspice.
取得與安裝TIDE 從TIBBO網站取得TIDE
陣列與結構.
ZigBee PRO教學系統 CC2530 實驗.
Cloud Operating System - Unit 03: 雲端平台建構實驗
班級:博碩子一甲 授課老師:鐘國家 助教:陳國政
MultiThread Introduction
資料擷取與監控應用實務.
第一章 電腦網路簡介 1-1 何謂電腦網路 1-2 為何需要電腦網路 1-3 何謂通訊協定 1-4 通訊協定的特性 1-5 通訊協定的堆疊
802.1網路連結技術 802.2LLC 鏈 結 層 實 體 層 媒介擷取層
NFC (近場通訊, Near Field Communication) 靜宜大學資管系 楊子青
Chapter 4 Multi-Threads (多執行緒).
Develop and Build Drives by Visual C++ IDE
Department of Computer Information Science, NCTU
InputStreamReader Console Scanner
Presentation transcript:

Chapter 5 驅動程式

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

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

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

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

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

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

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

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

(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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

主機控制器驅動程式 (cont.) 二個設計標準 微軟提供OHCI與UHCI的主機控制器驅動程式範例 OEM只須負責PDD層的驅動程式

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

中斷處理

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

謝謝指教!