Skip to main content

Some info on USB and usb-keyboards

USB -- Universal Serial Bus

USB is a communications architecture that gives a personal
computer (PC) the ability to interconnect a variety of devices using a simple four-wire cable. The USB is actually a two-wire serial communication link that runs at either 1.5 or 12 megabits per second (mbs). USB protocols can configure devices at startup or when they are plugged in at run time.

These devices are broken into  various device classes. Each device class defines the common behaviour and protocol for devices that serve similar functions.
The HID class consists primarily of devices that are used by humans to control
the operation of computer systems. Typical examples of HID class devices
  • Keyboards and pointing devices—for example, standard mouse devices, trackballs, and joysticks.
  • Front-panel controls—for example: knobs, switches, buttons, and sliders.
  • Controls that might be found on devices such as telephones, VCR remote controls, games or simulation devices—for example: data gloves, throttles, steering wheels, and rudder pedals.
  • Devices that may not require human interaction but provide data in a similar format to HID class devices—for example, bar-code readers, thermometers, or voltmeters.
==>page no. 9
====>Protocol codes

A variety of protocols are supported HID devices. The bInterfaceProtocol
member of an Interface descriptor only has meaning if the bInterfaceSubClass
member declares that the device supports a boot interface, otherwise it is 0.

Code for a USB Keyboard Driver from scratch

Code and Instructions to make this work is available on my github profile.

Much more information and many links are available there..


Popular posts from this blog

Von Neumann machine

Von Neumann Machine is the basic architecture of the modern computer as it laid the foundation for same memory usage for program and data.

The Von Neumann Machine consists of three main components :
Main MemoryC.P.UI/O devices

Basic Linux Links and usefull stuff

Hey guys
You  might be looking for Basic Linux stuff then you are at the right place... :D
I started using Linux about 5 years ago but got into it (seriously!) 1 and a half year before,
on going through the basics which i learned from many documentation provided by THE AWESOMELY GREAT ~#TLDP#~ -->The documents it provided me : <<Download PDF if possible because it is formatted nicely in it compared to others (Not compulsory Totally Ur call) >> %  Introduction to Linux - A Hands on Guide: It provided me real one on one interaction with THE GREAT OS EVER :D It gave me total overview of Linux and awesomely cool tricks. It also contains exercise at the end of each lesson or chapter. You should give it a look (serious advice :P) % Bash Guide for Beginners: Before starting with bashing you should know bare minimum concepts of Linux <which includes placement of files, commands interaction with term and much more> which you can take from the guide above (told ya that you shoul…