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.