Generate CID/CIDCW analog signals
A high-speed µP can generate CID (caller-ID) and CIDCW (caller-ID-on-call- waiting) analog signals (Figure 1). CID data transmits at 1200 baud FSK between the first and second 20-Hz ring of an incoming call. CIDCW uses a CAS (CPE Alert Signal) dual tone, which consists of 2130 and 2750 Hz to initiate the FSK data transfer. You can produce these analog signals using software-generated PWM (pulse-width-modulated) outputs from a high-speed µP, such as an Atmel AVR or Scenix SX. You create these PWM outputs using a constant-sampling frequency, and you select this frequency so that small, repetitive integer-number samples define the desired output. The 11.0592-MHz µP clock frequency and single-instruction cycle time are the same for IC1. The design produces the 1200-baud FSK marking frequency of 1200 Hz by using 22 cycles of a constant-sampling frequency of 11.0592 MHz/419. The design produces the 2200-Hz spacing frequency by using 12 cycles of the same sampling frequency. At each sample, the µP produces a PWM TTL output proportional to the analog voltage. The µP obtains successive pulse widths from a look-up table that also provides pointers to allow phase-coherent transitions when switching between marking and spacing. A Basic program produces the tables for the marking and spacing PWM sequence (Listing 1).
A sampling frequency of 11.0592 MHz/576, or 19,200 Hz, produces the dual-tone 2750- and 2130-Hz CAS signal. Seven samples define 2742.9 Hz, and nine samples define 2133.3 Hz. These samples are well within the Bellcore specification. The sum of these waveforms repeats 7×9=63 times when you use the 19,200-Hz sampling frequency. Another Basic program produces the pulse-width outputs that generate the dual tone (Listing 2).
The design produces the 20-Hz-ring sine wave, which you can amplify and step up to the appropriate level in a similar manner using values to produce pulse widths that Listing 3 provides.
An assembly-language program written for IC1 uses the table-generating programs in Listing 1, Listing 2, and Listing 3. The program fits within the 512-word memory space to generate three PWM outputs, which comprise the analog signals for CID/CIDCW after lowpass filtering. Click here to download the program.