Effiziente Verbindung zu Sensoren in IoT-Endpunkten per 1-Draht-Kommunikation
Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey
2021-06-17
Während es für IoT- (Internet der Dinge) und IIoT-Endpunkte (industrielles IoT) üblich ist, lokale Kontrollbereiche zu haben, müssen sich einige mit einfachen Sensoren verbinden, die mehr als einen Meter vom Standort des Host-Mikrocontrollers entfernt sind. Traditionell werden SPI- oder serielle I²C-Schnittstellen verwendet, um einfach mit diesen Sensoren zu kommunizieren. Wenn jedoch die Steuerungsalgorithmen komplizierter werden und mehr Sensoren eingesetzt werden müssen, muss der Mikrocontroller mehr SPI- und I²C-Leitungen verwenden, um diese Sensoren zu erreichen. Dies erhöht die Komplexität der Verdrahtung, was die Konfigurations- und Wartungskosten erhöht, insbesondere wenn die Entfernungen zunehmen.
Dieser Artikel zeigt Entwicklern, wie sie das 1-Wire-Protokoll von Maxim Integrated nutzen können, um kostengünstig eine Verbindung zu IoT-Sensoren mit nur einem Draht plus Masse herzustellen. Es werden die Vorteile des 1-Wire-Protokolls erörtert, einschließlich der signifikanten Vergrößerung der Sensorreichweite und der Bereitstellung von Energie und Daten über dieselben Drähte. Anschließend wird ein Brückenbaustein vorgestellt, der 1-Wire-Signale entweder in SPI oder I²C umwandelt, sowie ein Entwicklungskit mit Software, die den Entwicklern den Einstieg erleichtert.
Wachsender Einsatz von IoT- und IIoT-Sensoren
Beim Ausbau der IoT- und IIoT-Vernetzung geht es darum, Anlagen und Fertigungsprozesse effizienter zu machen und gleichzeitig die Funktionalität zu erweitern. Dabei werden Daten mit Hilfe von Sensoren gesammelt. Während ein Apartement vielleicht einen Thermostat in einem Raum hat, der einen Temperatursensor enthält, kann ein automatisiertes Gebäude oder ein IIoT-Netzwerk viele Temperatur- und Feuchtigkeitssensoren in einem Raum und im gesamten Gebäude oder der Anlage platzieren. Zum Beispiel können neben Drucksensoren zusätzliche Sensoren in Heizungs-, Lüftungs- und Klimakanälen (HLK) platziert werden. Sicherheitssysteme können ebenfalls verschiedene Arten von Sensoren verwenden, und sie können auch an mehreren Orten platziert werden.
Auch in der Fertigung und bei Förderbandsystemen werden zunehmend Sensoren zur Prozessüberwachung und Datenerfassung eingesetzt, um zu analysieren, wie man z. B. durch effizientere Systeme Energie sparen und gleichzeitig die Sicherheit verbessern kann.
Die gebräuchlichsten Sensoren für diese Anwendungen sind Umgebungssensoren für mehrere Parameter, einschließlich Temperatur, Luftfeuchtigkeit und Druck; visuelle Sensoren für sichtbares Licht und kapazitive Näherungssensoren; und Positionssensoren, einschließlich MEMS-Beschleunigungsmessern, MEMS-Gyroskopen und Vibrationssensoren. Die Miniaturisierung und die Fortschritte in der MEMS-Technologie haben zu Sensoren in Gehäusen geführt, die kleiner als ein Daumennagel sind und nur ein paar hundert Milliampere (mA) ziehen. Die meisten dieser Sensoren sind leicht über eine SPI- oder I²C-Kommunikationsschnittstelle zugänglich, die beide auf fast jedem Mikrocontroller zu finden sind. Bei der Anbindung an diese einfachen Sensoren kann es unpraktisch sein, einen ganzen IoT- oder IIoT-Endpunkt oder untergeordneter Knoten zu entwickeln, um nur die Temperatur abzutasten. Daher ist es oft einfacher und schneller, nur die SPI- oder I²C-Kommunikationsleitungen direkt zu ihnen zu führen.
In einigen Fällen werden noch analoge Sensoren verwendet, wie z. B. Hochtemperatur-Thermoelemente und einige Drucksensoren. In diesen Fällen hat der Mikrocontroller eine Schnittstelle zu einem SPI- oder I²C-Analog/Digital-Wandler (ADC) am Sensorstandort, der den analogen Sensor lokal abtastet. Dies vermeidet Spannungsabfälle über analoge Sensorleitungen und verbessert so die Genauigkeit.
Schnittstelle zu externen SPI- und I²C-Sensoren
Ein Mikrocontroller kommuniziert mit diesen Sensoren, indem er die Reichweite der SPI- und I²C-Datenleitungen erweitert. I²C ist jedoch auf eine Reichweite von einem Meter oder weniger beschränkt, und SPI hat ähnliche Einschränkungen. Darüber hinaus werden für Vollduplex-SPI vier Pins benötigt, einschließlich eines individuellen Peripherie-Auswahlpins für jeden einzelnen. Um vier SPI-Peripheriegeräte an einem Bus zu erreichen, werden daher sieben Pins benötigt, plus Power und Masse, also insgesamt neun Pins. Halbduplex-I²C benötigt zwei Pins plus Power und Masse für das Peripheriegerät, also insgesamt vier Leitungen. Gleichzeitig erhöhen die vielen Hochgeschwindigkeitssignale die elektromagnetische Interferenz (EMI), die ein Übersprechen erzeugen kann, was zu einer reduzierten Signalintegrität und einer geringeren Systemzuverlässigkeit führt.
Benötigt wird eine Lösung, die die Strom- und Datenverdrahtung minimiert und den Betrieb vereinfacht, während die Kompatibilität mit bestehenden I²C- und SPI-Sensoren erhalten bleibt.
Um das Problem der Verbindung mit entfernten Sensoren über größere Entfernungen zu lösen und gleichzeitig die Anzahl der Drähte zu reduzieren, hat Maxim Integrated ein 1-Wire-Protokoll entwickelt, das mit den meisten SPI- oder I²C-Sensoren über einen Draht plus Masse verbunden werden kann. Das Protokoll reduziert die Anzahl der sechs Drähte von SPI und die vier Drähte von I²C auf nur zwei Drähte, die sowohl Daten als auch Strom bis zu 100 Meter (m) übertragen.
Anwendung des 1-Wire-Protokolls
Bei Verwendung von 1-Wire verfügt der Remote-Sensor über eine 1-Wire-Kommunikationsbrücke, die das 1-Wire-Protokoll in kompatible SPI- oder I²C-Signale umwandelt, die mit dem Sensor verbunden werden. Sowohl die 1-Wire-Brücke als auch der Sensor werden parasitär nur durch das 1-Wire-Signal plus eine Masseleitung versorgt. Dadurch können 1-Wire-Signale in kleinen Bereichen verlegt werden, was durch die Verwendung von weniger Draht Kosten spart.
Während sowohl SPI als auch I²C ein eigenes Taktsignal verwenden, bettet 1-Wire den Takt in das Datensignal ein. SPI adressiert ein bestimmtes Peripheriegerät über ein separates Select-Signal für jedes Peripheriegerät, während I²C eine 7-Bit-Busadresse verwendet, die über die Datenleitung übertragen wird; im Vergleich dazu verwendet 1-Wire eine 56-Bit-Adresse, die in jeder einzelnen Kommunikationsbrücke fest verdrahtet ist. Dieser breitere Adressierungsbereich erhöht nicht nur die Anzahl der eindeutigen Peripheriegeräte an einem Bus, sondern erhöht auch die Sicherheit, da es für einen Angreifer schwieriger ist, die Adresse eines Peripheriegeräts am 1-Wire-Bus zu erraten.
Die Wortgröße auf einem 1-Wire-Peripheriebus beträgt 8 Bit. Ein Mikrocontroller-1-Wire-Bus-Host kann das 1-Wire-Protokoll bit-bangen, es wird aber auch von einem einfachen UART-Treiber unterstützt. Dadurch kann sogar ein 8-Bit-Mikrocontroller ein 1-Bit-Bus-Host sein. Ein 1-Bit-Bus kann SPI- oder I²C-Peripherie enthalten, aber nicht beides. Diese Konsistenz verhindert Konflikte und Kollisionen auf dem Bus und vereinfacht die Programmierung mit dem Protokoll.
1-Wire-Lösungen in der Praxis
Für Entwickler, die eine Schnittstelle zu einer SPI- oder I²C-Peripherie über einen 1-Wire-Bus suchen, bietet Maxim Integrated die 1-Wire-zu-I²C/SPI-Brücke DS28E18Q+T mit Befehlssequenzer an (Abbildung 1).
Abbildung 1: Die 1-Wire-zu-I²C/SPI-Brücke DS28E18Q+T mit Befehlssequenzer wietet Anschlüsse für 1-Wire-Bus-IO- und -GND-Pins. (Bildquelle: Maxim Integrated)
Wie in Abbildung 1 dargestellt, wird die parasitäre Leistung vom Bus abgezogen, wenn IO High ist, und am SENS_VDD-Pin zur Versorgung der Peripherie zur Verfügung gestellt. Die Brücke puffert und übersetzt 1-Wire-Befehle in die entsprechenden I²C- oder SPI-Befehle.
Der IO-Pin und GND sind mit dem 1-Wire-Bus verbunden und werden an das Frontend mit seiner Zustandsmaschine gesendet. Jedes Gerät wird durch eine 56-Bit-ROM-ID identifiziert, der ein 8-Bit langer 1-Wire-Familiencode vorangestellt ist, der die Revision des DS28E18Q+T bezeichnet. Dies ermöglicht die eindeutige Identifizierung eines bestimmten DS28E18Q+T durch die Mikrocontroller-Firmware, so dass diese flexibel genug ist, um auf Änderungen in der Gerätefamilie zu reagieren. Es gibt eine eindeutige 48-Bit-Seriennummer für das Gerät mit einem 8-Bit-Code für die zyklische Redundanzprüfung (CRC).
Das Frontend sendet die übersetzten Daten an den Befehlssequenzer unter Verwendung eines 144-Byte-Befehlspuffers, der 128 Byte Daten vom IO-Bus und 16 Byte für den internen Gebrauch enthält. Der Befehlssequencer verarbeitet die Befehle und kann bis zu 512 Bytes an I²C- oder SPI-Befehlen in seinem Puffer speichern, um sie später an das Peripheriegerät zu senden, anstatt dass der 1-Wire-Bus die Befehle einzeln verarbeitet.
Dieser 512-Byte-Puffer ermöglicht es dem DS28E18Q+T auch, sein eigenes internes Stromverhalten so zu koordinieren, dass das Timing für die Kommunikation mit der Peripherie die Einhaltung der parasitären Leistung ermöglicht. Der Befehlssequenzer hält dieses Timing ein, wenn er Anweisungen an den I²C/SPI-Master und GPIO-Controller sendet, der die Daten so verarbeitet, dass sie den I²C- und SPI-Standards entsprechen.
An CEXT ist ein externer 470 Nanofarad (nF) Kondensator angeschlossen, der im 1-Wire-Busbetrieb als Leistungsreserve für den DS28E18Q+T dient. Am SENS_VDD-Pin steht eine parasitäre Versorgung für die angeschlossene Peripherie zur Verfügung. Für den SPI-Betrieb sorgen die vier Pins SS#, MISO, MOSI und SCLK für eine Vollduplex-Kommunikation mit der angeschlossenen Peripherie. Der I²C-Betrieb verwendet nur zwei Pins mit alternativen Funktionspins, SDA und SCL. Die Pins SS# und MISO für den SPI-Betrieb sind für den I²C-Betrieb unbenutzt und können daher als General-Purpose-I/O (GPIO) mit der alternativen Funktion GPIOA und GPIOB verwendet werden. Dies bietet eine größere Flexibilität, die zum Aufleuchten von Diagnose-LEDs am Sensorstandort oder zur Verwaltung von Konfigurationspins an einem Sensor oder ADC verwendet werden kann, um das Verhalten des Geräts zu ändern.
Mit dem DS28E18Q+T von Maxim Integrated kann ein einzelner UART auf einem Mikrocontroller über nur zwei Drähte mit vielen Sensoren auf demselben 1-Wire-plus-Masse-Bus kommunizieren; jeder Sensor ist mit einem DS28E18Q+T verbunden, der bis zu 100 m entfernt sein kann. Dies kann besonders bei HLK-Systemen nützlich sein, bei denen nur zwei Drähte durch einen Luftkanal verlegt werden können, um die Temperatur und Luftfeuchtigkeit entlang seiner Länge an jeder Entlüftung zu überwachen. Dies verbessert die Effizienz des Systems durch die Überwachung auf heiße oder kalte Stellen, die durch Verstopfungen verursacht werden können.
1-Wire-Entwicklung
Für den Einstieg in die Entwicklung mit dem 1-Wire-Protokoll bietet Maxim Integrated das Evaluierungssystem DS28E18EVKIT# an. Dieses besteht aus einem Hardware-Entwicklungsboard (Abbildung 2) und Software.
Abbildung 2: Das Evaluierungsboard DS28E18EVKIT# von Maxim ermöglicht dem Entwickler den einfachen Anschluss einer SPI- oder I²C-Peripherie an den 1-Wire-Bus. Die mitgelieferte Software kann zur Programmierung und Überwachung des Bus- und Peripherieverhaltens sowie zur Generierung der Mikrocontroller-Gerätetreiber verwendet werden. (Bildquelle: Maxim Integrated)
Das Evaluierungsboard ermöglicht es einem Entwickler, den DS28E18Q+T zu programmieren und zu überwachen. Für Entwicklungszwecke wird das Board mit einem USB-Adapter geliefert, der das Board mit einem USB-Port eines Windows-Computers verbindet. Der Entwickler muss die DS28E18EVKIT# Evaluation Kit Software herunterladen und ausführen, um die Entwicklung zu unterstützen. Wie in Abbildung 3 zu sehen, ermöglicht die Evaluationssoftware die Programmierung und Überwachung des DS28E18Q+T und der angeschlossenen Peripherie.
Abbildung 3: Die Evaluierungssoftware DS28E18EVKIT# ermöglicht es einem Entwickler, den integrierten DS28E18Q+T über den USB-Adapter zu konfigurieren und sein Verhalten zu überwachen. Der 512-Byte-Speicher des Befehlssequenzers kann mit Daten gefüllt werden und dann an das Peripheriegerät gesendet werden, um die Sensoroperation durchzuführen. (Bildquelle: Maxim Integrated)
Die Software kann Befehle an das Evaluierungsboard DS28E18Q+T senden und es für die Ziel-SPI- oder -I²C-Peripherie konfigurieren. Sie kann den Adressbereich der Peripherie auswählen und den 512-Byte-Speicher des Befehlssequenzers mit auszuführenden Peripheriebefehlen füllen. Die Software kann auch bei der Konfiguration der UART-Treiber für den Ziel-Mikrocontroller helfen und erspart so den Aufwand, alle Details des 1-Wire-Kommunikationsprotokolls zu lernen. Ein Entwickler kann das Evaluierungsboard auch in seiner eigenen Anwendung verwenden und spart so die Zeit und den Aufwand für den Aufbau und die Konfiguration eines Sensorknotens.
Fazit
Je mehr Sensoren zu IoT- und IIoT-Systemen hinzugefügt werden, desto komplexer und kostspieliger wird die Verkabelung zu den Sensoren, insbesondere wenn die Entfernungen zunehmen. Die Stromversorgung der Sensoren ist ein weiteres Problem, das die Einrichtung eines Sensornetzwerks erschweren kann. Wie gezeigt, können das 1-Wire-Protokoll und die zugehörige Hardware von Maxim Integrated die Anbindung an das Sensornetzwerk einfacher und effizienter gestalten, indem Daten und Strom über nur eine Leitung plus Masse bereitgestellt werden.
Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.



