PCMCIA Cards: Play Your Cards Right

PCMCIA is more than just a mouthful, it is an essential addition for users on the move. Roger Gann tracks the latest developments from the PC card pack

The birth of the modern PC card can be traced all the way back to 1985 and the Japan Electronic Industry Development Association (JEIDA), an organisation formed to promote memory cards, PCs and other portable information products.

The Personal Computer Memory Card International Association (PCMCIA) was founded in 1989 by a small group of companies (including Poqet), that wanted to create a standard for memory cards ? back then there were 10 different types of memory cards sold by different manufacturers, all largely incompatible.

It soon became clear that using a PCMCIA/JEIDA card purely as a memory card was too constricting and that I/O capabilities were a must-have. It also became clear that a PC card slot could give notebooks and portables substantial expansion capabilities. In fact, PC card technology has fast become the preferred bus expansion interface in mobile com- puting and is a growing force in the mobile computing and consumer electronics markets.

Originally, these credit card-sized cards were referred to as PCMCIA cards, but in 1995, the association took the wise step of renaming them PC cards. Although personal computer appears in the association?s name, PC cards can be used in many other devices as well, including security access, as smart cards and in set-top digital video broadcasting decoders.

The role of the PCMCIA has been to develop PC card standards. Although not sanctioned by an official standards body such as the IEEE or ANSI, the PCMCIA specifications none the less provide a series of recommended guidelines for the physical specification of cards; the physical and electrical specification of sockets; and the interaction among platforms, system software, and cards. Because so many firms are actively involved in the PCMCIA (the group has between 450 and 500 member companies), its guidelines amount to a de facto standard.

A comprehensive list of PC card products and services is available at www.pc-card.com/

Card Types: The PC card standard defines the physical specifications for three types of PC cards, with additional provisions for extended cards. All three card types are the same size (85.6mm by 54mm) and use the same 68-pin connector. The only difference between the card types is thickness ? 3.3mm, 5mm, and 10.5mm for Type I, Type II and Type III cards respectively.

Because they differ only in thickness, a thinner card can be used in a thicker slot, but a thicker card cannot be used in a thinner slot. A notebook with a pair of vertically stacked Type II sockets can take two Type I cards, a Type I and a Type II card, two Type II cards, or a single Type III card.

Some manufacturers have made still thicker cards for larger capacity drives; although this is often referred to as Type IV, this hasn?t been officially adopted by PCMCIA. While the PCMCIA standard has been considerably extended, the standard still offers good backward compatibility.

Type I PC cards are typically used for memory devices such as Ram, Flash, OTP, and SRam cards. Type II PC cards are typically used for I/O devices such as modems, network cards and Scsi cards. Type III PC cards are used for devices with thicker components, such as hard disks.

Extended cards allow the addition of components that must remain outside the system for proper operation.

n Release Numbers: The release number refers to the version of the PC card standard on which a particular card or system was based. Release 1 supported memory only, and 2.x releases supported memory and I/O applications.

PCMCIA standard release 1.0/JEIDA 4.0 ? June 1990: The first release of the standard defined the 68-pin interface and the Type I and Type II PC card form factors plus the electrical and physical requirements for memory cards only. It defined the Metaformat or Card Information Structure (CIS) which is critical to interoperability and plug-and-play for PC cards. Support for I/O was conspicuous by its absence.

PCMCIA standard, releases 2, 2.01 and 2.1 ? 1991-1994: The second revision extended support to I/O devices. Release 2 also added various clarifications to the first release, support for dual-voltage memory cards, and sections dealing with card environmental requirements and test methods.

Release 2.01 added the PC card ATA specification, the Type III card type and the auto-indexing mass storage (AIMS) specification, geared toward digital images, was also added. It also included the initial version of the Card Services Specification. Release 2.1 further enhanced the card and socket services specification, and made improvements to the card information structure.

n PC Card Standard ? February 1995: This revision added information to improve compatibility and added support for features such as 3.3V operation, DMA support and 32bit cardbus bus mastering.

PC Card Standard ? March 1997: The most recent release of the PC card standard addresses the problems of overheating. PC cards have always run warm and the latest card bus cards will run even hotter. The new standard uses a simple numerical method of matching the thermal rating of a PC card with the thermal rating of the host system. The host software will be able to interrogate the PC card and will warn if there?s a possibility of overheating.

PC Card Software: Each PCMCIA slot (more properly called a socket) is connected to a PCMCIA adaptor. An adaptor can control one or more slots. Unlike other PC I/O hardware, which is fairly standard, there are many different adaptors on the market and they are incompatible with one another. Software written for one adaptor won?t work with another. The solution? Card and socket services device drivers. These are to PC cards what Dos and the Bios are to the base PC system.

Socket Services: Once loaded, socket services talks directly to the PCMCIA adaptor hardware and other programs talk to socket services to control a PC card in one of that adaptor?s slots. This gives higher-level programs a single, con- sistent way of dealing with PC cards, because the interface to socket services is defined in the PCMCIA standard. Socket services is usually a small program which only takes a few thousand bytes of memory.

Card Services: OK, so socket services controls software access to the PC card socket or slot ? what about the PC card itself? Another software layer is required, card services, which attempts to arbitrate hardware resources between competing PC cards, such as IRQs, DMA channels, I/O ports and memory ranges.

The availability of these resources may be determined by a separate executable or it may be built into the generic enabler. As each PC card is inserted, card services allocates these resources as needed to configure the card; when cards are removed, these resources are returned to card services to reuse. Note that while this arrangement ensures PC card harmony with regard to hardware resources, it doesn?t prevent them from clashing with other PC components.

Card services requires at least 4Kb of memory for its own use but some implementations can take 40 to 50Kb of conventional memory. If you run large Dos programs, this can be a problem. Loading card services high using a memory manager such as EMM386 or Qemm can sometimes help this situation. The loading order is important: socket services drivers must be loaded before card services, because card services uses socket services to access the adaptor hardware.

Enablers: Although PCMCIA doesn?t define any software layers above socket services and card services, there are usually one or more memory-resident programs loaded which actually configure the PC cards as they are inserted. These drivers are called enablers. The enabler?s job is to place the card in the system at a particular I/O address, memory address and/or IRQ. Generic enablers can configure a variety of common card types such as modems and network cards, but because of this they tend to be memory hogs, consuming as much as another 40 to 50Kb.

Specific enablers, designed to configure a single type of PC card, have a much smaller memory footprint. A third type of enabler is called a point enabler. This is similar to a specific enabler in that it is designed to configure a single type of PC card. However, it talks directly to the hardware and so doesn?t require socket services or card services, thus saving memory.

Other Drivers: Some Type III cards feature 1.8in IDE hard disk drives. Others are solid state (Ram-based) storage cards. Both require AT Attachment (ATA ? another name for IDE) drivers. Flash filing systems (FFS) are drivers which handle flash memory cards. Flash memory cards also appear to the system as disk drives, but have some special features. For example, flash memory has a limited write cycle, perhaps 10,000 writes or so; after that, the card wears out. Erasing and rewriting information on these cards is also a relatively slow procedure.

The FFS driver performs wear balancing to avoid wearing out the media prematurely, and works to hide performance delays in writing to the card. And ordinary static Ram (SRam) PC cards require a special driver. Operating systems that support Dos and Windows 3.1x still rely on separate card and socket services device drivers, which can be cumbersome to install and optimise, particularly where conventional memory is at a premium.

In contrast to MS Dos 6.22 and Windows 3.1x, IBM?s PC Dos 7 and OS/2 Warp 4 come complete with these drivers. They are also built into Windows 95, which, with its plug-and-play capabilities, at long last delivers the ease of use that PC cards have been promising.

Card installation is a breeze under Windows 95 ? you simply insert the card, Windows 95 detects it and prompts you to supply a location for a driver disk. The driver is then installed and the card can be used from the off. You can even remove it without powering down. It used to be a nightmare installing a pair of PC cards under Dos, but under Windows 95 this is no longer true.

In fact in certain circumstances, Windows 95 often attempts an ?impossible? install. Another problem is when a PC card fails or freezes a system when it is inserted into a docking station. A third-party solution such as Card Wizard Pro from Systemsoft, can often successfully install a PC card where Windows 95 can?t ? its database and PC card support is broader than that included with Windows 95, but the program?s wizard mode walks you through installation and configuration.

Windows NT 4 support for PC card remains patchy. There is still no support for hot plugging and you have to power down the PC in order to change cards. However, both Systemsoft and Phoenix are offering card and socket services software for Windows NT. The Phoenixcard Executive software suite supports Cardbus and Zoom Video, in NT 4.

Hardware developments ? Cardbus: Cardbus is a technology intended to overcome performance and bandwidth issues facing mobile computers. It is a 32bit architecture operating at 33MHz. Today?s PC card is a 16bit architecture running at 8MHz. Cardbus, while backwardly compatible with the PC card standard, offers four times the speed and twice the bandwidth of the original PC card architecture. It?s capable of peak data transfers in the 80Mbps range, approximately 20 times faster than currently possible. Cardbus also offers improved, 3.3V power consumption, a lower burden on the CPU, bus mastering and better memory access.

Cardbus also supports multifunction cards; each Cardbus card can include as many as eight functions. It also supports Zoomed Video (see below).

Cardbus uses PCI chipsets and will therefore give users the same plug-and-play and hot swapping for mobile computers as they have for the desktop. Initially, Cardbus will appear in high-end notebooks but by 1998 nearly all notebooks will have Cardbus, except for low-end machines.

But the take-up of Cardbus has so far been slow. This is due to several factors. First, 100Mbps Fast Ethernet has yet to eclipse 10Mbps Ethernet. Second, the only operating system that supports Cardbus is the OSR2 release of Windows 95, which is only supplied on new PCs. Finally, adoption on notebooks has been slow and only on high-end models, such as those from IBM, Toshiba and Compaq.

Zoomed Video: One area where notebooks haven?t been able to compete with desktops is in the video arena. Until now, excessive CPU use, contention for PCI bus resources, battery drain and cost have set back portable video.

A PC card-based standard, zoomed video (ZV) is designed to transfer video data directly from a PC card to video and audio systems through a PC card-based bus.

The ZV port takes advantage of a little-used feature of the PC card architecture: the ability to define a custom interface to the PC card?s 68-pin connector. It redefines some of the pins in the 16bit PC-card interface. The port?s outputs include 23 pins to support the audio and video data streams. It will deliver full-motion video data transmission at up to 27Mbps or 24bit colour at 640 x 480 resolution at 30 frames per second.

Because the video-transfer bus is isolated, demands on the processor and PCI bus are minimised, and neither the PC card nor the graphics subsystem needs to bear the cost of double-buffering the data.

Toshiba was the first to adopt the ZV port across its notebook range The ZV port combines with a modified graphics controller, PC card controller, and a notebook motherboard connection between them.