FREE Subscription to Dr. Dobb’s Digest: Same Great Content, New Digital Edition
Site Archive (Complete)
Embedded Systems
Email
Print
Reprint

add to:
Del.icio.us
Digg
Google
Furl
Slashdot
Y! MyWeb
Blink
June 08, 2007
Real-Time Enough

A FreeBSD-based software Frequency Shift Keying modem for Caller ID

(Page 1 of 4)
Robert Krten
Robert implements a real-time caller ID implementation that is part of a voice-activated call monitor system he built.
Robert is an independent consultant specializing in real-time and embedded systems. He can be contacted at rk@parse.com or http://www.parse.com/.


Caller ID

Caller ID, which is a feature that tells you who is calling on the telephone, occurs as a Frequency Shift Keying (FSK) signal between the first and second ring. It operates at 1200 baud, using the Bell-202 Standard, which is based on 1200 Hz (a "mark," representing a 1) and 2200 Hz (a "space," representing a 0) tones. It's a serial transmission, with a start bit, 8 bits of data, no parity, and a stop bit. At the data level, it consists of packets of information with checksums.

In this article, I discuss a real-time caller-ID implementation that is part of a voice-activated call monitoring system I built. In particular, I discuss how the caller-ID part of the solution has evolved from a hardware FSK modem in the early 1990s to the software FSK modem in use today. While my particular implementation is based on FreeBSD 5.3, there is nothing operating-system specific here.

My hardware consists of an adapter for a phone line (Figure 1) that converts the telephone signal into something that I can feed into a sound card's input. Because I have two lines, I have two such circuits in my system. I've conveniently used the sound card's left channel for one line, and the right channel for the other.

[Click image to view at full size]

Figure 1: Telephone line adapter.

1 Caller ID | 2 Requirements | 3 The FSK Algorithm | 4 Bit-Cell Management Next Page
TOP 5 ARTICLES
No Top Articles.



MICROSITES
FEATURED TOPIC

ADDITIONAL TOPICS

INFO-LINK