Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdMagdalena Groen Laatst gewijzigd meer dan 10 jaar geleden
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: http://www.beyondlogic.org/usbnutshell/usb5.htmhttp://www.beyondlogic.org/usbnutshell/usb5.htm
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 0.153 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
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.