V.22 bis Modem with AT Commands
CMX866
1.4.3 Serial Interface
The CMX866 is controlled by sending AT commands over the serial interface from an external host µC.
For simplicity, an asynchronous protocol has been adopted: 9600 baud, 8-bit words, no parity, 1 stop-bit.
Since this communications rate exceeds that over the phone line, it is necessary to use CTS flow control
to moderate the data rate, so that on average it equals the baud rate for the communications standard
adopted. The CTS flow control method provided on the CMX866 will also work with the RTS/CTS
handshake protocol used by some µControllers. AT commands and phone numbers need to be stored
for future use and the CMX866 provides four internal buffers for phone number and command storage
and for data buffering (see Figure 5a).
When the external host µC is ready to transmit AT commands or data it should take the Request To Send
signal active (RTSN pin goes low) and place the information to be sent on the Transmit Data (TXD) pin.
When the CMX866 is ready to accept this information from the external host µC it will take the Clear To
Send signal active (CTSN pin goes low). The information should be sent as 8-bit bytes, encapsulated by
a start bit (low) and a stop bit (high). The CMX866 should be presented with continuous mark (stop bits)
when the host µC has no information to send. As each byte is received it is stored in a 48-byte AT
command buffer when in Command mode or in a 16-byte receive data buffer when in Data Transfer
mode. The CMX866 will take the CTSN pin high when either buffer is full and will ignore further
information on the TXD pin until the on-chip µController in the CMX866 is ready to accept it. At this time,
the CMX866 will once again take the CTSN pin low to signify its readiness to accept more information,
providing the RTSN pin is already low. If the external host µC does not have an Request To Send signal,
the RTSN pin should be permanently wired low. When RTSN is inactive high, CTSN follows RTSN and
becomes inactive high, thus there is no data flow from the host µC to the CMX866, but data flow from the
CMX866 to the host µC is allowed. As the incoming AT command is being interpreted, any phone
number is identified and stored separately in the 24-byte phone number buffer.
When the CMX866 is in Data Transfer mode and it receives a signal from the phone line which exceeds
the minimum amplitude threshold, it will attempt to demodulate the signal and place the received data on
the RXD pin. At the same time it will make the Data Carrier Detected signal active (DCDN pin goes low).
Received data is presented to the RXD pin at 9600 baud (with the same protocol as for transmission,
regardless of the format that was used over the phone line), after a complete byte has been
demodulated. There is a 24-byte message buffer in the receive path but, as the received data always
arrives at slower than 9600 baud, there is no need for a flow control handshake in the receive path. It is
assumed that the external host µC will absorb all of the data presented to it without the need for flow
control and will ignore continuous mark (stop bits) when there is no received data. If the received signal
is below the detection threshold or the CMX866 is not in Data Transfer mode, the DCDN and RXD pins
will be taken high.
If the CMX866 receives a RING signal on the RD and RT pins, such that the detection threshold is
exceeded, then the device will forward this condition to the external host µC by taking the RIN pin low.
This pin follows the output of the ring detector, so will go low for each burst of RING signal. If the
CMX866 is in a Powersave or 'Zero-Power' state, it will be woken up and the DSRN pin will go low once
the on-chip µController is ready to receive communications through the serial port. This wake up process
takes about 30ms from 'Zero-Power' state, as the VBIAS pin has to charge the external reservoir capacitor
and the crystal oscillator has to start up and stabilise before the CMX866 can initialise itself. From the
Powersave state this wake up process takes about 10µs, as the oscillator and the VBIAS pin are already
stable.
The DSRN and DTRN pins do not act as a handshake with the external host µC. The DSRN pin indicates
the operational status of the on-chip µController (low = ready to communicate with an external host µC).
The DTRN pin is used for taking the CMX866 out of a Powersave or 'Zero-Power' state. It acts as a
device wake up, in the same manner as the RING signal, and becomes active on the high to low
transition. A high to low transition on the DTRN pin is ignored if the device is already 'woken up'. If the
external host µC does not have a DTR signal, the DTRN pin should be permanently wired to the TXD pin.
When the CMX866 is in a Powersave or 'Zero-Power' state, the RXD, CTSN, DSRN, DCDN and RIN pins
will be permanently high. The condition of the TXD, RTSN and DTRN pins is not important.
Depending on the &Dn configuration, if the DTRN pin is taken high at any time whilst the CMX866 is in
Data Transfer mode, a fixed, 100ms timeout is started. On completion of the timeout, the CMX866 will
ã 2004 CML Microsystems Plc
11
D/866/4