Critical Embedded Systems
are everywhere . . .
Become a leader in setting new directions!
Portions of this FAQ have been reprinted (with permission) from The VMEbus Handbook, 4th Edition by Wade D. Peterson, VITA 1997. For more details the user is directed to the handbook, or the VMEbus specification(s). Other items have been reprinted from the VITA Journal (with permission) VMEbus FAQ's article series by John Rynearson.
VMEbus is a computer architecture. The term 'VME' stands for VERSAmodule Eurocard and was first coined in 1980 by the group of manufacturers who defined it. This group was composed of people from Motorola, Mostek and Signetics corporations who were cooperating to define the standard. The term 'bus' is a generic term describing a computer data path, hence the name VMEbus.
Actually, the origin of the term 'VME' has never been formally defined. Other widely used definitions are VERSAbus-E, VERSAmodule Europe and VERSAmodule European. However, the term 'Eurocard' tends to fit better, as VMEbus was originally a combination of the VERSAbus electrical standard, and the Eurocard mechanical form factor.
VERSAbus was first defined by Motorola Corporation in 1979 for its 68000 microprocessor. Initially, it competed with other buses such as Multibus™, STD Bus, S-100 and Q-bus. However, it is rarely used anymore.
The microcomputer bus industry began with the advent of the microprocessor, and in 1980 many buses were showing their age. Most worked well with only one or two types of microprocessors, had a small addressing range and were rather slow. The VMEbus architects were charged with defining a new bus that would be microprocessor independent, easily upgraded from 16 to 32-bit data paths, implement a reliable mechanical standard and allow independent vendors to build compatible products. No proprietary rights were assigned to the new bus, which helped stimulate third party product development. Anyone can make VMEbus products without any royalty fees or licenses.
Since much work was already done on VERSAbus it was used as a framework for the new standard. In addition, a mechanical standard based on the Eurocard format was chosen. Eurocard is a term which loosely describes a family of products based around the DIN 41612 and IEC 603-2 connector standards, the IEEE 1101 PC board standards and the DIN 41494 and IEC 297-3 rack standards. When VMEbus was first developed, the Eurocard format had been well established in Europe for several years. A large body of mechanical hardware such as card cages, connectors and sub-racks were readily available. The pin and socket connector scheme is more resilient to mechanical wear than older printed circuit board edge connectors.
The marriage of the VERSAbus electrical specification and the Eurocard format resulted in VMEbus Revision A. It was released in 1981.
The VMEbus specification has since been refined through revisions B, C, C.1, IEC 821, IEEE 1014-1987 and ANSI/VITA 1-1994. The ANSI, VITA, IEC and IEEE standards are important because they make VMEbus a publicly defined specification. Since no proprietary rights are assigned to it, vendors and users need not worry that their products will become obsolete at the whim of any single manufacturer.
Since its introduction, VMEbus has generated thousands of products and attracted hundreds of manufacturers of boards, mechanical hardware, software and bus interface chips. It continues to grow and support diverse applications such as industrial controls, military, telecommunications, office automation and instrumentation systems.
There were several reasons why VMEbus was created in the first place. To understand these, we must first look back to the computer industry in about 1975. At that time if you wanted to buy a computer, then you had to shop at a short list of companies that included Control Data, Cray Research, Data General, Digital Equipment, IBM, Sperry-Univac and a few others. These companies made big, bulky and expensive computers called mainframes and minicomputers.
In the late 1970's a new class of machine called the desktop computer (or personal computer) emerged. These were powered by small, low cost microprocessors that dramatically cut the size and price of the computer. They became immensely popular, and companies began to experiment with them in industrial control systems. They found that desktop computers worked great in those applications, but had two major drawbacks...they weren't durable enough and they couldn't be modified very easily. Both were severe problems for the embedded control systems of the time.
This was the situation in 1981 when the VMEbus architecture was born. The new design combined the VERSAbus electrical specification, which was based on microprocessor technology, with the rugged and modular Eurocard packaging system. Both were proven, off-the-shelf technologies. The resulting combination was successful because it solved the durability problem and could be easily adapted to a wide variety of applications. However, this was only part of the story, as there was also a business strategy behind VMEbus that solved some very difficult market problems.
By the time VMEbus arrived in 1981, the computer industry was maturing, and suffered from a lack of competitiveness. While buyers could choose equipment and software from among a small group of manufacturers, there really wasn't much competition. There were a variety of reasons for this, but a big one was the lack of technical standards. For example, if you designed an accounting system around the IBM 360, then you wouldn't be able to move it over to a Digital Equipment Corporation VAX...at least not without spending a lot of time and money. IBM 360's just didn't connect to VAXes very well, and the software wasn't very transportable from one to another either.
This situation was very good for the computer companies of the day because it allowed each one to dominate a market niche. It was a sellers market where direct competition was squashed because there were few open technical standards. It was also bad for consumers (i.e. the system integrators) who had to pay higher prices for equipment and software. They also had fewer choices because it was very difficult for third parties to enter the market with their own innovative ideas.
VMEbus was done a little differently. The original planners had the foresight to place the VMEbus specification into the public domain. This not only meant that everybody had to conform to the same technical standard, it also meant that they had to compete directly on the basis of price, performance, quality and time-to-market. It was a buyers market that meant lower margins for the suppliers, but also lower costs for the consumer ( i.e. the ones with the money). The adoption of VMEbus as a public domain standard was a shrewd political move because it was easier to accept by a group of competitors. The new market also had low barriers to entry which meant that third parties could enter the marketplace more easily.
In the beginning, many predicted that this new, open marketplace was doomed to failure. There were many sound business reasons for this at the time, but eventually it succeeded. That's because the system integrators...or at least those paying for the system integration...liked the buyer's market better. Ironically, it was also good for the suppliers because the lower prices increased the demand for their products. They made lower margins, but made up for that with higher volumes.
Table 1 shows the general VMEbus features under the VME64 and VME64x specifications. A variety of other 'accessory' standards are also available with VMEbus products, but may not be mentioned in this FAQ. These include (but are not limited to) mezzanine modules, crossbar switches, serial channels and high-availability type products.
|Table 1. General VMEbus Features|
|Transfer Mechanism||Asynchronous, with both multiplexed and non-multiplexed bus cycles.||There is no central synchronization clock.|
|Addressing Range||16, 24, 32, 40 or 64-bit||Address path width selected dynamically.|
|Data Path Width||8, 16, 24, 32 or 64-bit||Data path width selected dynamically.|
|Unaligned Data Transfers||Yes||Compatible with most popular microprocessors.|
|Error Detection||Yes||Using BERR* signal.|
|Parity Protection||No||There are no parity signals on the backplane, but parity protected boards are quite common.|
|Data Transfer Rate||0 - 500+ Mbyte/sec||See Table|
|Interrupts||7 levels||Priority interrupt system with 8, 16 or 32-bit STATUS/ID (interrupt vector).|
|Multiprocessing Capability||1 - 21 processors||Flexible bus arbitration with true peer-to-peer multiprocessing.|
|System Diagnostic Capability||Yes||Using SYSFAIL* signal and VME64x test & maintenance bus.|
|Geographical Addressing||Yes||Under VME64x|
|Live Insertion Capability||Yes||Using optional standards.|
|Control & Status Registers
(Plug & Play Support)
|Yes||Under VME64 & VME64x|
|Mechanical Standard||3U single-height Eurocard
6U double-height Eurocard
9U (optional standard)
|160 x 100 mm Eurocard
160 x 233 mm Eurocard
367 x 400 mm Eurocard
|User Defined I/O||Yes||Through the Front Panel
and P2/J2 User Defined Pins
|Conduction Cooled Version
|Yes||Under IEEE 1101.2|
|Maximum Number of
Card Slots in Backplane
|21||The number of cards is limited by how many boards, located on 0.8" centers, can be placed into a 19" rack panel.|
VMEbus is used in a wide variety of applications. In many cases, the VMEbus system design has been tailored to support specialized applications as well. Some of the most popular include:
The original VMEbus specification (IEEE-1014-1987) has a robust set of features. These are just a subset of the current VMEbus offerings, but included:
Noteworthy functions include (up to) 32-bit address and data buses, multiprocessing capability and seven level interrupt protocol. Both the address and data buses can be dynamically configured (i.e. they change widths automatically). This allows system expansion as microcomputer technology grows. It also handles data transfer speeds to 40 Mbytes/second.
VMEbus uses a master-slave architecture. Functional modules called masters transfer data to and from functional modules called slaves. Since many masters can reside on the bus it is called a multiprocessing bus. Before a master can transfer data it must first acquire the bus using a central arbiter. This arbiter is part of a module called the system controller. Its function is to determine which master gets access to the bus. All bus activity takes place on five sub-buses. These are called the Data Transfer Bus, the Data Transfer Arbitration Bus, the Priority Interrupt Bus, the Utility bus and the Serial Bus.
VMEbus is an asynchronous bus. That means that there are no clocks used coordinate data transfers. Data is passed between modules using interlocked handshaking signals. The cycle speed of each transfer is set by the slowest module participating in the cycle.
The maximum speed of asynchronous buses is limited by the propagation delay of signals across backplanes and through buffer ICs. A VMEbus backplane can be up to 500 mm (19.68") in length and can have relatively high inductive and capacitive loads on the signal traces. If VMEbus were synchronous, it would probably have a system clock speed of around 10 MHz. This allows about 100 nanoseconds for a signal to propagate from a master at one end of a bus, through the backplane and interface ICs, and then back again.
As we'll see shortly, the basic capabilities of VMEbus have been greatly expanded since its inception. These enhancements have taken the form of VME64, VME64x and VME320 technologies.
The most recent version of VMEbus is the ANSI/VITA 1-1994, which is also known as VME64. Since its approval in 1995, a variety of boards and chips have been introduced to support the new standard. As the next generation architecture for VMEbus, VME64 promises to extend the life of VMEbus well into the 21st century. The new standard offers a much-needed 'face-lift', with enhancements such as higher bandwidths, larger address spaces and easier-to-use cards.
VME64 is a mechanical and electrical 'superset' of the original IEEE 1014-1987 standard. It offers new features such as:
Actually, the term 'VME64' is something of a misnomer, as all VMEbus modules that conform to the IEEE-1014-1987 are now considered to be VME64 compliant (regardless of their data transfer capability). For example, a 16 or 32-bit CPU board designed under the older specification can be (correctly) identified as VME64 compatible.
All of the enhancements under VME64 and VME64x are optional. New products work in conjunction with older 'legacy' boards, thereby providing a smooth upgrade path for system integrators.
In 1997 the VITA Standards Organization (VSO) adopted a superset to the VME64 standard. The new standard is called the VME64 Extensions (VME64x). VME64x adds new capabilities such as:
The VME64x standard also lays the groundwork for the High Availability and Live Insertion (Hot Swap) VME64x standards. These are emerging standards, and will not be covered in great detail in this FAQ.
All legacy VME and VME64 modules are forward compatible to VME64x backplanes and sub-racks. That means that older bus modules can be plugged into newer systems.
In general, the reverse is also true. Bus modules designed to the VME64x standard are also backward compatible with older backplanes and subracks. For example, the new 160 pin connectors can be plugged into an older backplane. However, there are a few exceptions to this. For example, if a board requires the new +3.3 VDC power supplies, then it will not work in an older backplane (which does not have these power pins).
The VME64x standard describes many optional features. However, the standard insists that a minimum set of features be present on boards and backplanes before they are considered to be VME64x compliant. All of the other features in the standard are considered optional. For example, the minimum features that must be present on 6U modules include:
The minimum features that must be present on a 6U backplane include:
In 1997 a modified VMEbus architecture called VME320 was released by Arizona Digital, Inc. The VME320 architecture was designed for operation at over 320 Mbyte/second, and peak bandwidths of over 500 Mbyte/second. VME320 uses a new backplane design and bus protocol. It is a proprietary architecture, and the inventors claim to have patent protection on the backplane technology within the United States of America. However, VMEbus modules can be designed, built and sold without license.
The VME320 backplane uses a 'star' interconnection method to speed up the VMEbus backplane itself. All of the interconnections on the backplane are connected together at the middle slot of the backplane. In a nutshell, the idea behind this backplane is that the leading edges of signals, propagating from slot-to-slot, will effectively pass through only one slot on the way to their destination. This allows tighter skew delays on the backplane, thereby speeding up the system.
The VME320 concept uses a new bus protocol called 2eSST. The protocol allows VME320 compatible modules to interact at much higher speeds.
VMEbus has the largest software base of any computer architecture. That's quite a claim, but it is supported by the fact that there are over 103 known, commercial operating systems running on VMEbus. Other, proprietary operating systems are also known to exist. Table 2 shows just a few examples.
|Table 2. Popular VMEbus Operating Systems|
|UNIX Style OS||WINTEL Style OS||Real Time OS|
VMEbus is quite fast, especially in it's most recent manifestations. In fact, it is arguably the fastest of all of the popular microcomputer buses, and certainly the fastest among the 'big commercial backplane buses' (i.e. > 8 slots). Table 3 shows the typical, maximum data transfer speeds that can be achieved between VMEbus modules. The actual data transfer rate of a VMEbus module may be slower than that shown in the Table. The user is advised to contact the board manufacturer for more details.
|Table 3. Maximum Data Transfer Speeds|
|Topology||Bus Cycle||Maximum Speed|
|VME320||2eSST||320 undefined 500+
For further information about the speed of VMEbus, click here.
For the purposes of this FAQ, we'll describe the VMEbus architecture from the standpoint of the VME64 and VME64x standards. Furthermore, we'll use the nomenclature that's used in the standard(s).
The VMEbus architecture is generally described using a concept of functional modules. These functional modules are a conceptual tool. However, in some cases they also describe actual hardware. Table 4 describes all of the functional modules available on VMEbus.
|Table 4. VMEbus Functional Modules|
|Master||Can initiate bus cycles on the Data Transfer Bus (DTB).|
|Slave||Can detect and participate in DTB cycles.|
|Location Monitor||Monitors the DTB and asserts on-board signals if certain addresses are selected.|
|Bus Timer||Measures how long a DTB cycle takes. If a cycle takes too long, it asserts BERR*. A type of watchdog timer.|
|Interrupter||Generates interrupt requests.|
|Handler||Responds to requests from interrupters.|
|IACK Daisy-chain Driver||Drives the IACK* daisy chain. Usually part of the slot 01 system controller module.|
|Requester||Used to request ownership of the DTB.|
|Arbiter||Monitors and grants ownership of the DTB.|
|System Clock Driver||Provides a stable, 16 MHz utility clock.|
|Power Monitor||Generates SYSRESET* and ACFAIL* signals.|
The various functional modules communicate with each other over the five sub-buses shown in Table 5. The sub-buses are also a conceptual tool, and are often used in conjunction with each other.
|Table 5. VMEbus Sub-buses|
|Data Transfer Bus (DTB)||Used to pass address and data information.|
|Data Transfer Arbitration Bus||Used to obtain ownership of the DTB.|
|Priority Interrupt Bus||Used to pass interrupts between modules.|
|Utility Bus||A collection of utility functions such as a system reset signal and a utility clock.|
|Serial Bus||A two-wire serial bus.|
Bus cycles are impressed upon the sub-buses. The standard VMEbus cycle is the READ/WRITE cycle, and can transfer 8, 16, 24 or 32-bits of data during every transaction. There are other bus cycles that are more specialized, or allow faster operation. These are summarized in Table 6.
|Table 6. VMEbus Bus Cycles|
|Data Transfer Bus Cycles|
|Read/write Cycle||Basic data transfer cycle that is used to pass only one chunk of data on every bus cycle.|
|Read-modify-write Cycle||An indivisible bus cycle that is used to pass semaphore information in multiprocessing systems.|
|Block Transfer Cycle||A bus cycle that moves data in a 'block' or 'burst' fashion. Usually faster than read/write cycles.|
|Multiplexed Block Transfer Cycles||Similar to the BLT cycle, except that the address and data lines are combined to form wide address and data buses. Includes MBLT and MD32 cycles.|
|Two-edge Cycles||Similar to the MBLT cycle, except that two-edge handshaking is used. Includes 2eVME and 2eSST cycles.|
|Address-only cycle||A type of cycle that only broadcasts an address. Includes the ADO and ADOH cycles.|
|Data Transfer Arbitration Bus Cycles|
|Arbitration Cycle||Grants ownership of the bus.|
|Priority Interrupt Bus Cycles|
|IACK* Cycle||Method to pass interrupts across the backplane.|
The VMEbus specification allows different address and data widths to be used based on an application requirement. While all combinations are possible, certain combinations are more common than others. For example, A16/D8(O) is common for simple I/O boards while A32/D32 and A32/D64 are common for high performance SBC modules. As stated earlier A24 is usually found only on older 6U modules and is quickly being replaced by A32.
During the various enhancements to the bus in VME64 and VME64x, additional cycles were added. This is possible because VMEbus uses something called address modifier codes to 'tag' each bus cycle. As new cycles are developed, they are tagged with a new address modifier code, thereby insuring compatibility between modules. Future bus cycles are also planned.
The VMEbus specification allows full peer-to-peer multiprocessor capabilities. This is done with a flexible bus arbitration scheme that allows up to 21 masters in each system. A central bus arbiter, which is located in the first slot in the backplane (and is part of the VMEbus system controller), determines which master may use the bus. Arbitration methods include priority, round-robin and other scheduling algorithms.
There are two mechanical form factors for VMEbus modules. These are called single and double height modules. The smallest is the single height module, and connects to the P1/J1 connector. Traditionally, these modules can generate or accept up to 24-bit address and 16-bit data transfers. However, larger address and data transfers can new be achieved with A40/MD32 and 2eVME cycles (which are allowed under VME64 and VME64x standards).
Single height modules are commonly used if space is limited. Because of their size, they are also more resilient to shock and vibration than double height boards.
The larger and more popular size VMEbus board is the double height module. These are electrically compatible with single height boards (which use only the P1/J1 connector). Traditionally, 6U modules can generate or accept up to 32-bit address and 32-bit data transfers. However, the VME64 and VME64x specifications have introduced wider, 64-bit transfers in the MBLT and 2eVME cycles.
Single and double height modules are sometimes referred to as 3U and 6U boards. The 'U' is a unit of measure for the front panel, where each 'U' is equal to 1.75 inches.
VMEbus closely follows the IEEE Standard for Mechanical Core Specifications for Microcomputers (IEEE 1101). This specification shows the dimensions for a variety of board sizes (up to 12U x 400 mm), as well as sub-racks and other enclosures. The IEEE 1101 was later superseded by the IEEE 1101.1-1991.
I/O cabling can be routed through the front panel of the module, or through the P2/J2 user defined I/O pins. Furthermore, the VME64x standard allows the use of a rear transition module. The rear transition module cards are defined by the IEEE 1101.11 standard.
Some manufacturers also offer triple height (9U) boards. Strictly speaking, these modules are not supported by the VME64 specification. However, some users choose to mount 3U, 6U and 9U boards into a single sub-rack. Most Eurocard packaging systems will support multiple card sizes in a single chassis. For example, an adapter can be used to install a 6U board into a 9U card slot.
A new specification for 9U x 400mm size Eurocards has been completed by the VITA Standards Organization. It is called the VITA 1.3-1999.
The use of two standard card sizes has proven to be one of the biggest features of VMEbus. Users that have tight space requirements or severe shock & vibration constraints may choose the single height module. Users that have the space can go with the larger and more popular 6U card.
VMEbus backplanes are available in lengths between one and twenty-one slots. On standard backplanes, boards are located on 0.8" centers (i.e. 0.8" pitch). There are three general types of backplanes available:
Each of these styles of backplanes are available in 3U and 6U form factors. Furthermore, there are many options available on VMEbus backplanes. Some of the more popular options include:
The maximum size of all VMEbus backplanes is 21 slots (19" width). The fundamental limits on the maximum length are how much drive current is available on each of the VMEbus boards, and the time delay down the backplane. If more slots are needed, there are generally two ways to handle the problem: (1) use a VMEbus-to-VMEbus bridge card set or (2) use a pair of 'reflective memory' cards. The bus-to-bus bridges essentially allow bus cycles on one backplane to appear on another. The reflective memory cards allow a memory segment on one backplane to appear on another. There are several vendors for each of these types of products.
Another popular VMEbus card style is the conduction cooled module. These are used mainly in military and aerospace applications where convection cooling cannot be used. These allow heat to conduct through the printed circuit board or through a conduction plate on the backside. Special expanding card guides then transfer the heat through rails and then out to the chassis.
The VME64x specification describes three connectors for VMEbus modules. These are called the P0/J0, P1/J1 and P2/J2. The 'P' and 'J' nomenclature refers to the PLUG and JACK connectors, which reside on the bus module and backplane respectively.
Originally, all VMEbus products used a 96-pin DIN 41612 connector. These connectors are very reliable, are low cost, and are available from a variety of suppliers. The VME64 and VME64x standards now permit a new 160 pin connector, which is shown in Figure 1. The 160 pin connector has thirty-two additional pins located on both sides of the original DIN 41612 connector. These are designated as the 'z' and 'd' rows. The new connector was added for two reasons:
Four pre-charge pins are provided on the new connector. These form a make-first, break-last connection. This feature is intended for hot-swap boards, and are used to pre-charge bus interface circuitry.
These connectors are available from Harting Electronik and AMP Inc.
The 160 pin connector is completely optional in the VME64 standard. The connector itself is not needed to support any of the newly defined functions. For example, it is not needed to support the new sixty-four bit address and data cycles. However, in VME64x boards and racks the new connector is needed to support additional pins such as +3.3V power and geographical addressing.
The 160 pin connector is designed to allow full forward and backward compatibility: older legacy boards will fit into new backplanes (and vice-versa).
Description of the P2/J2 user defined I/O pins.
The VME64x standard allows the use of a 95 pin P0/J0 connector. This connector is placed between the P1/J1 and P2/J2 connectors.
The P0/J0 connector was added because of the higher I/O demands now placed on VMEbus systems. This is especially true in military and telecom applications. For example, in many applications the use of front panel cables are frowned upon because:
The P0/J0 connector conforms to the IEC 1076-4-101 standard. These connectors are available from AMP Inc., and ERNI components. Unlike the DIN 41612 connector family, they include specifications for mating impedance and maximum capacitance. This makes them an excellent choice for high speed signals.
The VME64x standard also allows the use of custom connectors in the region between the P1/J1 and P2/J2 connectors. For example, a coaxial cable or fiber-optic connector could be used. This practice is not recommended, as the board may not be compliant with VME64x backplanes. However, if a custom connector must be used, then the VME64x standard recommends that the front panel keying mechanism be installed to prevent installation of an incompatible module.
I/O from the P0/J0 connector can be routed:
At first glance it would appear that all of these options on the P0/J0 connector could lead to incompatibilities. However, this problem is no worse than on the P2/J2 user defined pins. Also, VME64x module keying can also be used to insure that VMEbus modules are placed into compatible backplane slots.
Mezzanine modules are a popular way to customize a VMEbus card. These cards generally fit on top of a common base board. This allows users to 'mix-and-match' the I/O functions that they need. The mezzanine modules have become very popular in recent years. That's because they save a great deal of hardware development time, and inventory. Software development is also faster and less expensive.
While the mezzanine module concept has been around for many years, the VMEbus mezzanine industry has been fragmented because of all of the types of mezzanine cards. This situation has improved steadily as new standards have been adopted. This FAQ will not attempt to describe all of the types of VMEbus mezzanine cards.
There is currently a plethora of mezzanine standards that are available. Currently, there are over 30 types available for VMEbus modules. However, two types of mezzanine modules seem to be gaining a substantial foothold. These are the CMC/PMC and IP (IndustryPack®) bus modules.
For example, the CMC/PMC form factor uses a common mechanical footprint for VME64, Multibus I, Multibus II, Futurebus+ and generic platforms. The CMC (or Common Mezzanine Card) part of the system describes the mechanical form factor, which is shown in Figure 2. Impressed upon the connectors is a local PCI (Peripheral Component Interconnect) bus, hence the name CMC/PMC.
Copies of the VMEbus specifications are available from a variety of sources. That's because VMEbus has undergone various revisions through different organizations.
American National Standards Institute (ANSI)
11 West 42nd Street
New York, NY USA 10036
TEL: (212) 642-4900; FAX: (212) 398-0023
IEEE Service Center
Publications Sales Department
445 Hoes Lane; P.O. Box 1331
Piscataway, NJ USA 08855-1331
IHS Global Engineering Documents
15 Inverness Way East
Englewood, CO USA 80112
TEL: (303) 792-2181
VMEbus related application notes
Obsolete VMEbus equipment (new or used) can be obtained from a variety of sources, including the following firms (note: these firms are not VITA members and this list is provided for convenience only):
Online auction houses (such as ebay) very often have used VMEbus equipment for sale.