1-Wire
1-Wire ist ein Bus-System, entwickelt von Dallas Semiconductor, bei dem die gesamte Kommunikation über ein einzelnes Kabel abgewickelt wird.
Ein Netzwerk von 1-Wire Geräten wird MicroLan genannt. Jedes MicroLan besteht aus einem 1-Wire Master und einem oder mehreren Slaves. Der Master koordiniert die gesamte Kommunikation über den Bus.
Elektronik
Das Datenkabel wird mittels eines Pull-Up Widerstandes (zB. 4.7k Ohm) auf 3 oder 5 Volt gezogen, Signale werden übertragen indem die Leitung, zB. mittels eines Transistors, auf Masse gezogen wird. Dallas Semiconductor hat mit einfachen Twisted-Pair Kabeln Bus-Längen von bis zu 300 Metern erreicht.
Protokoll
Jeder Slave erhält eine, am Bus eindeutige, 64-bit lange Adresse. Diese werden benutzt um einzelne Slaves anzusprechen. Außerdem ist es möglich Broadcast-Nachrichten zu schicken. In einem MicroLan kommuniziert stets der Master mit einem oder mehreren Slaves, außerdem geht sämtliche Kommunikation vom Master aus.
Um eine Übertragung zu beginnen zieht der Master den Bus für mindestens 480us auf 0 („reset pulse“), danach zieht jeder Slave den Bus für mindestens 60us auf 0 um anzuzeigen das mindestens ein Slave am Bus angeschlossen ist. Um eine 1 zu senden zieht der Master den Bus für 1 bis 15us auf 0, um eine 0 zu senden zieht der Master den Bus für 60us auf 0. Wenn der Master Daten empfangen möchte, zieht er den Bus für jedes Bit für 1-15us auf 0. Wenn der Slave eine 1 senden möchte, tut er nichts. Ansonsten zieht er den Bus danach für 60us auf 0.
Um herauszufinden, welche Adressen am Bus angeschlossen sind sendet der Master einen sogenannten Enumeration-Command. Danach sendet er eine Adresse, wobei er nach jedem Bit darauf wartet ob ein Slave eine 0 sendet. Damit wird angezeigt das die bisher gesendeten Adress-Bits ein Präfix der Adresse des Slaves sind. So kann der Master nach wenig gesendeten Bits bereits ungültige Adressräume erkennen, wodurch das finden gültiger Adressen beschleunigt wird.