Keyboarding Made Simple
Author: Leigh E Zeitz
A new book for a necessary skill
A twenty-first-century revision of the popular Touch Typing Made Simple (over a million copies in print), this breakthrough guide brims with step-by-step exercises for keyboarding with ease. Practice drills make sure the lessons stick. Now anyone can produce error-free text in a flash.
New interesting textbook: Human Resources Management for Hospitality or Pay People Right
USB Complete: Everything You Need to Develop Custom USB Peripherals
Author: Jan Axelson
Now in its third edition, this developer's guide to the Universal Serial Bus (USB) interface covers all aspects of project development, including device programming and host application software. This book shows how to transform the information in the USB 3.0 specifications into functioning devices and application software that communicates with the devices. To help build a foundation for design decisions, developers are guided in selecting device-controller hardware. Developers will also learn the benefits of the USB interface, its limitations, and how certain design choices made at the beginning of the project can reduce development time. Recent developments in host and device hardware, more detail on the standard USB classes, application examples using Microsoft's .NET Framework, and information on developing dual-role devices using USB On-The-Go is provided in detail.
EDN Magazine
EEs . . . interested in a clearer, more concise presentation might do better to obtain a copy of USB Complete, Second Edition.
Midwest Book Review
Now in an updated and expanded second edition, Jan Axelson's USB Complete: Everything You Need To Develop Custom USB Peripherals continues to be an excellent and highly recommended "how to" guide and reference for anyone seeking to develop devices and software that communicate with USB. This new edition explains what developers need to know about version USB 2.0 specifications and its new high speed of 480 Megabits per second. There is also an added example application code in both Visual C++ and Visual Basic, information about new controller chips and development tools, as well as expanded coverage of the USB support under Windows. The value of this highly recommended text is enhanced further with the author's extensive web page with articles, program code, and other links of special interest to USB devlopers.
Table of Contents:
Introduction | xiii | |
1. | A Fresh Start | 1 |
What USB Can Do | 3 | |
It's Not Perfect | 11 | |
History | 16 | |
2. | Is USB Right for My Project? | 21 |
Fast Facts | 21 | |
The Development Process | 35 | |
3. | Inside USB Transfers | 39 |
Transfer Basics | 40 | |
Elements of a Transfer | 44 | |
Ensuring that Transfers Are Successful | 61 | |
4. | A Transfer Type for Every Purpose | 71 |
Control Transfers | 71 | |
Bulk Transfers | 78 | |
Interrupt Transfers | 81 | |
Isochronous Transfers | 85 | |
More about Time-critical Transfers | 89 | |
5. | Enumeration: How the Host Learns about Devices | 93 |
The Process | 94 | |
Descriptor Types and Contents | 101 | |
Descriptors in 2.0-compliant Devices | 116 | |
6. | Control Transfers: Structured Requests for Critical Data | 119 |
Elements of a Control Transfer | 119 | |
The Requests | 127 | |
7. | Chip Choices | 141 |
Elements of a USB Controller | 142 | |
Simplifying the Development Process | 147 | |
A Look at Some Chips | 157 | |
8. | Inside a USB Controller: the Cypress enCoRe | 171 |
Selecting a Chip | 172 | |
The Assembler | 173 | |
Programming in C | 180 | |
Chip Architecture | 181 | |
USB Communications | 187 | |
Other I/O | 192 | |
Other Chip Capabilities | 197 | |
9. | Writing Firmware: the Cypress enCoRe | 209 |
Hardware and Firmware Responsibilities | 209 | |
Hardware Development Tools | 219 | |
10. | How the Host Communicates | 231 |
Device Driver Basics | 231 | |
The Win32 Driver Model | 237 | |
Choosing a Driver Type | 248 | |
Writing a Custom Driver | 249 | |
11. | How Windows Selects a Driver | 255 |
The Process | 255 | |
Inside an INF File | 262 | |
Creating INF Files | 271 | |
12. | Device Classes | 275 |
Uses of Classes | 276 | |
Matching a Device to a Class | 279 | |
13. | Human Interface Devices: Firmware Basics | 293 |
What is a HID? | 294 | |
Identifying a Device as a HID | 299 | |
HID-specific Requests | 306 | |
Transferring Data | 314 | |
14. | Human Interface Devices: Reports | 321 |
Report Structure | 321 | |
The Main Item Type | 325 | |
The Global Item Type | 330 | |
The Local Item Type | 339 | |
15. | Human Interface Devices: Host Application Primer | 343 |
Host Communications Overview | 344 | |
Using API Functions | 348 | |
Device Attachment and Removal | 362 | |
16. | Human Interface Devices: Host ApplicationExample | 365 |
Finding a Device | 366 | |
Reading and Writing Data | 384 | |
17. | Device Testing | 401 |
USB Check's Test Suite | 402 | |
Test Equipment | 409 | |
Testing and Logos | 417 | |
18. | Hubs: the Link between Devices and the Host | 423 |
Hub Basics | 424 | |
The Hub Class | 434 | |
19. | Managing Power | 443 |
Powering Options | 443 | |
Hub Power | 449 | |
Saving Power | 452 | |
20. | Signals and Encoding | 457 |
Bus States | 457 | |
Data Encoding | 462 | |
Packet Format | 467 | |
Test Modes | 470 | |
21. | The Electrical Interface | 473 |
Transceivers and Signals | 474 | |
Signal Voltages | 484 | |
Cables | 485 | |
Ensuring Signal Quality | 492 | |
Index | 497 |
Thanks for mentioning my book. I used a research-based method (rather than just using a traditional method because that is how it has always been done.) Unfortunately (or fortunately) it is filled with Dr. Z humor that makes it fun to do.
ReplyDeleteGood luck with this. If you want more information about keyboarding, visit my blog at http://keyboardingresearch.org
Leigh Zeitz
http://drzreflects.com