Command and Data modes (modem)

Command and Data modes (modem)

Command and Data modes refer to the two modes in which a computer modem may operate. These modes are defined in the Hayes command set, which is the de-facto standard for all modems. These modes exist because there is only one channel of communication between the modem and the computer, which must carry both the computer's commands to the modem, as well as the data that the modem is enlisted to transmit to the remote party over the telephone line.

When a modem is in command mode, any characters sent to it are interpreted as commands for the modem to execute, per the Hayes command set. A command is preceded by the letters 'AT', which stand for 'Attention'. For example, if a modem receives 'ATDT5551212' while in the command mode, it interprets that as an instruction to dial the numbers 5551212 on the telephone, using touch-tone dialing. While in command mode, the modem may send responses back to the computer indicating the outcome of the command. For example, the modem may respond with the word "BUSY" in response to the ATDT command, if it hears a busy signal after dialing and is configured to listen for busy signals.

Any communication in command mode (in both directions) is terminated by a carriage return.

When a modem is in data mode, any characters sent to the modem are intended to be transmitted to the remote party. The modem enters data mode immediately after it makes a connection. For example, if ATDT5551212 resulted in a phone call that was answered by another computer modem, the modem would report the word "CONNECT" and then switch to data mode. Any further characters received over the serial link are deemed to be from the remote party, and any characters sent are transmitted to the remote party.

When a voice-capable modem is in "voice data" mode, any data sent to the modem is interpreted as audio data to be played over the phone line, rather than character bytes to be transmitted digitally to the other party.

Switching between modes

Modems always start out in command mode when powered up. Here are the ways a modem can switch to data mode:

  • After a successful dial-out connection in response to an "ATD" dial command in which the modem reaches another modem.
  • After answering the phone with the "ATA" answer command, if another modem is on the other end.
  • After answering the phone automatically for some pre-configured reason (such as auto-answer), and connecting to another modem. (Almost all modems support auto-answering when given the command "ATS0=1".)
  • After being given the "ATO" (that's three letters A-T-Oh, not A-T-zero) command after being put back in the command mode with an escape sequence (see below).
  • In response to similar dialing or connecting commands for fax or voice communications.

Modems switch back into command mode from data mode for the following reasons:

  • The connection got broken (for example, the other party hung up).
  • The computer issued an escape command, which is usually a 1-second pause, then the three characters "+++", then another 1-second pause. The connection remains, but the modem can accept commands, such as "ATH" for hangup. The computer can issue the "ATO" command to return to data mode.
  • The computer instructed the modem to terminate the call by setting the Data Terminal Ready (DTR) pin to an "off" state. (This is usually how computers invoke the termination of a modem call nowadays - the +++ escape sequence is rarely used, and usually disabled to avoid malfunction in case these characters are legitimately a part of the data stream).

Practical contemporary use

Today, most modems are configured with the characters "&C1&D2" in the initialization string, or otherwise behave this way by default. This causes the following behavior:

  • The modem uses the Data Carrier Detect (DCD) pin to signal whether it's connected to a host. The computer can generally just read the DCD pin at any time and always know if the modem is in command or data mode. DCD high means data mode, and low means command mode. DCD is a signal sent from the modem to the computer. (Note that DCD also remains high if in command mode after a +++ escape sequence, but in practice, software uses this so rarely, if at all, so it's not really an issue.)
  • The modem interprets the Data Terminal Ready (DTR) pin as a signal from the computer to know when it wants to terminate a call. DTR is a signal from the computer to the modem. The computer keeps DTR high at all times until it wants to terminate a call, at which time the computer lowers DTR for a second or two. The computer also keeps DTR low when no programs are running that want to use the modem - this keeps the modem from answering calls due to auto-answer or otherwise doing something unexpected or undesired. The computer may safely assume that after DTR has been brought low for a couple seconds, that the modem will be in command mode.

Data Link Escape (DLE) messages

For normal dial-up data communications, modems enter data mode only once - starting when the session connects, and ending when the session disconnects. However, when modems are used for fax and voice (audio) communication, they rapidly switch between command and data modes several times during a call. This is because the role of the modem changes more frequently - rather than simply handing bytes from point A to point B, it is either negotiating parameters and pages with a fax machine, or switching between recording, pausing, and playback audio modes.

In fax and voice data modes, sometimes events occur that the modem wishes to signal to the computer regardless of whether it's in command or data mode. An example of such an event is a caller pressing a touch-tone key in voice mode. Other common DLE messages are notifications from the modem that data was lost because the computer is sending data either too slow or too fast, or that the modem hears an unexpected dial-tone on the line (meaning the caller probably hung up), or that the extension handset was picked up or hung up.

This type of event is signalled with a DLE message, which is a single-character message preceded by a Data Link Escape code. DLE is a character sent from the modem to the computer whose definition is unrelated to either command or data mode, and which uses a specific ASCII code (0x10) which never occurs in any AT commands or responses, so that it can be isolated from the command/response stream on that merit alone. In these modes, whenever a DLE (0x10) is sent, the character following it has a special non-command and non-data meaning. For example, a DLE followed by the number 2 means the caller pressed the number 2 on his telephone keypad. This could happen in either command or data mode so long as the phone line is in use by the modem and someone is on the other end of the line.

Of course, the DLE character could legitimately appear in fax or audio data. For this, a special exception is made: two DLE's in a row means "interpret one literal byte 0x10".

DLE is also used lightly in communication from the computer to the modem. One specific DLE event signals the end of a fax page, or the end of an audio file. That event returns the modem back into command mode. Unlike in standard dial-up data mode, dropping DTR isn't an appropriate way to resume command mode since a hangup is not desired, and an escape code with mandatory pauses isn't suitable either. Because of this, literal 0x10 bytes in data are doubled from the computer to the modem as well.

DLE is never used in standard modem-to-modem data modes such as the one used for dial-up Internet access, at least not by the modem itself. In these modes, DLE is passed over the line just like any other character. DLE (and DLE-escaped messages) are only used by a modem for fax and voice applications, when it is specifically placed in a fax or voice mode.

Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Modem — For other uses, see Modem (disambiguation). A modem (modulator demodulator) is a device that modulates an analog carrier signal to encode digital information, and also demodulates such a carrier signal to decode the transmitted information. The… …   Wikipedia

  • Hayes command set — The Hayes command set is a specific command language originally developed for the Hayes Smartmodem 300 baud modem in 1981. The command set consists of a series of short text strings which combine together to produce complete commands for… …   Wikipedia

  • Data Carrier Detect — Data Carrier Detect, abbreviated as DCD, or alternately Carrier Detect abbreviated as CD, is a control signal present inside an RS 232 serial communications cable that goes between a computer and another device, such as a modem. This signal is a… …   Wikipedia

  • Data Terminal Ready — Data Terminal Ready, abbreviated as DTR, is a control signal present inside an RS 232 serial communications cable that goes between a computer and another device, such as a modem. This is a one way high low signal going from the computer to the… …   Wikipedia

  • Data buffer — In computer science, a buffer is a region of a physical memory storage used to temporarily hold data while it is being moved from one place to another. Typically, the data is stored in a buffer as it is retrieved from an input device (such as a… …   Wikipedia

  • Voice modem command set — Main article: Modem Voice modem is a term commonly used to describe an analog telephone data modem with a built in capability of transmitting and receiving voice recordings over the phone line. Voice modems are used for telephony and answering… …   Wikipedia

  • Business and Industry Review — ▪ 1999 Introduction Overview        Annual Average Rates of Growth of Manufacturing Output, 1980 97, Table Pattern of Output, 1994 97, Table Index Numbers of Production, Employment, and Productivity in Manufacturing Industries, Table (For Annual… …   Universalium

  • High-Level Data Link Control — (HDLC) is a bit oriented synchronous data link layer protocol developed by the International Organization for Standardization (ISO). The original ISO standards for HDLC were: *ISO 3309 mdash; Frame Structure *ISO 4335 mdash; Elements of Procedure …   Wikipedia

  • Motorola phone AT commands — AT commands are used to control modems to do their specified functions. Cellular phones are not much different from the old dial up modems that are still found in many computers. This article focuses on the Motorola RAZR V3m from Verizon and the… …   Wikipedia

  • Motorola Phone AT Commands — AT commands are used to control modems to do their specified functions. Cellular phones are not much different that the old dial up modems that are still found in many computers. For this article we will begin focusing on the Motorola RAZR V3m… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”