[Technology Report]
Interface Options Abound For MCU Networking
Microcontroller connectivity is growing as additional standard MCUs sport one or more network interfaces.
Microcontrollers (MCUs) no longer operate in isolation. Distributed computing resides everywhere, from the plant floor to automobile interiors. MCUs with dual Ethernet or CAN (controller-area network) interfaces are readily availableand that's only the tip of the iceberg. Networks come in
Networks come in all shapes and sizes. Many embedded systems have multiple networks. The new Advanced TCA (Telecom Computing Architecture) is noted for its switch-fabric network. It has an Ethernet network and uses a pair of inter-integrated circuit (I2C) buses to support the IPM Controller (IPMC) that's part of the shelf management support (see "Advanced TCA: A High-End Switch Fabric That Costs Less," March 17, p. 36).
Choosing a network and matching MCU is relatively easy these days, even if the communication software can get rather complex. Partitioning an application into multiple nodes or networks can benefit from making the solution more robust. Networking can also minimize cabling requirements, distribute processors to where they're needed most, and allow systems to consist of an array of low-cost MCUs instead of a couple of high-performance processors.
MCU networks cover a wide range of embedded environments. Ethernet is the most popular, especially for Internet and local-area network connectivity (Table 1). RS-232 interfaces are popular, but these tend to be used for controlling a single device. Applications like network gateways dictate the interface. But many embedded design problems let developers choose one or more suitable network interfaces.
NETWORK AND PERIPHERALS Many popular network interfaces are popping up in MCUs (Table 2). Serial interfaces are very popular, but they tend to be used for serial interface devices rather than network support. Some are implemented for a SLIP (serial link interface protocol) or PPP (point-to-point protocol) connection to the Internet via modem.
Ethernet is finally common now that high-speed hardware can be easily incorporated into a system-on-a-chip (SoC). Ethernet's addition has been critical to linking devices to the Internet.
Lately, the Universal Serial Bus (USB) has appeared in more MCUs, primarily so that an MCU can be a USB peripheral. USB host support is often available where MCUs are used with PC-style devices like keyboards. But it works equally well for storage devices and other USB peripherals. USB is becoming more important in external embedded networks that are close to the host.
The interface that has yet to creep into MCUs is 1394. This may change with the advent of 1394b and its emphasis as a multimedia networking infrastructure.
CAN (controller area network) is one network interface whose popularity is on par with Ethernet, especially when it comes to automotive and process control environments.
DEVICE NETWORKS MCU networks are more commonly linked using CAN, LIN, SPI, I2C, and 1Wire (see "1Wire Networking," below). Although these interfaces run slower than Ethernet, they're easier to implement. Some device masters, like the 1Wire protocol, can be implemented completely in software. Few devices can do this for Ethernet.
CAN has found a home in the auto and process control industries. It's widely supported and suits a range of embedded applications. CAN is often used in a hierarchical network with LIN.
At 20 kbits/s, LIN fits low-performance networks. Targeting the automobile industry, LIN comes in handy for sensor networks in other embedded applications. CAN and LIN have the advantage of a one-wire design. As with most one-wire designs, a common ground is assumed to be available to devices.
National Semiconductor and Motorola developed SPI. It uses a master/slave architecture with slaves daisy-chained together (Fig. 1). Slaves are very easy to implement and require only a shift register and latch in the simplest case. The downside is that each slave requires its own chip select. The architecture works well for a small network of up to a dozen slave devices, although any number can be handled.
I2C, which uses a two-wire clocked bus, supports a master/slave or multiple master architecture. It has found a home in a wide range of embedded applications, from Advanced TCA to battery monitoring. A high-performance version runs at 3.4 Mbits/s, but it works equally well in the 100-kbit/s range. Philips, for one, has been a proponent of I2C.
I2C's synchronous nature and its per-byte acknowledgement make it relatively easy to implement in hardware. It doesn't lend itself to a UART implementation without a good deal of software overhead. I2C enjoys wide vendor support comparable to Ethernet, CAN, and LIN.
The 1Wire architecture is a proprietary, one-wire, master/slave network. Masters can be developed by anyone, but slaves must be licensed. Various sources offer the 1Wire slave devices. The architecture is very useful for simple, low-power devices.
Individual network interfaces have been available on MCUs for quite some time. Lately, a greater number of MCUs are appearing with more than one interface. This allows the MCUs to act as gateways between networks.