logo Home Contact Resume Writing Technical projects Scout restoration Vintage computing

Book 3

My third book is released! Learn what you'll need to know in order to become an embedded engineer.

Book 2

Check out my second book; learn practical stuff about building robots and control systems around Linux PCs and the Atmel AVR.

Book 1

My first book gives you all the intro you need on developing 32-bit embedded systems on a hobbyist budget.

A Brief Primer on Modems

This page is a very brief introduction to modem technology. It is written as a general one-stop answer to questions such as "what is a Winmodem, and what are the disadvantages?" It does not attempt to discuss the fundamentals of data communication; that topic will be left for a future article if there is a demand for it.

Let's begin with a naming of parts. The basic functional components of a modem are as follows:

  • Supervisor. This is a small microprocessor which interprets commands from the host computer (the Hayes AT command set), performs data compression and error correction, and generally manages the operation of the whole device.
  • Supervisor scratch RAM.This is a small area of RAM (memory) used by the supervisor to store information temporarily. A typical 56Kbps modem will have 128Kbytes of supervisor scratch RAM.
  • Supervisor ROM. This is a preprogrammed chip which contains the program which the supervisor runs. In a typical 56Kbps modem, this program will be 256Kbytes in size. These days, the supervisor ROM is usually a "flash" chip which can be rewritten by the user when supervisor updates become available.
  • DSP (Digital Signal Processor). This is a second microprocessor, which is specially designed to carry out complicated mathematical operations at very high speeds. The DSP is responsible for generating all data signaling tones and interpreting the sounds received from the other end of the phone line.
  • DSP scratch RAM. This is a small area of very high-speed RAM provided for the DSP to store temporary calculation results.
  • DSP ROM. This is another preprogrammed memory chip containing the program which the DSP runs. Often the DSP is integrated into a single chip with the DSP ROM and DSP scratch RAM, and this chip is referred to as a datapump. Conexant (formerly, Rockwell) is one of the world's largest manufacturers of these integrated datapump chips.
  • DAA (Data Access Arrangement). This is a set of parts which interface the modem to the phone line. Typically the DAA consists of a small transformer, an optoisolator, and a handful of other parts.

Conceptually, all modems contain these modules. However, particularly in recent years, manufacturers have found ways to integrate functionality into fewer components, and they have also made efforts to move functionality out of expensive hardware and into software running on the host computer. As with most other fields, when price reduction becomes a priority, performance tends to suffer.

One of the first attempts to cut down on modem price was taken by Rockwell. They developed a modem referred to as "RPI" (Rockwell Protocol Interface). This modem consisted of a supervisor, supervisor ROM, datapump and DAA only. It did NOT include any supervisor scratch RAM; hence these modems were rather cheaper than regular modems. They were only available in 14400kbps speed.

The disadvantage of an RPI modem is that the supervisor doesn't have enough RAM available to it on-board the modem to be able to perform the error correction and data compression features which are standard on normal modems. Rockwell provided special driver software to make the modem appear normal inside Windows 3.x; if you were using any other operating system, though, the modem's performance was severely compromised. The Windows drivers were also quite unstable in my experience. As the prices of RAM chips started to plummet, RPI modems became less and less attractive to manufacture; they are no longer made and are quite rare.

Nasty as they are, RPI modems are preferable to the current fad of cheap controllerless modems (also referred to as Winmodems or soft-modems. Winmodem was the proprietary trade name of the first commonly available soft-modem, sold by US Robotics. In fact, the first Winmodems were literally given away, for market research purposes).

The controllerless modem was, to the best of my knowledge, first implemented in certain IBM ThinkPads, which contained an "MWave" device that was both a sound card and a modem. A controllerless modem is really just like a sound card with a phone jack on it instead of speaker and microphone jacks. It is JUST a DSP, DSP scratch RAM, and DAA. The computer needs to supervise the DSP at all times; to do this, special driver software is required.

There are now many different brands of controllerless modem, and many computer manufacturers (in fact, most computer manufacturers) bundle them as standard. When they work, they work reasonably well (driver bugs aside), but they have several serious limitations:

  • The processor in your computer has to do extra work just to make the modem run. This means that your other programs will run slower while you're using a controllerless modem.
  • Modem manufacturers only support the most popular operating systems. This means in practice that if you're running anything other than Windows 95 or Windows 98, or MAYBE Windows NT (not all manufacturers support NT), you won't be able to use your modem at all.
  • There is no guarantee that future versions of Windows will work properly with the modem drivers written for current versions of Windows. So, even if you never plan to migrate to or experiment with alternative operating systems, you might still have to buy a new modem when you upgrade to a newer version of Windows.
  • Controllerless modems can be NOTORIOUSLY difficult to set up and get working stably. This is particularly true in the case of ISA (16-bit) cards; frequently, you might add another piece of hardware to the system, Plug'N'Play will try to move resources around to make room for the new hardware, and your modem will mysteriously stop working.

There are three advantages to the controllerless modem, which I will state for fairness' sake:

  • They are cheap. (In my view, not cheap enough to justify the headaches).
  • They consume less power than "real" modems. This is of no great consequence in desktop systems, but it is important for notebooks. I am willing to concede that this is a reasonable excuse for including controllerless modems built-in to notebooks.
  • They are upgradable. Since almost all of the functionality is in the Windows drivers, the modem can be upgraded (theoretically) to support new standards just by updating the drivers - for example, the recent round of upgrades from x2 and K56Flex to the newer V.90 standard for 56kbps communications. However, the same advantage is achievable in "real" modems, and again I feel that the ease of upgrade is not worth the cost in support and performance.

The ultimate recommendation I am trying to make clear here is: avoid hardware that requires strange operating-system-specific drivers, and specifically, avoid bizarre modem technologies. RPI and controllerless (Winmodems, soft-modems) are a very good example of the old adage that "you don't get something for nothing". A "real" 56K modem is frequently available for under $30 from sites like Surplus Direct; don't waste your money on a substandard piece of hardware! and all original content herein is © Copyright 2001 by Lewin A.R.W. Edwards. "" is a trademark protected under U.S. and international law. Infringement or attempted dilution of the intellectual property rights held by Lewin A.R.W. Edwards will be prosecuted to the fullest possible extent.