EUR | USD

Einfaches und effizientes Hinzufügen kostengünstiger Kinderknoten zu IIoT-Endpunkten mit Hilfe von Port-Expandern

Von Bill Giovino

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von Digi-Key

Für industrielle Internet of Things (IIoT)-Anwendungen haben sich die Merkmale und die Flexibilität von IIoT-Endpunkten nicht nur in der Funktionalität erweitert, sondern auch den physikalischen Kontrollbereich um viele Meter vom Host-Mikrocontroller im Endpunkt erweitert. Während einige wenige E/A-Pins vom Host-Mikrocontroller des IIoT-Endpunkts verwendet werden können, um diese erweiterten Standorte zu erreichen, werden die E/A-Leitungen mit zunehmender Entfernung anfälliger für elektromagnetische Störungen (EMI), was zu einer geringeren Zuverlässigkeit führt. Obwohl ein anderer Mikrocontroller als untergeordneter Knoten des Host-Mikrocontrollers des IIoT-Endpunkts verwendet werden kann, kann dies die Komplexität unnötig erhöhen, wenn die Daten nur für einfache digitale E/A-Signale verwendet werden.

Anstatt die E/A-Leitungen für eine breitere Steuerung zu erweitern, können Entwickler Port-Expander als kostengünstige untergeordnete Knoten außerhalb des IIoT-Endpunkts verwenden.

Dieser Artikel beschreibt die Rolle von Port-Expandern, bevor zwei Port-Expander von Maxim Integrated vorgestellt werden. Diese Expander bieten eine einfache Schnittstelle zum Host-Mikrocontroller mit seriellen Schnittstellen, die die digitale E/A-Funktionalität des IIoT-Knotens erheblich erweitern. Sie tun dies unter Beibehaltung der herkömmlichen GPIO-Funktionalität (General Purpose I/O), wie z.B. PWM-Erzeugung (Pulsweitenmodulation) und Interrupt-Erkennung.

Warum Port-Expander für ein IIoT-Netzwerk benötigt werden

Bei der Planung eines IIoT-Netzwerks besteht einer der ersten Schritte darin, die Anzahl der Endpunkte festzulegen. Jedes Ausrüstungsteil, das benötigt wird, um sein Verhalten mit dem Rest der Anlage zu synchronisieren, benötigt mindestens einen Endpunkt. Ein gutes Beispiel dafür wäre eine Fabrikmontagelinie. Jede Station muss mit dem Fortschritt der gesamten Montagelinie synchronisiert werden, um den richtigen Montagevorgang zur richtigen Zeit durchzuführen.

Ein IIoT-Endpunkt in einer Werksmontagelinie ist jedoch möglicherweise nicht auf einen physischen Bereich beschränkt, sondern kann stattdessen Verdrahtung oder Kabel verwenden, um die GPIO-Ports des IIoT-Endpunkts des Host-Mikrocontrollers um viele Meter zu erweitern, ähnlich einer Sternkonfiguration mit dem Host-Mikrocontroller als Hub. Die Terminierung jedes Sternpunktes mag komplex genug sein, um als untergeordneter Knoten außerhalb des Haupt-IIoT-Endpunktes zu fungieren, ist aber möglicherweise nicht anspruchsvoll genug, um als eigener IIoT-Endpunkt mit einer eigenen Netzwerkverbindung konfiguriert zu werden. Während der untergeordnete Knoten so gestaltet werden kann, dass er von seinem eigenen Mikrocontroller gesteuert wird, kann dies bei einfachen GPIOs unnötige Komplexität und Kosten verursachen.

Ein Beispiel aus der Praxis wäre ein IIoT-Endpunkt, der Motoren über PWM-Signale steuert. Wenn die Motoren mehrere Meter entfernt sind, müssten mehrere PWM-Signale an die Motoren gesendet werden, was die EMI für die Umgebung erhöhen würde. Für die Übertragung der PWM-Signale könnte abgeschirmtes Kabel verwendet werden, aber das würde die Kosten des Systems erhöhen und Fehler aufgrund von Phasenverzögerungen über Entfernung oder Übersprechen nicht beseitigen. Stattdessen könnte ein serieller Bus wie I2C oder SPI verwendet werden, um Befehle an ein programmierbares System in der Nähe der Motoren zu senden, die die PWM-Signale erzeugen würden. Diese Elektronik wäre ein untergeordneter Knoten, der so programmiert wäre, dass er die erforderlichen PWM-Signale erzeugt.

Eine praktische Lösung für den untergeordneten Knoten kann die Verwendung eines Port-Expanders über eine serielle Schnittstelle zum Host-Mikrocontroller sein. Port-Expander sind einfacher zu konfigurieren als ein Mikrocontroller und erweitern die Reichweite des GPIOs des Host-Mikrocontrollers. Anstatt acht oder mehr GPIO-Leitungen zu einem untergeordneten Knoten zu führen, kann der Host-Mikrocontroller über eine einfache I2C- oder SPI-Schnittstelle leicht auf einen Port-Expander am untergeordneten Knoten zugreifen. Das Schreiben in ein Register in einem Port-Expander setzt oder löscht GPIOs, während das Lesen den Status von GPIOs zurückgibt, genau wie die Steuerung von GPIOs auf dem Host-Mikrocontroller. Port-Expander behalten auch einen Großteil der Funktionalität von Mikrocontroller-GPIOs bei, einschließlich PWM-Erzeugung und Interrupt-Eingänge.

Ein Beispiel für einen einfach zu bedienenden Port-Expander ist die Maxim Integrated MAX7315AUE+T mit acht GPIOs und einer I2C-Schnittstelle (Abbildung 1).

Schema des integrierten MAX7315A-Port-Expanders von MaximAbbildung 1: Der Maxim Integrated MAX7315A Port-Expander bietet bis zu acht GPIOs und kann bei einer Zustandsänderung eines beliebigen GPIOs einen Interrupt für den Host-Mikrocontroller erzeugen. Der Zugriff erfolgt über eine Zweidraht-Schnittstelle I2C. (Bildquelle: Maxim Integrated)

Der MAX7315A unterstützt acht GPIOs, von denen jeder unabhängig als Eingang oder Open-Drain-Ausgang konfiguriert werden kann. Ein Host-Mikrocontroller kommuniziert mit dem MAX7315A über eine Zweidraht-Schnittstelle I2C, die mit bis zu 400 Kilohertz (kHz) arbeitet. Die Adresse des Bausteins auf dem I2C-Bus wird durch die drei Adresspins AD [0:2] gemäß Abbildung 1 konfiguriert. Das Gerät kann auch einen Interrupt für den Host-Mikrocontroller erzeugen.

Der MAX7315A ermöglicht die einfache Verwaltung von acht GPIOs über nur drei Pins: die beiden Pins I2C und den Interrupt-Pin. Das Gerät kann in beliebiger Entfernung vom Host-Mikrocontroller platziert werden, solange die Bedingungen eine zuverlässige I2C-Kommunikation zulassen. Je nach Platinenlayout und Umgebungs-EMI ist bei einem seriellen Taktgeber (SCL), der mit 400 kHz läuft, in der Regel ein Abstand von drei Fuß ein zuverlässiger Abstand, bei einem SCL mit 100 kHz können neun Fuß oder mehr erreicht werden.

Es ist jedoch wichtig, dies in einer aktiven Umgebung zu testen, um sicherzustellen, dass die Umgebungsbedingungen oder die EMI keinen signifikanten Einfluss auf die Entfernung haben.

Unterbrechungserkennung am untergeordneten Knoten

Der Baustein unterstützt einen aktiven Low-Interrupt-Ausgang an Pin 13, aber wenn die Interrupt-Funktion nicht benötigt wird, kann Pin 13 als neunter GPIO konfiguriert werden. Der Interrupt kann so konfiguriert werden, dass er bei jedem Eingangs-Pin-Übergang auf Low geht. Dadurch kann der Host-Mikrocontroller auf die Aktivität am untergeordneten Knoten aufmerksam gemacht werden, ohne den MAX7315A abzufragen. Wenn die Interrupt-Funktion aktiviert ist, fungiert jeder GPIO, der als Eingang konfiguriert ist und einen Interrupt aktiviert hat, als Interrupt-Eingang. Bei jeder Zustandsänderung eines als Interrupt konfigurierten GPIOs geht Pin 13 auf Low, um dem Host-Mikrocontroller die Änderung zu signalisieren. Der Host-Mikrocontroller liest dann den Status des MAX7315A, um festzustellen, welcher GPIO den Status geändert hat.

Dieses Verfahren verhindert den Verlust der Interrupt-Funktionalität durch die Verwendung eines Port-Expanders für GPIO, was nicht nur im IIoT, sondern auch in Mikrocontroller-Systemen, die Interrupts für einen effizienten Betrieb der Firmware benötigen, kritisch ist.

Die Interrupt-Funktion sollte vor einer Änderung der Konfiguration des MAX7315A deaktiviert werden, um die Erzeugung eines falschen Interrupts zu vermeiden.

Obwohl der MAX7315A mit einer Stromversorgung von 2 Volt bis 3,6 Volt betrieben werden kann, sind die GPIOs 5,5 Volt tolerant. Dadurch sind die GPIOs mit Standard-Logikpegeln kompatibel, einschließlich 2,0-Volt-, 3,6-Volt- und 5,0-Volt-Digitalsystemen. Jeder als Open-Drain-Ausgang konfigurierte GPIO kann bis zu 50 Milliampere (mA) in einem logisch hohen Pegel liefern. Ausgänge können miteinander verbunden werden, um den Ausgangsstrom zu erhöhen. Dadurch ist der MAX7315A für Hochstrom-LED-Anzeigen und Tastatur-Hintergrundbeleuchtungen geeignet.

PWM-Erzeugung am untergeordneten Knoten

Der MAX7315A ermöglicht auch programmierbare PWM-Ausgänge ohne Eingriff des Host-Mikrocontrollers. Ein interner 32-kHz-Oszillator wird als Zeitbasis für PWM-Wellenformen verwendet. Eine 4-Bit-Master-Intensitätseinstellung konfiguriert die verfügbare 32-kHz-PWM-Intensität für alle Ausgänge von 0 bis 15, ähnlich wie bei einem Vorteiler. Jede PWM-Ausgangswellenform für jeden GPIO ist in 15 Zeitschlitze unterteilt. Die Master-Intensitätseinstellung bestimmt, wie viele Steckplätze für die PWM-Erzeugung zur Verfügung stehen. Jeder einzelne GPIO hat sein eigenes individuelles Intensitätsregister, das zur Einstellung des Tastverhältnisses für die Wellenform in den aktiven Slots verwendet wird. Dies lässt sich am besten an einem Beispiel anhand der Ausgangswellenform eines einzelnen GPIO-Pins erläutern (Abbildung 2).

Diagramm der Ausgangswellenform von Maxim MAX7315A eines einzelnen GPIO-Pins<Abbildung 2: Der MAX7315A verfügt über einen programmierbaren PWM-Generator, der mit einem intern erzeugten 32-kHz-Takt arbeitet. Diese PWM hat eine Master-Intensität = 2 und eine individuelle GPIO-Duty-Cycle-Intensität = 2. (Bildquelle: Maxim Integrated)

Die Master-Intensität ist auf 2 eingestellt, so dass nur die Slots 1 und 2 der 15 Slots für die PWM-Erzeugung zur Verfügung stehen, während die Slots 3 bis 15 auf Logikpegel Null liegen. Die individuelle Tastverhältnis-Intensität für diesen GPIO ist auf 2 eingestellt, so dass die Wellenformen in Schlitz 1 und 2 bei einem Tastverhältnis von 2/16 = 12,5 % liegen.

Die PWM-Master-Intensität kann von 0 bis 15 eingestellt werden, wobei 15 bedeutet, dass alle 15 Steckplätze verfügbar sind. Eine Master-Intensität von Null bedeutet, dass die PWM-Erzeugung für alle GPIOs deaktiviert ist und somit der 32-kHz-Takt abgeschaltet wird, um Strom zu sparen.

Jeder einzelne GPIO kann eine PWM-Tastverhältnis-Intensität von 1 bis 16 konfigurieren, wobei 16 ein 100-prozentiges Tastverhältnis ist, wodurch der Steckplatz auf einen logisch hohen Wert gesetzt wird.

Für weitere Flexibilität verfügt jeder GPIO über ein Polaritätsbit, das die PWM-Wellenform invertieren kann. Abbildung 2 zeigt die Wellenform, wobei das Polaritätsbit für diesen GPIO auf 1 gesetzt ist. Die PWM-Wellenform in Abbildung 3 zeigt den gleichen GPIO mit der gleichen Master-Intensität und Tastverhältnis-Intensität wie in Abbildung 2, aber das Polaritätsbit ist auf 0 gelöscht.

Der Graph von Maxim Integrated MAX7215A hat ein Polaritätsbit, das die Wellenform umkehrtAbbildung 3: Jeder PWM-GPIO auf dem Maxim Integrated MAX7215A verfügt über ein Polaritätsbit, das die Wellenform umkehrt. Diese PWM hat eine Master-Intensität = 2 und eine individuelle Tastverhältnis-Intensität = 2 mit dem Polaritätsbit = 0, das die Wellenform umkehrt. (Bildquelle: Maxim Integrated)

Dank dieser Flexibilität bei der PWM-Wellenformerzeugung kann der MAX7315A in einem untergeordneten Knoten außerhalb eines IIoT-Endpunkts zur Steuerung des Dimmens von LED-Anzeigen, zur Ansteuerung von Leistungstransistoren für Gleichstrommotoren und zur Steuerung von Magneten und Aktoren verwendet werden. Jetzt muss der Host-Mikrocontroller den MAX7315A nur noch konfigurieren und den unabhängigen Betrieb des MAX7315A ermöglichen, anstatt acht digitale Leitungen zu betreiben, die PWM-Wellenformen über eine verrauschte Industrieumgebung übertragen.

Erweitern der Funktionalität an untergeordneten Knoten

Für komplexere untergeordnete Knoten bietet Maxim Integrated den MAX7301AAX+T Port-Expander mit bis zu 28 GPIOs an. Der MAX7301AAX wird im IIoT-Endpunkt über eine standardmäßige vierpolige SPI-Schnittstelle mit dem Host-Mikrocontroller verbunden (Abbildung 4). Es unterstützt auch eine aktive hohe Interrupt-Funktion als alternative Funktion von P31. Der MAX7315AAX kann so konfiguriert werden, dass er bei einer Zustandsänderung eines oder mehrerer GPIOs einen Interrupt zurück an den Host-Mikrocontroller generiert. Dadurch können 27 GPIOs in einem untergeordneten Knoten in einem interruptgesteuerten System mit nur fünf Steuerleitungen gesteuert werden: die vier SPI-Steuerleitungen und eine Interruptleitung.

Diagramm der Maxim Integrated MAX7301 Port-Expander-SPI-Schnittstelle<Abbildung 4: Der Maxim Integrated MAX7301 Port-Expander verfügt über eine SPI-Schnittstelle und unterstützt bis zu 28 GPIO-Pins, die als Ein- oder Ausgang zur Verfügung stehen. Pin 31 unterstützt eine alternative Funktion als aktiver High-Interrupt, so dass 27 GPIO-Leitungen über fünf Steuersignale gesteuert werden können. (Bildquelle: Maxim Integrated)

Der MAX7301AAX arbeitet über einen weiten Versorgungsbereich von 2,25 Volt bis 5,5 Volt und ist somit mit den meisten digitalen Logiksystemen kompatibel. Der GPIO kann als Schmitt-Trigger-Eingang mit oder ohne internen Pullup-Widerstand konfiguriert werden. GPIO kann auch als Push-Pull-Ausgänge konfiguriert werden, die bis zu 10 mA aufnehmen können. Dadurch eignet sich der MAX7301AAX für die Anbindung an Schaltungen auf logischer Ebene, die zur Steuerung anderer Geräte, wie z.B. Industriesteuerungen, sowie für Systemüberwachungs- und Alarmschaltungen verwendet werden.

Fazit

Wenn Designer die physische Reichweite von IIoT-Endpunkten erweitern, kann die Steuerung von Child-Knoten eine Herausforderung darstellen, da die Verlängerung mehrerer Steuerleitungen über Entfernungen von mehreren Metern Probleme mit EMI, Layout und Schaltungskomplexität verursacht. Durch die Verwendung von Port-Expandern zur Steuerung von untergeordneten Knoten in Interrupt-gesteuerten Systemen können Entwickler das Leiterplatten-Layout vereinfachen und die Zuverlässigkeit verbessern, während sie gleichzeitig dem IIoT-Endpunkt bedeutende Funktionalität hinzufügen.

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der Digi-Key Electronics oder offiziellen Politik der Digi-Key Electronics wider.

Über den Autor

Bill Giovino

Bill Giovino ist Elektronikingenieur mit einem BSEE von der Syracuse University und einer der wenigen, die erfolgreich vom Entwicklungsingenieur über den Anwendungsingenieur zum Technologiemarketing wechselten.

Seit über 25 Jahren wirbt Bill für neue Technologien vor technischem und nicht-technischem Publikum für viele Unternehmen, darunter STMicroelectronics, Intel und Maxim Integrated. Während seiner Zeit bei STMicroelectronics trug Bill dazu bei, die frühen Erfolge des Unternehmens in der Mikrocontroller-Industrie voranzutreiben. Bei Infineon inszenierte Bill die ersten Erfolge des Unternehmens im Bereich Mikrocontroller-Design in den USA. Als Marketingberater für sein Unternehmen CPU Technologies hat Bill vielen Unternehmen geholfen, unterbewertete Produkte in Erfolgsgeschichten zu verwandeln.

Bill war zudem ein früher Anwender des Internets der Dinge, einschließlich der Implementierung des ersten vollständigen TCP/IP-Stacks auf einem Mikrocontroller. Die Botschaft von „Verkauf durch Aufklärung“ und die zunehmende Bedeutung einer klaren, gut geschriebenen Kommunikation bei der Vermarktung von Produkten im Internet sind Bills Anliegen. Er ist Moderator der beliebten „Semiconductor Sales & Marketing Group“ auf LinkedIn und spricht fließend B2E.

Über den Verlag

Nordamerikanische Fachredakteure von Digi-Key