Title : PC to VideoCrypt and/or Smart Card interface via RS232 port.
Author: Alex Ivopol ([email protected])
Date  : 10 Jan 1995

The following interface has been built and used succesfully. It is loosely
based on Markus Kuhn's ADAPTER.TXT and can be used in three modes:

 * PC listens to traffic between VideoCrypt decoder and Smart Card.
 * PC pretends to be the Smart Card and talks to the VideoCrypt decoder.
 * PC pretends to be a VideoCrypt decoder and talks to the Smart Card.

DB9F          7����������o���������o�������������������Ŀ1
PLUG      ���������Ŀ   �   R     �   R           ��������Ŀ
         5�  MAX233  � 2 ��/\/\/Ŀ ��/\/\/Ŀ      2�   VCC   �6
DCD(1)��������o<�����������������o����������������ĴRST   VPP�� N/C
        18�          � 1         �         �      7�   SC1   �3
RXD(2)��������o<���������������������������o������ĴI/O   CLK�� * see
         4�          � 3   R     �        / E      �   GND   � options
TXD(3)�������Ĵ>o��������/\/\/����������Ĵ    TR   �����������
        19�          �20   R    / E       \ C           �
RTS(7)�������Ĵ>o��������/\/\/Ĵ    TR     �            �
          ����������Ĵ          \ C        �            �
      8 �ĴC1+    C2+�Ŀ 11      �         �            �
     13 �ĴC1-    C2+��� 15      �         �            �
     12 �ĴV-     C2-�Ŀ 10      �         �            �
     17 �ĴV-     C2-��� 16      �         �            �
     14 �ĴV+ GND GND�           �         �            �
          ������������           �         �            �
              6�  9�             �         �            �
GND(5)���������o���o�������������o���������o�������������

Option 1:                             Option 2:
            8  5                                  3  5  8
VCC o�������Ŀ  ���o CLK output       VCC o�������������Ŀ
     �    ����Ŀ                         �    ������Ŀ2
100 ���   � OSC1 �                    100 ��� 1Ĵ EXO-3C  ���o CLK output
 nF  �    ��������                     nF  �    �����������
GND o�����������                     GND o������������
            1  4                                  4  6  7

Qty Part     Package  Description
1x  SC1      -        Smart card connector
1x  DB9F     DB9F     Female 9 pin D connector
1x  MAX232   DIL 20   RS232 <-> TTL level translator
2x  TR       TO92     BC558 general purpose PNP transistor
4x  R        -        10k resistor

Optionally, one of the following:
Qty Part     Package  Description
1x  OSC1     DIL 8    Crystal Oscillator Module 3.579545Mhz
1x  EXO-3C   DIL 8    Programmable Oscillator 14.31818Mhz max frequency

For those who have access to a Radio Spares store, the following components
can be obtained through them:

Part    RS Stock #
MAX233  655-290
EXO-3C  296-885
SC1     453-785

The rest of the components are easy to get and not critical in value.

CIRCUIT DESCRIPTION

The interface is designed to be connected to a PC with a 9 pin RS232 port. As
such the interface has a Female 9 pin D connector like that found on a serial
mouse. An extension cable is necessary between the PC's serial port and the
location of the interface. The wiring of the extension cable is straight thru
with a male DB9 at one end and a female DB9 at the other. Those who know how
to do it, can replace the female DB9 with a female DB25 if their PC has a 25
pin serial port.

The PC's RS232 port operates with signals that swing from +12V to -12V. The
smart card however, operates with TTL signals that swing between +5V and 0V.
An RS232 -12V level corresponds to a TTL high (+5V) and a RS232 +12V level
corresponds to a TTL low (0V).

Due to this incompatibility, a signal level translator such as the MAX233
must be used. The MAX233 is powered from a single +5V supply and generates
internally the +/-12V voltages necessary for the RS232 communication. Unlike
it's MAX232 brother, the MAX233 needs no external components to achieve this.
Thus in the above diagram, all signal lines to the left of the MAX233 are at
RS232 levels while all signal lines to the right of the MAX233 are at TTL
levels.

The DCD line is used to monitor the state of the RST line on the smart card.
This allows us to detect when a reset takes place.

The RTS line allows us to force a card reset. When the interface is not
connected to a PC, pin 19 of the MAX233 is pulled to GND via an internal
resistor producing a high level on pin 20. This forces the transistor to
"open" (think of the transistor as a switch), effectively disconnecting pin
20 from the card's RST line. The same happens when the interface is connected
to the PC and the RTS line is placed at -10V (inactive state).

When the RTS line is activated (placed at +10V), pin 20 goes low and the
transistor "closes", forcing the card's RST line low and causing a reset.

The RXD line is used to receive data from the smart card.

The TXD line is used to transmit data to the smart card. When the interface
is not connected to the PC, the line is pulled to GND via an internal
resistor producing a high level on pin 3. This "opens" the transistor, in
effect disconnecting the TXD line from the card's I/O pin. When the interface
is connected to a PC and the PC is not transmiting data to the smart card,
the TXD line is idle (-10V) and is again disconnected from the card's I/O pin.

Only when the PC transmits a zero, the TXD line goes to +10V making pin 3 go
low and forcing the card's I/O pin low. At all other times, the card's I/O
line is pulled high via the resistor R. This allows the PC to send data to
the card.

All TTL signals from the MAX233 go to SC1 which is a smart card connector
accepting cards with contact locations that conform to the ISO7816-2 standard,
section 4, fig 2.

The final part of the circuit is an optional oscillator. This is only needed
if you intend to have the PC exchange data with a smart card. At all other
times the oscillator must be disconected. In the prototype the oscillator was
built on the board and a jumper is used to connect or diconect the oscillator
output to the card's CLK pin.

There are many options for building oscillators. Some people use discrete
components. In this age of electronic miniaturisation however, we have two
appealing options.

Option 1 is a Crystal Oscillator Module housed in a metal package. It can be
found in two sizes. Either a DIL (Dual In Line) 14 pin or a DIL 8 pin. These
have pins spaced so that they can plug directly into a 14 pin or an 8 pin IC
socket. Regardless of the package, only the corner pins are fitted. Pin one
on either package is a No Connection. When this oscillator module has power
applied, a TTL level clock signal of the appropriate frequency can be observed
at the output. The card divides the CLK input signal by 372 (usually) to clock
the serial I/O data in or out. Therefore, if we want to talk to the card at
9600 bps, we must fit an oscillator of 372*9600=3.571200Mhz. Unfortunately
these are hard to come by, but modules of 3.579545Mhz are quite easy to find
producing 9622 bps which works just fine.

Option 2 is a programmable frequency divider. This is a DIL 8 pin chip with
a built in crystal oscillator. The one in this project has a base frequency of
14.31818Mhz. Three pins on the chip allow a divisor between 2^1 to 2^8 to
be selected allowing frequencies between 7.15909Mhz and 55.93khz to be
produced. A separate output, provides the undivided base frequency. In this
project a divisor of 2^2=4 was selected effectively providing an output
frequency of 3.579545Mhz.

Oscillators are really noisy devices. They produce a lot of noise on the
power line. Therefore, a 100nF capacitor _must_ be fitted as close to the
supply lines of the oscillator as possible. This not only eliminates the
noise on the supply lines but improves the sqareness of the generated
waveform.

The working prototype was built on a PCB of 95mm x 45mm, 1.6mm thickness. The
PCB holds the DB9 connector, the SC1 connector, MAX233 with a 10uF 25V
tantallum capacitor across the power supply lines, oscillator in option 2 with
its 100nF capacitor across the power supply lines, 4 resistors, 2 transistors,
a jumper (for connecting the oscillator) and a power plug (for connecting an
external +5V supply when talking to the card, otherwise the interface draws
power from the decoder). Total current drawn at 5V with oscillator active is
7.6mA. See PPLACE.BMP for parts placement.

In addition there is a .6mm thickness single sided PCB of the exact dimentions
of a smart card (see INSERT.BMP). In the decoder used, the card protrudes by
about 20mm so the contacts are brought to the outside. A piece of 5 wire flat
ribbon cable brings these contacts to the interface PCB (see IRD_V3.BMP) where
they are soldered directly on the trace side to the coresponding pins on SC1.

WARNING: Before attempting to connect the interface to any decoder, use a high
impedance DMM to measure the AC voltage difference between the interface GND
and the decoder's GND. If the difference is not close to 0VAC, earth the
decoder's GND before connecting the interface. Use at your own risk. If you
damage something you have no one to blame but yourself for stuffing with it
in the first place. Take care.

Alex Ivopol ([email protected])