Card technologies



Memory cards

Memory cards are the simples type of smartcard. Memory cards only have some amount of memory inside the card and this memory can be normally read and written. There is normally nothing relly intelligne inside those cards. Typically the memory inside this kind of cards is EPROM, EEPROM or FLASH memory. This card type is very widely used as telehone cards (telecards). Many countries use a telecard system which is very close to the first smartcard telephone system in use in France.



Here you can find information on real smartcards which have a real microprocessor inside the card. There have been many different small microprocessors used inside smartcards including 8031/51 variants, PIC microcontrollers and some pecial microprocessors just designed for smartcard applications. Very many smartcards communicate using the protocols standardized in ISO 7816 standard.

The ISO7816 Standard define many physical features, including card size, mechanical strength and elecrical properties. ISO7816-2 Standard defines card contact type, placement in card and the pinout. The standard pinout is:

          C1 : Vcc = 5V        C5 : Gnd
          C2 : Reset           C6 : Vpp (programming voltage)
          C3 : Clock           C7 : I/O (data in/out)
          C4 : RFU             C8 : RFU 

Pins marked with RFU are application specific pins defined in application standards.

The standard supports two transmission modes:

There is a selection of different protocols available for communicating with the card. There is a method for selecting which communication protocol to use (one card can support one or more protocols). The most commonly used protocol seems to be asynchronous half duplex character transmission protocol.


Contactless smartcards

In contact systems, such as reading the data from a serial EEPROM over a two-wire (I2 C) or three-wire SPI or Microwire bus, the power, clock, and data lines are connected separately. Some wired smartcards use RS-232 type asyncronous communications, and in this case supply power and communication through different wires.

Passive RFID devices also use a serial bus, but the power, clock, and data are all in the same signal. Instead of wires, this signal is carried through wireless means. Typical RFID system use inductive couplign between the card and the reader. Both of them have coils whick interacti with each other (magnetic coupling). This interaction makes it possible to transfer power to the card (through alternating magnetic field or pulses) and transfer information (modulating the magnetic field). Typical this kind of inductively coupled systems operate at 125-kHz to 13.56-MHz frequency range.


The following technique are not smartcard techniques. They are in quite often used in applications where smartcards are also used, so I felt that they should be also in this same page.


Magnetic cards

Chances are you many cards that have magnetic stripes on the back on your wallet: ATM cards, credit cards, calling cards, frequent flyer cards, ID cards, passcards, etc.

ANSI/ISO standards define 3 Tracks for magnetic card, each of which is used for different purposes. These Tracks are defined only by their location on the magstripe, since the magstripe as a whole is magnetically homogeneous. Track 2 is most commonly used. Track 2 is used by ATMs and credit card checkers. Track 1 usually holds the cardholder's name as well as account and other discretionary data. Most card readers read either Track 1 or Track 2. Track 3 was intended to have data read and written on it, but is nowadays pretty much an orphaned standard.

The data in magnetis stripes is in digital format. The most commonly used code is a 5-bit Binary Coded Decimal coded ANSI/ISO format. It uses a 16-character set, which uses 4 of the 5 available bits (plus parity). Alphanumeric data can also be encoded on magstripes. The second ANSI/ISO data format is ALPHA (alphanumeric) and involves a 7-bit character set with 64 characters.

Not all magstripe cards operate on a digital encoding method. Some cards encode audio tones, as opposed to digital data. These cards are usually used with old, outdated, industrial-strength equipment where security is not an issue and not a great deal of data need be encoded on the card. Some subway passes with magnetic strips in them are like this.



Bar codes are used in many applications to encode numeric or ASCII information to stripes which are easilily readable by electronic device called bar code scanner. UPC or EAN symbol are found on most retail products around the world. Many electronics products have barcodes on their circuit board for identification purposes and many packages have bar codes.

Genrally in barcodes the information is coded to the width of the bars and their distance from each other. When reading barcodes there is generally one optosensor which gives 1 or 0 signal depending of sensor is over the black bar or white background. (for example 1 on background and 0 on black bar or other way).

Bar code systems can use several symbologies. A symbology is equivalent to a language. Each symbology has strengths and weaknesses. Many symbologies are around for historical or political reasons, while others have definite technical advantages.

For general-purpose use, Code 128 is usually the best choice. It provides use of the full (128-character) ASCII set as well as the best readability and reliability available. If you are making a general-purpose system that needs to read only numbers and uppercase letters, you can use Code 39. If you need numbers only, you should use Interleaved 2 of 5 or Code 128. In any case, avoid symbologies that require reconfiguration of the reader, and your life will be easier.

Checksums are additional characters appended to bar codes to guarantee good reads. Checksums are necessary on some bar codes that are prone to errors.

Printing barcodes is nowadays done usually with a normal PC and normal laser printer. You just need a suitable software and a normal printer and you can print your own bar codes.

Reading of bar code information can be done in many ways. If you use ready made reader units, you do not usually need to worry about the decoding process yourself. You just need to make sure that the bar code reader you have supports the bar code you use. The commercial barcode readers usually can output the code contents in ASCII format through serial port or PC keyboard interface. Readers are available from simple pen linke devices to complicated laser based bar cide scanners as used in many shops at counter.

If you need to do the barcode decoding yourself, you need to know the details of the code. The general process in decoding is to begin by waiting for a black bar. When we see the beginning of the first black bar, we reset our clock to zero. Then we wait the signal to toggle to the white level, so we can clock and write down the reading as the measured width of the first black bar. When we get the white-to-black transition we read the clock and write down that reading as the width of the first white bar. We continue to time the width of the bars in this way for the whole length of the code. After this we can start decoding of the code by using the facts that there is a known ratio between thick and thin bars. And the code suaully starts with a known start code (known bar and white space lengths).



Related pages