Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

Contents

1. WHAT WILL THIS BOOK DO FOR YOU?...........................................1

1.1 WHAT is USB, ANYWAY ? ........................................................... 2


1.2 OUTLINE OF THE BOOK ................................................................. 3
1.3 REFERENCES....................................................................... 4
1.4 FEEDBACK TO THE AUTHOR...................................................5

2. STEP1: UNDERSTAND THE USB SPECIFICATION ....................... 7

2.1 SUMMARY OF USB PROTOCOL ...................................................... 7


2.2 USB OBJECTIVES ................................................................ 7
2.3 USB Bus TOPOLOGY........................................................................8
2.4 USB DATA FLOW MODEL............................................................. 9
2.5 USB PIPE CONCEPT (DEVICE ADDRESS AND ENDPOINT) .......... 10
2.6 USB TRANSFER TYPES................................................................ 11
2.7 USB MECHANICAL AND ELECTRICAL .................................... 13
2.7.1 POWER SUPPLY FROM USB WIRES ............................. 15
2.8 USB PACKET FORMATS ..................................................... 15
2.8.1 TOKEN PACKETS ................................................................ 15
2.8.2 START OF FRAME PACKETS ............................................ 17
2.8.3 DATA PACKETS .........................................................17
2.8.4 HANDSHAKE PACKETS ................................................. 17
2.8.5 SPECIAL PACKETS ........................................................ 18
2.9 USB PROTOCOL BY TRANSFER TYPES ........................................ 18
2.9.1 CONTROL TRANSFERS .................................................18
2.9.2 ISOCHRONOUS TRANSFER ............................................20
2.9.3 BULK TRANSFER ........................................................20
2.9.4 INTERRUPT TRANSFER .................................................21
2.10 USB FUNCTIONS ....................................................................... 21
2.10.1 USB ENUMERATION STEPS ...........................................21
2.10.2 A SNAP-SHOT OF A TYPICAL USB Bus ENUMERATION.........23
2.10.3 USB RESET, SUSPEND, RESUME & REMOTE WAKEUP ..........27
2.11 USB HOST ........................................................................................28

ix
3. STEP 2: SET UP A DEVELOPMENT ENVIRONMENT .....................31

3.1 DEVELOPMENT ENVIRONMENT (DEVICE SIDE) ........................31


3.2 DEVELOPMENT ENVIRONMENT (HOST SIDE)...........................34
3.3 CONTACT NUMBERS ...........................................................35

4. STEP 3: DEVELOPING THE DEVICE HARDWARE .........................37

4.1 OVERVIEW OF THE 8x930Ax USB MICROCONTROLLER..............37


4.1.1 MCS 251 CORE .......................................................... 37
4.1.2 MEMORY ORGANIZATION ........................................... 38
4.1.3 EXTERNAL MEMORY INTERFACE ..................................... 40
4.1.4 INTERRUPT SYSTEM .................................................... 41
4.1.5 8x930Ax ON-CHIP PERIPHERALS ................................... 43
4.1.6 8x930Ax USB MODULE ........................................................ 44
4.1.7 SFRs ASSOCIATED WITH THE USB MODULE....................... 46
4.2 INTERFACE WITH THE 8x930Ax ............................................ 48
5. STEP 4: DEVELOP THE DEVICE FIRMWARE........................................... 49

5.1 OVERVIEW OF FIRMWARE RESOURCES ....................................49


5.1.1 USB FIRMWARE OVERHEAD .......................................... 49
5.1.2 APPLICATION-SPECIFIC FIRMWARE ................................ 49
5.2 FIRMWARE RELATIONSHIP WITH DEVICE CLASS DRIVER........... 50
5.3 THE 8x930Ax OPERATING MODEL ..................................... 50
5.3.1 INITIALIZATION ........................................................ 51
5.3.2 UN-ENUMERATED STAGE.............................................. 52

5.4 USB ENUMERATION CODE ................................................. 56


6. STEP 5: DEVELOP THE USB DRIVER............................................... 59

6.1 DEVICE CLASS SPECIFICATION AND DRIVER ........................... 59


6.2 OVERVIEW OF WDM ................................................................ 60
6.3 WINDOWS NT SYSTEM OVERVIEW ....................................... 62
6.3.1 WINDOWS NT STRUCTURE ..................................... 64
6.4 WINDOWS NT I/O SYSTEM OVERVIEW ..................................... 66
6.4.1 NT OBJECT MODEL ............................................................ 67
6.5 WDM DEVICE DRIVER EXAMPLE ......................................... 68
6.6 LOADING THE WDM DRIVERS ............................................ 72

X
7. STEP 6: DEVELOPING HOST APPLICATION SOFTWARE............ 79

7.1 MICROSOFT DEVELOPER STUDIO .........................................79


7.2 DEVELOP THE APPLICATION SOFTWARE USING APPWIZARD ......80
7.3 LINKING APPLICATION SOFTWARE TO THE WDM DRIVER ..............84
7.4 COMMUNICATING TO THE WDM DRIVER...............................85

8. USB APPLICATION SOFTWARE. WDM DRIVER AND


FIRMWARE EXAMPLES...................................................... 89

8.1 CONTENT DESCRIPTION OF THE ENCLOSED DISKETTE ...............90


8.2 SETTING UP THE DEMONSTRATION .......................................91
8.3 DELETING DRIVER & ID INFORMATION FROM THE HOST ..........95

9. CONCLUSION ......................................................................................... 97

10. GLOSSARY ......................................................................................... 99

11. APPENDICES ....................................................................................... 107

11.1 FIRMWARE CODE EXAMPLE FOR INTEL


8x930Ax USB MICROCONTROLLER ....................................107
11.2 A WDM DRIVER CODE EXAMPLE ......................................129
11.3 AN APPLICATION SOFTWARE CODE EXAMPLE ........................ 161

XI

You might also like