Kostenlose technische Bibliothek ENZYKLOPÄDIE DER FUNKELEKTRONIK UND ELEKTROTECHNIK Entwurf eines automatisierten Zugangskontrollsystems. Enzyklopädie der Funkelektronik und Elektrotechnik Lexikon der Funkelektronik und Elektrotechnik / Mikrocontroller Heutzutage bietet der Markt für elektronische Komponenten zahlreiche Möglichkeiten zur Entwicklung von Systemen für verschiedene Zwecke. Es stellt sich jedoch die Frage: Wie wählt man die richtigen Komponenten für ein bestimmtes System aus? Der veröffentlichte Artikel diskutiert den Entwurf eines automatisierten Zugangskontrollsystems unter Verwendung allgemein verfügbarer, kostengünstiger Komponenten. Wo also anfangen? Die Entwicklung eines jeden Systems beginnt mit einer Liste von Anforderungen, die es erfüllen muss. Für das im Artikel beschriebene System könnte die Liste wie folgt aussehen. Das System muss:
Lassen Sie uns definieren, welche Komponenten das System enthalten soll. Berücksichtigen Sie dazu die oben aufgeführten Anforderungen. Aus Absatz 1 folgt, dass eine E/A-Leitung zur Steuerung des Türöffnungs-/Schließmechanismus und ein Gerät zur Eingabe einer Kennung benötigt wird. Die Wahl der Benutzeridentifikationstechnologie (Absatz 2) hat erhebliche Auswirkungen auf Systemeigenschaften wie Stabilität (Verhinderung des Zugriffs Dritter auf das Objekt durch Auswahl eines elektronischen Schlüssels/Codes), Benutzerfreundlichkeit (Zeit, die Benutzer für den Identifizierungsprozess aufwenden), kosten das System selbst und seinen weiteren Betrieb. Mögliche Lösungen hierfür sind beispielsweise die Passworteingabe über die Tastatur, die Verwendung von Magnetstreifenkarten und iButton-Dongles von Dallas Semiconductor [1,2]. Die Eingabe eines Passworts über die Tastatur ist am einfachsten und kostengünstigsten umzusetzen, allerdings nicht sehr bequem und widerstandsfähig, da Benutzer das Passwort vergessen oder jemand anderes es ausspionieren kann. Zudem nimmt die Eingabe der Codekombination bei häufigem Zutritt zu den Räumlichkeiten recht viel Zeit in Anspruch. Plastikkarten sind bequemer zu verwenden und ein solches System ist schwieriger zu „hacken“, seine Implementierung erfordert jedoch zusätzliche Geräte zum Lesen von Informationen von der Karte sowie spezielle Geräte zum Schreiben von Informationen darauf, die verwendet werden, wenn Hinzufügen eines neuen Benutzers. Dies erhöht die Kosten des endgültigen Systems erheblich. Betrachten wir die letzte Option. Der iButton-Schlüssel ist ein integrierter Schaltkreis, der in einem MicroCan-Tabletgehäuse aus Metall mit einem Durchmesser von 18 und einer Höhe von 6 mm untergebracht ist. Die Palette der in dieser Bauart gefertigten Produkte ist recht umfangreich: Echtzeituhren, Temperatursensoren, nichtflüchtige Speicher und vieles mehr. Die Kosten für einen iButton sind gering (etwa 2 US-Dollar) und auch die Implementierung des Lesegeräts ist recht einfach – tatsächlich ist der Datenbus direkt mit einer I/O-Leitung des Mikrocontroller-Ports verbunden. In diesem Fall ist es lediglich erforderlich, das 1-Wire-Protokoll in Software zu implementieren. Auch der Komfort bei der Nutzung eines solchen Systems liegt auf der Hand: Um den Code zu lesen, muss der Benutzer lediglich mit dem „Tablet“ das Kontaktpad berühren. Für das beschriebene System wurde die DS1990-Modifikation gewählt, die außer der Identifizierung keine weiteren Funktionen erfüllt, d. h. der Chip enthält nur einen eindeutigen Code, der durch Senden eines speziellen Befehls an das Gerät gelesen werden kann. Kehren wir zu den Anforderungen an die Funktionalität zurück. Aus Absatz 3 folgt, dass es notwendig sein wird, die Zeit zu verfolgen und Informationen über den Benutzerzugriff auf das Schutzobjekt aufzuzeichnen. Natürlich muss mit Stromausfällen gerechnet werden, daher müssen der Zeit- und Protokollierungsmechanismus für diese Art von Problemen robust sein. Da als Benutzerkennung DS1990 gewählt wird und es in jedem Fall erforderlich ist, das 1-Wire-Protokoll in Software zu implementieren, ist es sinnvoll, eine andere iButton-Modifikation zu verwenden – DS1994 als Echtzeituhr. Dieser Chip enthält eine eingebaute Lithiumbatterie, die eine Laufzeit von 10 Jahren garantiert. Um das Protokoll der Passagen zu speichern, wurde eine Reihe von Flash-Speichern von Atmel AT45 ausgewählt [3]. Das Lesen/Schreiben von Daten in diesen Speichertyp erfolgt über das serielle SPI-Protokoll, die Gesamtzahl der beteiligten Ein-/Ausgabeleitungen beträgt 7. Aus den verfügbaren Mikroschaltungen dieser Serie wurde AT45D041 mit einer Speicherkapazität von 4 Mbit ausgewählt. Zur Steuerung der Systemeinstellungen ist eine Tastatur erforderlich. In diesem Fall reicht eine 3x4-Tastenmatrix mit den Zahlen 0...9 und den Symbolen „*“ und „#“. Eine solche Tastatur würde 3+4=7 weitere I/O-Leitungen des Mikrocontrollers erfordern. Das Letzte, was Sie im System benötigen, ist ein kleines Display zum Anzeigen des Durchgangsprotokolls und zum Konfigurieren des Systems. Das Angebot an derzeit verfügbaren Low-Cost-Displays ist recht umfangreich, in unserem Fall ist jedoch keine Grafikausgabe erforderlich, sodass ein LCD zur Anzeige alphanumerischer Informationen ausreicht. LCDs, die auf dem HITACHI HD44780-Controller basieren, sind heute am beliebtesten [4]. Sie zeichnen sich durch einfache Verbindung und geringe Kosten aus. Die Datenübertragung erfolgt über eine 7-Bit- oder XNUMX-Bit-Schnittstelle (je nach verwendetem Modus), außerdem werden drei weitere I/O-Leitungen zur Übertragung von Steuersignalen benötigt. Um I/O-Leitungen einzusparen, wurde eine Vier-Bit-Schnittstelle gewählt, daher beträgt die Gesamtzahl der I/O-Leitungen zur Ansteuerung des LCD ebenfalls XNUMX. Damit ist die Auswahl der Peripheriegeräte abgeschlossen. Jetzt müssen wir einen Mikrocontroller auswählen, der alle oben genannten Geräte effektiv steuern kann. Berechnen wir zunächst die Anzahl der erforderlichen Ein-/Ausgabeleitungen, die am System beteiligt sein werden (Tabelle 1). Das erhaltene Ergebnis ist nicht endgültig, da in Zukunft (während des Betriebs) möglicherweise zusätzliche I/O-Leitungen benötigt werden, um beispielsweise LEDs, einen dynamischen Lautsprecherkopf usw. anzuschließen. Daher empfiehlt es sich, einen Mikrocontroller zu wählen, dessen Anzahl Die Anzahl der E/A-Leitungen ist größer als in der Tabelle angegeben. 1. Aus programmtechnischer Sicht sind Mikrocontroller sehr attraktiv, in denen die sogenannte ISP-Technologie (Ip-System Programming – In-Circuit-Programmierung) implementiert ist. Um einen neuen Programmcode in den Mikrocontroller zu laden, muss dieser nicht von der Platine entfernt werden: Die Programmierung erfolgt im Schaltkreis über spezielle Ausgänge. Darüber hinaus ist für einige Modifikationen nicht einmal ein Programmierer erforderlich – die „Firmware“ erfolgt über den Parallelport des Computers. Die akzeptabelste Lösung ist natürlich die Verwendung eines solchen Mikrocontrollers im System, für den keine zusätzlichen Mittel für die Firmware erforderlich sind. Zur Umsetzung der Aufgabe wurde der Mikrocontroller AT89S8252 ausgewählt, der in Code und Pinbelegung vollständig kompatibel mit Mikrocontrollern der 8051-Familie ist. Er verfügt über 8 KB In-Circuit-programmierbaren Flash-Programmspeicher mit einer Ressource von 1000 Rewrite-Zyklen, 2 KB eingebaut -in EEPROM (elektrisch löschbarer programmierbarer Nur-Lese-Speicher), 256 Byte RAM, 32 E/A-Leitungen, drei Timer, Watchdog-Timer, Hardware unterstützt SPI-Schnittstelle. Taktfrequenz - O...24 MHz (ein Maschinenzyklus wird in 12 Zyklen ausgeführt, daher beträgt die maximale Leistung zwei Millionen Operationen pro Sekunde). Die Wahl dieses speziellen Mikrocontrollers wird durch Folgendes begründet. Mikrocontroller der 8051-Serie verfügen über einen umfangreichen Befehlssatz, der ihre Programmierung auf niedriger Ebene erleichtert (z. B. werden Operationen an einzelnen Bits unterstützt [5]). Die ISP-Technologie beschleunigt das Debuggen und erleichtert die Entwicklung. Die Hardwareunterstützung für die SPI-Schnittstelle ermöglicht den Anschluss des ausgewählten Flash-Speichers der AT45-Serie ohne zusätzliche Programmierung dieses Protokolls. Der 2 KB große integrierte EEPROM kann zum Speichern von Informationen verwendet werden, die unabhängig von der Anwesenheit einer externen Stromversorgung erhalten bleiben müssen. Zur Umsetzung des beschriebenen Systems genügen 32 I/O-Leitungen. Das Vorhandensein von Timern ermöglicht eine flexible Implementierung des 1-Wire-Protokolls, da es eine Genauigkeit bei der Einhaltung von Zeitverzögerungen erfordert. Der Watchdog-Timer sorgt dafür, dass das System auch dann betriebsbereit bleibt, wenn es starken elektromagnetischen Störungen ausgesetzt ist, die zum Einfrieren des Controllers führen können. Der Watchdog-Timer ist ein unabhängiges Subsystem im Mikrocontroller, das alle N Zyklen den Zustand eines Bits im Statusregister des Mikroprozessors überprüft. Wenn dieses Bit gesetzt ist, wird der Mikrocontroller in seinen Ausgangszustand zurückgesetzt, und wenn es zurückgesetzt wird, wird es auf 1 gesetzt und der Test stoppt. Dementsprechend muss das ausgeführte Programm dieses Bit in Abständen von nicht mehr als N Zyklen zurücksetzen. Geschieht dies nicht, bedeutet dies, dass der Betrieb des Mikrocontrollers durch externe Störungen gestört wurde und der Mikrocontroller beim nächsten Auslösen des Watchdog-Timers in seinen Ausgangszustand zurückgesetzt wird. Bevor wir mit der Softwareimplementierung fortfahren, betrachten wir die Architektur noch einmal unter dem Gesichtspunkt ihrer Wirksamkeit bei der Ausführung der direkten Funktionen des Systems. Das entworfene System unterstützt zwei Arten der Informationseingabe: über die Tastatur (Befehle zum Einrichten des Systems, Anzeigen des Passprotokolls) und über das Kontaktpad der 1-Wire-Schnittstelle. Da der Hauptzweck des Systems die Zugangskontrolle ist, muss die Abfragezeit des 1-Wire-Pads die für die Abfrage der Tastatur vorgesehene Zeit überschreiten. Betrachtet man die Spezifikation des 1-Wire-Protokolls, erkennt man, dass zwei grundsätzlich unterschiedliche Situationen möglich sind: die erste, wenn nur ein Gerät an der Leitung angeschlossen ist, und die zweite, wenn mehrere davon vorhanden sind. Um die Anzahl der Geräte auf der Leitung und deren Kennungen zu ermitteln, ist in der 1-Wire-Protokollspezifikation ein spezieller Suchmechanismus festgelegt. Es besteht im sukzessiven Durchsuchen der Geräte in der Leitung und dem bitweisen Scannen des Adressraums (des „Button“-Identifizierungsraums). Darüber hinaus muss dieser Vorgang nach jedem Kommunikationszyklus mit angeschlossenen Geräten erneut durchgeführt werden (da deren Zusammensetzung variieren kann). ändern). Wie bereits erwähnt, ist in unserem System eine 1-Wire-Leitung vorgesehen, die sowohl für den Anschluss der Echtzeituhr als auch für Identifikationsschlüssel verwendet wird, und die Echtzeituhr, die Teil des Systems ist, wird ständig angeschlossen sein . Dies bedeutet, dass es eine Situation gibt, in der sich mehr als ein Gerät in der Leitung befinden kann. Unter Berücksichtigung des oben Gesagten und des Vorhandenseins freier Leitungen von I/O-Ports ist es sinnvoll, zwei Leitungen im System für das 1-Wire-Protokoll zuzuweisen: Schließen Sie eine Echtzeituhr dauerhaft an eine davon an und verwenden Sie die zweite nur zur Darstellung von Benutzerkennungen. Durch diese Konfiguration wird sichergestellt, dass immer nur ein Gerät an jeder Leitung vorhanden ist, was die Systemimplementierung erheblich vereinfacht, die Reaktionszeit verkürzt und Programmspeicherplatz spart. Die DS1994-Echtzeituhr verfügt über einen Fünf-Byte-Zähler, der 256 Mal pro Sekunde hochzählt. Bei einem Überlauf wird die Zählung bei Null fortgesetzt. Die Kapazität von 5 Byte reicht für 136 Betriebsjahre bis der Zähler überläuft. Da der Benutzer die Uhrzeit in einem für ihn geeigneten Format anzeigen muss und auch die Möglichkeit zum Einstellen der Uhr bereitgestellt werden muss, muss das eingebettete System die Konvertierung von Datum und Uhrzeit vom internen Format in Text unterstützen und umgekehrt. Als Bezugspunkt wird das Datum 01.01.2000 00:00:00 gewählt, das den Betrieb der Uhr und die Protokollierung bis ca. 2136 gewährleistet. Und noch ein Punkt, auf den Sie achten sollten. Wir haben vereinbart, dass das Passprotokoll im externen Flash-Speicher gespeichert wird, wir müssen jedoch noch den Ort festlegen, an dem die Liste der Zugriffsrechte gespeichert werden soll. Bei der Beschreibung des Mikrocontrollers wurde von einem eingebauten EEPROM mit einer Kapazität von 2 KB gesprochen. Es ist ideal für diesen Zweck, da die Zugriffsliste wertvoller ist als das Pass-Log, und wenn beispielsweise letzteres sein kann Wenn der Mikrocontroller (physisch) aus dem System entfernt wird, indem der entsprechende Chip von der Platine entfernt wird, kann die Liste der Zugriffsrechte nur durch Entfernen des Mikrocontrollers gelöscht werden, ohne den das System nicht funktionieren kann. Im beschriebenen System reichte die angegebene Speichermenge aus, um 168 Konten unterzubringen, d. h. die maximale Benutzerzahl beträgt 168. Das Durchlaufprotokoll ist als Ringliste implementiert und wenn es voll ist, werden die ältesten Einträge gelöscht. Die Größe eines Protokolleintrags beträgt 12 Byte (4 Byte für die Durchlaufzeit und 8 Byte für die Kennung). Daraus folgt, dass genügend Protokollspeicher vorhanden ist, um etwa 45 Durchläufe zu protokollieren, bevor der erste Protokollüberlauf auftritt. Während des Entwicklungsprozesses wurde das System um eine weitere Komponente erweitert – einen Reed-Schalter an der Tür. Dies ist notwendig, damit das System feststellen kann, ob die Tür gerade geöffnet oder geschlossen ist, und um die Stromversorgung des Elektromagneten rechtzeitig abzuschalten. Der folgende Türöffnungsalgorithmus ist implementiert: An die Magnetspule wird Spannung angelegt und das System wartet, bis die Tür geöffnet wird oder bis eine Zeitverzögerung von 5 s abläuft, wonach die Spannungsversorgung stoppt. Das schematische Diagramm des entwickelten Geräts ist in der Abbildung dargestellt. Wie Sie sehen, enthält es neben dem DD1-Mikrocontroller einen DS1-Flash-Speicherchip, eine 12-Tasten-Tastatur SB1 – SB12 und ein LCD HG1. Die Taktfrequenz des Mikrocontrollers stellt den Quarzresonator ZQ1 auf 24 MHz ein. Port P0 dient zur Eingabe von Informationen von der iButton-Uhr (angeschlossen an Buchse Tür und registrieren Sie den an ihrem Reed-Schalter installierten Zustand. Der Informationsaustausch mit dem DS1-Flash-Speicherchip erfolgt über Port P2. Die Tastatur wird über Port P1 bedient, der Indikator HG1 über Port РЗ. Das Gerät wird mit einer stabilisierten Spannung von 1 V betrieben. Um das Relais zu versorgen, das den Betrieb des Elektromagneten steuert, ist eine Spannungsquelle von 2 ... 1 V erforderlich. Das Gerät wird auf einer Platine geeigneter Abmessungen montiert. Zur Verbindung des DD1-Mikrocontrollers und des DS1-Speicherchips empfiehlt es sich, die entsprechenden Buchsen zu verwenden. Die montierte Platine wird in ein Kunststoff- oder Metallgehäuse gelegt, die Tastatur und das LCD-Display werden auf der Frontplatte angezeigt. Das Gerät wird im geschützten Raum installiert. Mikrocontroller-Firmware-Codes und Programmquelltexte Nach dem Einschalten des Geräts zeigt das LCD eine Liste der in der Tabelle aufgeführten Menüelemente an. 2. Da der Indikator nur zwei Zeilen hat, werden die Tasten „#“ und „*“ zum horizontalen „Scrollen“ verwendet. Um einen dieser Befehle auszuführen, sind Administratorrechte erforderlich. Nach Auswahl eines Menüpunkts durch Drücken der entsprechenden Taste müssen Sie einen Schlüssel mit Administratorrechten vorlegen, andernfalls wird der angeforderte Befehl ignoriert. Bei der Arbeit am Gerät traten in verschiedenen Entwicklungsstadien Probleme auf. Folgende Punkte möchte ich anmerken. Hardware-Teil. Jeder Mikroprozessor verfügt über die maximal zulässigen Werte des Eingangs- und Ausgangsstroms der Eingangs-/Ausgangsports. Wenn Sie beispielsweise eine LED im System verwenden müssen, können die meisten Mikrocontroller den E/A-Port nicht mit dem erforderlichen Strom versorgen, wenn der aktive Zustand log ist. 1. In einem solchen Fall muss der Protokollstatus aktiviert werden. 0 durch Anschließen der Anode der LED an die Stromschiene. Wir sollten auch die Strombegrenzung nicht vergessen, indem wir einen Widerstand mit einem Widerstand von etwa 2 kOhm in Reihe mit der Last schalten. Wenn Sie das Protokoll noch verwenden müssen. 1 als aktiver Zustand und die Last zu groß ist, sollte zum Einschalten der Last ein Transistorschalter verwendet werden. Bei der Implementierung eines 1-Wire-Busses ist es notwendig, den Datenbus über einen Widerstand an die Versorgungsspannung „hochzuziehen“. Dies ist notwendig, damit die Leitung beim Übergang von Low nach High schnell die Schaltschwelle zum Protokoll erreicht. 1. Der Wert des Widerstands muss zwischen 4,7 ... 5,1 kOhm liegen. Wenn die Länge der Drähte groß genug ist (mehrere Meter), kann der Widerstandswert des Widerstands verringert werden. Wir sollten nicht den maximalen Strom vergessen, den alle an die Ports des Mikrocontrollers angeschlossenen Geräte verbrauchen können. Es muss der Fall betrachtet werden, dass sich alle in einem aktiven Zustand befinden, und berechnet werden, ob der Mikrocontroller eine solche Ausgangsleistung bereitstellen kann. Wenn der zulässige Höchstwert überschritten wird, werden die Geräte einfach nicht zum richtigen Zeitpunkt eingeschaltet. Softwareteil. Vieles im Entwicklungsprozess hängt davon ab, welcher Compiler verwendet wird, wie gut er den Code optimiert und im Speicher zuweist, ob er Ihnen ermöglicht, Programme auf Ihrem eigenen Emulator zu debuggen, sowie die Ausführungszeit des Programms zu verfolgen usw. Wenn das Programm String-Konstanten verwendet, müssen aufgrund der begrenzten RAM-Größe spezielle Anweisungen verwendet werden, um dem Compiler mitzuteilen, dass sie sich im Programmspeicherbereich befinden sollen. Für den Keil uVision-Compiler sieht es beispielsweise so aus: „const char code sz[6] = „Hello““, wobei der Modifikator „code“ dem Compiler mitteilt, dass die Zeichenfolge im Programmspeicher abgelegt werden soll. Für zeitkritische Vorgänge ist es besser, einen Timer zu verwenden, da in diesem Fall der Bezug zur Taktfrequenz durch Einführung einer Konstanten erfolgt, die bei Frequenzänderungen leicht korrigiert werden kann. Sie sollten keine Funktionen mit einer großen Anzahl übergebener Parameter erstellen, da diese beim Aufruf über Register (und bei zu vielen Parametern über feste Bereiche im Speicher) weitergeleitet werden. Jeder dieser Aufrufe erfordert zusätzlichen Code, um die Registerwerte vor dem Aufruf der Funktion zu speichern und diese Parameter innerhalb der Funktion abzurufen. Die Lösung könnte darin bestehen, globale Variablen zu verwenden, allerdings muss man hier sehr vorsichtig sein, wenn die aufgerufene Funktion wiederum eine Funktion aufruft, die dieselben Parameter verwendet. Wenn für die Programmierung eine Hochsprache verwendet wird, ist es sinnvoll, den resultierenden Assembler-Code im Hinblick auf seine Optimalität zu bewerten (falls Sie auf ein Problem mit Speichermangel stoßen). Moderne Compiler generieren beim Schreiben von Programmen in einer Hochsprache recht kompakten und schnellen Assembler-Code, sodass es nicht notwendig ist, den gesamten Code in Assembler zu schreiben. Allerdings ist der Einsatz von Assembler bei zeitkritischen Vorgängen (hinsichtlich Geschwindigkeit und Genauigkeit) sinnvoll. Natürlich kann das im Artikel beschriebene System in mehreren Richtungen verbessert werden. Fügen Sie beispielsweise eine Zugriffsbeschränkung nach Tageszeit hinzu, protokollieren Sie unbefugte Zugriffsversuche (durch Angabe einer Kennung ohne Zugriffsrechte) und fügen Sie, wie Sie wissen, Unterstützung für die Zugriffskontrolle für das zweite Objekt hinzu (dies erfordert jedoch drei zusätzliche E/A-Leitungen). Der Perfektion sind keine Grenzen gesetzt, aber hier ist der Programmspeicher im Mikrocontroller begrenzt. Der Hauptzweck des Artikels besteht darin, den gesamten Zyklus der Erstellung eines eingebetteten Systems anhand eines konkreten Beispiels zu zeigen und einige praktische Ratschläge zur Lösung von Problemen zu geben, die im Verlauf seiner Entwicklung auftreten können. Literatur
Autor: A.Rantsevich, Minsk Siehe andere Artikel Abschnitt Mikrocontroller. Lesen und Schreiben nützlich Kommentare zu diesem Artikel. Neueste Nachrichten aus Wissenschaft und Technik, neue Elektronik: Eine neue Möglichkeit, optische Signale zu steuern und zu manipulieren
05.05.2024 Primium Seneca-Tastatur
05.05.2024 Das höchste astronomische Observatorium der Welt wurde eröffnet
04.05.2024
Weitere interessante Neuigkeiten: ▪ Chips zur LCD-Steuerung mit XGA- und SXGA-Formaten ▪ Innovatives Lidar Velodyne VLS-128 News-Feed von Wissenschaft und Technologie, neue Elektronik
Interessante Materialien der Freien Technischen Bibliothek: ▪ Abschnitt der Website Datenübertragung. Artikelauswahl ▪ Artikel Gewalt – die Hebamme der Geschichte. Populärer Ausdruck ▪ Artikel Was ist eine Erkältung? Ausführliche Antwort ▪ Artikel Dressing Nurse. Standardanweisung zum Arbeitsschutz ▪ Artikel Mobiltelefone von Siemens entsperren. Enzyklopädie der Funkelektronik und Elektrotechnik
Hinterlasse deinen Kommentar zu diesem Artikel: Alle Sprachen dieser Seite Startseite | Bibliothek | Artikel | Sitemap | Site-Überprüfungen www.diagramm.com.ua |