De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Het schrijven van een device driver voor Windows 2000 deel 2.

Verwante presentaties


Presentatie over: "Het schrijven van een device driver voor Windows 2000 deel 2."— Transcript van de presentatie:

1 Het schrijven van een device driver voor Windows 2000 deel 2

2 2 Over deze presentatie Gedeelte over USB (±30 min.) Gedeelte over USB (±30 min.) Gedeelte over device drivers (±15 min.) Gedeelte over device drivers (±15 min.) Vragen kunnen gesteld worden na elk deelonderwerp en aan het einde Vragen kunnen gesteld worden na elk deelonderwerp en aan het einde

3 3 Inhoud USB Uitleg USB protocol Uitleg USB protocol Cypress EZ-USB oplossing Cypress EZ-USB oplossing USB

4 USB protocol

5 5 Algemeen Snelheden Lagenmodel Soorten endpoints Descriptors Klassespecificaties Driverimplementatie

6 USB protocol 6 Algemeen Erg gemakkelijk voor de eindgebruiker Erg complex voor ontwikkelaars Host controller, hubs en apparaten Piramidesysteem, max. 127 apparaten Apparaten bevatten min. één functie

7 USB protocol 7 Algemeen (2) Host controller heeft I/O adressen en IRQ USB root hubs en alles wat erop is aangesloten hebben geen I/O adressen of IRQ’s

8 USB protocol 8 Low speed Zeer langzaam10 – 100 kbit/s Zeer goedkoop USB kabel permanent bevestigd Geen gegarandeerde snelheden

9 USB protocol 9 Full speed Redelijk snel0,5 – 10 Mbit/s Redelijk goedkoop

10 USB protocol 10 High speed Zeer snel25 – 500 Mbit/s Nog vrij duur en moeilijker verkrijgbaar Vereist speciale host controller en hubs voor optimale werking Poorten op hostcontroller en hubs zorgen voor compatibiliteit met Low en Full speed

11 USB protocol 11 Lagenmodel endpoint verzameling

12 USB protocol 12 Communicatie Pakket transactie Control verzoek Bulk overdracht Isochrone overdracht Interrupt overdracht tokenevt. datastatustokenevt. datastatus  fasesINDATAACKOUTDATASTALL  bijv.

13 USB protocol 13 Soorten endpoints Control Bulk Isochronous Interrupt Alle bidirectioneel, initiatief vanuit host

14 USB protocol 14 Control endpoint Besturingsverzoeken aan het apparaat Gegarandeerd 10% bandbreedte Herhaalde verzending tot 3 maal Voorbeelden: –GET_DESCRIPTOR –SET_CONFIGURATION –SET_INTERFACE

15 USB protocol 15 Bulk endpoints Gebruikt overgebleven bandbreedte  geen bandbreedte gegarandeerd Middelmatige hoeveelheden data Foutcorrectie en herhaald verzenden Voorbeelden: –Scanner data

16 USB protocol 16 Isochronous endpoints Gegarandeerde bandbreedte Grote hoeveelheden data Geen foutcorrectie of herhaald verzenden Voorbeelden: –Audio stream –Video stream

17 USB protocol 17 Interrupt endpoints Gegarandeerde maximumvertraging (1 ms – 32 ms) Onregelmatige kleine hoeveelheden data Herhaald verzenden Resulteert niet in een “echte” interrupt; er is sprake van ‘polling’

18 USB protocol 18 Descriptors Bron:

19 USB protocol 19 String descriptors Unicode karakterset Verschillende talen Kan naar verwezen worden vanuit Device, Configuration & Endpoint descriptors

20 USB protocol 20 USB klassespecificatie Uitgegeven door USB Implementors Forum Definieert eisen aan device wat betreft: –descriptors –interfaces –endpoints –verzoeken Mogelijkheid tot algemene driver Herkenbaar aan veld in Device descriptor

21 USB protocol 21 Driverimplementatie URB’s: USB Request Blocks UsbBuildXxx macro’s IoCallDriver functie

22 USB protocol 22 Einde USB protocol Snelheden Lagenmodel Soorten endpoints Descriptors Klassespecificaties Driverimplementatie

23 Vragen Er kunnen nu vragen over het USB protocol gesteld worden.

24 EZ-USB oplossing

25 25 EZ-USB oplossing Cypress EZ-USB chip Cypress EZ-USB toolkit USB MP3 device USB experimenteerbord

26 EZ-USB oplossing 26 EZ-USB chip Cypress AN2131 Snelheid effectief 6 MHz (24 MHz ÷ 4 klokpulsen) 8 kilobyte intern RAM Dataoverdracht van MCU naar USB module via RAM geheugen Laden van firmware via USB

27 EZ-USB oplossing 27 Cypress EZ-USB toolkit Firmware voor Keil C51 –Keil uVision 2 benodigd Test programma (EZ-USB Control Panel) Broncode van een universele driver Veel documentatie

28 EZ-USB oplossing 28

29 EZ-USB oplossing 29 USB MP3 Device Twee stereo MP3 naar analoog decoders verbonden via SPI bus via UART met EZ- USB processor Functioneert als terugloopapparaat en genereert een test sinustoon via een speciaal commando Functioneert in de toekomst als USB geluidskaart

30 EZ-USB oplossing 30 USB experimenteerbord 32 kilobyte extra RAM geheugen EEPROM via I 2 C bus 8 LEDs 4 drukknoppen, optioneel als interrupts 2 RS232 poorten LCD aansluiting Standaardheaders voor uitbreidingen voor printplaat Peter Klijn

31 EZ-USB oplossing 31

32 EZ-USB oplossing 32 USB experimenteerbord (2) Hardware is deze week gereed Als voorbeeld wordt een aangepaste driver geschreven Geschikt als voorbeeldhardware bij het schrijven van een eigen driver Geschikt om te leren werken met een 8051 processor

33 EZ-USB oplossing 33 Einde EZ-USB oplossing Handige toolkit, inclusief alle benodigde broncode en documentatie Tenminste twee projecten maken op dit moment gebruik van de EZ-USB chip Het toekomstgerichte experimenteerbord zorgt dat Cypress EZ-USB voorlopig de standaard is binnen Fontys

34 Vragen Er kunnen nu vragen over de EZ-USB oplossing gesteld worden.

35 35 Slot USB USB protocol USB protocol EZ-USB oplossing EZ-USB oplossing USB

36 36 Inhoud device drivers Tips Tips Vervolg uitleg over device drivers Vervolg uitleg over device drivers Device drivers

37 Tips 37 Tips IN en OUT zijn lege strings, maar ze bieden wel meer duidelijkheid Noem dispatch routines altijd algemeen bijv. niet “BelDispatchCreate”, maar “DispatchCreate” Maak geen gebruik van CUString klasse Gebruik KdPrint i.p.v. DbgPrint

38 Uitleg device drivers

39 Device drivers 39 Uitleg device drivers IRQL’s Overlapped Buffermechanisme

40 Device drivers 40 Interrupt Request Levels (IRQL) Code binnen een bepaald IRQL kan niet geïnterrumpeerd door code met een lager of gelijk IRQL Code binnen PASSIVE_LEVEL en APC_LEVEL kan wel worden onderbroken door het pre-emption mechanisme voor threads, bij hogere levels kan dat niet Hoe hoger het IRQL, hoe beperkter een driver is in zijn aanroepen Device drivers

41 41 IRQL (2) HIGH_LEVEL Geen geheugenallocatie DIRQL: hardware IRQL’s DISPATCH_LEVEL Page faults zijn uit den boze APC_LEVEL PASSIVE_LEVEL Page faults mogen voorkomen Device drivers

42 42 Overlapped Aanroep aan WriteFile, ReadFile en DeviceIoControl is altijd synchroon, ongeacht driverimplementatie CreateFile met FILE_FLAG_OVERLAPPED en extra parameter aan overige functies  langdurige operaties gaan asynchroon

43 Device drivers 43 Buffermechanismen Buffered I/O Direct I/O –In –Uit

44 Device drivers 44 Buffered I/O Invoerbuffer Uitvoerbuffer Systeembuffer User mode Kernel mode Systeembuffer uitvoering DispatchDeviceControl routine

45 Device drivers 45 Direct I/O (in) MDL User mode Kernel mode uitvoering DispatchDeviceControl routine, waarbij gebruikgemaakt wordt van inhoud van gemapt geheugen MDL wordt gemapt in het geheugen gebruikersbuffer wordt gevuld

46 Device drivers 46 Direct I/O (uit) MDL User mode Kernel mode uitvoering DispatchDeviceControl routine, waarbij geschreven wordt naar gemapt geheugen MDL wordt gemapt in het geheugen inhoud van gebruikersbuffer wordt gebruikt

47 Device drivers 47 Einde uitleg device drivers IRQL’s Overlapped Buffermechanismen

48 Vragen Er kunnen nu vragen over device drivers gesteld worden.

49 49 Slot device drivers Tips Tips Uitleg over device drivers Uitleg over device drivers Device drivers

50 50 Verdere stage Stage duurt nog circa 11 weken Stage duurt nog circa 11 weken Vrijwel elke dag tot aan de zomervakantie beschikbaar voor vragen over device drivers in lokaal Vrijwel elke dag tot aan de zomervakantie beschikbaar voor vragen over device drivers in lokaal 0.153

51 Vragen Algemene vragen over deze presentatie kunnen nu gesteld worden.

52 Einde Deze PowerPoint presentatie is desgewenst te downloaden vanaf: stage.sools.com


Download ppt "Het schrijven van een device driver voor Windows 2000 deel 2."

Verwante presentaties


Ads door Google