DTMF, or tone dialing, is very commonly used. In this article we would like to explain how the way it works, and what are its advantages as well as disadvantages.
DTMF (Dual-tone Multi Frequency)
DTMF (Dual-tone Multi Frequency) is a tone composed of two sine waves of given frequencies. Individual frequencies are chosen so that it is quite easy to design frequency filters, and so that they can easily pass through telephone lines (where the maximum guaranteed bandwith extends from about 300 Hz to 3.5 kHz). DTMF was not intended for data transfer; it is designed for control signals only. With standard decoders, it is possible to signal at a rate of about 10 "beeps" (=5 bytes) per second.
DTMF standards specify 50ms tone and 50ms space duration. For shorter lengths, synchronization and timing becomes very tricky.
DTMF is the basis for voice communications control. Modern telephony uses DTMF to dial numbers, configure telephone exchanges (switchboards), and so on. Occassionally, simple floating codes are transmitted using DTMF - usually via a CB transceiver (27 MHz). It is used to transfer information between radio transceivers, in voice mail applications, etc.
Almost any mobile (cellular) phone is able to generate DTMF after establishing connection. If your phone can't generate DTMF, you can use a stand-alone "dialer". DTMF was designed so that it is possible to use acoustic transfer, and receive the codes using standard microphone.
Composition of DTMF signals
The table shows how to compose any DTMF code. Each code, or "beep", consists of two simultaneous frequencies mixed together (added amplitudes). Standards specify 0.7% typical and 1.5% maximum tolerance. The higher of the two frequencies may have higher amplitude (be "louder") of 4 dB max. This shift is called a "twist". If the twist is equal to 3 dB, the higher frequency is 3 dB louder. If the lower frequency is louder, the twist is negative.
This table resembles a matrix keyboard. The X and Y coordinates of each code give the two frequencies that the code is composed of. Notice that there are 16 codes; however, common DTMF dialers use only 12 of them. The "A" through "D" are "system" codes. Most end users won't need any of those; they are used to configure phone exchanges or to perform other special functions.
How to transmit DTMF
Most often, dedicated telephony circuits are used to generate DTMF (for example, MT8880). On the other hand, a microprocessor can do it, too. Just connect a RC filter to two output pins, and generate correct tones via software. However, getting the correct frequencies often requires usage of a suitable Xtal for the processor itself - at the cost of non-standard cycle length, etc. So, this method is used in simple applications only.
How to decode DTMF
It is not easy to detect and recognize DTMF with satisfactory precision. Often, dedicated integrated circuits are used, although a functional solution for DTMF transmission and receiving by a microprocessor (a PIC in most cases) exists. It is rather complicated, so it is used only marginally. Most often, a MT 8870 or compatible circuit would be used.
Most decoders detect only the rising edges of the sine waves. So, DTMF generated by rectangular pulses and RC filters works reliably. The mentioned MT 8870 uses two 6th order bandpass filters with switched capacitors. These produce nice clean sine waves even from distorted inputs, with any harmonics suppressed.
Written by Jan Rehak
If you want to use DTMF in your application, or just want to know a little more about the tones your phone makes, you should read this article.