USB IN THE STACK
USB in the various stackable standards should come as no surprise to embedded developers. It has been turned into a useful embedded interface, not just an external connection for mice, flash drives, and cameras.
Many companies, such as Measurement Computing and Acces I/O, are delivering USB boards with a range of embedded peripherals like analog-to-digital converters (ADCs) and digital-to-analog converters (DACs). These peripherals often come in their own case and are typically connected to a PC for data-acquisition or process-control applications.
The boards also can be acquired without the case for incorporation inside a system. Acces I/O’s USB/104 form-factor boards, like the 16-bit USB-AI16-128A ADC, have a PC/104 form factor, so they can be easily included in a PC/104-style stack (Fig. 7). These boards contain high-retention USB connectors as well as headers. Conventional USB cables can be used to connect embedded processors to these boards. The USB-AI16-128A ADCs can link with up to four analog multiplexer AIMUX-32 boards that are also stackable, though the connection between these boards uses a custom ribbon cable.
Another approach to USB inside the box is StackableUSB. This system employs the same approach as the point-to-point stacks, except the faster PCI Express interfaces are replaced with more USB ports for a total of eight. There’s only one Samtec connector. The StackableUSB standard specifies a PC/104 form factor in addition to half-size and quarter-size boards like the Micro/Sys StackableUSB processor modules (Fig. 8a). These boards include 8-, 16-, and 32-bit Microchip processors. The quarter-size boards are compact and ideal for many applications that previously were the province of PC/104 boards, given the higher performance of the latest host processors as well as the greater variety of peripheral boards.
PC/104 isn’t the only form factor supported. Carrier and hub boards are available for Nano-ITX and Pico-ITX processor boards. PC carrier and hub boards like the Micro/Sys USB3364/74 for PC/104 are available as well (Fig. 8b). The hub versions use a single USB link and include a USB hub to handle the additional StackableUSB slots. In theory, a StackableUSB carrier or hub board could be built for any of the other point-to-point stacks that include at least one USB port, such as the SUMIT A connector.
STACK OFFSET AND OTHER ISSUES
New standards often need to contend with backward compatibility, and many standards that concern stacking fall into this category. One problem is that the mounting holes for the original PC/104 standard are offset instead of spaced evenly in the four corners of the board. The original reason was to prevent improper connections within the stack, although the connectors tend to handle this problem.
The problem now lies in building PC/104-style boards that might include other interfaces such as SUMIT. The SUMIT-ISM combination has already been mentioned, but others like SUMITPCI can be built.
SUMIT-PCI replaces the ISA/ISM socket with a 120-pin PCI- 104 connector. The PC/104-Plus design has one of these connectors on one side and the ISA/ISM connector on the other. If the SUMIT-PCI board is used in a PCI-104 system, then it needs to be rotated. Unfortunately, the holes are not symmetrical. The SFFSIG’s solution is to specify slotted holes on the board since the PC/104 holes are inline but slightly offset.
Another issue deals with the type of processors being used in new stacks. The original PC/104 processors were x86-based to bring a PC architecture to embedded systems. That’s why the ISA bus was utilized.
With new host processors and new interfaces, the choices are expanding. The StackableUSB microcontroller boards from Micro/Sys are just one example.
USB is a common interface for almost all processor architectures, and a wide range of higher-end processors supports PCI Express. The same is true for SPI, LPC, SMBus, and other interfaces available with newer stackable standards. Not all combinations need to be supported, though. For example, a SUMIT SBC could support the low-speed interfaces but not PCI Express. This type of board may still utilize peripherals that supported other interfaces, such as USB or SMBus.
Finally, there’s software support. I’ve touched on this issue before with respect to USB peripherals (see “Embedded USB Tower Of Babel”), but it applies to any of the interfaces found on the new stackable standards. C device drivers are a start, but mixing vendor hardware could be a challenge if each component uses different support for things like USB devices. Including non-x86 processors in this environment also potentially increases complexity, since big-endian and littleendian support becomes a factor.
So which stack will it be? ISA/ISM, PCI, PCI Express, USB, or something else? Options abound. Stacking designs aren’t for every application, but they’re often better than the alternatives in the proper situation.