Hier gibt es die Möglichkeit, den CRC8 Code für eigene 1-Wire-Slaves zu berechnen. Dies ist das letzte Byte in der 8 Byte (64 Bit) langen ID mit der jedes 1-Wire Gerät eindeutig adressiert wird. Bei den Original-Chips von MAXIM ist die Eindeutigkeit von Haus aus gegeben. Bei eigenen 1-Wire-Geräten muss selbst auf eindeutige IDs geachtet werden. Das erste Byte gibt immer die Gerätefamilie an, bei dem Thermometer DS18B20 ist es 28h und bei dem Zählerbaustein DS2423 1Dh.

Zur Berechnung muss der Code in der Form

{0x28,0xA2,0xD9,0x84,0x00,0x00,0x01,0x00}

eingegeben werden. Das letzte Byte wird dann einfach überschrieben.

 

Mehr Komfort (Umrechnung in 64-Bit-Hex, Erzeugen neuer IDs) bietet der neue CRC-Rechner.

PHP-Quellcode zur Berechnung

// $ra enthaelt mind. die ersten 7 Bytes der ID
     $lscrc=0x0;
     for ($i=0;$i<7;$i++) { 
         for ($bit=1;$bit<256;$bit=$bit*2) {
             if (($ra[$i]&$bit)==$bit) $lactbit=1; else $lactbit=0;
             if (($lscrc&1)!=$lactbit) $lscrc=($lscrc>>1)^0x8c; else $lscrc=($lscrc>>1);
          }
     }
     $ra[7]=$lscrc;

Kommentare

Noch keine Kommentare – schreib den ersten!

Kommentar schreiben
Sicherheitscode

Kommentare erscheinen nach Freigabe. Mit dem Absenden werden Name, Text und IP-Adresse gespeichert (siehe Datenschutz).

Zum Seitenanfang