Investigating the keyboard interface
I’m sure you are familiar with computer keyboards as a user, but perhaps you don’t know how keyboards are physically implemented.
Keyboards consist of a matrix of switches. When you depress a key, you close a circuit. A keyboard controller activates one line at a time and checks to see which lines are connected, which will identify a unique key (assuming only one key is pressed). It will also detect when a key is released:
Figure 11.1: Keyboard matrix
The keyboard controller will apply a voltage across each input one at a time in our preceding example: in0
, in1
, in2
, in3
, and so on. With the voltage applied, it will monitor the outputs one at a time, out0
, out1
, out2
, out3
, and so on, to identify whether any key is pressed. In Figure 11.1, when the controller scans input 2, and the K key is depressed, output 2 will be active high.
Modern keyboards are a bit more complex than this, especially gaming keyboards...