If you have a Caller ID box attached to your phone, then an amazing thing happens every time your phone rings — the number (and sometimes even the name) of the calling party appears on the display right after the first ring!
It turns out that the process of making the caller ID display possible is remarkably simple at your end of the line. If you have read the HSW article entitled How Modems Work, then you know that the early modems used a technique called Frequency Shift Keying to transmit bits over a phone line. FSK is extremely simple: One tone (or frequency, like 1,200 Hertz) represents a binary 1, while another tone (like 2,200 Hertz) represents a binary zero. A modem changes frequencies depending on whether it wants to send a 1 or a 0. How quickly it changes frequencies determines the speed, or baud rate, of the modem.
To send caller ID information you your home, the phone company uses an FSK technique identical to a 1,200 baud modem and it sends ASCII character data to the caller ID box. The modem message is sent between the first and second ring (see How Telephones Work for a description of how the ring signal works). So the phone rings once, and if you could listen to the phone line just after that ring, you would hear a “bleeeep” sound about half a second long. If you decoded the bleep, you would find that it contains (in the simpler of the caller ID systems):
- A series of alternating 1s and 0s to help the caller ID box get the timing down
- A series of 180 1s
- A byte representing the type of message
- A byte representing the length of the message
- Month, day, hour and minute, each represented with a pair of bytes
- The 10 digit phone number in 10 bytes
- A checksum byte
There is also a more advanced system that contains the caller’s name, etc., but its technique is identical (see the second link below for details). Each character is sent as a standard 8-bit ASCII character preceded by a “0” start bit and followed by a “1” stop bit.
The caller ID box contains a modem to decode the bits, a little circuit to detect a ring signal, and a simple processor to drive the display. That’s really all there is to the whole thing!
For more Detail: How does Caller ID work?
This free embedded project also found using:
- atmega caller id
- avr caller id
- caller ID avr