Embedded Open Modular Architecture

From eLinux.org
Revision as of 17:00, 19 January 2012 by Lkcl (talk | contribs) (Q7 form-factor)
Jump to: navigation, search


With recent embedded processors becoming mainstream and powerful enough for general-purpose computing, the Embedded Open Modular Architecture is an initiative to create interoperable hardware standards for mass-volume systems based around embedded processors. The first initiative is to re-use the PCMCIA form-factor, in a similar way to Conditional Access Modules. Below, various alternative interfaces are analysed and shown to be less favourable, despite the greatly-reduced pin-count of PCMCIA (68).

Interface Types

The re-use of industry-standard connectors and sockets is a very common practice, but usually it is for embedded or factory-installation purposes only. Typically in the Embedded world, SO-DIMM is the form-factor of choice to re-purpose, because CPU, RAM, NAND Flash and even some micro-connectors can fit onto the 35mm x 68mm size. Other suitable form-factors include MXM and PCMCIA (CardBus) and potentially ExpressCard, although the limited pincount of ExpressCard makes it much less attractive. Cogcomp have defined their own standard, and have achieved significant backwards-interoperability over a very wide range of CPU types - however this is not re-use of a de-facto standard, but is included for completeness.


PC104 and other such small-form-factor embedded boards are based around the assumption that the architecture is based around the x86 PC. In fact, PC104 is a compact form of the ISA bus. It is mentioned here for completeness, because due to its age it can be considered as a legacy interface, where the pins, connectors, headers and PCB sizes could potentially be re-used for alternative purposes. The problem with that is that PC104 was never a mass-produced interface in the first place, but is mentioned here merely for contrast and for completeness.

Mini PCI

Mini PCI (not to be confused with Mini PCIe) has 3 variants, one of which is a 124-pin standard. Pictures have been seen of removable Mini PCI cards and ejector assemblies (similar to PCMCIA but wider). Tracking down the supplier proved impossible: Mini PCI never really took off into a mass-produced standard. If it still existed, the removable Mini PCI card form-factor would be perfect, because of the extra pins available (124) and the rugged nature of the socket and housing that was seen (once).

SO-DIMM form-factor

This form-factor is suitable for factory-only installation. The 35mm x 68mm size also makes it very tight to fit more than the CPU (up to 25mm sq), NAND Flash (up to 20mm) and more than two RAM ICs (appx 20mmsq each), as well as PMICs. However, some companies such as Gumstix have created a de-facto modular standard for their own products such as the Overo range, using the more expensive POP RAM to make space even for on-board WIFI SIP modules. The majority of SO-DIMM form-factor modules, such as Magniel's OMAPMOD, are double-sided.

All of these options are fantastic for prototyping and for the low-to-mid-range volumes, especially for Hardware enthusiasts. However, when it comes to placing designs based around SO-DIMM and other similar form-factors of this size into mass-volume production, the space-saving decisions that had to be made immediately become a problem. Many Chinese Factories are simply not equipped to handle the higher number of layers required, nor the smaller PCB track sizes, and simply do not have access to the plasma-based equipment needed to solder Package-on-Package ICs.

PCMCIA form-factor

Use of the PCMCIA 85mm x 55mm form-factor for purposes other than the CardBus standard is not without precedent: [Conditional Access Modules] do not comply with the CardBus electrical and electronic specification. The size and design however is highly suited to hot-swapping and provides convenient carrying and storage. It therefore makes sense to put the entire embedded computer onto the card. The size is large enough to fit CPU (up to 25mm), up to 4 RAM ICs (typically 20mm sq), a NAND Flash IC (up to 20mm) as well as PMICs and other components - even single-sided, thus reducing the cost.

The specification is at Embedded_Open_Modular_Architecture/PCMCIA.

Compact Flash form-factor

Compact Flash Type II Cards are 43mm x 36mm x 5mm, and the connector is 50 pins. There is therefore just enough space to fit a CPU, RAM and NAND ICs. There exists precedent for such tiny processor boards, in the form of the [Enyxos4210 CPU Board] from hardkernel.com. In the case of the Enyxos4210, a Samsung Dual-Core 1ghz ARM Cortex A9 is used, with POP DDR RAM. Unlike the hardkernel CPU board, however, the Compact Flash form-factor would allow the use of the bottom of the board for ICs instead of B2B connectors, because the Compact Flash connector is on the edge. A typical layout would therefore involve CPU, PMIC and one other (small!) IC on the TOP side, and NAND Flash and possibly 2 low-cost DDR RAM ICs on the BOTTOM side.

The only distinct disadvantage of the reuse of Compact Flash is that it is sufficiently small that re-use of existing casework for CF is not really possible. With PCMCIA, existing cases can be purchased off-the-shelf, leaving just the moulding at the end as the only customised casework required. Additionally, the smaller size may require high-density parts for high-specification devices, increasing the price. However for ultra-low-cost cards, the lower part count would not be a problem.

The specification is being developed at Embedded_Open_Modular_Architecture/CompactFlash.


Q7 http://www.qseven-standard.org/index.php?id=43 is an embedded 70mm x 70mm standard which is large enough and powerful enough to house x86 CPUs as well as embedded ARM SoCs. However, like the other edge-connector-based standards, it is not suitable for mass-volume user-installable usage, being only suitable for factory-installation. Also, as it is a larger form-factor, it rules out usage for smaller devices (it is almost 400% bigger than Compact Flash, for example). Also, the Q7 standard sets quite a high bar for the required interfaces, including PCI-e, MIPI and others, all of which must be placed on the edge-connector, thus requiring some 200+ pins. It is mentioned here for completeness.

Contact and Discussion

For questions, comments and general discussion, please use arm-netbook mailing list