Mit der hier vorgestellten Schaltung können
zwei Relais über elektronische Schlüssel akti-
viert werden. Dabei basieren die Schlüssel
auf so genannten iButton-ICs von Dallas
Semiconductor, die in erster Linie dafür ent-
wickelt wurden, Alarmsysteme ein- und aus-
zuschalten. Es sind aber auch viele andere
Anwendungen denkbar, wie z.B. eine
Zugangskontrolle für PCs oder das Öffnen von
Türen und Garagentoren. Gegenüber kon-
ventionellen Systemen bietet der elektroni-
HAUS&HOF
22
Elektor
11/2000
E-Key
Zugangs-Sicherungs-System
Heutzutage wird der
Buchstabe ”E” allen
möglichen Begriffen
vorangestellt, die in
unserem elektroni-
schen Zeitalter als
trendy gelten, wie
z.B. E-Mail, E-Busin-
ess und E-Life. Oft
hat das wenig mit
Elektronik zu tun.
Nicht so beim E-Key,
einem wirklich elek-
tronischen Schlüssel mit
iButton-ICs von Dallas Semiconductor.
e-Key-Eigenschaften
Max. Anzahl verschiedener Schlüssel:
7
Ausgänge:
2 (Relais)
Max. Entfernung zwischen Lesekontakt und Platine:
15 m
Ausgabe von Schlüsselkodes via RS232
Einstellung der Systemdaten via RS232
Watchdog
Stromversorgung:
7 - 15 V Gleichspannung
Stromaufnahme:
max. 50 mA (abhängig vom Relaiszustand)
Auf Basis von iButton™ ICs
Entwickelt von P. Gros
empfangen. Sobald ein Befehl eintrifft, sendet
der DS1990A die dem Befehl entsprechenden
Daten zurück. Jede Datenübertragung wird
durch einen CRC (cyclic redundancy check)
gesichert. Dieser CRC basiert auf einem 8-bit-
Polynom (X8 + X5 + X4 +1). Das Flussdia-
gramm des DS1990A-Protokolls ist in
Bild 3
angegeben.
Betriebsablauf und Anwendung
Der Mikrocontroller der Auswerteeinheit
beginnt mit dem Laden der Identitätskodes
aus seinem EEPROM-Bereich in ein Register.
Da der verwendete AT90S1200 64 Bytes ent-
hält, verwenden wir 7 Bereiche zu 6 + 2
Bytes. Dadurch kann die Schaltung bis zu 7
verschiedene Schlüssel an ihrem Identitäts-
kode erkennen.
Für jeden der 7 Schlüssel werden 6 Bytes
gespeichert, die die Seriennummer enthalten,
dazu kommen noch 2 Bytes, die die Anzugs-
sche Schlüssel viele Vorteile. Das
System besteht aus drei Komponen-
ten: Benutzerinterface, Auswerte-
einheit und Steuerinterface.
Um maximale Sicherheit zu errei-
chen, ist es wichtig, das Benutzer-
interface vollständig von den ande-
ren beiden Komponenten zu trennen.
Bei konventionellen elektronischen
Schließsystemen wie zum Beispiel
Kodeschlössern bilden Benutzer-
interface (Tastatur) und Auswertung
eine Einheit in einem gemeinsamen
Gehäuse und sind so tätlichen Über-
griffen und möglichen Manipulatio-
nen ausgesetzt.
Bei dem hier beschriebenen System
besteht das Benutzerinterface aus
einem Lesekontakt mit zwei
Anschlüssen, der dem Batteriehalter
einer Knopfzelle ähnelt – genauso
wie die Bauform des iButton von der
einer Knopfzelle inspiriert wurde.
Dieser Lesekontakt kann über eine 2-
Drahtverbindung bis zu 15 m von der
Auswerteschaltung entfernt ange-
ordnet werden. Die Auswerteeinheit
lässt sich so gut versteckt und van-
dalismusgeschützt an einem siche-
ren Ort unterbringen, wobei der
Lesekontakt mit seinen Anschlüssen
keine Möglichkeit der Manipulation
bietet.
Der Schlüssel
Der ‘iButton’ von Dallas Semicon-
ductor sieht tatsächlich aus wie eine
Knopfzelle mit einem Durchmesser
von etwa 17 mm und einer Dicke von
3 bis 5 mm. Die 5 mm dicke Version
kann in einem speziellen Halter
untergebracht werden, damit man
den Knopf wie einen Schlüsselan-
hänger an einem Schlüsselring oder
Schlüsselbund tragen kann (siehe
Foto). Eine andere Möglichkeit ist die
”Integration” in ein Uhren-Armband
(
Bild 1).
Wie eine Knopfzelle hat auch der
Button nur zwei Anschlüsse, näm-
lich Masse und den aktiven
Anschluss, über den ein serieller
Datenaustausch mit der Auswerte-
einheit erfolgt. Es gibt eine ganze
Button-Familie unterschiedlicher
Komplexität, die von einem simplen
6-Byte-Kode (48 bit) bis zu einer
Speicherstruktur mit Passwortab-
frage reicht.
Sobald ein Button über den Lese-
kontakt mit der Auswerteeinheit ver-
bunden ist, beginnt die serielle Kom-
munikation mit einem Mikrocontrol-
ler in der Auswerteeinheit.
Bei dem hier verwendeten
DS1990A handelt es sich um das ein-
fachste Mitglied der Familie der
‘iButton’ mit folgendem Inhalt:
– einem ”Familienkode” (1 Byte)
– einem Identitätskode von 6 Bytes
(48 Bits)
– einem Check-Byte (CRC).
Das iButton-Protokoll
Der ‘iButton’ stellt seine internen
Daten zum Auslesen bereit, sobald
über den Lesekontakt Spannung
angelegt wird. Um der Leseeinheit
seine Präsenz zu signalisieren, legt
der Button die aktive Leitung auf
Low (siehe graue Linie in
Bild 2a).
Dieser ”presence puls” triggert die
interne Initialisierung des Button.
Nach Ende der Initialisierung wird
der Low-Pegel wieder aufgehoben,
wonach ein interner Pull-up-Wider-
stand wirksam wird. Nach dem
Ende des Intervalls t
RSTH
kann ein
Befehlskode gesendet werden.
In Bild 2a ist das für die Initialisie-
rung verfügbare Zeitfenster einge-
zeichnet. Dem geht ein vom Leser
ausgesandter ‘Master Reset Pulse’
zur Reinitialisierung des iButton vor-
aus. In unserem Fall korrespondiert
der Anschluss des iButton an die
Lesekontakte mit dem Zeitfenster
‘t
RSTH
’ (= ‘Master R
x
Presence
Pulse’).
Datenübertragung
Auf den internen Speicher des
DS1990A iButton wird über die 1-
Draht-Leitung zugegriffen, wobei
das Protokoll den Ablauf des Daten-
transfers regelt. Es gibt drei Arten
des Datentransfers:
Schreiben eines High-Pegels (‘1’)
(Bild 2b); Schreiben eines Low-
Pegels (‘0’) (Bild 2c) und Lesen eines
Datenbits (Bild 2d). Das Protokoll
definiert Zeiten (time slots) für die
Dauer des Anlegens der relevanten
Logikpegel, damit so die übertra-
genen Daten auf der Empfangsseite
korrekt gelatched werden können.
Am Ende der Resetphase geht der
DS1990A in den Command-entry-
Modus, d.h., er ist bereit, Befehle zu
HAUS&HOF
23
11/2000
Elektor
Bild 1. Hier ist ein iButton als elektronischer
Schlüssel an einem Uhrarmband befestigt
(Foto: Dallas Semiconductor).
zeit (Ein-Zeit) der beiden Ausgangsrelais
festlegen. Auf diese Weise kann man definie-
ren, welcher Schlüssel welches Relais (oder
auch beide) für wie lange anziehen lässt. So
kann man die Auswerteeinheit zwei oder drei
verschiedene Aktionen ausführen lassen, je
nachdem, welcher Schlüssel gelesen wird.
Das ermöglicht es, Zugangsberechtigungen
für verschiedene Schlüsselbesitzer zu diffe-
renzieren.
Die acht verbleibenden Bytes erlauben Zähl-
funktionen, zum Beispiel um die Zahl der
watchdog-aktivierten Resets oder die CRC
des betreffenden EEPROM-Bereichs zu regi-
strieren.
Die Systemparameter können über ein RS-232-
Terminal oder einen PC mit Terminalprogramm
(z.B. Hyperterminal) geladen werden. Die
zulässigen Befehle sind in
Tabelle 1 gelistet.
Die Befehle müssen in Großbuchstaben
genau wie angegeben eingetippt werden, da
der Prozessor wegen des geringen ROM-
Bereichs nicht sehr ”intelligent” ist. Als
ersten Befehl kann man
D eingeben, um zu
kontrollieren, dass die EEPROM-Bereiche
noch keine Kodes enthalten.
Mit dem Befehl
S kann man das System an
einen neuen Schlüssel ”gewöhnen”: Nach
dem Befehl eine Zahl zwischen 1 und 7 ein-
geben und dann den Schlüssel (iButton) an
den Lesekontakt anlegen. Der Identitätskode
des Schlüssels wird jetzt ausgelesen und
unter der zuvor eingegebenen Position (1 bis
7) gespeichert.
Für die beiden Relais ist eine Anzugszeit von
5 Sekunden voreingestellt (Default). Eine
Änderung dieser Einstellung erfolgt mit dem
Befehl
A.
Mit Befehl
C kann ein in der eingegebenen
Position ‘n’ gespeicherter Identitätskode wie-
der gelöscht werden.
Der letzte Befehl,
Z, löscht alle EEPROM-
Bereiche.
Die LED D2 bleibt normalerweise anfangs
dunkel. Wenn der EEPROM-Bereich leer ist,
erzeugt der Auto-CRC einen Fehler. Das wird
automatisch durch Verwendung der Befehle
A, C, S oder Z korrigiert.
Die Schaltung
Das Schaltbild des Zugangssicherungssy-
stems ist in
Bild 4 zu sehen. Zentral steht
der mit 4 MHz getaktete Atmel-Mikrocon-
troller AT90S1200, der zwar relativ langsam,
aber allemal schnell genug für diese Anwen-
dung ist. Er verfügt über 1024 Bytes Flash-
Programmspeicher, 32
Bytes RAM in
32 Registern, 64 Bytes EEPROM, einen Inter-
rupt-Eingang, I/O-Ports und einen Watch-
dog-Reset.
HAUS&HOF
24
Elektor
11/2000
Bild 2. Impulsdiagramme: (a) Initialisierung, (b) Schreiben einer logischen 1; (c)
Lesen einer logischen 0; (d) Warten auf Daten (Quelle: Dallas Semiconductor).
Table 1. e-Key Befehlsübersicht
Befehl
Bezeichnung
Aktion
AnXXYY
Action
n=Schlüsselnummer, XX= Relais-1 aktiv,
YY= Relais-2 aktiv
XX=00 keine Aktion, Inkrement 1 s (ca.)
Cn
Clear
Lösche Identitätskode des Schlüssels ‘n’.
D
Dump
Lösche gesamten EEPROM-Bereich
Sx
Set key
Einlesen Identitätskode eines neuen Schlüssels,
speichern im reservierten EEPROM-Bereich
x ist die Schlüsselnummer (1 - 7).
Default ‘Ein’-Zeit der Relais ca. 5 s.
Z
Zero
System-Reset und EEPROM löschen
a
b
c
d
Handler bestimmt die Quelle des Interrupts
(PD1 oder PD2).
Die Kommunikation über die RS232-Schnitt-
stelle bietet folgende Möglichkeiten:
– Registrierung neuer Schlüssel
– Deaktivierung von Schlüsseln
– Anzeige der Identitätskodes erkannter
Schlüssel
– Anzeige des gelesenen Schlüsselkodes bei
jedem Schlüsselkontakt. Bei CRC-Fehler
wird ein Rauten-Zeichen (#) angezeigt.
An PB2 kann eine LED angeschlossen wer-
den. Hier ist es D2, die aufleuchtet, wenn
alles in Ordnung ist, d.h., nach Initialisierung
mit korrektem CRC.
Die Ports PB0 und PB1 steuern die beiden
Relais, die ebenfalls mit Anzeige-LEDs ver-
sehen sind (D4 und D5).
Zur Stromversorgung der Schaltung ist ein
Steckernetzteil mit einer Gleichspannung von
7 bis 15 V vorgesehen, die unstabilisiert sein
kann. Diode D1 dient als Verpolschutz beim
Anschluss dieser Spannung an den 5-V-Span-
nungsregler IC1, der für die Betriebsspan-
nung der Schaltung sorgt.
Der RESET-Eingang des Mikrocontrollers
braucht nicht angeschlossen zu werden, da
der Atmel über einen internen Power-on-
Reset verfügt.
Bauhinweise
Platinenlayout und Bestückungsplan sind in
Bild 5 zu finden. Auf der einseitigen Platine
ist nur eine Drahtbrücke zu bestücken (zwi-
schen C3 und C4). Weiter gibt es keine
Besonderheiten. Für die RS232-Verbindung ist
wie fast immer eine gewinkelte Buchse auf
die Platine zu löten. Bevor man den program-
mierten Mikrocontroller in die Fassung ein-
setzt (die gedrehte Pins haben sollte), sollte
man an die ansonsten komplett bestückte
Platine Betriebsspannung anlegen und
anhand der Schaltung an den Punkten mes-
sen, die mit der 5-V-Betreibsspannung ver-
bunden sind. Nach dieser Spannungskon-
trolle wird die Spannung wieder abgeklemmt
und der Controller (richtig herum) eingesetzt.
Wer den AT90 selbst programmieren
möchte, der kann auf den Quellkode zurück-
greifen, der sowohl auf Diskette als auch per
(Gratis-)Download vom Elektor-Site
(
www.elektor.de
) bezogen werden kann.
Für die Assemblierung steht der Atmel-
Assembler AVRASM.EXE auf dem Atmel-
Website zum Download zur Verfügung.
Das Programm
Nach dem Power-up-Reset werden Ports,
Timer und Watchdog initialisiert. Gleichzeitig
wird ein automatischer CRC über den
Das Lesen eines iButton erfolgt über
die Portleitung PD2, die gleichzeitig
als Interrupt-request-Eingang fun-
giert. Man muss eine ‘1’ program-
mieren, um den internen 1-k-Pull-up-
Widerstand zu aktivieren (an +5 V
zu legen) und so eine ”Phantom-
speisung” für den am Lesekontakt
anliegenden iButtons zu realisieren.
Ein Blick auf das Impulsdiagramm
zeigt, dass der iButton unmittelbar
danach die Leitung für 470
µ
s auf
Low legt. Diese Pegeländerung an
PD2 triggert einen Interrupt-
Request, der seinerseits die Lese-
operation startet.
Ein (TTL-Pegel-) RS232-Interface
wird durch Verwendung der Portlei-
tungen PD0 und PD1 implementiert.
PD0 überträgt die Daten (9,600
bits/s, keine Parität, 1 Stoppbit),
wobei R1 den Strom auf einen siche-
ren Wert begrenzt und so das Inter-
face vor Kurzschluss schützt.
Portleitung PD1 wird als Empfangs-
leitung für Daten verwendet, die
durch R2, R5 und T1 auf TTL-Pegel
gebracht werden. Widerstand R3
erzeugt zusammen mit D3 einen
Interrupt-Request, sobald über die
serielle Eingangsleitung Zeichen
empfangen werden. Der Interrupt-
HAUS&HOF
25
11/2000
Elektor
Bild 3. Flussdiagramm für Befehlsablauf und Datenfluss.
EEPROM-Speicher ausgeführt. Ist dieser kor-
rekt, leuchtet D2 auf, die Schaltung ist jetzt
betriebsbereit und wartet auf einen Interrupt-
Request. Sobald dieser eintrifft, wird die Her-
kunft festgestellt (Schlüssel-Lese-
kontakt oder RS232-Dateneingang).
Diese beiden Fälle werden im Fol-
genden behandelt.
Key Read Interrupt
Als Erstes wird der Befehlskode
gesandt. Die daraufhin vom iButton
ausgegebenen Bytes werden einge-
lesen und mittels CRC geprüft. Das
Ergebnis muss Null sein. Wenn
nicht, wird das Fehlerzeichen (#)
über die serielle Schnittstelle aus-
gegeben und der Vorgang beendet.
Ist der CRC korrekt (0), werden die
eingelesenen Bytes über die serielle
Schnittstelle ausgegeben. Als Näch-
stes erfolgt der Vergleich des einge-
lesenen Kodes mit einem im
EEPROM gespeicherten Kode. Wird
kein übereinstimmender Kode im
EEPROM gefunden, wird der Vor-
gang jetzt beendet und das System
wartet wieder auf einen Interrupt.
Wenn der eingelesene Kode mit
einem im EEPROM gespeicherten
Kode übereinstimmt, wird das Relais
angesteuert, das diesem Kode durch
die entsprechenden Bytes zugeord-
net ist. Nach Ablauf der für dieses
Relais festgelegten Anzugsdauer
fällt das Relais wieder ab. Die Schal-
tung ist jetzt wieder bereit, einen
HAUS&HOF
26
Elektor
11/2000
(MISO)PB6
(MOSI)PB5
(AIN1)PB1
(AIN0)PB0
PD2(INT0)
PD3(INT1)
(SCK)PB7
(OCI)PB3
PD0(RxD)
PD1(TxD)
PD6(ICP)
PD4(T0)
PD5(T1)
XTAL1
XTAL2
RESET
S1200
AT90
IC1
PB4
PB2
20
10
19
18
17
16
15
14
13
12
11
5
4
1
2
3
6
7
8
9
C7
100n
C6
22p
C5
22p
C2
100n
C3
100n
C1
100µ
25V
C4
10µ
16V
7805
IC1
K3
1
2
3
4
5
6
7
8
9
K5
X1
4MHz
R4
10k
R5
100k
R7
1k
R9
1k
D1
1N4001
D3
1N4148
D2
D5
K2
K1
T1
BC547
R3
1k
R2
10k
R1
5k6
T3
BC557
R6
10k
D6
1N4148
RE1
K4
R10
1k
D4
T2
BC557
R8
10k
D7
1N4148
RE2
5V
5V
5V
5V
000089 - 13
Bild 4. Im Prinzip besteht der e-Key-Leser nur aus dem Atmel-Mikrocontroller AT90S1200.
Interrupt zu verarbeiten. Solange ein
Relais angezogen ist, kann kein
Schlüssel am Lesekontakt erkannt
werden.
RS232 Interrupt
Ein vom PC oder Terminal über die
RS232-Schnittstelle gesandtes Zei-
chen wird vom Prozessor sofort
geprüft. Ist das Zeichen gültig, wird
sofort der entsprechende Befehl
ausgeführt. Wird das Zeichen als
ungültig erkannt, wird ein Fehler-
zeichens (*) über die RS232-Schnitt-
stelle zurückgesandt (zum PC oder
Terminal).
(000089-1e)
HAUS&HOF
27
11/2000
Elektor
Bild 5. Platinenlayout und Bestückungsplan des Zugangskontrollsystems.
000089-1
(C) ELEKTOR
C1
C2
C3
C4
C5
C6
C7
D1
D2
D3
D4
D5
D6
D7
H1
H2
H3
H4
IC1
IC2
K1
K2
K3
K4
K5
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
RE1
RE2
T1
T2
T3
X1
+
000089-1
0
000089-1
(C) ELEKTOR
Stückliste:
Widerstände:
R1 = 5k6
R2,R4,R6,R8 = 10 k
R3,R7,R9,R10 = 1 k
R5 = 100 k
Kondensatoren:
C1 = 100 µ/25V stehend
C2,C3,C7 = 100 n
C4 = 10 µ/10 V stehend
C5,C6 = 22 p
Halbleiter:
D1 = 1N4001
D2,D4,D5 = LED
D3,D6,D7 = 1N4148
T1 = BC547
T2,T3 = BC557
IC1 = 7805
IC2 = AT90S1200 (programmiert,
EPS 000089-41)
Außerdem:
K1 = 2-polige
Platinenanschlussklemme für
Platinenmontage (Raster 5mm)
X1 = 4-MHz-Quarz
RE1,RE2 = Printrelais 6 V, 1
Umschaltkontakt, z.B. V23057-
B0001-A101 (Siemens)
K3 = 9-polige Sub-D-Buchse für
Platinenmontage
K4,K5 = 3-polige
Platinenanschlussklemme (Raster
7,5 mm)
Schlüssel = Serial Number
iButton™ DS1990A (Dallas
Semiconductor, RS Components,
Farnell # 790-461)
Optional: Schlüsselhalter DS9093A
Lesekontakt für iButton™ DS9092
(RS Components, Farnell # 790-
473)
Platine EPS 000089-1 (siehe
Serviceanzeige in der Heftmitte)
Optional: Quellkode (Diskette EPS
000089-11 oder Download)
Quellen
im Internet
Mehr zum DS1990A, dem iButton-Chip
oder zum Atmel-Assembler findet man unter
folgenden Webadressen:
http://www.ibutton.com
http://www.dalsemi.com
http://www.atmel.com