Hardware
An dieser Stelle werde ich Einiges zur elektronischen Auslegung von "CodeLock" sagen. Zur benutzerfreundlichen Logik und zur Sicherheitsphilosophie verweise ich auf die Abschnitte
Kurzanleitung und
Firmware.
Stromversorgung (X1): Das Zahlenschloss soll autonom funktionieren und in keiner Weise von einem Energienetz abhängig sein, zumal sich schon hieraus neue Sabotagemöglichkeiten eröffnen würden.
Das vorgestellte Zahlenschloss trennt sich konsequenterweise von der Stromquelle ab, wenn es nicht benutzt wird. Das bedeutet, der Stromverbrauch im ungenutzten Zustand liegt mit dieser Schaltung bei Null!
Und das funktioniert so: Ein PNP-Transistor T3 (BC327) liegt als Schalter im Strompfad zwischen Batterie und Logikteil. Seine Basis wird über R7 (47 k) auf Emitterpotenzial gezogen, sodass der Transistor normalerweise sicher sperrt. Wird jedoch die Taste Sternchen [*] auf der Zahlentastatur gedrückt, so fließt über R23, den Matrixkontakt X1-Y4 sowie über R10 ein erster Basisstrom für T3 von wenigen Milliampere gegen Masse. Der Transistor schaltet durch und versorgt VR1 mit der unstabilisierten Batteriespannung. Dahinter liegt der Mikrocontroller, der jetzt seine auf maximal 5 Volt stabilisierte Versorgungsspannung bekommt.
Der Mikrocontroller muss sich nach dem Kaltstart erst einmal die weitere Stromversorgung sichern. Dazu gibt er einen High-Pegel über die Portleitung PD1 aus. Damit wird T4 durchgesteuert, welcher nun die Basis von T3 dauerhaft gegen Masse zieht. Nach getaner Arbeit (oder Timeout) kann und wird der Controller die Stromversorgung wieder trennen. Sobald die Controller-Versorgungsspannung weggefallen ist, kann das Zahlenschloss erst wieder durch Sternchen [*] oder MASTER-KEY neugestartet werden.
Unter Berücksichtigung des Spannungsgefälles an T3 und VR1 kann der Mikrocontroller in einem weiten Batteriespannungsbereich von ca. 4...24 Volt zuverlässig arbeiten. Für den Betrieb des Zahlenschlosses und eines elektromotorischen/elektromagnetischen Schließers oder eines Leistungsschalters stehen also eine Reihe von Optionen offen.
Die echte Abschaltung der Versorgungsspannung schont aber nicht nur die Batterien, sie bedeutet auch einen Sicherheitsvorteil. Bei den üblichen 08/15-Codeschlössern läuft der Controller meist rund um die Uhr. Damit ist er auch permanent angreifbar, etwa durch gezielt eingekoppelte EM-Strahlung.
Für VR1 wurde bewusst ein konventioneller Linearregler (78L05) verwendet, weil dieser robust ist, schon ab ca. 6 Volt Eingangsspannung einen ausgezeichneten Schutz vor Störimpulsen aus dem Arbeitsstromkreis bietet, und seinerseits keine neuen Störungen erzeugt. Der Linearregler zieht allerdings einen Ruhestrom von ca. 5 mA ("quiescent current", siehe Datenblatt zum 78L05). Das ist in diesem Schaltungskonzept aber nicht weiter schlimm, da die Stromzufuhr ja
vor dem Spannungsregler unterbrochen wird.
Für Testzwecke oder ISP-Sessions muss die Versorgungsspannung allerdings dauerhaft anliegen. Dafür überbrücken wir einfach X6 (MASTER KEY), sodass T3 permanent einen Basisstrom erhält, der die Controller-Versorgungsspannung durchschaltet.
Beim Einsatz als Türschloss schließen wir an X6 einen Taster an, der das Öffnen oder Schließen per einfachem (kurzen oder langen) Tastendruck ermöglicht.
Der Motor-Steuerkreis hängt also in der Grundausstattung dieser Schaltung an derselben Batterie, wie der Mikrocontroller. Das ist wegen der Schutzwirkung durch den Spannungsregler auch relativ unproblematisch, da etwaige Lastschwankungen auf der Batteriespannung überhaupt nicht bis zum Controller durchschlagen. Tests mit einer 9-V-Anlage haben gezeigt, dass der Controller nicht einmal bei mechanisch blockiertem DC-Motor "aussteigt". Die Hardware ist so angelegt, dass es auf jeden Fall zum Lastabwurf kommt, wenn der Controller gestört wird. Es ist mit dieser Schaltung sehr unwahrscheinlich, dass Batterien ungewollt "leergesaugt" werden und man sich unwiederbringlich aussperrt. (Nichtsdestotrotz sollten wir dennoch einen "Plan B" für den Fall haben, dass die Elektronik versagt.)
Die Batteriespannung richtet sich nach der Motorspannung. Die Spulenspannung der Relais richtet sich nach der Batteriespannung. Hier ist alles zwischen ca. 6V und 24V erlaubt.
Mikrocontroller: Die Ablaufsteuerung übernimmt IC1, ein AVR-Mikrocontroller vom Typ
ATtiny2313. Der Controller braucht in dieser Anwendung keine besonders hohe und genaue Taktfrequenz, im Gegenteil. Zum Schutz vor möglichen "kompromittierenden Abstrahlungen" ist die Taktfrequenz so niedrig wie möglich anzusetzen. Mehr dazu weiter unten.
Schaltstufe / Motorbremse (X2): Re1 und Re2 bilden eine klassische H-Brücke, d. h. die Anschlüsse X2a und X2b können durch Re1 und Re2 jeweils auf Masse oder an Plusspannung gelegt werden. Ein angeschlossener DC-Motor lässt sich durch Polaritätsumkehr mit voller Leistung im Links- oder Rechtslauf fahren. Da immer zwei Kontaktsätze parallel geschaltet sind, kann die Brücke schon mit den hier verwendeten Miniaturrelais einen Spitzenstrom von bis zu 4 A schalten.
Voraussetzung ist natürlich, dass das Motorgehäuse gegen die Plus- und Minusleitung isoliert ist, was aber normalerweise der Fall ist. Es ist unbedingt wünschenswert, dass ein angeschlossener DC-Motor bereits am Chassis durch Verdrosselung und Kondensatoren entstört ist. Die beiden MKS-Kondensatoren C3+C4 sind lediglich als ergänzende Maßnahme gedacht.
Die Serienwiderstände R1 und R2 begrenzen den Motorstrom, falls es zu einer Blockade kommt. Auch ein PTC oder eine Polyfuse könnten an dieser Stelle vorteilhaft eingesetzt werden.
R1 und R2 werden so dimensioniert, dass der Kurzschlussstrom den Maximalwert von ca. 4 A nicht erreicht, aber der DC-Motor bei schwächelnden Batterien noch ausreichend Kraft entwickelt. Ein geeigneter Wert liegt, je nach regulärem Motorstrom, zwischen ca. 2...10 Ohm.
Im Ruhezustand liegen beide Anschlüsse X2a und X2b wie gesagt direkt auf Masse. Der Motor wird in diesem Zustand also direkt kurzgeschlossen. Diese Tatsache können wir bei kleineren Motoren bedenkenlos als Kurzschlussbremse einsetzen.
Anders, als bei einer Endstufe mit MOSFETs ist die Bremswirkung auch dann noch uneingeschränkt vorhanden, wenn der Rest der Schaltung vollkommen stromlos ist! Damit werden mechanische Manipulationsversuche durch "Rütteln und Schütteln" weiterhin erschwert.
Größere DC-Motore ab ca. 2 A sollten aus voller Fahrt lieber nicht per direktem Kurzschluss gebremst werden (hohe Schwungmasse, hoher Generatorstrom). Hier bremst man üblicherweise erst mit einem Lastwiderstand ab.
Eine solche "Soft-Bremse" ist mit dieser Schaltung ebenfalls möglich: Werden beide Terminals X2a und X2b auf die Plusleitung gelegt, so fließt der vom noch drehenden Motor generierte Rückstrom über die Reihenschaltung der Serienwiderstände ab und wird dort gefahrlos verheizt. Auch in diesem Fall entstehen keine Störungen für den Elektronikteil.
Für größere Motorriegel kann die CodeLock-Firmware entsprechend modifiziert werden (siehe Anmerkungen zur Firmware).
Endschalter (X3): Endschalter liefern die wichtige Information, ob der Riegel komplett eingefahren oder ausgefahren wurde.
Es wäre auch möglich, den Elektromotor an einen Anschlag zu fahren und nach Ablauf der ungefähren Stellzeit abzuschalten. Doch selbst wenn die Mechanik dafür ausgelegt ist, der Motor würde an den Endpunkten doch einen erheblichen Strom ziehen, der die Batterien unnötig belastet. (Dieser Modus ist "Plan B", falls kein Signal vom Endschalter kommt. Die Steuerung wird den Motor dann nach einem Timeout von drei Sekunden abschalten.)
Die Endschalter werden an ES1 (Pin 1+2) sowie ES2 (Pin 3+4) von X3 angeschlossen. Es sollten potenzialfreie Schalter sein. Der Schleifenstrom kommt vom Mikrocontroller.
Wenn die Signalleitungen zu den Endschaltern in unmittelbarer Nähe zu den Motorleitungen geführt werden (müssen), könnten hier Funkenstörungen aus der Motorleitung einkoppeln. Sicherheitshalber sollten wir die Zuleitungen zu den Endschaltern auf jeden Fall symmetrisch auslegen, d.h. für beide Endschalter zwei Adern vorsehen und auf der Seite des Schalters KEINE Verbindung mit dem Chassis herstellen.
Es hat sich aber gezeigt, dass die relativ hochohmigen Eingänge (mit den internen Pullups zwischen 20 und 50 kOhm) bei der Auswertung dieses anspruchslosen Signals kein Problem darstellen, zumal die Firmware das Signal extrem großzügig filtert. Wichtiger ist der Schutz des Controllers vor induktiv eingekoppelten Spannungsspitzen, die ihn theoretisch auch beschädigen könnten. Als Mindestschutz sind daher die Abblockkondensatoren C7+C8 (je 100nF keramisch) vorgesehen.
Tastatur (X4): Hier ist der direkte Anschluss einer Zahlentastatur (3 x 4 Matrix) vorgesehen. Eine Tastatur mit Einzelkontakten kann hier NICHT eingesetzt werden.
Die CodeLock-Firmware nutzt eine sehr niedrige Multiplexfrequenz von nur ca. 25 Hz zur Erkennung der gedrückten Tasten. Dennoch ist der Anschluss einer Zahlentastatur über meterlange Leitungen keine triviale Angelegenheit. Wer hier eine "abhörsichere" Lösung anstrebt, sollte bedenken, dass die steilen Rechtecksignale, wie sie direkt aus dem Mikrocontroller kommen, ein reiches Spektrum an Oberwellen haben. Diese hochfrequenten Komponenten werden über ein längeres, ungeschirmtes Kabel natürlich abgestrahlt. Sie können mit entsprechender Ausrüstung noch auf etliche Meter Entfernung nachgewiesen und möglicherweise hinsichtlich der gedrückten Tasten ausgewertet werden.
Es ist schon erschreckend, wie viele Hobbybastler aber auch kommerzielle Anbieter diese Tatsachen in ihren Schaltungsentwürfen vollkommen ignorieren. Hier sind Portleitungen bis zur Zahlentastatur durchverbunden und die oberwellenreichen Rechteckimpulse gelangen ungefiltert nach draußen. Konkrete Links auf solche Pfuschlösungen werde ich aus Rücksicht auf die Profilierungsinteressen armseliger Entwickler, die Profitinteressen skrupelloser Hersteller und das Abmahnunwesen schmieriger Anwaltskanzleien an dieser Stelle nicht angeben. Eine einfache Web-Suche nach Begriffen, wie "Zahlenschloss", "Codesschloss", "Selbstbau" usw. liefert jedoch jede Menge Aufreger.
Das können wir doch besser! Die Serienwiderstände R15-R21 sind nicht nur eine bewährte Schutzmaßnahme gegen direkten Kurzschluss zwischen Portleitungen. Sie bewirken nebenbei eine Erhöhung der Leitungsimpedanz. Auf diese Weise wird das angeschlossene Kabel weniger "resonanzfreundlich" und der Oberwellenanteil der Matrixsignale verringert sich auf dem freien Leitungsabschnitt.
Die Wirksamkeit dieser Maßnahme lässt sich nachweisen. Subjektiv (Kurzwellenempfänger) waren die Abstrahlungen unserer CodeLock-Schaltung an ungeschirmten Leitungen und Tastaturen schon kaum nachweisbar und sehr unspezifisch. An einem Probeaufbau, bei dem alle Komponenten mit üblichen Maßnahmen geschirmt waren, konnte ich mit Amateurmitteln in mehr als 10 cm (Zentimetern) Entfernung rein gar nichts mehr messen.
Die Serienwiderstände haben vermutlich auch eine Schutzwirkung gegen aktive HF-Angriffe, da auch ein von außen eingekoppeltes Signal bis zum (nichtlinearen und daher als Modulator wirkenden) Controller-Port ebenfalls stark bedämpft wird.
Diese Drosselwirkung lässt sich noch erheblich verbessern, indem wir R15-R21 jeweils stehend mit einer Ferritperle ausstatten.
Die Tastaturzuleitung sollte ein möglichst kurzes geschirmtes Kabel oder ein Flachbandkabel mit abwechselnden Masseleitungen sein. Leider ist man auf dem weiten Feld der HF-Technik vor "frequenzselektiven Überraschungen" nie ganz sicher... Was bis in den UHF-Bereich wie ein vorbildlich geschirmtes System aussieht, kann sich unter Mikrowellenbeschuss wieder ganz anders darstellen.
LED (X5): Hier liegt nach dem Einschalten die
unstabilisierte Betriebsspannung (abzüglich 0,7 V wegen T3) an. Über X5 können wir also nicht nur eine Kontroll-LED, sondern bei Bedarf auch die Beleuchtung einer Tastatur anschließen. Der Vorwiderstand R12 richtet sich nach dem gewünschten LED-Strom an der gegebenen Batteriespannung.
MASTER (X6): Dieser Anschluss geht über R8 (10k) an die Basis von T3 und ist unabhängig davon über die Diode D5 (BAT42) mit dem Porteingang PD0 von IC1 verbunden. Wenn wir diesen Anschluss mit einem Jumper kurzschließen, fließt dauerhaft Basisstrom für T3 und die Stromversorgung bleibt für Testzwecke oder zur Programmierung des Mikrocontrollers (über Zwischensockel) beliebig lange eingeschaltet.
Wenn wir das Zahlenschloss als Türschloss einsetzen wollen, brauchen wir in der guten Stube logischerweise eine Möglichkeit, die Tür bequem per Knopfdruck zu ver- und entriegeln, ohne irgendwelche Zahlencodes einzugeben. Zumal sich die Zahlentastatur ja draußen befindet...
Das moderne Pangdang zum eingesteckten oder griffbereiten Haustürschlüssel ist hier ein einfacher Taster! Ein kurzer Druck auf den MASTER-Knopf aktiviert das Schloss und ermöglicht ein Ver- und Entriegeln durch kurzen oder langen Tastendruck, da der Mikrocontroller dieses Signal ebenfalls über einen gesonderten Porteingang (PD0) auswertet. (Mehr dazu in der Beschreibung der
Firmware.)
Der Eingang X6 ließe sich auch über ein Relais oder den offenen Kollektor einer anderen Schaltung ansteuern. Ein übergeordnetes Sicherheitssystem könnte auf diese Weise die Tür freigeben.
Überlegungen zu passiven und aktiven Angriffen per Hochfrequenz: Selbstverständlich soll die Elektronik eines Zahlenschlosses möglichst wenig Hochfrequenzenergie abstrahlen, damit
passive HF-Angriffe von vornherein ausgeschlossen sind. In einem Worst-Case-Codeschloss wären die EM-Abstrahlungen so stark und eindeutig, dass ein Angreifer dem rechtmäßigen Benutzer auf viele Meter Entfernung gewissermaßen "per Funk über die Schulter schauen" kann, entsprechendes Equipment vorausgesetzt. (Stichworte: "Van-Eck-Phreaking", TEMPEST).
Bei
aktiven HF-Angriffen würde ein Angreifer die Anlage mit gepulster Hochfrequenzenergie (Mikrowellen) bestrahlen, und aus dem reflektierten Signal Informationen über interne Betriebszustände des angegriffenen Systems zu gewinnen versuchen. Wenn die Schaltung einigermaßen umsichtig konzipiert ist, liefert ein solcher Angriff jedoch keine auswertbaren Rückstrahlprofile. Vielmehr werden sich die schwachen Modulationseffekte verschiedenster Komponenten (und benachbarter Geräte) überlagern und sind dann im Echosignal nicht mehr klar zu unterscheiden. Wenn ein Angreifer jedoch physischen Zugriff auf die Anlage bekommt, kann er eine Art "Wanze" an geeigneter Stelle einbauen. Dabei kann es sich um unverdächtig aussehende "Standardbauteile" handeln, die sich auch normalerweise passiv verhalten, d.h. mit passiven HF-Spürgeräten nicht so ohne Weiteres erkennbar sind. Erst bei Hochfrequenzbestrahlung mit einer bestimmten Wellenlänge entsteht ein ausgeprägtes Echosignal, das mit dem interessierenden Signal der Schaltung moduliert ist.
Schon die wenigen bekannt gewordenen Dokumente über die NSA-Abteilung 'ANT' deuten darauf hin, dass staatliche Schnüffler und andere gut ausgerüstete Kriminelle auf verschiedene maßgeschneiderte Varianten dieser sogenannten Rückstrahlverfahren zurückgreifen können.
Glücklicherweise sind dieselben Maßnahmen, die unnötige HF-Abstrahlung unterbinden, auch gegen HF-Einstrahlung wirkungsvoll. Ein hochwertiges Metallgehäuse ist eine der offensichtlichsten Gegenmaßnahmen. Weitere Anregungen:
- Kabel zu angeschlossenen Geräten so kurz wie möglich halten und verdrosseln (Ferritringe).
- Signale mit Abblockkondensatoren HF-mäßig kurzschließen (sofern das Nutzsignal nicht zu stark bedämpft wird).
- Tastaturkabel abschirmen, Tastaturblock in Metallgehäuse (Codeschloss).
- Hauptplatine in Metallgehäuse. Zuleitungen HF-technisch verblocken (Drosseln, Kondensatoren).
- Einbau aktiver oder passiver Abhörvorrichtungen verhindern: Gehäuse plombieren, Sabotagekontakte, Alarmsystem, Objektsicherung.
- Originalzustand abfotografieren.
Massebezug: Das vorgeschlagene Platinenlayout ermöglicht eine isolierte Montage, d.h. über die Schraubbefestigung entsteht keine leitende Verbindung von Schaltungsmasse zum Chassis. Es ist also möglich, die gesamte Schließelektronik potenzialfrei zu installieren, wenn auch Batteriehalter/Netzteil entsprechend massefrei sind.
Unter dem Aspekt der Störsicherheit (Funkenstörungen des Motors, passive und aktive HF-Angriffe) ist es jedoch im Allgemeinen besser, wenn die Schaltung einen eindeutigen Massebezug erhält. Hierfür sollten wir an genau einer Stelle die elektrische Verbindung zwischen Schaltungsmasse (Minuspol) und Chassis (Metallgehäuse) vornehmen.
Wenn der Tastenblock in einem separaten Metallgehäuse untergebracht ist, welches ansonsten keine Verbindung zu einer gemeinsamen Erdung (z.B. Metalltür) hat, dann sollte das Gehäuse über Schirm/Masse der Tastaturzuleitung geerdet werden. (Dafür ist die GND-Leitung X4-4 gedacht.)
Nach oben |
Index
Hinweise zum Nachbau
Platine: Die Leiterplatte im Format 100 x 53 mm liegt als Pixelgrafik mit
exakter Skalierung auf 300 dpi vor. (Ich verwende keine proprietären Dateiformate, daher bitte ich von entsprechenden Anfragen abzusehen.)
Die Leiterbahn-Breiten im Bereich der Motorsteuerung sind wegen der zu erwartenden höheren Ströme etwas großzügiger ausgelegt. Die fertig bestückte und getestete Platine sollten wir später auf der Lötseite mit einem Schutzlack überziehen.
An die jeweilige Nennspannung des Elektromotors/Elektromagneten anzupassen:
Relais: DIL-Kleinrelais. Spulenspannung = unstabilisierte Batteriespannung = Nennspannung des Motors.
Erfolgreich getestete Relaistypen für 6 Volt:
Finder 30.22.9-6V (kann bis 2A schalten);
Takamisawa RY5W-K (nur kleine DC-Motore bis ca. 500 mA!)
Erfolgreich an 12 Volt eingesetzt:
Finder 30.22.9-12V
Da wir in dieser Anwendung immer zwei Kontaktsätze parallel schalten, erhöht sich die zulässige Strombelastung um theoretisch das Doppelte.
LED-Vorwiderstand R12 (Orientierungswerte):
Für Hintergrundbeleuchtung (z.B. Zahlentastatur "eao S.Series", grüne LEDs, Gesamtstrom ca. 50 mA):
6V ~ 100 Ohm / 12V ~ 220 Ohm / 24V ~ 470 Ohm
Für reine Anzeige-LED:
6V ~ 1kOhm / 12V ~ 2,2 kOhm / 24V ~ 4,7 kOhm
Serienwiderstände /Shunts R1 + R2 (Strombegrenzung DC-Motor / Motorbremse):
Der Wert richtet sich nach dem Motor-Anlaufstrom: Typische Werte für diese Serienwiderstände liegen zwischen 2,2 und 10 Ohm bei 5 Watt Belastbarkeit.
Ein guter Ausgangspunkt für die Dimensionierung dieser Widerstände ist der halbe Motorinnenwiderstand. Damit ergibt sich üblicherweise immernoch ein ausreichender Anlaufstrom, und der Lastwiderstand bei "Soft-Bremsung" entspricht wegen der dann vorliegenden Serienschaltung der beiden Widerstände ungefähr dem Motorinnenwiderstand, was eine sehr günstige Anpassung bedeutet.
Andere Bauteile müssen innerhalb des zulässigen Betriebsspannungsbereichs von ca. 4...24 V nicht angepasst werden.
Stromversorgung/Batteriepack: Batteriestecker X1 und Motorstecker X2 sollten hochwertig und für den zu erwartenden Spitzenstrom ausgelegt sein. Bis zu mehreren Ampere können wir auch noch Stiftleisten im 2,54-mm-Raster verwenden, wenn mehrere Stifte parallel geschaltet werden. Die Strombelastbarkeit erhöht sich dementsprechend und der Strompfad ist "redundant" ausgelegt. Dass alle Adern zur selben Zeit einen Bruch haben oder alle Kontakte auf einmal wackelig werden, ist bei dieser Art Steckverbindungen eher unwahrscheinlich. Wer dem Frieden nicht traut, kann aber auch Schraubklemmen zur Lötmontage im 7,5-mm-Raster einbauen. (Ähnliches gilt für den Motoranschluss X2.)
Bohrungen: 0,8 mm für die meisten Bauteile; 1,0 mm für Steckverbinder und Relais; 3,0 mm für Schraubbefestigungen (M3).
Nach oben |
Index
Hall of Shame

|
Kommerzielles Zahlenschloss (Bedienteil)
- Billiges Plastikteil
- Üble Folientastatur
- Nerviges Gepiepse
- Unsinnige Uhrenfunktion
("Wieviel Uhr ist es?" - "Du, da muss ich mal kurz an meinem Tresor nachgucken..." <bilderrahmenabhäng'> )
- Batteriefach, Bedienteil und Display außen...!
Schön sabotagefreundlich und keinerlei EM-Abschirmung!
- Mechanisches Notschloss für Lockpicker leicht zugänglich
|
Kommerzielles Zahlenschloss (Elektronik)
- China-Controller Typ "EM78P447"
- Codespeicherung in externem EEPROM
(geht's noch blöder?)
- Obskure Firmware
- Unzureichende Schlüssellänge nur max. 8 Stellen
- Sehr wahrscheinlich mit "Hintertürchen"
- Lapschige Motortreiber (SMD-Transistoren!)
- Billiger Gesamteindruck
|

|