cwbe coordinatez:
101
63533
766908
2016246
6501894
7045828

ABSOLUT
KYBERIA
permissions
you: r,
system: public
net: yes

neurons

stats|by_visit|by_K
source
tiamat
commanders
polls

total descendants::0
total children::0
6 ❤️


show[ 2 | 3] flat


ibutton - bezne rozsirene elektronicke ID pouzivane na odomykanie vchodovych dveri na barakoch a ktovie na co vsetko

Mam jeden ibutton na klucoch a denno-denne ho pouzivam tak ma celkom zaujimalo ako sa ta technologia pouziva.

Vyraba ho firma Maxim, existuje viac variant ibuttonov, niektore obsahuju iba 64 bitove ID, a tiez su take co obsahuju nejakych par kilobitov pamate, niektore sa daju prepisovat a na niektore sa iba zapisuje.

Zoznam sa da najst napr. tu aj s popisom komunikacie: app74.pdf

Obal ibuttonu je plochy okruhly a ocelovy a pripomina male ploche baterky. Ma na sebe iba 2 kontaktne plochy:
- ta co zabera chrbat a bok je GND
- ta mensia spredu sluzi zaroven na napajanie a data

Takto vyzera moj provizorne vyrobeny konektor, boli pouzite 2 kusy M3 skrutiek a maly kus preskrabanej DPS:
ibuttonholder.jpg

'Paraziticke' napajanie je zaujimave, funguje to vdaka tomu, ze datova zbernica na ktoru sa ibutton pripoji ma 4.7kOhm pullup rezisor, takze je na zbernici pritomne stabilne napajacie napatie, ak sa prave nekomunikuje.

Komunikacia: je pouzity "1 wire bus",
principalne ked je zbernica idle, je na nej pritomne napajacie napatie ... HIGH
komunikaciu zahaji master stahovanim zbernice na 0V... LOW

Elektricke rozhranie s MCU:
DATA pin ibuttonu je zapojeny na 5V cez 4k7 pullup rezistor. (Mozno pojde aj 3.3V)
Na tahanie DAT dolu sa da pouzit NPN tranzistor s bazou pripojenou k vystupnemu digit. pinu na arduine cez rezistor 1k. Potom, vysielanie 1 a 0 je invertovane.
Tu je ina podobna schema s FET tranzistorom z [2]:
ibuttonreadcircuit.jpg


Cely podstatny postup pouzivania zbernice je zhrnuty v tejto tabulke:
onewirecmds.jpg
Tabulka je z pohladu mastera, v casovani vysielania nul alebo jednotiek je uz zahrnuta pauza medzi vysielanymi bitmi.

Datasheet od konkretneho ibuttonu je tu

So samotnym ibuttonom sa pracuje takto:
1. resetuje sa zbernica
2. v istom okamihu po resete sa da zachytit presence impulz od ibuttonu
3. master odvysiela 8 bitov znaciacich prikaz read ROM (33h alebo 0Fh) v LSB poradi napr 33 hexa bude 1, 1, 0, 0, 1, 1, 0, 0
4. potom master 64 krat precita bit z ibuttonu
5. skontroluje sa ci sedi CRC a ak nie moze sa citanie opakovat

v 64 bitoch sa nachadza (v poradi od prveho po posledny prijaty byte):
8 bitov pre family code (pride v bitovom poradi LSB)
48 bitov (iba) je ID kluca (pride v bitovom poradi LSB a navyse prvy byte je LSB byte, takze na puzdre su napisane bytey v opacnom poradi)
8 bitov je CRC (pride v bitovom poradi LSB)

ibuttoncode.jpg
Cely kod je laserom vypaleny na obale kluca ale ten sa nosenim doskriabe tak ze to chvilu trva z neho precitat. Vlavo hore na obrazku 89 hexa znaci checksum, vpravo hore 01 hexa je family code a 00 00 00 FB C5 2B je samotne ID kluca.

Postup vypoctu CRC je popisany v datasheete.

Pointa: Precitanie dat z ibuttonu je praca na jeden az 2 nudne vecery, ak sa k tomu prida ten treti az stvrty moze vzniknut projekt elektronickeho dveroveho zamku alebo niecoho trochu ineho... klonovaheho kluca. Tiez sa da dat dokopy siet digitalnych teplomerov (tie este nemam) ktora si vystaci s dvojlinkou.

Bezpecnost ibuttonov: ibutton sa nelisi od obycajneho kluca tym, ze sa da ukradnut, stratit alebo kopirovat Len netreba zabudat ze jeho skopirovanie/emulacia je po technickej stranke trivialne jednoducha, aj ked sa to neda zariadit na kazdom rohu alebo v Tescu ako s klasickym mechanickym klucom... hotove riesenia sa daju kupit, napr. z ciny.
Tu je nejake info o utoku na platobny system Bostonskeho metra

Co treba na (aspon) precitanie ibuttonu:
arduino, seriovu komunikaciu s PC,
ibutton konektor, 4k7 rezistor, 1k rezistor a tranzistor.

rozne odkazy:
[1] datasheet k ibuttonu DS1990R
[2] ako komunikovat
[3] komunikacia s pouzitim PIC uc
[4] ake existuju 1 wire zariadenia