In letzter Zeit ist der Arduino-Software- und Hardwarekomplex sehr beliebt geworden, mit dem verschiedene interessante elektronische Designs entwickelt werden sollen. Entwürfe werden erstellt, indem das Arduino-Baseboard mit zusätzlichen erforderlichen Modulen verbunden wird. Auf dem Arduino-Baseboard befindet sich ein Mikrocontroller, dessen Firmware in einer speziellen Entwicklungsumgebung für Arduino geschrieben wurde und in der Regel vorgefertigte Bibliotheken für das eine oder andere Modul verwendet.
Eines der Module - W5500 - ist für die Herstellung elektronischer Strukturen vorgesehen, die mit dem Internet verbunden werden. In diesem Fall bedeutet dies meistens eine Fernsteuerung seiner Struktur. Zum Beispiel kann es ein „Smart Home“, ein Roboter und dergleichen sein. Das trivialste Projekt (mit Ausnahme von Hello World) ist die Ferneinbindung von LEDs über einen Webbrowser (Abb. 1). Wenn anstelle von LEDs Transistorschalter und Relais angeschlossen sind, können stärkere Lasten geschaltet werden. Somit ist das Programm (Firmware) dieses Entwurfs im Wesentlichen ein Webserver, der http-Anforderungen von einem entfernten Benutzer verarbeitet.
Abb. 1. Verwaltung von LEDs über einen Browser.Das W5500-Modul basiert auf dem W5500-Chip selbst mit seinem Bodykit sowie dem BLS-Anschluss für MK über SPI, dem RJ-45-Anschluss für den Anschluss an ein Computernetzwerk und einem linearen Spannungsregler für 3,3 V (Abb. 2).
Abb. 2. Das W5500-Modul.Der W5500-Chip ist ein vollwertiger Controller mit integrierter Verarbeitung eines ganzen Stapels von Netzwerkprotokollen von Ethernet bis TCP (Abb. 3). Bei der Implementierung eines auf diesem Chip basierenden Entwurfs muss der Programmierer den TCP / IP-Protokollverarbeitungscode nicht schreiben. Es reicht aus, nur das Protokoll der Anwendungsschicht zu implementieren, das in TCP eingebettet wird. Im obigen Beispiel (auf Arduino) wird http als Anwendungsprotokoll verwendet.
Abb. 3. Die Struktur des W5500-Chips.Ohne Arduino zu machen, habe ich mich entschlossen, die Dokumentation für den W5500-Chip im Detail zu studieren und das auf dem Atmega8-Mikrocontroller basierende Programm unabhängig zu implementieren. Dieses Programm enthält keinen http-Handler. Es ist erforderlich, den einfachsten (RAW) Datenaustausch über das TCP-Protokoll unter Verwendung eines Remote-Terminals zu implementieren. Es ist nicht ganz richtig, über das Telnet-Protokoll zu sprechen, wie der Titel dieses Artikels besagt. Es hat seine eigenen spezifischen Merkmale, die auf dem Austausch zusätzlicher Informationen über die Parameter der Terminals beruhen. Die meisten Telnet-Clients unterstützen jedoch RAW und benötigen die oben genannten nicht. Daher enthält das Atmega8 MK-Programm keinen Protokollhandler auf Anwendungsebene. Sie wird sich nur mit der Initialisierung des W5500, der Socket-Verwaltung, dem Datenempfang und der Übertragung befassen.
Die Hauptanwendung dieses Entwurfs ist die Geräteverwaltung über ein Remote-Terminal. In diesem Fall wird das Design über die UART-Schnittstelle (drei Drähte GND, TxD, RxD) mit dem verwalteten Gerät verbunden. Die Verwaltung über das Terminal ist ein klassischer professioneller Ansatz in einem bestimmten Bereich, wenn keine grafische Oberfläche vorhanden ist. Zum Beispiel eine Windows- oder Linux-Befehlszeile oder eine Möglichkeit, einen Router über ein Terminal mithilfe des Telnet-Protokolls zu konfigurieren. Das letzte Beispiel entspricht tatsächlich der in diesem Artikel diskutierten Idee.
Wenn ich dieses oder jenes Gerät entwickle, stelle ich mir vor, es bei Bedarf mit Textbefehlen über ein Terminal zu steuern, das über die UART-Schnittstelle verbunden ist. Dies kann eine Verbindung zu einem normalen PC mit dem RS-232-COM-Anschluss über den MAX232-Adapterchip oder mit USB (virtueller COM-Anschluss) über den PL2303-Chip sein. Sie können das Standardprogramm HyperTerminal als Terminal verwenden. Mit der Verbreitung von Android-Smartphones wurde es bequem, eine Verbindung über Bluetooth herzustellen: Ein Bluetooth-Modul (z. B. HC-06) ist mit der UART-Schnittstelle des Geräts verbunden, und ein Smartphone ist drahtlos mit dem Modul verbunden. Es gibt viele Anwendungen im Internet, die das Terminal über Bluetooth implementieren. So können Sie das Gerät über das Terminal von einem Mobiltelefon aus über Bluetooth in kurzer Reichweite steuern. Mit dem in diesem Artikel beschriebenen Design können Sie die Steuerung über das Terminal über das Internet implementieren. Das Terminal kann das Standard-HyperTerminal sein, das mit Windows XP geliefert wird, oder Sie können das Telnet-Dienstprogramm über die Windows-Befehlszeile ausführen und darin arbeiten. Wenn es sich um ein Smartphone handelt, können Sie eine der Anwendungen auf Android auswählen (es gibt auch eine große Anzahl davon) (Abb. 4).
Abb. 4. Anwendungen für "TCP-Terminal" bei Google Play.Der W5500-Chip verfügt über 8 unabhängige Sockel, von denen jeder über einen Speicher zum Empfangen und Senden von Informationen über 2 KB verfügt. Insgesamt beträgt der Gesamtspeicher 16 KB zum Empfangen und 16 KB zum Senden von Informationen. Diese Parameter werden standardmäßig verwendet, aber bei Bedarf kann der Speicher in der Phase der Chipinitialisierung über Sockets neu zugewiesen werden. Die hier beschriebene Anwendung verwendet die Standardspeichereinstellungen und alle 8 Sockets sind beteiligt. Jedem Socket in der Phase seiner Initialisierung werden viele Parameter zugewiesen, von denen die wichtigsten der Betriebsmodus und der TCP-Port sind. Der Betriebsmodus aller acht Sockets, die wir benötigen, ist der TCP-Servermodus. Sie müssen jedem Socket unterschiedliche Ports zuweisen. Ich habe acht aufeinanderfolgende Ports verwendet, beispielsweise ab 4000. In der Initialisierungsphase des W5500-Moduls werden Netzwerkparameter zugewiesen, die mit dem Atmega8 MK-Programm verbunden sind: IP-Adresse, Subnetzmaske, IP-Adresse des Gateways und sogar die physische MAC-Adresse. Die Netzwerkeinstellungen des W5500 müssen mit den Einstellungen des Heimnetzwerks übereinstimmen, mit dem er verbunden ist. Bei einer Remoteverbindung mit unserem beschriebenen Gerät geben die Terminaleinstellungen die Hostadresse (IP-Adresse oder Domänenname) und den Port an. Die Hostadresse bezieht sich auf das W5500-Gerät, und der Port bezieht sich auf den Socket im Gerät. Ein Socket kann mit nur einer Verbindung arbeiten. Daher ist es möglich, acht unabhängige gleichzeitige Verbindungen herzustellen. Abbildung 5 zeigt die Verbindungsparameter im Standardprogramm HyperTerminal zum W5500 mit der IP-Adresse 192.168.0.111 an Socket 0 (Port 4000). Um eine Verbindung zum globalen Internet (von außen) herzustellen, müssen Sie Ihren Heimrouter ordnungsgemäß konfigurieren.

Abb. 5. Verbindung über TCP / IP in HyperTerminal.Ich habe viele verschiedene TCP-Terminalanwendungen ausprobiert, jede hat ihre eigenen Vor- und Nachteile. Zunächst können durch das Verfahren zum Packen eines TCP-Pakets zwei Fälle unterschieden werden. Im ersten Fall wird ein TCP-Paket generiert und sofort an den Server gesendet, wenn ein Zeichen in das Terminal eingegeben wird. Somit benötigt das Datenfeld jedes Pakets 1 Byte und enthält das vom Benutzer eingegebene Zeichen. Das HyperTerminal-Programm funktioniert nur in diesem Modus. Im zweiten Fall wird der Zeichensatz (Befehl) in ein separates Textfeld eingegeben. Wenn Sie auf die Schaltfläche "Senden" klicken, wird nur ein Paket mit einem Datenfeld gebildet, dessen Inhalt ein vom Benutzer eingegebener Zeichensatz ist. Die Größe des Datenfeldes eines solchen Pakets in Bytes stimmt mit der Anzahl der eingegebenen Zeichen überein. Der zweite Fall ist der am meisten bevorzugte und bequemste sowie wirtschaftlich im Verkehr. Unser Design funktioniert in beiden Fällen und überträgt alle vom Remote-Benutzer eingegebenen Zeichen aus einem beliebigen Socket auf den Ausgang (TxD) des UART MK Atmega8.
Auch hier haben die Organisation der Informationsübertragung vom Server zum Client ihre eigenen Merkmale. Es ist möglich, dass das MK-Programm auch direkt ein Einzelbyte-TCP-Paket generiert, wenn ein Byte (Zeichen) auf dem RxD UART MK-Zweig empfangen wird. Sie können ein TCP-Paket aus einem Satz eingehender Bytes zum MK erstellen, indem ein spezielles zusätzliches Signal vorhanden ist, das nur während der Übertragung der Sequenz vom angeschlossenen Gerät vorhanden ist (Packungssignal). Dieses Signal wird übrigens verwendet, um den MAX485 auf Übertragung umzuschalten, wenn RS-232 in eine Halbduplex-RS-485-Schnittstelle umgewandelt wird. Wie ich jedoch überzeugt war, ist es am bequemsten, einen Timer zu verwenden, d.h. eine kleine Verzögerung, während der der Empfang von Zeichen und die Bildung des TCP-Pakets durchgeführt werden. Dies ist die Methode, die ich in der beschriebenen Konstruktion implementiert habe. Es funktioniert wie folgt. Der Timer (die Zeit wird auf ungefähr 0,3 Sekunden eingestellt) startet, wenn das erste Zeichen eintrifft, und wird zurückgesetzt, wenn jedes nächste Zeichen auf dem UART MK eintrifft. Wenn innerhalb einer bestimmten Zeit keine Zeichen eintreffen, wird ein Paket mit den empfangenen Zeichen gebildet und an den Client gesendet, und der Timer stoppt. In meinem speziellen Fall gibt es ein Massenmailing an allen Sockets, mit denen Clients verbunden sind.
Jetzt geht es um Privatsphäre. Das beschriebene Remote-Terminal ist mit Verkehrsanalysatoren nicht vor Abhören geschützt. Selbst das Telnet-Protokoll selbst bietet keine Kennwortauthentifizierung und -verschlüsselung. Hierfür gibt es andere moderne Remote-Terminal-Protokolle. Und sowohl bei Telnet als auch bei RAW (ohne Anwendungsprotokoll) können Sie eine indirekte Methode zur Kennwortauthentifizierung implementieren, die nur bei absichtlichem Eingriff unwirksam ist. Diese Autorisierungsmethode schützt jedoch vor unkontrolliertem "Linksverkehr". Es kann von Spyware stammen, die beim Durchsuchen des IP-Adressbereichs bekannter Anbieter und des Portbereichs plötzlich eine Verbindung zu unserem Gerät herstellen kann (wenn sie Verbindungen aus dem Internet "abhört"). In meiner Firmware habe ich eine Client-Begrüßungsseite implementiert, wenn diese mit dem Server verbunden ist, d. H. zum Design basierend auf dem W5500-Modul.
Die Begrüßungsseite enthält Informationen zur IP-Adresse des Clients, zur Socket-Nummer (zur Überwachung) und zur Aufforderung zur Eingabe eines Kennworts (Abb. 6).
Abb. 6. Begrüßungsseite für den W5500-Server.Nach dem Verbinden innerhalb des MK-Programms startet ein Timer (für ca. 18 Sekunden), während dessen der Benutzer Zeit haben muss, ein bestimmtes Passwort einzugeben (das gleiche gilt für alle Sockets). Wenn das Passwort nach Ablauf der eingestellten Zeit falsch eingegeben wird, informiert der Benutzer die entsprechende Meldung und der Server trennt die Verbindung (Abb. 7).
Abb. 7. Ein falsches Passwort melden.Bei einem korrekt eingegebenen Passwort wird dem Benutzer auch die entsprechende Meldung angezeigt (Abb. 8). Danach wird eine „transparente“ Brücke zwischen dem Remote-Terminal und der UART-Schnittstelle des MK hergestellt, an die das W5500-Modul über SPI angeschlossen ist. Der Betrieb einer solchen Brücke wurde nur auf der Ebene der Benutzerteams getestet. Ein vollwertiger Hochgeschwindigkeitsdatenaustausch kann möglicherweise nicht garantiert werden, wenn in einigen Fällen die Clientanwendung kein Benutzerterminal, sondern ein anderes Programm ist. Darüber hinaus garantiert das beschriebene Design keinen Vollduplex-Datenaustausch (genauer gesagt ist dies nicht vorgesehen).
Abb. 8. Nachricht über das richtige Passwort.Wenn ein Passwort eingegeben wird, gibt der Benutzer die eingegebenen Zeichen nicht an das Terminal zurück, und auch die Rücktaste funktioniert nicht (Rollback mit einem falsch eingegebenen Zeichen). Die Passwortlänge beträgt 8 Zeichen. Das MK-Programm scannt die ersten 8 vom Client empfangenen Zeichen, unabhängig von ihrer Verteilung über TCP-Pakete. Ein Paket sollte jedoch 10 Byte nicht überschreiten. Übrigens funktioniert die Funktion „Textdatei senden“ in HyperTerminal sehr interessant. Da diese Funktion mit einem Verkehrsanalysator überprüft wurde, werden bei Ausführung dieser Funktion zwei TCP-Pakete gebildet: Das erste Paket mit Daten von 1 Byte enthält das erste Zeichen der übertragenen Textdatei und das zweite Paket enthält den Rest des Inhalts.
Der Server stellt zwei verschiedene Passwörter zur Verfügung. Ein Kennwort wird verwendet, um die TCP-UART-Brücke (normale Verwendung) wie oben beschrieben einzurichten, und das zweite Kennwort wird zur Steuerung des W5500-Moduls oder anderer Entwurfsparameter verwendet. Wenn dieses Passwort eingegeben wird, wird dem Benutzer eine weitere Begrüßungsseite angezeigt und er wechselt in den Steuermodus. Ich habe absichtlich vorgesehen, dass dieser Modus nur an einer der freien Steckdosen möglich ist. Wenn ein Socket mit diesem Modus belegt ist und versucht wird, sich an einem anderen Socket in diesem Modus anzumelden, wird die Verbindung vom Server sofort getrennt. Vor der Pause wird eine Meldung über die Socket-Nummer angezeigt, die bereits im Steuermodus arbeitet (besetzt) (Abb. 9).
Der Steuermodus bietet die von mir definierten Befehle, von denen eine Liste durch Eingabe des Hilfebefehls angezeigt wird. Der Befehl sollte mit einem Zeilenumbruchzeichen (Eingabetaste) enden. Wenn der Steuermodus aktiv ist, sendet der W5500-Server außerdem Servicemeldungen an das Terminal, z. B. über das Verbinden von Clients mit anderen Sockets mit ihren IP-Adressen oder über einen freien Socket. Abbildung 10 zeigt das Obige. Die Liste der Teams ist noch nicht vollständig, sie wird im Laufe der Zeit wieder aufgefüllt.
Abb. 9. Eine Meldung über eine besetzte Steckdose bei der Eingabe des Kennworts für den Steuermodus.Abb. 10. W5500-Steuermodus.Der Echo-Befehl deaktiviert oder aktiviert die Rückgabe des gedruckten Zeichens an das Terminal (Selbstüberwachung). Die folgenden zwei Befehle dienen zum Lesen und Schreiben des Adressregisters des W5500-Chips. Die Werte der Register für die Adressen sind in der Dokumentation zum W5500-Chip angegeben. Ich habe diese universellen Befehle hauptsächlich zum Debuggen eingeführt. Der Befehl rl startet sofort die nachstehende Socket-Nummer neu. In ähnlicher Weise liest der Befehl sr den Status des Sockets und gibt seinen Wert als HEX-Nummer an. Der Befehl "ens" gibt eine Tabelle mit Status für jeden Socket an: Status "0" - der Socket ist frei und wartet auf den Client, Status "1" - der Socket im normalen Gebrauch, Status "2" - der Socket im Steuermodus. Sie können eine viel größere Anzahl von Befehlen eingeben. Es ist nützlich, die Parameter, die in der Initialisierungsphase beim Einschalten des Geräts in den Chip passen (z. B. Netzwerkparameter), zu ändern und im nichtflüchtigen Speicher des MK zu speichern. Es kann auch nützlich sein, spezielle Befehle einzugeben, die zusätzliche freie MK-Pins steuern. Zum Beispiel "PC0 = 1", "PC2 = 0" usw. Stellen Sie sicher, dass Sie den Konfigurationsbefehl UART-Schnittstelle MK benötigen.
Betrachten Sie die subtileren Details der Arbeit des MK-Programms. Zusätzlich zu den oben genannten Timern wird ein Timer aktiviert, wodurch alle etwa eine halbe Minute ein sogenannter Timer aktiviert wird TCP-Steuerpakete "Keep-Alive". Dies ist erforderlich, um die Verbindung zu überprüfen, wenn kein Benutzerdatenaustausch stattfindet. Wenn aus irgendeinem Grund innerhalb einer bestimmten im W5500 festgelegten Zeit keine Bestätigung vom Kunden erfolgt, wird der sogenannte Timeout und der Socket wird neu gestartet. Die Verbindung kann plötzlich unterbrochen werden, z. B. aufgrund einer Unterbrechung der Datenverbindung oder der physischen Schicht: Sie haben ein Ethernet-Kabel herausgezogen, das Internet getrennt oder eine Wi-Fi-Verbindung verloren usw.
Basierend auf der Dokumentation zum W5500-Chip (Datenblatt) sind die folgenden Funktionen im Programmcode implementiert. Erstens registrieren sich die Grundfunktionen des Schreibens und Lesens von W5500 an Adressen. Funktionen der obersten Ebene - Hardware-Reset, Chip-Initialisierung, Socket-Initialisierung, Öffnen eines Sockets, Abhören des Sockets, Trennen und Schließen des Sockets, Senden des Befehls "keep_alive" und Neustarten des Sockets. Die letzte Funktion ist eine Komposition der oben genannten Funktionen: Schließen, Öffnen, Hören. Die meisten Funktionen geben nach ihrer Ausführung einen Socket-Statuswert zurück. Schließlich sind die grundlegendsten Funktionen das Verarbeiten der empfangenen Informationen (Lesen aus dem Empfangspuffer) und das Verarbeiten der gesendeten Informationen (Schreiben in den TX-Puffer). Empfehlungen zur Implementierung dieser Funktionen habe ich auf der offiziellen Website des Chipherstellers W5500 (
Link ) übernommen. Die Empfangsfunktion überschreibt die vom Empfangspuffer empfangenen Daten in ihren eigenen 128-Byte-Nicht-Ringpuffer. Diese Größe reicht für einfache Anwendungen aus, und Sie können mit dem Atmega8-Mikrocontroller nicht viel erreichen. Der TX-Puffer des W5500 überträgt auch Daten aus dem ebenfalls kleinen Zwischenpuffer. Und wiederum gelangen Daten aus dem UART-Ringpuffer hinein. Letzteres wird in der CVAVR-Entwicklungsumgebung mithilfe des Dienstprogramms CodeWizardAVR in der Phase der Projekterstellung automatisch implementiert.
Der W5500 ist mit der MKI SPI-Schnittstelle (MOSI, MISO, SCK, SCLK) verbunden. Zusätzlich ist der RST-Pin (Hardware-Reset) mit einem bestimmten MK-Ausgang verbunden, und der entsprechende INT-Pin ist mit dem externen Interrupt-Eingang INT0 verbunden. Letzteres wird für den vorgesehenen Zweck verwendet: Wenn ein Ereignis im W5500-Modul auftritt, erzeugt es einen Impuls am INT-Pin, der von der Steuerung im Körper des externen Interrupts verarbeitet wird. MK erfährt, an welchen Sockets das Ereignis aufgetreten ist, und schreibt dann die Ereigniscodes für jeden Socket in ein bestimmtes Array. Die weitere Verarbeitung des Interrupts erfolgt innerhalb der Hauptprogrammschleife. Insgesamt wurden fünf Ereignisse dokumentiert: Der Client war verbunden, der Client wurde getrennt (genauer gesagt, eine Trennungsanforderung wurde eingereicht), Daten wurden vom Client empfangen, eine Zeitüberschreitung wurde behoben, die Daten wurden erfolgreich gesendet. In der Hauptschleife werden alle Ereignisse außer dem letzten verarbeitet. Die switch-case-Anweisung wird in diese Verarbeitung eingefügt. Der größte Teil des C-Codes befindet sich im Verarbeitungsabschnitt des dritten Ereignisses (Datenempfang). Darin wird nach der Funktion der Verarbeitung der empfangenen Informationen auch der Schalterfalloperator platziert, aber in diesem Fall ist dieser "Schalter" einer Variablen zugeordnet, die für den Zustand des oben erwähnten Sockets verantwortlich ist (Werte 0, 1, 2). Der erste Abschnitt ist für die Passworterkennung verantwortlich. Empfangene Zeichen werden in einem separaten Passwortpuffer überschrieben. Unter bestimmten Bedingungen funktionieren die Funktionen zum Vergleichen der empfangenen Zeichenfolge mit konstanten Zeichenfolgen, die Kennwörter enthalten.
Im Falle eines Zufalls wird der entsprechende Status zugewiesen. Der zweite Abschnitt ist der einfachste - der Inhalt seines eigenen Puffers empfangener Informationen wird an den UART des Mikrocontrollers umgeleitet. Dies ist ein normaler Verwendungsmodus. Der dritte Abschnitt (der größte) ist für die Verarbeitung von Befehlen verantwortlich - Gerätesteuerungsmodus.Zusätzlich zur Fortsetzung des Interrupt-Handlers enthält die Hauptschleife des Programms virtuelle Timer-Handler - eine Zeitüberschreitung, um die Verbindung zu trennen, wenn das Kennwort nicht erfolgreich ist. Senden Sie regelmäßig "Keep-Alive" und senden Sie ein vom TCP-Timer gebildetes Paket an den Client. Die Funktion des Lesens von UART befindet sich auch im Hauptteil der Hauptschleife, in der die von der Steuerung empfangenen Zeichen in ihren eigenen (Zwischen-) Übertragungspuffer übertragen werden und der Zeitgeber zurückgesetzt wird, der für die Bildung des TCP-Pakets verantwortlich ist.Alle Socket-Prozeduren werden in einem Zyklus von 0 bis 7 platziert, dessen Iterator an die Socket-Nummer gebunden ist. Somit erfolgt eine sequentielle Verarbeitung aller Sockets. Anfangs meinte ich, wenn Sie jedem der acht Sockets dieselbe Portnummer zuweisen, können Sie bis zu acht Benutzer am selben Port verbinden. Diese Konfiguration funktionierte jedoch nicht und dieses Problem wurde für die Zukunft verschoben.Beim Entwurf des Leiterplattendesigns habe ich eine Echtzeituhr (RTC) auf dem DS1307-Chip bereitgestellt. Der Atmega8 MK, Quarz für die Frequenz 11,0592 MHz (Frequenz ausgewählt für UART-Genauigkeit), ein Anschluss für das W5500-Modul, MK-Anschlussanschlüsse (einschließlich SPI für Firmware, UART), RTC mit eigenem Quarz und CR2032-Batteriefach befinden sich auf einer zweiseitigen Leiterplatte , 5 V Linearregler (7805), Stromanschluss und mehr. Die Skizze der Leiterplatte im Sprint Layout-Programm ist in Abbildung 11 dargestellt. Das einzige rot dargestellte Element ist auf der Rückseite verlötet, aber ich habe es auf die Vorderseite gelötet.Abb. 11. Skizze der Leiterplatte.Fotos der fertigen Konstruktion sind in Abbildung 12 dargestellt. Eine Uhr in dieser Konstruktion wird verwendet, um die Zeit während verschiedener Ereignisse der W5500-Buchsen zu markieren, und diese Zeit wird dem Benutzer im Terminal neben der Nachricht zugewiesen, wenn der Benutzer im Steuermodus verbunden ist. Außerdem wird die Uhr für die Zukunft für Experimente mit dem NTP-Zeitprotokoll oder für andere Zwecke nützlich sein.Abb. 12. Fotos der fertigen Struktur.Zusammenfassend ist anzumerken, dass das interne Design zum größten Teil ähnliche Geräte auf industrieller Ebene rechtfertigt. Der Hauptvorteil ist der Preis. Es stellte sich heraus, dass die Herstellung viel billiger war als der Preis eines fertigen ähnlichen Geräts. Und ein solcher Nachteil wie eine eingeschränkte Funktionalität ist unvermeidlich. In diesem Fall wurde ein vereinfachter Atmega8-Controller verwendet, da das entsprechende vereinfachte Ziel festgelegt wurde.Abb. 13. Industriekonverter TCP / IP - RS-232.Abbildung 13 zeigt ein Beispiel eines industriellen TCP / IP-zu-RS-232-Wandlers auf Basis des W5100-Chips, der dem W5500 sehr ähnlich ist. Neben der flexiblen Verwaltungsoberfläche bietet es einen weiteren Vorteil. Zusätzlich zur Arbeit mit einem TCP / IP-Terminal kann ein spezieller Treiber, der mit dem Gerät geliefert wird, verwendet werden, um einen virtuellen COM-Port auf der Clientseite zu installieren. Über diese können Sie eine Verbindung über ein normales Terminal herstellen, das keinen TCP / IP-Verbindungsmodus hat. Darüber hinaus kann das Gerät einen vollwertigen RS-232-Datenaustausch unterstützen, wenn ein Programm anstelle des Terminals über einen virtuellen COM-Port angeschlossen ist. Das heißt, das in Abbildung 13 dargestellte Gerät ist eine vollwertige RS-232-Brücke durch die Netzwerkinfrastruktur.