240 lines
10 KiB
Plaintext
240 lines
10 KiB
Plaintext
|
|
How to connect a PC to a Videocrypt decoder
|
|
-------------------------------------------
|
|
|
|
1994-04-11
|
|
|
|
|
|
The easiest way to connect your PC to a decoder is to use the card slot
|
|
as an interface and connect it with a voltage converter (MAX232) and a
|
|
TTL open collector driver (74LS07) to the RS-232 serial port. This way,
|
|
you don't even have to open the decoder.
|
|
|
|
WARNING: In order to build the adapter described below, you will at
|
|
least require some digital electronics experience. If
|
|
you don't understand, how the described circuitry works,
|
|
better don't use it! Errors might in the worst case damage
|
|
both your PC and your TV system.
|
|
|
|
The chip cards used by the Videocrypt pay-TV decoders follow exactly
|
|
the specification ISO 7816 (you might find this international standard
|
|
in a local library, if you are interested). Also, the protocol is the
|
|
asynchronous half-duplex T=0 protocol with active low reset and inverse
|
|
convention as defined in the standard.
|
|
|
|
According to ISO, a chip card is 85.60 mm long, 53.98 mm high, 0.76 mm
|
|
thick and the edges are rounded with a radius of 3.18 mm. It has eight
|
|
defined contact areas (C1 - C8 in the diagram below), each of which is
|
|
at least 2 mm wide and 1.7 mm heigh:
|
|
|
|
|
|
______________________________________
|
|
/ \
|
|
| |
|
|
| |
|
|
| C1 C5 |
|
|
| C2 C6 |
|
|
| C3 C7 |
|
|
| C4 C8 |
|
|
| |
|
|
| |
|
|
| |
|
|
\________________________________________/
|
|
|
|
|
|
|
|
These contacts have the following purpose:
|
|
|
|
|
|
C1 VCC Supply voltage (+5 V, max. 200 mA)
|
|
C2 RST Reset signal
|
|
C3 CLK Clock signal
|
|
C4 - reserved
|
|
C5 GND Ground
|
|
C6 VPP Programming voltage
|
|
C7 I/O Data input/output
|
|
C8 - reserved
|
|
|
|
|
|
The following table gives the precise location of the contact areas.
|
|
These areas are only minimum areas, the actual contacts might be larger
|
|
but must of course be properly isolated from each other.
|
|
|
|
In the following table,
|
|
|
|
A represents the maximum distance between the card's left
|
|
edge and the contact area's left edge,
|
|
B represents the minimum distance between the card's left
|
|
edge and the contact area's right edge,
|
|
C represents the maximum distance between the card's top
|
|
edge and the contact area's upper edge,
|
|
D represents the minimum distance between the card's top
|
|
edge and the contact area's lower edge.
|
|
|
|
|
|
A B C D
|
|
-----------------------------------------
|
|
C1 10.25 12.25 19.23 20.93
|
|
C2 10.25 12.25 21.77 23.47
|
|
C3 10.25 12.25 24.31 26.01
|
|
C4 10.25 12.25 26.85 28.55
|
|
C5 17.87 19.87 19.23 20.93
|
|
C6 17.87 19.87 21.77 23.47
|
|
C7 17.87 19.87 24.31 26.01
|
|
C8 17.87 19.87 26.85 28.55
|
|
|
|
|
|
Older card systems had these contacts located higher (distance from the
|
|
top between 9.07 mm and 18.39 mm, distance from the left identical). As
|
|
some decoders support both contact area alternatives, make sure that
|
|
this old contact area is properly isolated or you'll produce a short
|
|
circuit when inserting your card. You might have noticed, that the
|
|
contacts are arranged in the usual 0.1 inch (= 2.54 mm) system (i.e.
|
|
like the pins of a 8-pin DIL chip).
|
|
|
|
You can produce your card adapter by making a PCB with contact areas at
|
|
the above listed locations. The PCB must have precisely the thickness
|
|
and width of a real card, but it may be longer, so that you can locate
|
|
the interface electronics on the part which remains outside the slot.
|
|
Cards are inserted in most decoders with the contacts on the bottom
|
|
side, but check this on your system. Normal PCBs are about 1.3 mm think
|
|
and won't fit into the slot. Either you get a PCB which is about 0.8 mm
|
|
thick or you make it thinner, e.g. by using a sander machine. Perhaps
|
|
you find also ready to use test cards with connectors instead of
|
|
producing your own or you simply open the decoder and clamp contacts to
|
|
the resistors near the card slot (not recommended: there are unisolated
|
|
230 V parts inside the decoder, this may kill you if you are not very
|
|
carefull!!!).
|
|
|
|
The adapter will only need the card contacts I/O, GND, RST and VCC. On
|
|
the RS-232 side, only the following contacts will be used:
|
|
|
|
Sub-D 25-pin Sub-D 9-pin
|
|
---------------------------------------------------------
|
|
TxD 2 3 transmit data
|
|
RxD 3 2 receive data
|
|
CTS 5 8 clear to send
|
|
DSR 6 6 data set ready
|
|
GND 7 5 ground
|
|
DCD 8 1 carrier detect (here: reset)
|
|
DTR 20 4 data terminal ready
|
|
|
|
|
|
The pins DTR, DSR and CTS are not actually needed, they are just
|
|
connected together in the adapter, so that defined levels are available
|
|
on them because some software might need this.
|
|
|
|
The following components are necessary for the adapter
|
|
|
|
|
|
1 PCB or test card
|
|
1 IC Maxim MAX232
|
|
1 IC 74LS07 (or only a 7407)
|
|
4 capacitors 22 uF
|
|
1 female Sub-D connector (9 or 25-pin)
|
|
|
|
|
|
The MAX232 converts the RS-232 levels (about +10 and -10 V) to TTL
|
|
voltage (0 and +5 V) and vice versa without requiring anything else
|
|
than +5 V power supply. This chip contains two TTL->RS-232 and two
|
|
RS-232->TTL drivers and needs four external 22 uF capacitors in order
|
|
to generate the RS-232 voltage internally. The adapter electronic gets
|
|
its power supply from the decoder's VCC line or you can use an external
|
|
5 V supply if you wish.
|
|
|
|
The card slot's RST line is connected using one of the TTL->RS-232
|
|
drivers in the MAX232 to DCD, so that the software and the decoder can
|
|
easily resynchronize in case of a protocol error.
|
|
|
|
The I/O line is a bidirectional half-duplex asynchronous TTL level
|
|
serial port that is operated in a Videocrypt system with 9600 bits/s.
|
|
We can connect this line to a MAX232 TTL input driver (which is
|
|
connected to RxD and sends bytes to the PC) in order to receive data
|
|
from the decoder. The TxD line's signal is converted in the MAX232 to
|
|
TTL level and is connected with an open collector TTL driver to I/O.
|
|
This open collector driver (one of six in the 74LS07) has a high
|
|
impedance output during idle state and 1 and is connected to GND during
|
|
a 0 on it's input. As there is already a pull-up resistor to +5 V on
|
|
I/O in the decoder, this circuitry guarantees, that the adapter is in
|
|
high impedance state if the TxD line is idle and delivers the correct
|
|
voltage if the PC sends bytes and the decoder is in reception mode. As
|
|
we don't connect totem-pole or tristate outputs to I/O, a short circuit
|
|
should be impossible in the adapter.
|
|
|
|
The following diagram describes the whole interface:
|
|
|
|
|
|
+-------------+
|
|
+-----------|1 V 16|----o +5V (VCC)
|
|
+| +| |
|
|
=== +5V o-||-|2 MAX232 15|----o GND (card & RS-232)
|
|
| | |
|
|
+-----------|3 +---14|----o DCD +-<-o DTR
|
|
+ | | | |
|
|
+---||---|4 | +-13|- +->-o DSR
|
|
| | | v | |
|
|
+--------|5 | +-12|- +->-o CTS
|
|
+ | | |
|
|
GND o-||-|6 +-<-11|----o RST
|
|
| |
|
|
RxD o----|7 ---<--- 10|-------------------+----o I/O
|
|
| | |\ |
|
|
TxD o----|8 --->--- 9|--------------| |--+
|
|
+-------------+ 1|/ 2
|
|
74LS07
|
|
|
|
(also connected to 74LS07:
|
|
pin 7=GND, pin 14=VCC)
|
|
|
|
|
|
Pay attention to the polarity of the capacitors (marked with a + in the
|
|
diagram next to each capacitor)!
|
|
|
|
As a side effect of this simple interface design, every byte sent by
|
|
the PC is at the same time also received by the PC. Consequently, you
|
|
can test the circuit with a terminal emulator by switching of local
|
|
echo: if you still see every typed immediately character on the screen,
|
|
the interface should be all right. Software must be capable of dealing
|
|
with this echo from the interface. As specified in the ISO standard,
|
|
the decoder activates VCC only shortly before a reset and deactivates
|
|
VCC if an answer-to-reset packet isn't received in time after the reset
|
|
signal. If no external 5 V supply is used, the software might have to
|
|
wait a few milliseconds after the reset before starting with the
|
|
answer-to-reset, in order to allow the capacitors to load up and
|
|
provide a stable operation of the MAX232.
|
|
|
|
A few final hints:
|
|
|
|
If you have a larger distance between the PC an the decoder, then
|
|
locate the adapter electronic near the decoder, because the RS-232
|
|
interface is much more suitable for long cables than the TTL signals.
|
|
Cables of 12 m length have sucessfully been used and you shouldn't have
|
|
problems with RS-232 cables up to 15-30 m length. (If you need much
|
|
longer cables, you should use RS-422 line drivers, e.g. the Am26LS31
|
|
and Am26LS32 from AMD, which allow over 1 kilometer cable length.)
|
|
|
|
You can also use this adapter circuit to allow a PC to listen to the
|
|
data traffic between a decoder and a real card. Just connect the real
|
|
card and the adapter parallel to the decoder and don't let the PC
|
|
software transmit anything. Suitable card slots are available for
|
|
little money from various manufacturers (e.g. Amphenol). Videocrypt
|
|
uses the inverse convention data format, i.e., you have to reverse and
|
|
invert the bits in each byte in the PC software in order to get the
|
|
correct byte value. For more details about the protocol, check ISO
|
|
7816-3.
|
|
|
|
There are many alternative ways to build this interface. E.g. instead
|
|
of a MAX232, an LT1081 from Linear Technology could be applied or the
|
|
74LS07 could be replaced by two open collector inverters in the 74LS05
|
|
and a 2.2k pull-up resistor between them, etc.
|
|
|
|
Normally, both the RS-232 and the decoder slot should not be harmed by
|
|
short circuits, but be careful. Also try to avoid electrostatic voltage
|
|
(e.g. generated by walking on a suitable carpet) near the interface,
|
|
because discharges cause easily decoder or PC crashes and could
|
|
theoretically even harm the hardware (the MAX232 is a CMOS chip as are
|
|
some of the chips in the decoder). And please doublecheck everything I
|
|
have written here, because I don't want to be responsible if anything
|
|
goes wrong just because I wrote something wrong. DON'T USE THIS DESIGN
|
|
IF YOU DON'T UNDERSTAND IT.
|