Interfaces für 1-Wire
Einleitung
Der 1-Wire Bus mit seinen Sensoren und Aktoren ist über ein Interface an einen Computer angeschlossen. Hierzu sind folgende Typen gebräuchlich:
- DS2480(B) ist ein Bus-Master-IC, der einen kompletten 1-Wire Bus an ein serielles Signal ankoppelt, dabei Teile des Timing sowie des Suchalgorithmus übernimmt. Dieser Schaltkreis ist Bestandteil vieler anderer aktiver Interfaces.
- DS2482 ist ein Bus-Master-IC, der einen kompletten 1-Wire Bus an ein serielles Signal auf dem I2C-Bus ankoppelt, dabei Teile des Timing sowie des Suchalgorithmus übernimmt. Dieser Schaltkreis ist Bestandteil des CUNO und 1-wire
- DS2490 ist ein Bus-Master-IC, der einen kompletten 1-Wire Bus an einen USB-Port ankoppelt, dabei Teile des Timing sowie des Suchalgorithmus übernimmt. Dieser Schaltkreis ist Bestandteil verschiedener USB-Interfaces, er ist gegenwärtig nür über die Bibliothek libusb ansteuerbar, die von OWFS unterstützt wird. Eine Ansteuerung über OWX ist in Arbeit.
- DS9097 ist ein passives Interface, bestehend nur aus ein paar Schottky- und Zenerdioden, einem Widerstand und einem Kondensator, mit dem die 1-Wire Komponenten aus einer seriellen RS232- Schnittstelle angesteuert werden. Dabei wird eine Spannungsversorgung realisiert, indem die RTS/CTS-Signale der Schnittstelle "gestohlen" und gesammelt werden. Der 1-Wire-Suchalgorithmus muss bei dem DS9097-Interface vollständig im ansteuernden Computer realisiert werden.
- DS9097U ist ein aktives Interface (basierend auf dem DS2480B), welches die serielle RS232-Schnittstelle eines Computers an den 1-Wire-Bus ankoppelt. Es kann durch einen zusätzlichen USB-zu-Seriell-Konverter auch an den USB-Port angeschlossen werden. Der 1-Wire-Anschluss erfolgt über einen 6-Poligen RJ11 ("Western"-)Stecker. Den DS9097U gibt es in drei Varianten (009/S09, E25), von denen 2 mit 9-poligem Anschluss und eine mit 25-poligem Anschluss an die serielle Schnittstelle versehen sind. Problematisch ist, dass bei den 9-poligen Varianten auf die RJ-11-Anschlussbuchse keine Versorgungsspannung für den 1-Wire-Bus geführt wird, dies lässt sich aber durch Öffnung des Gehäuses und Herausführung der entsprechenden Leitungen beheben.
- USB9097 ist eine Version des DS9097U für den USB-Port, die auch eine Versorgungsspannung für den 1-Wire-Bus zur Verfügung stellt. Er benötigt das Linux-Kernmodul ch341.ko, das nicht auf allen Systemen verfügbar ist.
- LinkUSBi ist ein USB-1-Wire Adapter mit FTDI-Chip, der gegenüber den DS2480 etc. eine verbesserte Ansteuerung des 1-Wire Bus aufweist. Achtung: Dieser Adapter stellt verschiedene Funktionen für den 1-Wire Bus bereit, und emuliert den DS2480 Chip nur. Es kann daher derzeit zu Timing-Problemem kommen.
- Arduino mit OneWireFirmata [1], kann als Aktiver Busmaster für 1-Wire am USB-Port verwendet werden. Vorteil ist die preisgünstige Beschaffbarkeit und die einfache Integrierbarkeit in eigene Geräte (z.B. in der Version 'Nano' die sich in übliche Lochrasterplatinen im 2,54mm Rastermas einfach einlöten läßt). An einem Arduino können bis zu 54 (Modelabhängig) unabhängige 1-Wire-Busse angeschlossen werden. Nicht für 1-Wire benutzte Pins können für parallel für Digital- und Analog- Ein/Ausgabe benutzt werden.
Selbstbau eines passiven Seriell-1-Wire Interface
Ein solcher Selbstbau kann nötig sein, wenn der FHEM-Server nicht über das Kernelmodul ch341.ko verfügt, mit dem die meisten käuflichen USB-Interfaces für den 1-Wire-Bus versehen sind. Wenn die an den 1-Wire-Bus angeschlossenen Komponenten keinen nennenswerten Energieverbrauch haben, genügt dafür das passive Interface. Zu beachten ist, dass dieses Interface keinen True Groundzur Verfügung stellt, d.h., der Ground-Pegel der 1-Wire-Komponenten unterscheidet sich substanziell vom GND-Pegel des Computers und darf nicht mit diesem verbunden werden.
Nachstehend ein Schaltplan, bestehend nur aus ein paar Schottky- und Zenerdioden, einem Widerstand und einem Kondensator, der mit Hilfe eines handelsüblichen USB-zu-Seriell-Konverter verwendet werden kann. Ggf. ist dabei darauf zu achten, dass dieser Konverter einen FTDI-Chip aufweist, da das zugehörige Linux-Kernelmodul auf den meisten FHEM-Systemen verfügbar ist.
Selbstbau eines aktiven Seriell- bzw. USB-1-Wire Interface
Ein solcher Selbstbau kann nötig sein, wenn der FHEM-Server nur über einen eingeschränkten Satz von Kernelmodulen verfügt, die nicht mit allen USB-zu-Seriell Wandlern zusammenarbeiten.. Großer Vorteil des aktiven Interfaces ist, dass es auch die Versorgungsspannung für den 1-Wire Bus zur Verfügung stellt und den echten Ground-Pegel durchleitet. Rechts ein Schaltplan, bei dem der Busmaster über einen entsprechenden Chip (Hersteller FTDI) direkt an den USB gekoppelt ist. Dabei wurde der USB-Teil durch ein fertig aufgebautes Modul realisiert