Programmierbeispiele über den COM-Port. Anatomie eines COM-Ports. COM-Erweiterungskarten

Beschreibung der RS-232-Schnittstelle, des Formats der verwendeten Stecker und des Verwendungszwecks der Pins, der Bezeichnungen der Signale, des Datenaustauschprotokolls.

allgemeine Beschreibung

Die RS-232-Schnittstelle, ganz offiziell "EIA / TIA-232-E", besser bekannt als "COM-Port"-Schnittstelle, war früher eine der gängigsten Schnittstellen in der Computertechnik. Es ist auch heute noch in Desktop-Computern zu finden, trotz des Aufkommens schnellerer und intelligenterer Schnittstellen wie USB und FireWare. Zu den Vorteilen aus Sicht der Funkamateure zählen eine geringe Mindestgeschwindigkeit und die einfache Implementierung des Protokolls in ein selbstgebautes Gerät.

Die physikalische Schnittstelle wird durch einen von zwei Steckertypen realisiert: DB-9M oder DB-25M, letzteres ist in den derzeit produzierten Computern praktisch nicht zu finden.

Pinbelegung des 9-poligen Steckers


9-poliger Stecker DB-9M-Stecker
Pin-Nummerierung von der Pin-Seite
Die Richtung der Signale wird relativ zum Host (Computer) angezeigt
Kontakt Signal Richtung Beschreibung
1 CD Eingang Mobilfunkanbieter erkannt
2 RXD Eingang Empfangene Daten
3 TXD Ausgang Übertragene Daten
4 DTR Ausgang Gastgeber bereit
5 Masse - Gemeinsamer Draht
6 DSR Eingang Das Gerät ist bereit
7 RTS Ausgang Gastgeber ist bereit für die Übertragung
8 CTS Eingang Das Gerät ist empfangsbereit
9 RI Eingang Anruf erkannt

25-polige Steckerbelegung

Kontakt Signal Richtung Beschreibung
1 SCHILD - Bildschirm
2 TXD Ausgang Übertragene Daten
3 RXD Eingang Empfangene Daten
4 RTS Ausgang Gastgeber ist bereit für die Übertragung
5 CTS Eingang Das Gerät ist empfangsbereit
6 DSR Eingang Das Gerät ist bereit
7 Masse - Gemeinsamer Draht
8 CD Eingang Mobilfunkanbieter erkannt
9 - - Reservieren
10 - - Reservieren
11 - - Wird nicht benutzt
12 SCD Eingang Mobilfunkanbieter Nr. 2 erkannt
13 SCTS Eingang Gerät empfangsbereit # 2
Kontakt Signal Richtung Beschreibung
14 STXD Ausgang Übertragene Daten # 2
15 TRC Eingang Sendertaktung
16 SRXD Eingang Empfangene Daten # 2
17 RCC Eingang Empfängeruhr
18 LLOOP Ausgang Kreisverkehr
19 SRTS Ausgang Host bereit für die Übertragung # 2
20 DTR Ausgang Gastgeber bereit
21 RLOOP Ausgang Außenscharnier
22 RI Eingang Anruf erkannt
23 DRD Eingang Datenrate ermittelt
24 TRCO Ausgang Externe Sendertaktung
25 PRÜFUNG Eingang Testmodus

Aus den Tabellen ist ersichtlich, dass sich die 25-Pin-Schnittstelle durch das Vorhandensein eines vollwertigen zweiten Sende-Empfangs-Kanals (Signale mit der Bezeichnung "# 2") sowie zahlreicher zusätzlicher Steuer- und Überwachungssignale auszeichnet. Trotz des Vorhandenseins eines "breiten" Anschlusses im Computer werden jedoch häufig keine zusätzlichen Signale daran angeschlossen.

Elektrische Eigenschaften

Logikpegel des Senders:"0" - von +5 bis +15 Volt, "1" - von -5 bis -15 Volt.

Logikpegel des Empfängers:"0" - über +3 Volt, "1" - unter -3 Volt.

die Eingangsimpedanz des Empfängers beträgt mindestens 3 kOhm.

Diese Eigenschaften sind von der Norm als Minimum definiert, was die Kompatibilität der Geräte garantiert, die tatsächlichen Eigenschaften sind jedoch normalerweise viel besser, was es einerseits ermöglicht, Geräte mit geringem Stromverbrauch über den Port zu versorgen (dies ist beispielsweise wie zahlreiche selbstgebaute Datenkabel für Handys konstruiert sind) und andererseits zur Versorgung an der Hafeneinfahrt invertiert TTL-Pegel statt bipolares Signal.

Beschreibung der wichtigsten Schnittstellensignale

CD- Das Gerät setzt dieses Signal, wenn es einen Träger im empfangenen Signal erkennt. Normalerweise wird dieses Signal von Modems verwendet, die auf diese Weise dem Host mitteilen, dass am anderen Ende der Leitung ein funktionierendes Modem gefunden wurde.

RXD- Die Leitung, über die der Host Daten vom Gerät empfängt. Es ist im Abschnitt „Kommunikationsprotokoll“ ausführlich beschrieben.

TXD- Host-Übertragungsleitung von Daten zum Gerät. Es ist im Abschnitt „Kommunikationsprotokoll“ ausführlich beschrieben.

DTR- Der Host macht dieses Signal geltend, wenn er zum Datenaustausch bereit ist. Tatsächlich wird das Signal gesetzt, wenn der Port durch das Kommunikationsprogramm geöffnet wird und bleibt in diesem Zustand, solange der Port geöffnet ist.

DSR- Das Gerät aktiviert dieses Signal, wenn es eingeschaltet und bereit ist, mit dem Host zu kommunizieren. Dieses und vorherige (DTR) Signale müssen für den Datenaustausch gesetzt werden.

RTS- Der Host setzt dieses Signal, bevor er mit der Übertragung von Daten an das Gerät beginnt, und signalisiert auch, dass er bereit ist, Daten vom Gerät zu empfangen. Wird für die Hardware-Kommunikationssteuerung verwendet.

CTS- Das Gerät aktiviert dieses Signal als Reaktion auf die vorherige (RTS)-Einstellung des Hosts, wenn es bereit ist, Daten zu empfangen (z im Zwischenpuffer).

RI- Das Gerät (normalerweise ein Modem) gibt diesen Ton aus, wenn es einen Anruf vom entfernten System erhält, beispielsweise wenn es einen Telefonanruf empfängt, wenn das Modem auf den Empfang von Anrufen eingestellt ist.

Kommunikationsprotokoll

Beim RS-232-Protokoll gibt es zwei Methoden der Datenaustauschsteuerung: Hardware und Software sowie zwei Übertragungsmodi: synchron und asynchron. Das Protokoll ermöglicht die Verwendung jedes der Steuerverfahren in Verbindung mit jedem Übertragungsmodus. Es ermöglicht auch den Betrieb ohne Flusskontrolle, was bedeutet, dass Host und Gerät immer bereit sind, Daten zu empfangen, wenn die Kommunikation hergestellt ist (DTR- und DSR-Signale werden hergestellt).

Hardware-Steuerungsmethode implementiert unter Verwendung von RTS- und CTS-Signalen. Um Daten zu übertragen, aktiviert der Host (Computer) das RTS-Signal und wartet darauf, dass das Gerät das CTS-Signal setzt, und beginnt dann mit der Datenübertragung, solange das CTS-Signal aktiviert ist. Das CTS-Signal wird vom Host kurz vor Beginn der Übertragung des nächsten Bytes überprüft, sodass das bereits begonnene Byte unabhängig vom CTS-Wert vollständig übertragen wird. Im Halbduplex-Modus des Datenaustauschs (das Gerät und der Host senden abwechselnd Daten, im Vollduplex-Modus können sie dies gleichzeitig tun) bedeutet das Entfernen des RTS-Signals durch den Host seinen Übergang in den Empfangsmodus.

Software-Steuerungsmethode ist für die empfangende Partei das Senden der Sonderzeichen Stop (Zeichen mit Code 0x13, genannt XOFF) und Fortsetzen (Zeichen mit Code 0x11, genannt XON) der Übertragung. Beim Empfang von Zeichendaten muss die sendende Seite die Übertragung entsprechend stoppen oder wieder aufnehmen (falls eine Übertragung von Daten ansteht). Dieses Verfahren ist vom Standpunkt der Hardwareimplementierung einfacher, liefert jedoch eine langsamere Reaktion und erfordert dementsprechend eine vorherige Benachrichtigung des Senders, wenn der freie Platz im Empfangspuffer auf eine bestimmte Grenze abnimmt.

Synchroner Übertragungsmodus impliziert einen kontinuierlichen Datenaustausch, wenn die Bits ohne zusätzliche Pausen mit einer bestimmten Rate aufeinander folgen. Dieser Modus über COM-Port nicht unterstützt.

Asynchroner Übertragungsmodus besteht darin, dass jedes Datenbyte (und das Paritätsbit, falls vorhanden) in eine Synchronisationssequenz von einem Null-Startbit und einem oder mehreren einzelnen Stoppbits "eingewickelt" wird. Das Datenflussdiagramm im asynchronen Modus ist in der Abbildung dargestellt.

Einer der möglichen Algorithmen für den Empfänger nächste:

  1. Warte auf Empfangssignalpegel "0" (RXD bei Host, TXD bei Device).
  2. Zählen Sie die halbe Bitlänge herunter und prüfen Sie, ob der Signalpegel immer noch "0" ist
  3. Zählen Sie die volle Bitdauer und schreiben Sie den aktuellen Signalpegel in das niederwertigste Datenbit (Bit 0)
  4. Wiederholen Sie den vorherigen Schritt für alle anderen Datenbits
  5. Zählen Sie die volle Bitdauer und überprüfen Sie anhand des aktuellen Signalpegels die Korrektheit des Empfangs per Paritätsprüfung (siehe unten)
  6. Zählen Sie die volle Dauer des Bits und stellen Sie sicher, dass der aktuelle Signalpegel "1" ist.

Stopp-Bits- setzt die Anzahl der Stoppbits. Das Feld kann
nimm folgende Werte:


  • ONESTOPBIT- ein Stoppbit;
  • ONE5STOPBIT- eineinhalb Stoppbits (praktisch nicht
    Gebraucht);
  • ZWEISTOPBIT- zwei Stoppbits.

Nachdem alle Felder der DCB-Struktur ausgefüllt sind, müssen Sie
Konfigurieren Sie den Port, indem Sie die Funktion SetCommState aufrufen:

BOOL SetCommState (

HANDLE hDatei,

LPDCB lpDCB

Bei Erfolg gibt die Funktion einen Wert ungleich Null zurück
Wert, oder Null im Fehlerfall.

Die zweite erforderliche Struktur zum Konfigurieren des Ports ist
COMMTIMEOUTS-Struktur. Es definiert die Parameter der Zeitverzögerungen
beim Empfangen und Senden. Hier ist eine Beschreibung dieser Struktur:

typedef-Struktur _COMMTIMEOUTS (

DWORD ReadIntervalTimeout;

DWORD ReadTotalTimeoutMultiplier;

DWORD ReadTotalTimeoutConstant;

DWORD WriteTotalTimeoutMultiplier;

DWORD WriteTotalTimeoutConstant;

) COMMTIMEOUTS, * LPCOMMTIMEOUTS;

Die Felder der Struktur COMMTIMEOUTS haben folgende Bedeutung:


  • ReadIntervalTimeout- maximales Zeitintervall
    (in Millisekunden) zulässig zwischen zwei Lesevorgängen von
    Kommunikationsleitung in aufeinanderfolgenden Zeichen. Zur Zeit
    Lesevorgänge beginnt die Zeitperiode ab dem Zeitpunkt zu zählen
    das erste Zeichen erhalten. Wenn das Intervall zwischen zwei
    mit aufeinanderfolgenden Zeichen überschreitet den angegebenen Wert, die Operation
    das Lesen ist abgeschlossen und alle im Puffer gesammelten Daten werden übertragen
    ins Programm. Ein Nullwert für dieses Feld bedeutet, dass dies
    Zeitüberschreitung wird nicht verwendet.
  • ReadTotalTimeoutMultiplier- setzt den Multiplikator (in


    multipliziert mit der Anzahl der zu lesenden Zeichen.
  • ReadTotalTimeoutConstant- setzt eine Konstante (in

    Leseoperationen. Für jeden Lesevorgang ist der angegebene Wert
    plus zum Ergebnis der Multiplikation von ReadTotalTimeoutMultiplier mit
    die Anzahl der zum Lesen angeforderten Zeichen. Feldwert Null
    ReadTotalTimeoutMultiplier und ReadTotalTimeoutConstant bedeuten
    dass der allgemeine Timeout für den Lesevorgang nicht verwendet wird.
  • WriteTotalTimeoutMultiplier- setzt den Multiplikator (in
    Millisekunden), die zur Berechnung des gesamten Timeouts verwendet werden

    multipliziert mit der Anzahl der geschriebenen Zeichen.
  • WriteTotalTimeoutConstant- setzt eine Konstante (in
    Millisekunden), die zur Berechnung des gesamten Timeouts verwendet werden
    Schreiboperationen. Für jeden Schreibvorgang ist der angegebene Wert
    wird dem Ergebnis der Multiplikation von WriteTotalTimeoutMultiplier mit hinzugefügt
    die Anzahl der zu schreibenden Zeichen. Feldwert Null
    WriteTotalTimeoutMultiplier und WriteTotalTimeoutConstant bedeutet
    dass der gesamte Timeout für den Schreibvorgang nicht verwendet wird.

Ein wenig mehr Details zu Timeouts. Lassen Sie uns von Port 50 lesen
Zeichen mit einer Geschwindigkeit von 9.600 bps. Wenn dies 8 Bit verwendet
pro Zeichen, Paritätskomplement und ein Stoppbit, dann um eins
ein Zeichen auf der physikalischen Zeile hat 11 Bits (einschließlich des Startbits).
Dies bedeutet, dass 50 Zeichen bei 9.600 bps akzeptiert werden

50 × 11/9600 = 0,0572916 s

oder ungefähr 57,3 Millisekunden, unter der Annahme eines Nullintervalls
zwischen dem Empfang aufeinanderfolgender Zeichen. Wenn das Intervall zwischen
Zeichen ist ungefähr die Hälfte der Übertragungszeit von einem
Zeichen, also 0,5 Millisekunden, dann beträgt die Empfangszeit

50 × 11/9600 + 49 × 0,0005 = 0,0817916 s

oder ungefähr 82 Millisekunden. Wenn mehr als
82 Millisekunden, dann können wir davon ausgehen, dass ein Fehler aufgetreten ist in
Bedienung eines externen Gerätes und wir können das Lesen stoppen, dadurch
das Hängenbleiben des Programms zu vermeiden. Dies ist die Gesamtbetriebszeitüberschreitung.
lesen. Ebenso gibt es eine allgemeine Zeitüberschreitung für Schreiboperationen.

Formel zur Berechnung der Gesamtzeitüberschreitung einer Operation, zum Beispiel
lesen sieht so aus:

NumOfChar x ReadTotalTimeoutMultiplier +
ReadTotalTimeoutConstant

wobei NumOfChar die Anzahl der für den Lesevorgang angeforderten Zeichen ist.

In unserem Fall können Aufnahme-Timeouts entfallen und
setze sie auf null.

Nachdem Sie die COMMTIMEOUTS-Struktur ausgefüllt haben, müssen Sie aufrufen
Timeout-Einstellungsfunktion:

BOOL SetCommTimeouts (

HANDLE hDatei,

LPCOMMTIMEOUTS lpCommTimeouts

Da Sende-Empfangs-Operationen mit niedriger Geschwindigkeit ausgeführt werden,
Datenpufferung verwendet wird. Um die Größe des Empfangspuffers einzustellen und
übertragen, müssen Sie die Funktion verwenden:

BOOL SetupComm (

HANDLE hDatei,

DWORD dwInQueue,

DWORD dwOutQueue

Nehmen wir an, Sie tauschen Pakete mit einem externen Gerät aus
Informationen von 1024 Bytes, dann eine angemessene Puffergröße
hat einen Wert von 1200. Die Funktion SetupComm ist insofern interessant, als sie
notieren Sie sich einfach Ihre Maße, indem Sie Ihre Anpassungen vornehmen, oder
lehnen Sie die von Ihnen vorgeschlagenen Puffergrößen insgesamt ab - in diesem Fall
diese Funktion wird fehlschlagen.

Ich werde ein Beispiel für das Öffnen und Konfigurieren einer Seriennummer geben
COM1-Port. Der Kürze halber - keine Fehlerdefinitionen. In diesem Beispiel
der Port wird für den Betrieb mit einer Geschwindigkeit von 9 600 bps geöffnet, 1 wird verwendet
Stoppbit, kein Paritätsbit verwendet:

#enthalten

. . . . . . . . . .

GRIFF Griff;

COMMTIMEOUTS CommTimeOuts;

DCB-DCB;

handle = CreateFile ("COM1", GENERIC_READ | GENERIC_WRITE,
NULL, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);

SetupComm (Handle, SizeBuffer, SizeBuffer);

GetCommState (Handle, & dcb);

dcb.BaudRate = CBR_9600;

dcb.fBinary = WAHR;

dcb.fOutxCtsFlow = FALSE;

dcb.fOutxDsrFlow = FALSE;

dcb.fDtrControl = DTR_CONTROL_HANDSHAKE;

dcb.fDsrSensitivity = FALSE;

dcb.fNull = FALSE;

dcb.fRtsControl = RTS_CONTROL_DISABLE;

dcb.fAbortOnError = FALSE;

dcb.ByteSize = 8;

dcb.Parity = NOPARITY;

dcb.StopBits = 1;

SetCommState (Handle, & dcb);

CommTimeOuts.ReadIntervalTimeout = 10;

CommTimeOuts.ReadTotalTimeoutMultiplier = 1;

// die Werte dieser Timeouts reichen für Selbstbewusste völlig aus
Rezeption

// auch bei 110 Baud

CommTimeOuts.ReadTotalTimeoutConstant = 100;

// in diesem Fall als Timeout verwendet
Pakete

CommTimeOuts.WriteTotalTimeoutMultiplier = 0;

CommTimeOuts.WriteTotalTimeoutConstant = 0;

SetCommTimeouts (Handle, & CommTimeOuts);

PurgeComm (Handle, PURGE_RXCLEAR);

PurgeComm (Handle, PURGE_TXCLEAR);

Nachdem Sie den Port geöffnet haben, müssen Sie ihn zuerst zurücksetzen, also
wie die Empfangs- und Sendepuffer "Müll" enthalten können. Daher in
am Ende des Beispiels haben wir eine bisher unbekannte Funktion angewendet
PurgeComm:

BOOL PurgeComm (

HANDLE hDatei,

DWORD dwFlags

Diese Funktion kann zwei Dinge tun: Warteschlangen leeren
Empfang und Übertragung im Treiber oder führen Sie alle Operationen durch
Input-Output. Welche Aktionen auszuführen sind, wird anderen gegeben
Parameter:


  • PURGE_TXABORT
    Aufzeichnungen, auch wenn sie unvollständig sind;
  • PURGE_RXABORT- beendet sofort alle Operationen
    Ablesungen, auch wenn sie nicht abgeschlossen sind;
  • PURGE_TXCLEAR- löscht die Übertragungswarteschlange im Treiber;
  • PURGE_RXCLEAR- löscht die Empfangswarteschlange um
    Treiber.
    Diese Werte können mit dem bitweisen kombiniert werden
    ODER-Operationen. Es wird empfohlen, Puffer auch nach Fehlern zu leeren
    Empfang und Übertragung und nach Abschluss der Arbeiten mit dem Hafen.

Es ist an der Zeit, die Operationen selbst zu betrachten
Read-Write für den Port. sowie für die Arbeit mit Dateien verwendet werden
die Funktionen ReadFile und WriteFile. Hier ihre Prototypen:

BOOL ReadFile (

HANDLE hDatei,

LPVOID lpBuffer,

DWORD nNumOfBytesToRead,

LPDWORD lpNumOfBytesRead,

LPOVERLAPPED lpOverlapped

BOOL WriteFile (

HANDLE hDatei,

LPVOID lpBuffer,

DWORD nNumOfBytesToWrite,

LPDWORD lpNumOfBytesWritten,

LPOVERLAPPED lpOverlapped

Betrachten wir den Zweck der Parameter dieser Funktionen:


  • hDatei- Deskriptor der offenen Kommunikationsdatei
    Hafen;
  • lpPuffer ist die Adresse des Puffers. Für eine Schreiboperation werden Daten von
    dieser Puffer wird an den Port gesendet. Für eine Leseoperation in diesem
    die von der Leitung empfangenen Daten werden in den Puffer gelegt;
  • nNumOfBytesToRead, nNumOfBytesToWrite- die Anzahl der erwarteten
    um Bytes zu empfangen oder zu übertragen;
  • nNumOfBytesRead, nNumOfBytesWritten- die Nummer eigentlich
    empfangene oder gesendete Bytes. Wenn empfangen oder gesendet weniger
    Daten als angefordert, dann bedeutet dies für eine Datenträgerdatei
    Fehler, aber für den Kommunikationsport nicht erforderlich.
    Der Grund sind die Zeitüberschreitungen.
  • Lpüberlappt ist die Adresse der verwendeten OVERLAPPED-Struktur
    für asynchrone Operationen.

Bei normaler Beendigung geben die Funktionen einen Wert zurück,
ungleich null, null im Fehlerfall.

Ich gebe ein Beispiel für eine Lese- und Schreiboperation:

#enthalten

…………..

DWORD numbytes, numbytes_ok, temp;

COMSTAT ComState;

ÜBERLAPPT Überlappung;

char buf_in = "Hallo!";

Anzahlbytes = 6;

// wenn temp ungleich null ist, kann der Port
Fehler

if (! temp) WriteFile (handle, buf_in, numbytes,
& numbytes_ok, & Überlappung);

ClearCommError (Handle, & Temp, & ComState);

if (! temp) ReadFile (handle, buf_in, numbytes, & numbytes_ok,
& Überlappung);

// Variable numbytes_ok enthält eine reelle Zahl
übertragen

// empfangene Bytes

In diesem Beispiel haben wir zwei uns bisher unbekannte verwendet
die COMSTAT- und OVERLAPPED-Strukturen und die ClearCommError-Funktion. Für
in unserem Fall der Kommunikation "über drei Drähte" kann die OVERLAPPED-Struktur entfallen
bedenken (einfach verwenden, wie im Beispiel). Funktionsprototyp
ClearCommError sieht so aus:

BOOL ClearCommError (

HANDLE hDatei,

LPDWORD lpFehler,

LPCOMSTAT lpStat

Diese Funktion setzt das Port-Fehler-Flag zurück (falls vorhanden.
Ort) und gibt Informationen über den Zustand des Hafens in der Struktur zurück
KOMSTAT:

typedef-Struktur _COMSTAT

DWORD fCtsHold: 1;

DWORD fDsrHold: 1;

DWORD fRlsdHold: 1;

DWORD fXoffHold: 1;

DWORD fXoffSent: 1;

DWORD fEof: 1;

DWORD-fTxim: 1;

DWORD fReserviert: 25;

DWORD-cbInQue;

DWORD-cbOutQue;

) COMSTAT, * LPCOMSTAT;

Wir können zwei Felder dieser Struktur verwenden:


  • CbInQue- die Anzahl der Zeichen im Empfangspuffer. Diese Symbole
    offline genommen, aber noch nicht von der ReadFile-Funktion gelesen;
  • CbOutQue- die Anzahl der Zeichen im Sendepuffer. Diese
    Zeichen wurden noch nicht in die Zeile übertragen.

Die restlichen Felder dieser Struktur enthalten Informationen über
Fehler.

Schließlich, nachdem Sie die Verwendung des Ports beendet haben, sollten Sie ihn schließen.
Das Schließen eines Objekts in Win32 erfolgt durch die CloseHandle-Funktion:

BOOL CloseHandle (

HANDLE hObjekt

Auf unserer Seite finden Sie den Volltext der Klasse zum Arbeiten mit
serielle Schnittstelle im asynchronen Dreidrahtmodus und
Siehe auch ein Beispielprogramm, das diese Klasse verwendet. All das
geschrieben unter Builder C++, da aber nur Funktionen verwendet werden
API Win32, der Text des Programms kann leicht für jeden C++-Compiler geändert werden.
Es kann auch sein, dass die Klasse nicht ganz "nach den Regeln" geschrieben ist - bitte
sorry, der Autor ist kein „richtiger“ Programmierer und schreibt so,
wie es ihm passt J.

Grüße Freunde. Wir studieren weiterhin die Systemeinheit. Heute werde ich über Computerports sprechen. Was ist das? Mit der rasanten Entwicklung der Internet-Technologien wird der Begriff "Port", "Socket" von vielen gehört. Dies ist ein anderer Zweig, und wir werden heute nicht darüber sprechen. Das Thema dieses Artikels enthält Informationen zu rein "eisernen", "echten" Anschlüssen (oder Ports), die dazu dienen, verschiedene Geräte an die Systemeinheit anzuschließen.

Auch die Hardware wird verbessert und mit jeder Generation entdecken wir neue Arten von Anschlüssen (oder Ports) an gekauften Systemeinheiten. An sie sind verschiedene sogenannte Peripheriegeräte angeschlossen. Systemeinheit + Monitor = Computer. Alles, was mit ihnen verbunden ist (Drucker, Scanner, Programmierer, Grafikkarten, Monitore usw.) sind Peripheriegeräte.

Es gibt viele Anschlüsse am Computer. Sie befinden sich auf der Hauptplatine der Systemeinheit und sind Anschlüsse (die meisten davon auf der Rückseite). Einige der Anschlüsse werden auf der Vorderseite angezeigt und sind auch mit dem Motherboard verbunden.

Durch spezielle Erweiterungssteckplätze ist es auch möglich, zusätzliche Geräte darauf zu installieren. Zu diesen Geräten gehören separate Grafikkarten, Netzwerkkarten, Wi-Fi-Adapter, USB-Hubs, Kartenleser, elektronische Schlösser, Grafikkarten und vieles mehr.

Das Vorhandensein von Erweiterungssteckplätzen ermöglicht es Ihnen, einen Computer wie einen Konstrukteur nach Ihren Vorlieben unabhängig zusammenzustellen, ohne einen zusätzlichen Tag zu verschwenden. Denn die Entwickler haben die von ihnen produzierten Geräte längst standardisiert. Bei Bedarf können Sie es aktualisieren. Dies ist der Hauptgrund dafür, dass IBM-PC-kompatible Computer (wie eine solche Plattform genannt wird) einst den Apple Macintosh vom Markt verdrängten.

Ihre Systemeinheiten waren ursprünglich nicht trennbar, und die Ausrüstung war nicht austauschbar. Es ist unmöglich, ein solches Gerät aufzurüsten, und die Wartbarkeit eines solchen Geräts wird verringert.

Eine kurze Liste von Computerports

Stecker müssen optisch voneinander unterschieden werden können. Der Hersteller gibt nicht immer seinen Namen an. Da die Anschlüsse auf der Rückseite der Systemeinheit gruppiert sind, beginnen wir damit. Alle Ports haben einen englischsprachigen Namen, Sie können nichts dagegen tun. Sie lassen sich kurz einteilen:

  1. Serielle Ports;
  2. Paralleler Anschluss;
  3. Anschlüsse für Computer und Maus;
  4. USB-Anschlüsse;
  5. SCSI-Ports;
  6. Videoanschlüsse;
  7. Anschlüsse für Netzwerkkabel;
  8. Audioanschlüsse;
  9. Kartenleser;

Einige dieser Varianten sind bereits in Vergessenheit geraten und auf modernen Mainboards nicht mehr zu finden. Andere Sorten hingegen erweitern ihre Funktionalität und es gibt Motherboards für Feinschmecker - Liebhaber von Audio oder Video in guter Qualität.


Solche Karten können auch Audio- oder Videoformate von Drittherstellern (Sony, Philips) unterstützen und dann findet man an einem solchen Rechner einen entsprechenden Anschluss. Audio- und Videoanschlüsse bieten heute eine besondere Vielfalt.

Computeranschlüsse zum Anschluss von Peripheriegeräten

Serielle Schnittstelle- ist heute schon eine moralisch überholte Sache. Aber für Spezialisten, die sich mit der Reparatur elektronischer Geräte befassen, sind sie wertvoll. Ursprünglich wurde dieser Port verwendet, um ein Modem anzuschließen. Die Baudrate beträgt typischerweise 110 bis 115200 bps. Normalerweise gab es zwei davon mit Anschlüssen. DB9 Geben Sie "Papa" ein:

Die Geschwindigkeit reicht für den Programmierer völlig aus, um einen Mikrocontroller oder ein Handy zu flashen. Oder um Daten mit einer unterbrechungsfreien Stromversorgung auszutauschen. Diese Ports heißen COM1 und COM2.

Parallel-Port- vielen bekannt, da er hauptsächlich zum Anschluss eines Druckers gedacht war. Auch eine fast ausgestorbene Art. Es wurde auch verwendet, um Hardwareschutzschlüssel anzuschließen.


Der Stecker dient zum Anschluss DB25 Geben Sie "Mama" ein. Die Datenübertragungsrate ist gering - reicht aber für einen Programmierer oder einen alten Laserdrucker völlig aus. Die meisten älteren Computer hatten immer zwei serielle und eine parallele Schnittstelle.

Tastatur- und Mausanschlüsse allen Benutzern bekannt. In modernen Computern sind sie lila und grün. Die Stecker von Maus und Tastatur haben die gleiche Farbe. Es ist schwer zu verwechseln. Sechspolige (Mini-Din) Buchsen. Sie wurden in Deutschland erfunden und wurden zum Standard. Anderer Name für IBM / PC2

seit sie erstmals auf der bereits erwähnten IBM PC-Plattform eingesetzt wurden. Wenn die Anschlüsse beim Anschließen verwechselt werden, funktionieren die Geräte nicht. Ein klares Plus - sie sparen USB-Anschlüsse. Minus - es ist notwendig, den Computer neu zu starten, wenn er falsch angeschlossen ist. Übrigens ist es auch eine vom Aussterben bedrohte Art. Bei vielen modernen Computern ist dieser Port nur noch einer übrig geblieben - und er ist gleichzeitig in lila-grün lackiert. Sie können nur ein Gerät oder eine Maus - oder eine Tastatur daran anschließen.

USB-Anschlüsse. Universal Serial Bus, ( Universeller serieller Bus). Seit 1998 ersetzt sie andere Häfen; Auch an Autoradios und Camcordern findet man diesen Anschluss heute. Die ersten Generationen hatten eine Datenübertragungsrate von etwa 12 Mb/s. - überwältigend für diese Zeit. Heute verwenden wir USB 3 mit einer Geschwindigkeit von 5 Gbps.

Diese Ports haben sich extern nicht geändert. Der Computer hat „A“-Anschlüsse. Der Anschluss an jedem angeschlossenen Gerät heißt "B". Er hat vier Kontakte, zwei für Strom, zwei für die Datenübertragung. Dementsprechend sind an USB-3.0-Ports doppelt so viele Kontakte vorhanden.

SCSI-Ports(Schnittstelle für kleine Computersysteme) . Eine ganz besondere und seltene Sache bei uns; es scheint mir, dass Sie es auch bei einem normalen Benutzer im Ausland nicht finden werden. Ich glaube, dass Geräte mit solchen Schnittstellen auf Bestellung gefertigt wurden - für den Unternehmensgebrauch. Es ist eine Netzwerkschnittstelle für den Datenaustausch mit Geschwindigkeiten von bis zu 160 Mbit/s.


Einmal stieß ich auf einen Laptop, der 1999 von Dell aus Amerika mitgebracht wurde. Es hatte einen dieser Multi-Pin-Ports. Es war so platziert, dass es nur verwendet werden konnte, wenn der Laptop auf den Tisch gestellt wurde. Der Stecker selbst ist mit Federverschlüssen abgedeckt. Folglich gab es irgendwo in Amerika Tabellen, in denen dieser Connector eingebaut ist ... Sie bringen ihn mit, legen ihn auf den Tisch und er ist mit dem Firmennetzwerk verbunden.

Die Varianten der Schnittstelle sind uns bereits bekannt DB-25, sowie 50-High-Density, 68-Pin -High-Density, 80-Pin SCA, Centronics. An diese Schnittstelle können auch Festplatten angeschlossen werden. Für die Verbindung ist ein spezielles Board zuständig – der Host-Adapter.


Videoanschlüsse... Sie können auch nicht mit anderen verwechselt werden. Der Standard-Videoanschluss ist eine blaue 15-polige VGA-Buchse vom Typ D. Wird verwendet, um einen Monitor anzuschließen. Dies ist ein alter Standard, der 1987 angenommen wurde. Nicht alle Mainboards haben es. Wenn Sie es nicht „an Bord“ haben, dann finden Sie es unten an der Systemeinheit. Im Erweiterungssteckplatz ist eine Grafikkarte installiert:

Wenn Sie sich entscheiden, zusätzlich zur vorhandenen Grafikkarte ("on board") eine Grafikkarte zu installieren, funktioniert diese nicht mehr. Es ist in Ordnung. Der Monitor funktioniert nur, wenn er mit dem installierten verbunden ist.

Bei modernen Grafikkarten ist der VGA-Port bereits schwer zu finden; sie werden durch eine andere Sorte ersetzt - DVI. Auf einem Übergangs-Motherboard sieht es etwa so aus:

Sehr oft gibt es Fälle, in denen eine VGA-Grafikkarte ausfällt. Nach dem Kauf eines neuen stellt sich heraus, dass er nur über DVI-Anschlüsse verfügt.In diesem Fall müssen Sie einen Adapter kaufen und ihn am DVI-Anschluss installieren:

Achten Sie auf die Art des Adapters. Tatsache ist, dass DVI-Anschlüsse auch anders sind - neue teure Grafikkarten haben DVI-D- oder DVI-I-Anschlüsse. Adapter sind nicht austauschbar, erkundigen Sie sich in diesem Punkt beim Verkäufer.

In diesem Fall müssen Sie keinen neuen Monitor kaufen. Bisher haben neue Monitore auch zwei Arten von Anschlüssen - VGA und DVI.

HDMI-Anschluss. Was ist jetzt im 21. Jahrhundert ohne sie? Die Multimedia-Schnittstelle ist für hochauflösende Video- und Audioübertragung mit Kopierschutz ausgelegt. Ersetzt gleichzeitig die oben genannten Video- und einige Audioanschlüsse (SCART, VGA, YPbPr, RCA, S-Video.). Vielleicht ersetzt diese Schnittstelle irgendwann alles andere. Es kann auf jeder digitalen Technologie gefunden werden - von einer Kamera bis zu einem Computer (oder Laptop).

Die Größe ist vergleichbar mit einem USB-Port und die Datenübertragungsgeschwindigkeit ist im Vergleich zu den oben genannten enorm - bis zu 48 Gbit / s. Die Datenübertragung erfolgt über ein Kabel mit gutem Störschutz. Das Kabel kann an einen Laptop und an einen Fernseher angeschlossen werden und ein Video ansehen. Die Kabellänge sollte 10 Meter nicht überschreiten, ansonsten wird ein Signalverstärker / Repeater benötigt.

Etwa Audiobuchsen Ich werde nicht im Detail sprechen. Alles sieht aus wie auf einem heimischen DVD-Player, wenn es um etwas Besonderes geht. Ein Beispiel hierfür ist der SPDiF-Anschluss, der auf einem Erweiterungssteckplatz installiert werden könnte:

Audiostandard von SONY und PHILIPS, diese Karte wird über einen Stecker mit dem entsprechenden Anschluss mit dem Motherboard verbunden. Standardbuchsen zum Anschluss von Mikrofon, Lautsprechern, Kopfhörern sehen so aus:

Wenn Sie HD-Audio wünschen, müssen Sie hier möglicherweise den entsprechenden Adapter anschließen. Lesen Sie die Dokumentation zu Ihrem Motherboard:

Netzwerkports. In unserer Zeit kann man auf sie nicht verzichten. Wir empfangen das Internet punktgenau über die Netzwerkschnittstelle per Kabel oder Funk. Motherboards haben einen standardmäßig eingebauten Anschluss RJ 45 So schließen Sie ein Internetkabel an:

Auf älteren Rechnern lag der Geschwindigkeitsstandard bei 100 Mbit/s, moderne Netzwerkkarten geben 1000 Mbit/s aus. Wenn Ihnen eine Netzwerkkarte nicht ausreicht, können Sie eine zusätzliche kaufen und in den Erweiterungssteckplatz stecken:

Eine solche Karte ist für einen PCI-Slot geeignet. Es gibt auch kleinere Optionen für PCI-Express:

Überprüfen Sie beim Kauf die Datenübertragungsrate einer bestimmten Karte. Für Liebhaber drahtloser Netzwerke gibt es außerdem eine große Auswahl an WLAN-Adaptern:

Sie können auch in PCI- oder PCI-Express-Erweiterungssteckplätze gesteckt werden. Wenn Sie jedoch nicht in der Systemeinheit herumstöbern möchten, können Sie einen USB kaufen - eine Variante einer solchen Karte:

Sie stecken es in den Port und geben das WIFI-Passwort ein. Und Sie haben ein weiteres Peripheriegerät angeschlossen. Viele Heimdruckermodelle verfügen auch über einen Wii-Fi-Adapter, und mit dieser Einrichtung können Sie drahtlos drucken. Glücklicherweise gibt es heute eine große Auswahl an Netzwerkkarten und Druckern.

Wie deaktiviere ich USB-Anschlüsse, wenn ich meinen Computer herunterfahre?

Schließlich werde ich Ihnen sagen, wie Sie ein Problem lösen können. Ich habe ein Headset mit Mikrofon für Videoaufnahmen und Skype-Kommunikation. Die Chinesen liebten es, wo es nötig war, zu schieben und brauchen keine LEDs für die Schönheit. Wenn der Computer ausgeschaltet ist, bleibt die Hintergrundbeleuchtung trotzdem eingeschaltet, da er über den USB-Anschluss mit Strom versorgt wird.

Die Tastatur leuchtet auch, was nachts nicht sehr praktisch ist, wenn auch nicht schlecht (wenn Sie im Dunkeln tippen). Um die Stromversorgung der Ports dauerhaft auszuschalten, versuchen Sie, die Tastenkombination einzugeben Gewinn + R und in der Zeile "Ausführen" den Befehl einfügen powercfg/h aus.

Dann müssen Sie den Computer ausschalten. Die Symptome werden wahrscheinlich verschwinden. Dieser Befehl deaktiviert den Energiesparmodus und der Computer wird vollständig heruntergefahren. Sie können die Energieeinstellungen im "Energieplan" in der Systemsteuerung sehen.Es gibt jedoch einige Board-Modelle, bei denen diese Einstellung über das BIOS deaktiviert ist. Und bei den fortschrittlichsten ist diese Funktion nicht deaktiviert oder sehr tief verborgen. Es wird davon ausgegangen, dass es so bequem ist, Gadgets nachts aufzuladen.

In schwierigen Fällen kann die Motherboard-Dokumentation helfen. Suchen Sie den erforderlichen Jumper (Jumper) und schalten Sie die Stromversorgung manuell aus. Aber das ist zu schwer. Und am einfachsten ist es, einen USB-Hub mit Switches zu kaufen und die notwendigen Peripheriegeräte daran anzuschließen. Und leide nicht. Auf Wiedersehen!

In letzter Zeit ersetzt das serielle Verfahren der Datenübertragung das parallele.
Nach Beispielen muss man nicht lange suchen: Das Aufkommen von USB- und SATA-Bussen spricht für sich.
Tatsächlich ist der Parallelbus schwer zu skalieren (Verlängerung der Schleife, Erhöhung der Taktfrequenz des Busses), es ist nicht überraschend, dass Technologien zu Parallelbussen zurückkehren.

Serielle Schnittstellen

Heutzutage stehen viele verschiedene serielle Datenschnittstellen zur Verfügung.
Neben dem bereits erwähnten USB und SATA können Sie sich noch an mindestens zwei bekannte RS-232- und MIDI-Standards (aka GamePort) erinnern.
Sie alle sind durch dasselbe vereint - die sequentielle Übertragung jedes Informationsbits oder die serielle Schnittstelle.
Die Vorteile solcher Schnittstellen sind groß, und der wichtigste davon ist die geringe Anzahl von Anschlussdrähten und damit der niedrigere Preis.

Datentransfer

Die serielle Datenübertragung kann auf zwei Arten realisiert werden: asynchron und synchron.

Bei der synchronen Datenübertragung wird der Betrieb des Empfängers und des Senders synchronisiert, indem Taktinformationen in das übertragene Signal aufgenommen werden oder eine spezielle Synchroleitung verwendet wird.
Empfänger und Sender müssen mit einem speziellen Synchronisationskabel verbunden werden, das den Betrieb der Geräte auf gleicher Frequenz gewährleistet.

Asynchrone Übertragung impliziert die Verwendung spezieller Bits, die den Anfang und das Ende von Daten markieren - Start- (logische Null) und Stopp-Bit (logische Eins).
Es ist auch möglich, ein spezielles Paritätsbit zu verwenden, das die gerade oder ungerade Anzahl der zu übertragenden Einzelbits bestimmt (je nach gewählter Konvention).
Auf der Empfangsseite wird dieses Bit analysiert, und wenn das Paritätsbit nicht der Anzahl der Einzelbits entspricht, wird das Datenpaket erneut gesendet.

Bemerkenswert ist, dass Sie mit einer solchen Prüfung nur dann einen Fehler erkennen können, wenn nur ein Bit falsch übertragen wurde, wurden mehrere Bits falsch übertragen, wird diese Prüfung bereits falsch.
Das Senden des nächsten Datenpakets kann jederzeit nach dem Senden des Stoppbits erfolgen und muss natürlich mit dem Startbit beginnen.
Kann nichts verstehen?

Nun, wenn alle Computertechnologien einfach wären, hätte jede Hausfrau vor langer Zeit neue Protokolle parallel zu Knödeln geformt ...
Versuchen wir, den Prozess anders zu betrachten.
Daten werden in Paketen übertragen, ähnlich wie bei IP-Paketen, zusammen mit den Daten gibt es Informationsbits, die Anzahl dieser Bits kann zwischen 2 und 3 ½ variieren.
Mit einer Hälfte?!
Ja, Sie haben richtig gehört, genau mit der Hälfte!

Das Stoppbit bzw. das dem Stoppbit entsprechende Sendesignal kann eine längere Dauer aufweisen als das dem einen Bit entsprechende Signal, jedoch kürzer als für zwei Bits.
Das Paket beginnt also immer mit einem Startbit, das immer den Wert Null hat, gefolgt von Datenbits, dann einem Paritätsbit und dann einem Stoppbit, das immer gleich Eins ist.
Dann, nach einer gewissen willkürlichen Zeitspanne, geht der Marsch der Beats nach Moskau weiter.

Diese Übertragungsmethode impliziert, dass der Empfänger und der Sender mit der gleichen Geschwindigkeit (naja oder fast mit der gleichen Geschwindigkeit) arbeiten müssen, sonst hat der Empfänger entweder keine Zeit, die empfangenen Datenbits zu verarbeiten, oder akzeptiert das alte Bit für ein neues.
Um dies zu vermeiden, wird jedes Bit mit einem Gatter versehen, dh es wird synchron mit einem speziellen Signal gesendet - einem im Gerät gebildeten "Strobe".
Es gibt eine Reihe von definierten Geschwindigkeiten für asynchrone Geräte - 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600 und 115200 Bits pro Sekunde.

Sie haben wahrscheinlich gehört, dass "Baud" als Maßeinheit für die Datenübertragungsrate verwendet wird - die Häufigkeit der Änderung des Leitungszustands, und dieser Wert stimmt nur dann mit der Datenübertragungsrate überein, wenn das Signal eine haben kann von zwei Werten.
Wenn jedoch in einem Signalwechsel mehrere Bits kodiert sind (und das ist bei vielen Modems zu finden), werden Übertragungsrate und Frequenz des Leitungswechsels völlig unterschiedliche Werte haben.

Nun ein paar Worte zum mysteriösen Begriff "Datenpaket".
In diesem Fall bedeutet ein Paket eine Menge von Bits, die zwischen den Start- und Stoppbits übertragen werden.
Ihre Zahl kann zwischen fünf und acht variieren.
Man könnte sich fragen, warum genau fünf bis acht Bits?
Warum nicht auf einmal, sagen wir, ein Kilobyte Daten in einem Paket übertragen?

Die Antwort liegt auf der Hand: Wenn wir kleine Datenpakete übertragen, verlieren wir sogar, indem wir drei Servicebits mitschicken (von 50 bis 30 Prozent der Daten), aber wenn das Paket während der Übertragung beschädigt wird, können wir es leicht erkennen (denken Sie an die Parität Bit?) Und ihn schnell wieder übertragen.
Aber in einem Kilobyte an Daten wird es schwierig sein, einen Fehler zu erkennen, und es wird viel schwieriger sein, ihn zu übertragen.

Als Beispiel für ein asynchrones serielles Gerät zum Übertragen von Daten kann man den COM-Port eines Computers, ein von Trussardi entwickeltes Lieblingsmodem und eine an denselben Port angeschlossene Maus anführen, die aus irgendeinem Grund stumpfsinnige Sekretärinnen immer wieder versuchen, in die PS / 2.
Alle diese Geräte arbeiten über die RS-232-Schnittstelle bzw. an deren asynchronen Teil, da der Standard auch eine synchrone Datenübertragung beschreibt.

AMD Radeon Software Adrenalin Edition 19.9.2 Optionaler Treiber

Der neue optionale Treiber AMD Radeon Software Adrenalin Edition 19.9.2 verbessert die Leistung in Borderlands 3 und bietet Unterstützung für Radeon Image Sharpening.

Kumulatives Windows 10-Update 1903 KB4515384 (hinzugefügt)

Am 10. September 2019 hat Microsoft das kumulative Update KB4515384 für Windows 10 Version 1903 mit einer Reihe von Sicherheitsverbesserungen und Fehlerbehebungen für einen Fehler veröffentlicht, der die Windows-Suche unterbrach und eine hohe CPU-Auslastung verursachte.

Ein COM-Port wird am häufigsten verwendet, um zwischen einem Mikrocontroller und einem Computer zu kommunizieren. In diesem Artikel zeigen wir, wie Sie Steuerbefehle von einem Computer übertragen und Daten von einer Steuerung übertragen.

Vorbereitung auf die Arbeit

Die meisten Mikrocontroller haben mehrere I/O-Ports. Für die Kommunikation mit einem PC ist das UART-Protokoll am besten geeignet. Es ist ein serielles asynchrones Datenübertragungsprotokoll. Um es in eine USB-Schnittstelle umzuwandeln, verfügt das Board über einen USB-RS232-Konverter - FT232RL.
Um die Beispiele in diesem Artikel zu vervollständigen, benötigen Sie nur ein Arduino-kompatibles Board. Wir gebrauchen . Stellen Sie sicher, dass auf Ihrem Board eine LED an Pin 13 angeschlossen ist und eine Reset-Taste hat.

Laden wir zum Beispiel den Ausgabecode der ASCII-Tabelle auf die Karte. ASCII ist eine Kodierung für Dezimalziffern, lateinische und nationale Alphabete, Satzzeichen und Steuerzeichen.

int-Symbol = 33; void setup () (Serial. begin (9600); Serial. println ("ASCII Table ~ Character Map");) void loop () (Serial. write (Symbol); Serial. print (", dec:"); Serial . Druck (Symbol); Seriendruck (", Hex:"); Seriendruck (Symbol, HEX); Seriendruck (", Okt:"); Seriendruck (Symbol, OCT); Seriendruck ( ", bin:"); Serial.println (Symbol, BIN); if (symbol = = 126) (while (true) (continue;)) symbol + +;)

Das variable Symbol speichert den Symbolcode. Die Tabelle beginnt bei 33 und endet bei 126, daher wird dem Variablensymbol zunächst der Wert 33 zugewiesen.
Um den Betrieb des UART-Ports zu starten, verwenden Sie die Funktion Serienbeginn ()... Sein einziger Parameter ist die Geschwindigkeit. Die Geschwindigkeit muss auf Sende- und Empfangsseite vorab ausgehandelt werden, da das Übertragungsprotokoll asynchron ist. In diesem Beispiel beträgt die Geschwindigkeit 9600bps.
Drei Funktionen werden verwendet, um einen Wert an einen Port zu schreiben:

  1. Serial.write ()- schreibt Daten in binärer Form auf den Port.
  2. Seriendruck () können viele Bedeutungen haben, aber sie alle dienen dazu, Informationen in einer menschenfreundlichen Form darzustellen. Wenn beispielsweise die als Parameter für die Übergabe angegebenen Informationen mit Anführungszeichen markiert sind, zeigt das Terminalprogramm sie unverändert an. Wenn Sie einen beliebigen Wert in einem bestimmten Zahlensystem anzeigen möchten, müssen Sie ein Servicewort hinzufügen: BIN - Binär, OCT - Oktal, DEC - Dezimal, HEX - Hexadezimal. Zum Beispiel, Seriendruck (25, HEX).
  3. Serial.println () macht das gleiche wie Seriendruck (), sondern übersetzt die Zeile auch nach der Anzeige von Informationen.

Um die Funktion des Programms zu überprüfen, ist es erforderlich, dass der Computer über ein Terminalprogramm verfügt, das Daten vom COM-Port empfängt. Die Arduino IDE hat bereits eine eingebaut. Um ihn aufzurufen, wählen Sie im Menü Extras->Port-Monitor. Das Fenster für dieses Dienstprogramm ist sehr einfach:

Drücken Sie nun den Neustart-Button. Der MK startet neu und zeigt die ASCII-Tabelle an:

Achten Sie auf diesen Teil des Codes:

if (Symbol = = 126) (während (wahr) (weiter;))

Es stoppt die Ausführung des Programms. Wenn Sie es ausschließen, wird die Tabelle endlos angezeigt.
Um das gewonnene Wissen zu festigen, versuchen Sie, eine Endlosschleife zu schreiben, die einmal pro Sekunde Ihren Namen an die serielle Schnittstelle sendet. Fügen Sie Schrittnummern zur Ausgabe hinzu und vergessen Sie nicht, die Zeile nach dem Namen zu übersetzen.

Senden von Befehlen vom PC

Zuvor müssen Sie sich ein Bild davon machen, wie ein COM-Port funktioniert.
Zunächst findet der gesamte Austausch über den Speicherpuffer statt. Das heißt, wenn Sie etwas von einem PC an ein Gerät senden, werden die Daten in einem speziellen Speicherbereich abgelegt. Sobald das Gerät bereit ist, liest es Daten aus dem Puffer. Sie können den Zustand des Puffers mit der Funktion überprüfen Serien.verfügbar ()... Diese Funktion gibt die Anzahl der Bytes im Puffer zurück. Um diese Bytes zu subtrahieren, müssen Sie die Funktion verwenden Seriell.lesen ()... Sehen wir uns anhand eines Beispiels an, wie diese Funktionen funktionieren:

intwert = 0; void setup () (Serial. begin (9600);) void loop () (if (Serial. available ()> 0) (val = Serial. read (); Serial. print ("Ich habe erhalten:"); Serial. write (val); Serial. println (;))

Nachdem der Code in den Speicher des Mikrocontrollers geladen wurde, öffnen Sie den COM-Port-Monitor. Geben Sie ein Zeichen ein und drücken Sie die Eingabetaste. Im Empfangsdatenfeld sehen Sie: "Ich habe erhalten: X" wo statt x wird das von Ihnen eingegebene Zeichen sein.
Das Programm läuft endlos in der Hauptschleife. In dem Moment, in dem ein Byte auf den Port geschrieben wird, nimmt die Funktion Serial.available() den Wert 1 an, d. h. die Bedingung ist erfüllt Serien.verfügbar ()> 0... Weitere Funktion Seriell.lesen () liest dieses Byte und löscht dabei den Puffer. Danach erfolgt mit Hilfe Ihnen bereits bekannter Funktionen die Ausgabe.
Die Verwendung des integrierten COM-Port-Monitors der Arduino IDE hat einige Einschränkungen. Beim Senden von Daten vom Board an den COM-Port kann die Ausgabe in einem beliebigen Format angeordnet werden. Und beim Senden von einem PC an ein Board werden Zeichen entsprechend der ASCII-Tabelle übertragen. Das heißt, wenn Sie zB das Zeichen „1“ eingeben, wird über den COM-Port binär „00110001“ (also „49“ dezimal) gesendet.
Lassen Sie uns den Code ein wenig ändern und diese Anweisung überprüfen:

intwert = 0; void setup () (Serial. begin (9600);) void loop () (if (Serial. available ()> 0) (val = Serial. read (); Serial. print ("Ich habe erhalten:"); Serial. println (val, BIN);))

Nach dem Laden sehen Sie im Portmonitor beim Senden von „1“ als Antwort: „Ich habe erhalten: 110001“. Sie können das Ausgabeformat ändern und sehen, was das Board mit anderen Symbolen akzeptiert.

Gerätesteuerung über COM-Port

Natürlich können alle Funktionen des Mikrocontrollers durch Befehle von einem PC gesteuert werden. Laden Sie das Programm herunter, das den LED-Betrieb steuert:

intwert = 0; void setup () (Serial. begin (9600);) void loop () (if (Serial. available ()> 0) (val = Serial. read (); if (val = = "H") digitalWrite (13, HIGH); if (val = = "L") digitalWrite (13, LOW);))

Wenn das Zeichen „H“ an den COM-Port gesendet wird, leuchtet die LED am 13. Pin, und wenn das „L“ gesendet wird, erlischt die LED.
Wenn das Programm basierend auf den Ergebnissen des Datenempfangs vom COM-Port verschiedene Aktionen in der Hauptschleife ausführen soll, können Sie die Bedingungen in der Hauptschleife überprüfen. Zum Beispiel.

Gastroguru 2017