Wichtige Designüberlegungen für die Master-Slave-Schaltung Ihres Embedded Systems

Altium Designer
|  Erstellt: October 5, 2017  |  Aktualisiert am: December 1, 2020

Tiny people communicating through a vintage megaphone

Titelbild für Master-Slave-Schaltung in Embedded Systems

Es kann einige Wochen oder Monate dauern, bis der Prototyp eines Embedded Systems fertig ist. Manchmal verbringe ich Tage mit einem einzigen Projektdetail. Wenn dann der Chef tagtäglich nach einem Update verlangt, kann dies äußerst lästig werden und die eigene Produktivität beeinträchtigen. Mit Gründung meiner eigenen Design-Firma habe ich mir schnell abgewöhnt, diesen Fehler bei meinem Team ebenfalls zu machen.

Embedded Systems gibt es in den verschiedensten Größen und Formen und, was noch wichtiger ist, mit unterschiedlichen Funktionalitäten und Fähigkeiten. Ein Embedded System muss nicht nur auf einen Controller antworten, der in der Befehlskette weiter oben steht, sondern auch alle anderen Aufgaben effizient erfüllen. Dazu gehört die Überwachung von Eingaben sowie die Berechnung und Konvertierung von Werten. Außerdem müssen Befehle verarbeitet und zuverlässige Aktualisierungen bereitstellt werden. Wird ein Embedded System ständig durch Anfragen von einem anderen Controller gestört, ist es weniger effizient. In einigen Fällen kann dies sogar zum Absturz führen.

Wie funktioniert die Kommunikation von einer Master-Slave-Schaltung in einem Embedded-System?

Der einfachste Weg für Embedded Systems, miteinander zu kommunizieren, ist eine Master-Slave-Schaltung. Hier wird ein einzelnes Embedded System als Master bezeichnet und ist für die Initiierung der Kommunikation mit den daran angeschlossenen Embedded Systems verantwortlich. Die Master-Slave-Schaltung folgt einem vorhersehbaren Muster, wie Nachrichten über die Kommunikationsschnittstelle übertragen werden. Slave-Controller dürfen keine Datenpakete übertragen, es sei denn, sie werden vom Master dazu aufgefordert.

Eines meiner jüngsten Projekte, bei dem eine Master-Slave-Schaltung verwendet wurde, ist ein Überwachungssystem für Gummi-Verarbeitungsmaschinen. Ein Sensorüberwachungs-Controller wurde an jeder Maschine platziert, um deren Arbeitszyklen mit verschiedenen Sensoren zu überwachen. Ein Master ist mit all diesen Sensor-Controllern verbunden und verwendete einen nichtflüchtigen Speicher zur Speicherung der gesammelten Daten.

Wichtige Erwägungen für das Design einer Master-Slave- Schaltung in Embedded Systems.

So unkompliziert es auch erscheinen mag: Die Nichtbeachtung der folgenden Designüberlegungen kann beim Einsatz zu erheblichen Problemen führen.

1. Prozessorleistung der Mikrocontroller

Master- und Slave-Controller werden oft von Mikrocontrollern mit unterschiedlicher Rechenleistung versorgt. Der Master erhält i. d. R. einen leistungsfähigeren Prozessor als der Slave. Da Slave-Controller meist spezifische Aufgaben wie die Überwachung von Sensoreingaben oder die Ansteuerung eines Motors übernehmen, ist es durchaus sinnvoll, sie mit einem Mikrocontroller mittlerer oder kleinerer Leistung auszustatten.

Programmierer, die Software für den Master-Controller schreiben, müssen darauf achten, den Slave-Controller nicht zu oft mit Status-Update-Anforderungen zu unterbrechen. Da sie eine begrenzte Verarbeitungskapazität haben, können häufige Interrupts den Slave-Controller überfordern. Wenn ein Slave-Controller nicht dafür ausgelegt ist, eine hohe Anzahl von Anfragen zu verarbeiten, kann es zu einem Speicher- oder Stapelüberlauf kommen und dieser abstürzen.

Fast and slow progress loading bar

Schnell- und langsame Fortschrittsladeleiste

2. Begrenzung der Anzahl von Slave-Controllern

Theoretisch können Sie Ihren Master-Controller mit so vielen Slave-Controllern verknüpfen, wie es die jeweilige Kommunikationsschnittstelle zulässt. Bei RS458 beispielsweise können bis zu 32 Geräte an eine einzige Verbindung angeschlossen werden. In der Praxis sollten Sie jedoch überlegen, welche Auswirkungen die Verbindung von einer großen Anzahl von Slave-Controllern an einem einzelnen Eingangskanal auf die Datenübertragungsgeschwindigkeit hat. Beispielsweise benötigt ein Slave-Controller 10 Millisekunden, um auf eine Anfrage zu antworten. Sind 31 Slave-Controller vorhanden, dauert es 310 Millisekunden, bis derselbe Controller im nächsten Zyklus wieder angesprochen wird. Wenn der Master-Controller eine schnellere Aktualisierung erfordert, müssen Sie die Anzahl der an einen Kanal angeschlossenen Slave-Controller reduzieren.

3. Design For Redundancy

In einem Embedded System, das in einer Master-Slave-Schaltung konfiguriert ist, sind die einzelnen Controller oft über ein einziges Kabel verbunden. Diese Punkt-zu-Punkt-Verdrahtungstechnik ist einfach und kostengünstig. Bei einer Leitungsunterbrechung ist aber auch das Gesamtsystem gefährdet. Bricht beispielsweise ein Kabel zwischen dem fünften und sechsten Slave-Controller ab, beeinträchtigt dies die Kommunikation des Masters auch mit den ersten fünf Slave-Controllern.

Bei kritischen Anwendungen sollten Systementwickler erwägen, eine redundante Verbindung vom Master-Controller zum letzten Slave-Controller als Backup hinzuzufügen. Erkennt der Master-Controller eine potenzielle Unterbrechung, kann er die Backup-Verbindung aktivieren, um die Kommunikation wiederherzustellen.

“Redundancy” written under torn paper

„Redundanz” auf zerrissenem Papier geschrieben 

Unabhängig davon, ob Sie einen Master- oder Slave-Controller entwerfen, ist die Auswahl des richtigen Mikrocontrollers und der zugehörigen Komponenten entscheidend. Mit PCB-Software wie Altium Designer® und Altium Vault® haben Sie Zugriff auf Bauteilbibliotheken, mit denen Sie den Prozess vereinfachen können.

Wenn Sie Fragen zur Implementierung von einer Master-Slave-Schaltung haben, wenden Sie sich an einen Experten von Altium.

Über den Autor / über die Autorin

Über den Autor / über die Autorin

PCB Design Tools für Electronics Design und DFM. Informationen für EDA-Führungskräfte.

neueste Artikel

Zur Startseite