Wie können IO-Link-Device-Mikrocontroller die Herausforderungen im Zusammenhang mit den Timing-Vorgaben meistern, die im IO-Link-Standard spezifiziert sind? Indem sie das Management des Physical- und Data-Link-Layers an einen IO-Link-Transceiver abgeben. Folgender Beitrag zeigt, wie es funktioniert.
Von einem IO-Link-Device-Mikrocontroller wird erwartet, dass er mehrere Aufgaben simultan erledigt. Das kann schwierig sein, wenn diese im spezifizierten akzeptablen Zeitfenster abgeschlossen sein müssen. Dies trifft besonders bei der Ausführung von Aufgaben zu, bei denen der Mikrocontroller nicht angehalten (interrupted) werden kann. Eine gängige Lösung für diese Timing-Herausforderung ist es, einen zweiten Mikrocontroller einzusetzen, der ausschließlich den IO-Link-Stack managt und damit ein konstanteres Antwort-Zeit-Intervall zwischen dem IO-Link-Device und dem IO-Link-Master sicherstellt. Dies ist jedoch eine sehr ineffiziente Methode, weil sie mehr Energie benötigt und eine größere Leiterplattenfläche beansprucht und somit auch ein größeres Sensorgehäuse braucht. Eine gute Alternative ist es, einen Transceiver zu verwenden, der sowohl den Data-Link- als auch den Physical Layer im Kommunikationspfad managen kann. Indem er dem Device-Mikrocontroller diese Aufgabe abnimmt, ermöglicht ein solcher Transceiver in der Industrie die Entwicklung kleinerer, komplexerer und kosteneffektiverer Geräte mit höherem Funktionsumfang.
»Zwei Dinge gleichzeitig zu tun, heißt nichts zu tun« – obwohl diese Aussage des römischen Schriftstellers Publilius Syrus über Multitasking extrem klingen mag, gibt es Umstände, unter denen Multitasking dazu führt, dass Aufgaben nicht rechtzeitig oder nicht so ausgeführt werden, wie sie ursprünglich geplant sind. Weil industrielle Prozesse immer komplexer werden, haben sich Feldgeräte wie Sensoren und Aktoren so weiterentwickelt, dass sie mehrere unterschiedliche Aufgaben simultan ausführen können, einschließlich der regulären Kommunikation mit einem Prozess-Controller. Dies bedeutet einen zusätzlichen Overhead für den Device-Mikrocontroller, der sorgfältig gemanagt werden muss, da sonst Prozessdaten verloren gehen können, was zu Stillstandzeiten in der Produktion führt (genau das, was moderne industrielle Kommunikationsprotokolle eigentlich reduzieren sollen).
IO-Link ist ein industrieller 24-V-Dreidraht-Kommunikationsstandard, der eine Punkt-zu-Punkt-Kommunikation zwischen industriellen Geräten und einem IO-Link-Master ermöglicht, der wiederum mit Prozesskontrollnetzwerken auf höheren Ebenen kommuniziert.
In IO-Link-Applikationen wirkt ein Transceiver als Physical-Layer-Schnittstelle zwischen einem Mikrocontroller, in dem ein Data-Link-Layer-Protocol(-Stack) läuft, und der 24-V-IO-Link-Signalleitung. Die IO-Link-Kommunikation umfasst mehrere Typen zu übertragender Daten, darunter Prozessdaten, Status eines Werts, Gerätedaten und Ereignisse. Diese ermöglichen es, industrielle Geräte schnell zu identifizieren und zu verfolgen, und helfen auch dabei, die Ausfallzeit zu reduzieren falls ein Fehler eintritt. IO-Link ermöglicht zudem die Konfiguration aus der Ferne, zum Beispiel wenn der Schwellwert, der einen Prozessalarm auslöst, neu eingestellt werden muss. Dies kann dadurch erfolgen, dass der aktualisierte Schwellwert über die IO-Link-Verbindung an das Gerät gesendet wird, ohne dass ein Techniker zur Nachjustierung die Fabrikhalle aufsuchen muss.
Die Kommunikation zwischen einem IO-Link-Master-Port und einem Device unterliegt mehreren Timing-Einschränkungen und findet sich in einem festen Ablaufplan, M-Sequenz-Zeit, wieder. Eine M-Sequenz-Nachricht enthält einen Befehl oder eine Anforderung (request), die vom IO-Link-Master an ein Device gesendet wird, und die Antwort vom Gerät. Grafik 2 zeigt die Timing-Parameter in einer M-Sequenz, die aus einer Nachricht zwischen einem IO-Link-Master-Port und einer Geräte-Nachricht besteht. Das Gerät muss dabei innerhalb der Antwortzeit des Devices, tA, antworten, die zwischen 1 TBit und 10 TBit (TBit hier = Bit-Zeiten, bit times) dauern kann. Für eine COM3-Baudrate sollte tA zwischen 4,3 µs und 43 µs liegen. Liegt die Antwortzeit außerhalb dieses Bereichs, tritt ein Kommunikationsfehler auf.
Von einem IO-Link-Gerätemikrocontroller wird erwartet, dass er mehrere Aufgaben gleichzeitig erledigen kann, was zu Schwierigkeiten bei der Reaktion auf eine Anfrage innerhalb des spezifizierten akzeptablen Zeitfensters für tA führen kann. Dies trifft besonders beim Ausführen einer Aufgabe zu, von der der Mikrocontroller nicht angehalten werden kann – diese Art von Aufgabe wird oft als Non-Maskable Interrupt (NMI) bezeichnet. Antwortet der Gerätemikrocontroller nicht innerhalb eines spezifizierten Zeitfensters, bricht die Kommunikation ab und muss neu initiiert werden.
Im Falle eines Ultraschall-Abstandssensors sind einige der Aufgaben, die der Mikrocontroller ausführen soll, beispielsweise:
Das kontinuierliche Verarbeiten von Datensätzen lässt einem Mikrocontroller nur wenig Zeit, um auch die Kommunikation über den Data-Link-Layer zu managen, was zu beträchtlichen Variationen der Antwortzeit des Geräts führt. In extremen Fällen kann es vorkommen, dass die Timing-Anforderungen an tA nicht erfüllt werden.
Von NMIs verursachte Timing-Probleme lassen sich mit dem Einsatz eines schnelleren Mikrocontrollers mit mehr Funktionen beheben. Eine typische Lösung für ein derartiges Timing-Problem ist es, einen zweiten Mikrocontroller zu verwenden, um den IO-Link-Stack zu managen. Dies sichert ein konstanteres Zeitintervall für die Antwort zwischen dem IO-Gerät und dem IO-Link-Master. Es ist jedoch eine sehr ineffiziente Methode, weil sie mehr Leistung benötigt und eine größere Leiterplattenfläche beansprucht und deshalb auch ein größeres Sensorgehäuse braucht.
Eine gute Alternative für die Lösung dieses Problems ist es, einen Transceiver zu verwenden, der sowohl den Data Link Layer als auch den Physical Layer im Kommunikationspfad managen kann. Die IO-Link-State-Machine MAX22516 (Grafik 3) integriert alle diese Funktionen, die man üblicherweise in IO-Link-Geräte-Transceivern findet, einschließlich des 24-V-C/Q, eines integrierten DC/DC-Abwärtswandlers sowie 5-V- und 3,3-V-Linearreglern.
Dieser Baustein ist der erste Transceiver, der die State Machine mit vollem Funktionsumfang enthält, um das Timing der IO-Link-Datenkommunikation komplett zu managen. Selbstständig führt er sowohl die Kommunikation mit dem IO-Link-Master für Anfragen wie Konfigurations- und Wartungsanfragen durch als auch die Übertragung von Prozessdaten, wobei er Daten verwendet, die vom Mikrocontroller in Register und FIFOs geschrieben werden. Ein Hauptvorteil der Nutzung des Transceivers ist, dass er deutlich mehr Optionen bei der Auswahl eines Mikrocontrollers für den Sensor bietet. Denn somit ist es nicht mehr nötig, dass der Gerätemikrocontroller die Kommunikation mit dem IO-Link-Master übernehmen muss.
Der MAX22516 überwacht die vom IO-Link-Master eintreffenden Nachrichten. Trifft eine komplette indizierte ISDU-Konfiguration (Indexed Service Data Unit) oder eine Wartungsanfrage ein, sendet er automatisch ISDU-BUSY-Nachrichten an den IO-Link-Master und benachrichtigt den Gerätemikrocontroller darüber, dass die Kommunikation erfolgreich abgeschlossen ist. Der Mikrocontroller kann auf Anforderung Daten in das ISDU-FIFO laden, eine Aufgabe, die - wenn die Zeit dafür vorhanden ist - üblicherweise mehrere Taktzyklen zur Ausführung benötigt. Eingangsprozessdaten (PDIn) und Ausgangsprozessdaten (PDOut) werden vom Transceiver durch Nutzen der Daten in den PDIn- und PDOut-FIFOs gemanagt. Dies ermöglicht es dem Mikrocontroller ohne jegliche Zeiteinschränkung, Daten in die PDIn- und PDOut-FIFOs zu schreiben und auszulesen. Integrierte Buffer stellen sicher, dass die Daten in den FIFOs nicht verlorengehen oder überschrieben werden, bevor sie verarbeitet sind.
Grafik 4 zeigt, wie der Einsatz des Transceivers die Zeit drastisch reduziert, die ein Gerät benötigt, um auf einen IO-Link-Master zu reagieren, und im Vergleich dazu die Zeit in einer Anwendung, die nur einen einzigen Mikrocontroller verwendet. Die Antwortzeit des Geräts wird um über 50 Prozent und die Schwankungsbreite von 12 µs auf 0,25 µs ebenfalls deutlich reduziert.
Das IO-Link-Device-Referenz-Design MAXREFDES281 (Grafik 5) lässt sich nutzen, um das Timing-Verhalten unterschiedlicher Typen von IO-Link-Sensoren zu verifizieren.
Aufgrund der Anforderung an Mikrocontroller, mehrere unterschiedliche Aufgaben gleichzeitig zu erledigen, ist es manchmal problematisch, die Timing-Spezifikationen für die IO-Link-Datenkommunikation einzuhalten. Einige Equipment-Produzenten sehen als Lösung nur die unbeliebte Alternative, einen zweiten Mikrocontroller einzusetzen, der den IO-Link-Stack managt. Dies ist jedoch nicht länger nötig, weil der IO-Link-Transceiver MAX22516 eine State Machine umfasst, die die gesamte IO-Link-Kommunikation übernehmen kann. Davon befreit, kann der Hauptmikrocontroller des Gerätes alle anderen zeitkritischen Aufgaben erledigen.
Brian Condell, Digital Marketing Engineer, Michael Jackson, Principal Engineer, und Konrad Scheuer, Senior Principal Engineer, alle bei Analog Devices tätig.