Kostenlose technische Bibliothek ENZYKLOPÄDIE DER FUNKELEKTRONIK UND ELEKTROTECHNIK PIC-Controller-Schnittstelle mit einem Computer. Enzyklopädie der Funkelektronik und Elektrotechnik Lexikon der Funkelektronik und Elektrotechnik / Mikrocontroller Bei der Entwicklung eines Geräts auf einem Mikrocontroller (MCU) stellt sich häufig das Problem, es zum Informationsaustausch mit einem Computer zu verbinden. In den meisten Fällen ist der bidirektionale Modus zu einem relativ niedrigen Wechselkurs erforderlich. Im besten Fall kann der MK über eine serielle Schnittstelle verfügen, meist muss er jedoch aus den günstigen Modellen ausgewählt werden, die nicht über eine solche Schnittstelle verfügen. Beispielsweise verfügt der in letzter Zeit sehr beliebte Mikrochip PIC16F84A von Microchip nicht über eine solche Schnittstelle. Der Artikel diskutiert die Möglichkeit der Software-Implementierung der seriellen Schnittstelle sowohl von der MK-Seite als auch von der Computerseite. Um mit dem Gerät am MK zu kommunizieren, können Sie den parallelen (LPT) oder seriellen (COM) Port des Computers nutzen. Das erste ist einfacher zu handhaben – es kann eine relativ größere Anzahl von Ein- und Ausgangssignalen verwenden, deren Pegel mit TTL kompatibel sind. Der Nachteil dieses Ports besteht darin, dass unter DOS oder Linux einfache Ein-/Ausgabeoperationen ausreichen, um ihn zu verwenden. Für den korrekten Betrieb unter Windows ist jedoch die strikte Einhaltung des Datenübertragungsprotokolls erforderlich, was bei der Arbeit mit einem Mikrocontroller nicht zielführend ist . Eine direkte Ansteuerung einzelner LPT-Portleitungen ist ebenfalls möglich, erfordert jedoch die Installation eines speziellen Treibers. Der „Nachteil“ des LPT-Anschlusses besteht darin, dass es bei den meisten Computern nur einen gibt und dieser in der Regel vom Drucker belegt ist. Die Hauptvorteile des COM-Ports bestehen darin, dass Sie mit der Standard-Windows-Programmierschnittstelle (API) einige Ausgabe- und Eingabeleitungen direkt steuern können und außerdem auf ein mit dem COM-Port verbundenes Ereignis warten können. Sein Vorteil besteht darin, dass der RS-232-Standard, nach dem die COM-Ports gefertigt sind, das Anschließen und Trennen von Kabeln während des Betriebs der Geräte ermöglicht (Hot Plug). Darüber hinaus verfügt der Computer fast immer über einen freien COM-Port. Der Nachteil des Ports besteht darin, dass sich der Signalpegel von TTL unterscheidet, bei dem der niedrige logische Pegel einer Spannung von -12 und der hohe +12 V entspricht. Die Implementierung einer Standard-RS-232-Schnittstelle würde erfordern, dass der MK die Zeitintervalle zwischen den Ausgangssignalen strikt einhält. In einer realen Situation entspricht der Quarzresonator des Mikrocontrollers möglicherweise nicht der Datenübertragungsfrequenz und der MK selbst ist normalerweise mit etwas Wichtigerem als der Bildung präziser Zeitintervalle beschäftigt. Dadurch erweist es sich als einfacher, eine serielle synchrone Austauschoption programmgesteuert zu implementieren, wenn jedes Datenbit durch einen Synchronisationsimpuls bestätigt wird. Das schematische Diagramm der vorgeschlagenen Schnittstelle ist in Abb. 1 dargestellt. eines. Um RS-232-Pegel in TTL umzuwandeln, werden Widerstandsteiler R1R4 und R2R5 verwendet. Die Dioden VD1 und VD2 sind notwendig, um die negative Spannung, die der logischen Null entspricht, nicht durchzulassen. Das TTL-Ausgangssignal des MK bedarf keiner Konvertierung und kann direkt den Eingangsleitungen des COM-Ports zugeführt werden. Der Widerstand R3 begrenzt den Ausgangsstrom des MK im Falle eines möglichen versehentlichen Kurzschlusses. Wie Sie dem Diagramm entnehmen können, sind für die Kommunikation mit dem Computer vier Drähte erforderlich. Der Computer initiiert den Datenaustausch, indem er Taktimpulse an die DTR-Leitung sendet, gesendete Daten auf der RTS-Leitung platziert und empfangene Daten über die CTS-Leitung empfängt. Der Computer und MK können Daten nur ändern, wenn der logische Pegel des Synchronisationssignals niedrig ist. Diese Schnittstellenimplementierungsoption ermöglicht eine Vollduplex-Datenübertragung. Die XS1-Pin-Nummern im Diagramm gelten für eine DB-25F-Buchse bei Verwendung eines Standardmodemkabels. Die Kontaktnummern für andere Anschlüsse und bei Verwendung eines Nullmodemkabels finden Sie in der Tabelle. 1. Die Wiederholungsrate der Synchronimpulse muss so gewählt werden, dass der Mikrocontroller garantiert Zeit hat, Daten vom Computer zu verarbeiten und auf jeden Synchronimpuls zu reagieren. Informationsbits werden sequentiell übertragen. Nach Abschluss der Übertragung der Bits eines Bytes folgt die Übertragung der nächsten Byte-Bits, wobei das höchstwertige Informationsbit zuerst übertragen wird. Um die Schnittstelle wieder in den ursprünglichen Zustand zu versetzen (Nummer des übertragenen Bytes auf 0 setzen), muss sich der Computer anmelden. 1 auf der Synchronisationsleitung ändert den Zustand der Datenleitung. Der MK gibt ein neues Datenbit auf der CTS-Leitung aus, wenn Impulse positiver Polarität am DTR-Synchronisationseingang abfallen, und liest Daten von der RTS-Leitung am Rand von Impulsen positiver Polarität. Der Austausch kann jederzeit unterbrochen werden, indem die Zufuhr von Synchronisationsimpulsen gestoppt wird. Das Zeitdiagramm des Datenaustauschs ist in Abb. dargestellt. 2. Bei der Implementierung einer Schnittstelle empfiehlt es sich, in einigen Bytes Kontrollwerte zu übertragen, um die Korrektheit der übertragenen Daten zu überprüfen. Der Quellcode des Verfahrens für den Mikrocontroller PIC16F84A [1] in C-Sprache, der die vorgeschlagene Schnittstelle implementiert, ist in der Tabelle angegeben. 2. Der Aufruf der link()-Prozedur befindet sich in der Hauptprogrammschleife und wird während des MK-Betriebs ständig aufgerufen, um den Zustand der Schnittstelle zu überwachen. Alle von der Prozedur verwendeten Variablen werden als global deklariert. Bei jedem Aufruf liest es die Zustände der Schnittstelleneingangsleitungen (RB6 und RB7) und vergleicht sie mit ihren Zuständen beim vorherigen Aufruf. Unter bestimmten Bedingungen (Synchronisationsabfall, Synchronisationsflanke, Schnittstellen-Reset) werden Aktionen gemäß der Logik der Schnittstelle ausgeführt. Der Quellcode der Prozedur für einen Computer in Pascal (Delphi) ist in der Tabelle angegeben. 3. Hier wird einmalig die Link-Prozedur aufgerufen, um den Informationsaustausch mit dem MK durchzuführen. Bevor Sie es aufrufen, müssen Sie den übergebenen Obuf-Puffer füllen. Am Ende des Vorgangs befinden sich die empfangenen Daten im ibuf-Array. Die Prozedur öffnet den angegebenen COM-Port auf dem Computer und steuert mithilfe von Windows-API-Funktionen [2] den Status der Ausgabeleitungen und fragt die Eingabeleitungen ab. Nach Abschluss des Informationsaustauschs wird der Port geschlossen. Im Link-Verfahren werden Zeitverzögerungen über die Funktion „sleep()“ implementiert. Ihre Werte werden berechnet oder experimentell ausgewählt, basierend auf der Abwesenheit von Bitverlusten während des Datenaustauschs zwischen dem MK und dem Computer. Das Beispiel zeigt Verzögerungen für den Austausch mit einem PIC-Controller mit Quarzresonator bei einer Frequenz von 4 MHz, der darüber hinaus noch andere nützliche Arbeit leistet. Sollte der Austauschvorgang zu lange dauern, kann er in einen separaten Ausführungsthread des Betriebssystems verschoben werden, sodass er parallel zum Hauptprogramm ausgeführt wird [2]. Wenn der Informationsaustausch getrenntes Lesen und Schreiben erfordert, können Sie Arrays gesendeter und empfangener Daten auf verschiedene Adressen verteilen, wie in Abb. 2. In MK ist es zweckmäßig, die Bildung übertragener Daten und die Verwendung empfangener Daten in Form der Prozeduren upload() und download() zu konstruieren, die vor dem Senden bzw. beim Empfang des nächsten Bytes aufgerufen werden. Der erste von ihnen muss den Wert des übertragenen Bytes anhand seiner Nummer im übertragenen Informationspaket zurückgeben, der zweite erhält den Wert des empfangenen Bytes und seine Nummer im Paket und muss diese Werte verwenden, um die MK-Register zu ändern und zu schreiben zum EEPROM usw. Die Implementierung dieser Verfahren zur Verarbeitung eines Informationspakets mit einer Größe von 4 Byte (Tabelle 4) ist in der Tabelle dargestellt. 5. Für den C2C-Compiler [3] wird ein Beispielprogramm für MK gegeben. Das Computerverfahren kann in einem Programm verwendet werden, das in Borland Delphi 3 oder höher geschrieben ist. Literatur
Autor: S.Kuleshov, Kurgan 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: ▪ Antidepressiva für Alkoholismus ▪ Ultradünnes und flexibles elektrophoretisches Display ▪ MAX77950 Universeller drahtloser Leistungsempfänger News-Feed von Wissenschaft und Technologie, neue Elektronik
Interessante Materialien der Freien Technischen Bibliothek: ▪ Abschnitt der Website Arbeitssicherheit. Artikelauswahl ▪ Artikel Was ist ein Lubok? Ausführliche Antwort ▪ Artikel Fremdkörper im Gehörgang. Gesundheitspflege ▪ Artikel Fototransistoren. 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 |