Aufbau einer seriellen Kommunikation in der Embedded-Entwicklung
Inhalt
- Gängige serielle Kommunikationstypen
1.1 UART (Universeller Asynchroner Empfänger-Sender)
1.2 I2C (Inter-integrierte Schaltung)
1.3 SPI (Serielle Peripherie-Schnittstelle)
1.4 CAN (Controller Area Network) - Serielle Test- und Debugging-Software
2.1 Virtual Serial Port Driver
2.2 Serial Port Monitor
2.3 Hardware Splitter für serielle Schnittstellen
2.4 RS232 serielles Spionagemonitor-Kabel - Hardware oder Software für die Entwicklung serieller eingebetteter Systeme?
Die serielle Verbindung wird aufgrund ihrer Einfachheit häufig intern und extern in der Embedded-Technologie eingesetzt. Es gibt verschiedene Arten von seriellen Kommunikationsgeräten in eingebetteten Systemen, mit unterschiedlichen Zwecken und Eigenheiten. Bei der Entwicklung dieser Systeme ist es wichtig, den richtigen Typ zu wählen. Aus diesem Grund werden wir einige gängige serielle Kommunikationsprotokolle untersuchen und vergleichen und einige universelle Tools vorschlagen, die unabhängig von Ihrer Wahl nützlich sein werden.
Gängige serielle Kommunikationsarten
UART (Universeller Asynchroner Empfänger-Sender)
UART ist eines der einfachsten und frühesten Kommunikationsprotokolle in Embedded Systems. Die Verbindung kann nur zwischen zwei Geräten hergestellt werden. Jedes hat einen Sende- und einen Empfangspin, und beide Kanäle sind einseitig. Die Daten werden in ein Binärsignal umgewandelt und in bytelangen Paketen gesendet. Die Pakete enthalten auch Start- und Endbits sowie ein Bit zur Fehlererkennung.
UART ist asynchron - es verwendet keine zusätzlichen Leitungen zum Senden von Taktimpulsen, sondern nutzt stattdessen Start- und Endbits zur Synchronisierung. Viele Parameter, darunter die Baudrate (Bits pro Sekunde), müssen bei beiden Geräten gleich sein. Die Baudraten müssen vergleichsweise niedrig sein, um eine Desynchronisation zu vermeiden. Im Allgemeinen ist die Wahl von UART in eingebetteten Systemen gegenüber neueren Protokollen keine Frage der technischen Verbesserung, sondern eher eine Frage der Kosten- und Zeitersparnis bei der Arbeit an Prototypen oder der Hinzufügung von Debug-Fähigkeiten.
In einigen Fällen kann durch die Verwendung eines UART-auf-Ethernet-Konverters können UART-Daten über ein Ethernet-Netzwerk übertragen werden, was die Kommunikation zwischen Geräten ermöglicht, die nicht direkt verbunden sind.
Anwendungen:
- Debugging erfordert oft nicht die Komplexität und Geschwindigkeit anderer Protokolle, und UART bietet eine schnelle und schmutzige Möglichkeit, dies zu realisieren.
- Geräteanschluss an PCs über serielle Schnittstellen oder Seriell-auf-USB-Konverter.
Vorteile: Einfaches Arbeiten, potenziell größere maximale Verbindungsreichweite.
Nachteile: Geringe Datenübertragungsrate, kann nur zwei Geräte verbinden.
I2C (Inter-integrierte Schaltung)
I2C ermöglicht den Anschluss mehrerer - potenziell großer - Geräte an denselben Bus. Ein I2C-Bus besteht aus zwei Leitungen - einer Datenleitung und einer Taktleitung, und jedes Gerät wird mit einem Daten- und einem Taktstift angeschlossen.
Wenn ein Gerät auf dem Bus sendet, empfangen alle anderen Geräte die Nachricht, so dass einige Bits für die Angabe einer Adresse verwendet werden müssen. Außerdem werden alle anderen Geräte am Senden von Nachrichten gehindert, was die Geschwindigkeit des Datenaustauschs stark einschränkt.
I2C ist im Vergleich zu UART wesentlich komplexer, da es sich mit Gleichzeitigkeit befassen muss, und es fehlen auch die Fortschritte, die die Geschwindigkeit späterer Kommunikationsprotokolle in eingebetteten Systemen erhöhen.
Anwendungen:
- Systeme mit niedriger Geschwindigkeit die kleine Datenmengen austauschen, z.B. Sensormesswerte.
- Geräte-Identifikation in PCs, wie z.B. Serial Presence Detect bei RAM-Modulen und DDC für Anzeigegeräte.
Vorteile: Der einfachste Weg, mehrere Geräte mit vollem gegenseitigen Zugriff zu verbinden.
Nachteile: Langsam, wesentlich anspruchsvoller als UART.
SPI (Serielle Peripherieschnittstelle)
Wie der Name schon sagt, SPI wird üblicherweise verwendet, um mehrere Peripheriegeräte an einen Controller anzuschließen. Derzeit ist dies eine sehr verbreitete Art von seriellen Kommunikationsgeräten in eingebetteten Systemen. Der Controller wählt aus, welches Peripheriegerät gerade zuhört, und tauscht dann Daten mit ihm aus. Im Gegensatz zu I2C erfolgt die Auswahl über einzelne Leitungen - jedes neu angeschlossene Gerät benötigt also eine eigene CS-Leitung, aber die Taktleitung und die Dateneingänge/Datenausgänge werden von allen gemeinsam genutzt. Es gibt auch alternative „Daisy-Chain“-Konfigurationen, bei denen eine Reihe von Peripheriegeräten Daten ineinander einspeisen und sich dieselbe CS-Leitung teilen.
SPI ist schneller als UART, da es über eine Taktleitung verfügt, und schneller als I2C, da es eigentlich einfacher ist, da die Empfängeradresse nicht mit jeder Nachricht übertragen werden muss oder die Möglichkeit mehrerer Controller berücksichtigt wird.
Anwendungen:
- Systeme mit kurzer Reichweite und hoher Geschwindigkeit, an die SD-Karten, LCD-Anzeigen, RTC-Module usw. angeschlossen werden müssen.
Vorteile: Schneller als I2C und UART.
Nachteile: Keine Unterstützung für mehrere Controller auf demselben Bus, einzelne Pins für jedes Peripheriegerät erforderlich.
CAN (Controller Area Network)
Ein CAN-Bus besteht aus zwei Leitungen, aber im Gegensatz zu I2C ist keine von ihnen eine Taktleitung. Beide übertragen die gleichen Daten (lediglich ein binäres Signal von einem beliebigen Gerät auf dem Bus), und sie sind umeinander gewickelt, um die Auswirkungen elektrischer Störungen zu minimieren. Im Allgemeinen ist CAN für höhere Reichweiten ausgelegt - während die früheren Busse bestenfalls einige Meter überbrücken konnten, kann sich ein Controller Area Network-Bus über etwa 40 Meter erstrecken.
Ähnlich wie bei I2C senden die angeschlossenen Geräte - auch CAN-Knoten genannt - nur dann, wenn kein anderes Gerät gerade sendet, und die Datenrahmen (die Pakete) enthalten einen Identifikator zur Angabe des Ziels.
Dieser Bus ist für industrielle Anwendungen gedacht, z.B. für die Kommunikation in eingebetteten Kfz-Systemen. Vorhersehbar ist die Bandbreite viel geringer als bei den vorgenannten Verbindungsarten, oft um eine Größenordnung.
Anwendungen:
- Automobilelektronik, wobei CAN der aktuelle Standard ist
- Andere industrielle Anwendungen, wie z.B. Produktionslinien
Vorteile: Große Reichweite, hohe Zuverlässigkeit, einfache Implementierung
Nachteile: Geringe Bandbreite
Wie man die richtige Wahl trifft
Der beste Weg, die richtige Art der seriellen Verbindung für Ihren Fall zu bestimmen, ist, sich einfach anzusehen, wie ähnliche Fälle von anderen Technikern bearbeitet werden. Es ist wahrscheinlich, dass sie bei der Wahl des Protokolls bereits die potenziellen Anforderungen ihrer Systeme berücksichtigt haben. Wenn nicht, haben Sie zumindest einen guten Ausgangspunkt und erhalten eine bessere Antwort, wenn Sie die Fehler in ihrer Wahl ansprechen.
Serielle Test- und Debugging-Software
Die Entwickler von eingebetteten Systemen müssen in der Lage sein, das Verhalten ihrer Systeme zu überwachen. Eine wichtige Facette dieser Überwachung ist Debugging der seriellen Schnittstelle. Eine serielle Schnittstelle kann durchaus die einzige Möglichkeit sein, mit dem eingebetteten System zu kommunizieren. Electronic Team, Inc. liefert ein umfassendes, voll funktionsfähiges Softwarepaket für serielle Schnittstellen, das die Arbeit mit Ihren seriell basierten eingebetteten Systemen viel einfacher und effizienter macht.
Werfen wir einen Blick auf einige der besten Embedded-Software- und Hardware-Entwicklungstools für Ingenieure, die mit seriellen Schnittstellen und Embedded-Systemen arbeiten.
Virtual Serial Port Driver und Virtual Serial Port Driver PRO
Diese nützliche Anwendung kann virtuelle COM-Ports mit konfigurierbarer Baudrate und Signalleitungsverbindung erstellen. Damit können Sie auf einfache Weise serielle Ausgaben von einer Anwendung an eine andere weitergeben.
Virtual Serial Port Driver PRO (VSPD) stellt noch mehr Funktionen zur Verfügung:
- Erstellen von „Bündelverbindungen“, die Eingaben von mehreren Eingangsanschlüssen sammeln und an mehrere Zielanschlüsse senden
- Zusammenführen mehrerer Eingänge zu einem einzigen OUT-Anschluss
- Aufteilung eines einzelnen Eingangsports, um ihn für mehrere Anwendungen zugänglich zu machen
- Ein automatischer Switcher, der automatisch einen freien Anschluss für Anwendungen wählt, die keinen finden können
Es ist ein absolutes Muss, wenn Sie Software für serielle Verbindungen schreiben oder testen wollen, wie Ihre Hardware mit vorhandener Software interagiert.
Serial Port Monitor
Serial Port Monitor (SPM) ist ein vielseitiges Toolpaket, mit dem Sie nicht nur die Eingaben Ihrer seriellen Geräte auf vielfältige Weise speichern und anzeigen können, sondern auch Daten über das eingebaute Terminal direkt an sie senden können.
Es kann:
- Mit der Wiedergabefunktion dieselben Eingaben einer ganzen Sitzung an das Gerät weiterleiten
- Daten in verschiedenen Modi anzeigen, einschließlich Tabellen und Terminalausgabe
- Mehrere COM-Ports gleichzeitig überwachen
- Alle Informationen aus Ihren Sitzungen in der Zwischenablage oder einer Textdatei speichern
Hardware Splitter für serielle Schnittstellen
Für den Entwickler von eingebetteten Systemen stehen physische Geräte zur Verfügung, die einige der Funktionen der oben beschriebenen Software-Tools übernehmen können. Sie können Kabel erhalten, die es ermöglichen, das Signal einer einzigen seriellen Schnittstelle mit zwei oder mehr Geräten oder Anwendungen zu teilen.
Nachteile: Sie bieten weniger Flexibilität als die Software-Alternative, da sie in der Anzahl der verfügbaren Verbindungen begrenzt sind. Eine weitere Einschränkung ist die Länge der Kabel, die verwendet werden können, und die allgemeine Aufgabe der Kabelverwaltung, die unhandlich werden kann, wenn der Bedarf an gemeinsamen Signalen wächst.
RS232 -Überwachungskabel
Serielle Überwachungs- oder Schnüffelkabel sind erhältlich, die entweder im Halb- oder Vollduplex-Modus arbeiten. Sie funktionieren, indem sie einen weiteren Stecker an ein RS232-Kabel anschließen. Ein an diesen dritten Anschluss angeschlossenes Gerät kann die Kommunikation zwischen den beiden Enden des RS232-Kabels überwachen. Je nach Art des angeschlossenen Geräts oder der Anwendung können die Daten für eine spätere Verwendung aufgezeichnet werden.
DCAClab ist ein Online-Simulator für elektrische Schaltkreise für den MINT- und Technologieunterricht, der Mechatroniklehrern hilft, ihren Schülern Schaltkreise auf einfache Weise zu erklären. Simuliert und behebt defekte Schaltungen in einer reichhaltigen Simulationsumgebung, die mit realistisch aussehenden Komponenten, einem realistischen Oszilloskop und einem Multimeter mit verschiedenen Funktionen ausgestattet ist.
Hardware oder Software für die Entwicklung serieller eingebetteter Systeme?
Bei der Auswahl von Tools für die Entwicklung serieller eingebetteter Systeme müssen Sie auf Benutzerfreundlichkeit und Flexibilität achten. Softwareanwendungen, die speziell für die Arbeit mit seriellen Geräten entwickelt wurden, sind zweifellos leistungsfähiger und bieten Ihnen Optionen, wenn sich Ihre Testumgebung ändert.
Zusätzliche Vorteile einer Softwarelösung sind der Wegfall des Erwerbs teurer Kabel und die Möglichkeit, serielle Aktivitäten aus der Ferne zu überwachen. Wenn Sie sich ernsthaft mit der Entwicklung eingebetteter Systeme beschäftigen, sollten Sie sich diese Software-Tools genau ansehen. Sie werden Ihr Entwicklungsleben viel angenehmer machen und Ihnen einen Vorsprung vor der Konkurrenz verschaffen.