Modem Negotiation
Recall that voiceband data modems convert bit sequences into voice-like sounds for transmission over the telephone network. But they actually do much more than this. Consider the following familiar sounds:
These are the sounds of a modem dialing a telephone line, another modem answering, and the two modems negotiating to determine at what speed to communicate. Generally the modems will try to communicate at the highest speed that is supported by both modems. A (simplified) state machine describing the behavior of the modem that initiates the call is given below:
- In the dialing state, a ring input causes a transition to
the ringing state, while a busy input causes a transition back
to the idle state. Note: In a better modem design, the modem would
set a timer and attempt to dial again after some time had expired.
- If an answer tone is detected, then the state machine transitions
to the modem detected state because it has now been determined that
there is a modem at the other end of the telephone line. In case there is
no modem at the other end of the line, a timer is set which produces a timout
event after 15 seconds, causing the modem to transition back to the idle
state. Exercise:Define a state machine that you can compose with this
one that implements the timer, emitting each of the timeout signals needed
by this modem, given an input from the hardware of a tick every second
and the output from this state machine.
- In the modem detected state, the modem emits a signal that identifies
its highest possible connection speed, e.g. 33 kbps (kilobits per second).
If the modem at the other end is capable of operating at this speed, it will
respond with a signal that is seen by the modem as an id1 response
input.
- If instead the timer expires, then the modem at the other end must not
be capable of operating at 33 kbps, so the modem emits a different signal
identifying a lower speed that it is capable of operating at, say 14.4 kbps.
- When the far-end modem responds to any of the id signals, then the near
end modem emits a training sequence, which is a pre-agreed signal that
permits the modem at the far end to measure the impairments on the telephone
channel and set up adaptive filters to compensate for these impairments. Then
the modem at the far end responds by sending back a training sequence, which
allows the near-end modem to set up its adaptive filters.
- After both modems have set up their filters, a converged event causes the modem to transition to the connected state, in which data communication occurs. You can now start surfing the web. Note: A better design would use a timeout timer so that if convergence does not occur, the modem tries to connect at a lower speed.