All computers have to have some form of input or output in their execution. This will be one of the following:
Neither input nor output A box that does not do anything!
Input only Those status reports for your manager that never get read.
Output only Always talking but never thinking!
Input and output A (hopefully) useful computer
This chapter discusses one method needed to allow for the input and output of data. There is usually a BIOS or software library that you can use that encapsulates the hardware known as the BSP (board support package), but if you are programming an application that requires direct port access, read on! For example, the communications API in Win32 does not give you time stamps or error status on each character received and some communication protocols require it.
Cameras typically input to a computer using memory in graphic frame grabbers just as a graphic display outputs using memory in graphic frame buffers, but the I/O (input/output) port is another method one can use to communicate with a computer. Network cards, serial communications, computer mouse, display controller on a graphics card, keyboard, etc., all use an input port, a "doorway," to get information into or out of a computer.
For example, pressing a key to type this document caused the little computer chip in my keyboard to decode the row and column of the keyboard matrix it was scanning, convert it to the corresponding value representing that scan code, and send it out that little wire or infrared port from my keyboard to my computer. There it arrived in an input port, causing an interrupt and letting my computer know there was something waiting to be read. Interested? Well, read on!