«

»

May 29

Protokol Komunikasi 1-Wire

1-Wire adalah merk dagang dari Dallas Semiconductor (sekarang Maxim), untuk protokol komunikasi serial menggunakan satu jalur data dan satu ground. Sebuah 1-Wire Master (sebuah mikrokontroler) meng-inisiasi dan mengontrol komunikasi dengan satu atau lebih divais 1-Wire Slave (biasanya sensor).

Setiap divais 1-Wire Slave memiliki sebuah 64-bit identifier (diprogram oleh pabrik), yang menyediakan alamat divais pada bus 1-Wire. Dimulai dari LSB, byte pertama 8-bit kode keluarga yang meng-identifikasi tipe divais. Enam byte berikutnya menyimpan 48-bit individual address. Byte terakhir, MSB, berisi sebuah CRC – cyclic redundancy check, dengan sebuah nilai berdasarkan data yang terdapat pada tujuh byte sebelumnya. Dengan demikian, master mengetahui bila sebuah alamat dibaca tanpa kesalahan.

Protokol 1-Wire menggunakan level logika CMOS/TTL konvensional (maksimum 0.8V untuk logika NOL dan minimum 2.2V untuk logika SATU) dengan jangkauan operasi tegangan catu 2.8V sampai 6V.

Berikut adalah contoh komunikasi 1-Wire antara mikrokontroler PIC dengan sensor temperatur DS1820 :

Ow_Reset(&PORTE, 2);
Ow_Write(&PORTE, 2, 0xCC);
Ow_Write(&PORTE, 2, 0x44);
Delay_us(120);
Ow_Reset(&PORTE, 2);
Ow_Write(&PORTE, 2, 0xCC);
Ow_Write(&PORTE, 2, 0xBE);

temp =  Ow_Read(&PORTE, 2);
temp = ( Ow_Read(&PORTE, 2) << 8 ) + temp;