Fotokopirni aparat za interfonski ključ na pic12f675. Kako napraviti kopiju ključa interfona kod kuće

Interfon oprema u novim zgradama je sada preduslov, au starim kućama jeste. Ovo značajno povećava sigurnost stanara i pomaže u održavanju reda na ulazu. Ali šta ako se ključ interfona izgubi ili pokvari? Ranije su instalaterske kompanije bile monopolisti i podizale cijene rezervnih uređaja, sada postoje mnoge kompanije i radionice koje mogu prepisati ključ interfona za relativno mali iznos. Međutim, isti se koraci mogu izvesti nezavisno.

Postoje dva glavna načina za dobivanje novog ključa, ovisno o vrsti uređaja koji se koriste - ovo je unošenje koda u interfonski sistem.

memorija dodira

Memorija na dodir je nepromjenjivi identifikator koji uključuje memorijski uređaj, sat realnog vremena i punjivu bateriju. Čitanje ili pisanje informacija vrši se jednostavnim dodirivanjem tijela uređaja. Postoji mnogo varijanti Touch memorije. Razlikuju se ne samo, već i modeli po veličini memorije. Kompatibilnost sa instaliranom opremom mora se uzeti u obzir prilikom kupovine praznina za pisanje kodova.

Modeli sa memorijom na dodir

  1. Dallas model je najčešći model. Plastični držač može imati amblem ili natpis proizvođača interfonske opreme: Sean, Eltis, Vizit ili Dallas logo. Za kopiranje koda koriste se praznine TM2004.

    Neki Vizit interfon sistemi ne podržavaju rad sa prazninama TM2004, u ovom slučaju možete koristiti skuplji univerzalni model TM08.

  2. Metacom model. Domaće proizvodnje, potpuni su analog Dallas modela. Potpuno odgovara električnim karakteristikama. Moraju biti označeni i na plastičnom držaču i na metalnom kućištu samog uređaja - natpis Metakom ili MT. Radni komadi TM2004 i TM08 su pogodni.
  3. Model "Cyfral". Imaju sličan natpis na držaču. TM2004 praznine su pogodne za starije modele, TM7 za nove. Model otpornika "Digital". Zastarjela oprema, što je prilično rijetko. Takvi uređaji nemaju čip sa snimljenim kodom. Koriste otpornik s ocjenom koja odgovara određenom interfonu. Takav uređaj možete razlikovati po udubljenju koje se nalazi u središnjem dijelu kućišta. Kopiranje se vrši lemljenjem odgovarajućeg otpornika na bilo koji od praznina Touch memorije. Njegov kapacitet se određuje ommetrom pomoću radnog ključa.

Beskontaktni RFID

Nedavno su postali široko rasprostranjeni sistemi za beskontaktno čitanje, gdje se koriste RFID ključevi ili proximity kartice. Izvana liče na običan plastični privjesak za ključeve ili bankovnu karticu. Uređaji nemaju vlastito napajanje. Prijenos koda na prijemni uređaj vrši se nakon prijema radio signala, energije valnog zračenja i djeluje kao izvor energije. Stoga se aktiviranje događa samo na udaljenosti od 10-15 cm od brave. Inače, uređaj i djelovanje oznake se ne razlikuju od slične Touch memorije.

Sami ključevi izgledaju kao privjesci za ključeve koji nisu veći od novčića od pet rubalja i debljine 5 mm. Beskontaktne kartice imaju format sličan bankovnim i nešto su deblje - do 3 mm. Zamjenjivost kartica i privjesaka, unatoč istoj tehnologiji funkcioniranja, nije uvijek izvodljiva, jer je moguće narušavanje intenziteta emitiranog signala. Trenutno za kopiranje RFID ključeva raznih proizvođača Prikladan je gotovo svaki radni komad: HID Prox II, EM-Marin, Indala, itd.

Snimanje na radnom komadu

na medijima se vrši pomoću posebnih uređaja, programatora. Na primjer, Keymaster PRO 4 RF uređaj je univerzalni programator i za Touch memorijski standard i za beskontaktne RFID uređaje. Omogućava vam kopiranje ključeva u prazna polja:
  • RW/TM 2004;
  • CS 1, 3;
  • TM - 01, 07, 08;
  • RW 1990, 2007, 125RF.

Podržava standarde najčešćih proizvođača:

Za memoriju dodira:

  • Cyfral;
    • Dallas;
  • Za RFID:
    • HID ProxII;
    • EM Marin;
    • Indala i neki drugi.

Snimanje radnog komada se vrši jednim dodirom. Algoritam za kopiranje ključa je sljedeći:

  1. Čitaču se donosi ključ koji se mora kopirati.
  2. Uređaj samostalno određuje tip, proizvođača i model preporučenog obratka.
  3. Prazan se donosi čitaocu. I dugme za snimanje je pritisnuto.
  4. Ključ se piše.

Osim toga, uređaj može snimati bez izvornog ključa ako je poznat kod pohranjen u memoriji. Duplikator je povezan na PC preko USB port i ima vlastiti softver koji pohranjuje posljednjih 500 zapisa u memoriju i upravlja distribucijom Touch memorije i RFID zapisa. Ovo je izvan dosega većine običnih korisnika, ali postoje jednostavniji modeli s ograničenom funkcionalnošću:

  • Key Master 3;
  • KeyMaster 3 RF - podržava beskontaktne oznake;
  • TMD-5 RFID;
  • TM Pro.

Programiranje interfona

Unos informacija o novim ključevima može se izvršiti i direktno na interfonskoj opremi. Naravno, različiti proizvođači razvili su različite upute za programiranje interfona.

Unos informacija u memoriju interfona moguć je samo ako instalateri nisu promijenili tvornički pristupni kod na uređaju. Obično instalateri rijetko mijenjaju pristupnu lozinku, a većina zadanih lozinki je 1234.

Proizvođač Raimann

  • Za ulazak u podešavanja - pritisnu se dugme čitača;
  • Lozinka za prijavu od 9 do 4, nakon (sačekajte 10-15 sekundi) biranje od 1 do 6;
  • Simbol "P" se pojavljuje na monitoru;
  • Stavke menija od 2 do 8. Stavka odgovorna za uvođenje novih tastera br.2.

Proizvođač VIZIT

  • Unos postavki - na tastaturi se ukuca #99;
  • Nakon zvučnog signala, unosi se lozinka 1234, a zatim ponovo bip;
  • Programiranje i propisivanje novih ključeva - tačka broj 3;
  • Unosi se broj stana, pritisne se tipka i pritisne #;
  • Zatim pritisnite * da pređete u režim rada.

Ako na tastaturi nema dugmadi * i #, tada ih zamjenjuju tipke C i K, respektivno.

Proizvođač Eltis

  • Da biste ušli u meni, pritisnite dugme B i držite ga pritisnuto 7 sekundi;
  • Sistemska lozinka 1234;
  • Nakon što se meni učita na ekranu, izaberite stavku „Key master“;
  • Biramo broj stana i pritisnemo dugme B;
  • Nakon što se LF komanda pojavi na ekranu, potrebno je da prislonite taster na čitač;
  • Snimanje je završeno ako se na ekranu pojavi poruka DODAJ (ako ranije nije bilo ključeva za ovaj stan u memoriji) ili broj stana.

Svaki ključ interfona ima svoj broj - upravo taj broj služi kao identifikator ključa. Po broju ključa interfon odlučuje - svoj ili tuđi. Stoga je algoritam kopiranja sljedeći: prvo morate saznati broj dozvoljenog ključa, a zatim dodijeliti ovaj broj drugom ključu - klonu. Za interfon nije bitno da li je priložen originalni ključ ili njegova kopija. Nakon što provjeri broj sa svojom bazom podataka dozvoljenih brojeva, on će otvoriti vrata.

Interkom ključevi koje ćemo povezati na Arduino (ponekad se zovu iButton ili memorija dodira) se čitaju i pišu preko 1-wire interfejsa. Stoga je shema povezivanja vrlo jednostavna. Sve što nam treba je par žica i 2,2 kΩ pull-up otpornik. Dijagram povezivanja je prikazan na slici.

Sastavljeno kolo bi moglo izgledati otprilike ovako:


2 Pročitajte ID ključa iButtona koristeći Arduino

Za rad sa 1-wire interfejsom postoje gotove biblioteke za Arduino. Možete koristiti, na primjer, ovaj. Preuzmite arhivu i raspakujte je u folder /biblioteke/ koji se nalazi u Arduino IDE direktoriju. Sada možemo vrlo jednostavno raditi s ovim protokolom.

Otpremite ovu skicu na Arduino na standardni način:

Skica za čitanje iButton ključeva sa Arduinom(proširuje) #include OneWire iButton(10); // kreiramo 1-wire objekt na pin 10 void setup(void)( Serial.begin(9600); ) void loop(void) ( kašnjenje (1000); // kašnjenje 1 sec byte addr; // niz za pohranjivanje podataka ključa if (!iButton.search(addr)) ( // ako ključ nije priključen Serial.println("Nijedan ključ povezan..."); // prijavi ovaj povratak; // i odustani program ) Serial.print("Ključ: "); for(int i=0; i)

Ova skica prikazuje broj ključa za interfon koji je spojen na strujno kolo. Ovo je ono što nam sada treba: moramo saznati broj ključa čiji želimo napraviti kopiju. Povežimo Arduino sa računarom. Pokrenimo monitor serijskog porta: Alati Monitor serijskog porta(ili prečica na tastaturi Ctrl+Shift+M).

Sada spojimo ključ na kolo. Monitor porta će pokazati broj ključa. Zapamtimo ovaj broj.


A evo koja se razmjena odvija na jednožičnoj liniji kada se čita identifikator ključa (za više detalja, pogledajte dolje):

Slika, naravno, ne prikazuje sve detalje implementacije. Stoga na kraju članka prilažem vremenski dijagram u *.logicdata formatu, snimljen uz pomoć logičkog analizatora i programa Saleae Logic Analyzer i otvorio joj se. Program je besplatan i može se preuzeti sa službene web stranice Saleae. Da biste otvorili *.logicdata datoteku, potrebno je da pokrenete program, pritisnite Ctrl + O ili u meniju Opcije(nalazi se u gornjem desnom uglu) odaberite stavku otvoreno snimanje / podešavanje.

3 Zapis identifikatora ključa Dallas koristeći Arduino

Sada napišimo skicu za upisivanje podataka u memoriju iButton ključa.

Skica za pisanje iButton ključeva pomoću Arduina(proširuje) #include // uključuje biblioteku const int pin = 10; // deklariramo OneWire pin broj iButton(pin); // deklarišemo OneWire objekat na pin 10 // broj ključa koji želimo da zapišemo u iButton: bajt key_to_write = ( 0x01, 0xF6, 0x75, 0xD7, 0x0F, 0x00, 0x00, 0x9A ); void setup(void) ( Serial.begin(9600); pinMode(pin, OUTPUT); ) void loop(void) ( kašnjenje (1000); // kašnjenje od 1 sekunde iButton.reset(); // resetiranje uređaja 1-wire delay(50); iButton.write(0x33); // šalje "čitaj" komandni bajt podataka; // niz za pohranjivanje ključnih podataka iButton.read_bytes(data, 8); // čitanje podataka priloženog ključa, 8x8=64 bita if (OneWire::crc8(data, 7) != data) ( // provjeriti kontrolni zbroj priloženog ključa Serial. println("CRC greška!"); // ako CRC nije ispravan, prijavi ga vraćanje; // i prekinuti program ) if (podaci & podaci & podaci & podaci & podaci & podaci & podaci & podaci == 0xFF) ( return; // ako je ključ nije priključen na čitač, prekinuti program i pričekati dok ) Serial.print("Pokreni programiranje..."); // početak procesa upisivanja podataka u ključ za (int i = 0; i ) // Inicijalizacija upisivanja podataka na iButton ključ-tablet: void send_programming_impulse() ( digitalWrite(pin, HIGH); kašnjenje (60); digitalWrite(pin, LOW); kašnjenje(5); digitalWrite(pin, HIGH); kašnjenje (50); }

Ne zaboravite postaviti broj vašeg originalnog ključa u nizu key_to_write koje smo ranije naučili.

Prenesite ovu skicu na Arduino. Otvorite monitor serijskog porta (Ctrl+Shift+M). Povežimo ključ na šemu, koji će biti klon originalnog ključa. Monitor serijskog porta će prikazati odgovarajuću poruku o rezultatu programiranja.

Ako ova skica ne radi, pokušajte zamijeniti kod nakon toga Serial.print("Započni programiranje...") do kraja funkcije petlja() do sljedećeg:

Dodatna skica za pisanje iButton ključa koristeći Arduino(proširi) kašnjenje (200); iButton.skip(); iButton.reset(); iButton.write(0x33); // čitanje trenutnog broja ključa Serial.print("ID prije pisanja:"); za (bajt i=0; i<8; i++){ Serial.print(" "); Serial.print(iButton.read(), HEX); } Serial.print("\n"); iButton.skip(); iButton.reset(); iButton.write(0xD1); // команда разрешения записи digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(60); pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10); // выведем ключ, который собираемся записать: Serial.print("Writing iButton ID: "); for (byte i=0; i<8; i++) { Serial.print(key_to_write[i], HEX); Serial.print(" "); } Serial.print("\n"); iButton.skip(); iButton.reset(); iButton.write(0xD5); // команда записи for (byte i=0; i<8; i++) { writeByte(key_to_write[i]); Serial.print("*"); } Serial.print("\n"); iButton.reset(); iButton.write(0xD1); // команда выхода из режима записи digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(10); pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10); Serial.println("Success!"); delay(10000);

Evo funkcije writeByte() bit će kako slijedi:

int writeByte(bajt podataka) ( int data_bit; for(bit_podataka=0; bit_podataka<8; data_bit++) { if (data & 1) { digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(60); pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10); } else { digitalWrite(pin, LOW); pinMode(pin, OUTPUT); pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10); } data = data >> 1; ) return 0; )

Besmisleno je prikazivati ​​vremenski dijagram rada skice snimanja identifikatora ključa, jer dugačak je i neće stati na sliku. Međutim, datoteka *.logicdata za program logičkog analizatora je priložena na kraju članka.

Interfonski ključevi dolaze u različitim tipovima. Ovaj kod nije prikladan za sve ključeve, već samo za RW1990 ili RW1990.2. Programiranje ključeva drugih tipova može dovesti do kvara ključa!

Ako želite, možete ponovo napisati program za ključ drugog tipa. Da biste to učinili, koristite tehnički opis vašeg tipa ključa (datasheet) i promijenite skicu u skladu s opisom. Preuzmite podatkovni list za iButton ključeve može se priložiti uz članak.

Usput, neki moderni interfoni čitaju ne samo identifikator ključa, već i druge informacije zabilježene na originalnom ključu. Stoga, pravljenje klona kopiranjem samo broja neće raditi. Morate u potpunosti kopirati ključne podatke.

4 Opis jedne žice 1-Wire interfejs

Pogledajmo bliže jednožični interfejs. U organizaciji je sličan I2C interfejsu: mora sadržavati i glavni uređaj (master) koji inicira razmjenu, kao i jedan ili više slave uređaja (slave). Svi uređaji su povezani na jednu zajedničku magistralu. iButton uređaji su uvijek robovi. Glavni je obično mikrokontroler ili PC. Brzina prenosa podataka je 16,3 kbps. Sabirnica mirovanja je na logičkoj "1" (HIGH). Ovaj protokol pruža samo 5 vrsta signala:

  • resetiraj puls (glavni)
  • puls prisutnosti (slave)
  • upiši bit "0" (glavni)
  • upiši bit "1" (glavni)
  • bit za čitanje (master)
Sa izuzetkom impulsa prisutnosti, sve ostale generira master. Razmjena se uvijek odvija prema šemi: 1) Inicijalizacija 2) Komande za rad sa ROM 3) Komande za rad sa PROM 4) Prijenos podataka.

1) Inicijalizacija

Inicijalizacija se sastoji u tome da master postavlja uslov resetovanja RESET (spušta liniju na "0" na period od 480 μs ili više, a zatim ga otpušta, a zbog pull-up otpornika linija se podiže u stanje "1"), a slave najkasnije 60 µs nakon toga, mora potvrditi prisutnost tako što će također spustiti liniju na "0" za 60 ... 240 µs, a zatim je osloboditi:


2) Komande za rad sa ROM-om

Ako se nakon inicijalizacionog impulsa ne primi signal potvrde, master ponavlja prozivanje sabirnice. Ako je primljen signal potvrde, tada master razumije da postoji uređaj na sabirnici koji je spreman za razmjenu i šalje mu jednu od četiri 8-bitne ROM komande:

(*) Inače, postoji dosta porodica iButton uređaja, neki od njih su navedeni u tabeli ispod.

iButton porodični kodovi(odvija se)
Porodični kodiButton uređajiOpis
0x01DS1990A, DS1990R, DS2401, DS2411Jedinstveni serijski broj-ključ
0x02DS1991Višeključni, 1152-bitni sigurni EEPROM
0x04DS1994, DS24044 kb NV RAM + sat, tajmer i alarm
0x05DS2405Jedan adresabilni ključ
0x06DS19934 KB NV RAM
0x08DS19921 KB NV RAM
0x09DS1982, DS25021 kb PROM
0x0ADS199516 KB NV RAM
0x0BDS1985, DS250516 KB EEPROM
0x0CDS199664 KB NV RAM
0x0FDS1986, DS250664 KB EEPROM
0x10DS1920, DS1820, DS18S20, DS18B20temperaturni senzor
0x12DS2406, DS24071 kb EEPROM + dvokanalni adresabilni ključ
0x14DS1971, DS2430A256-bitni EEPROM i 64-bitni PROM
0x1ADS1963L4 KB NV RAM + brojač ciklusa pisanja
0x1CDS28E04-1004 KB EEPROM + dvokanalni adresabilni ključ
0x1DDS24234 KB NV RAM + eksterni brojač
0x1FDS2409Dvokanalni adresabilni ključ sa mogućnošću prelaska na povratnu magistralu
0x20DS2450Četvorokanalni ADC
0x21DS1921G, DS1921H, DS1921ZTermohronijski senzor sa funkcijom prikupljanja podataka
0x23DS1973, DS24334 kb EEPROM
0x24DS1904, DS2415Sat realnog vremena
0x26DS2438Senzor temperature, ADC
0x27DS2417Sat realnog vremena sa prekidom
0x29DS2408Dvosmjerni 8-bitni I/O port
0x2CDS2890Jednokanalni digitalni potenciometar
0x2DDS1972, DS24311 kb EEPROM
0x30DS2760Senzor temperature, senzor struje, ADC
0x37DS197732 KB EEPROM zaštićen lozinkom
0x3ADS2413Dvokanalni adresabilni prekidač
0x41DS1922L, DS1922T, DS1923, DS2422Termohroni i higrohroni senzori visoke rezolucije sa akvizicijom podataka
0x42DS28EA00Digitalni termometar sa programabilnom rezolucijom, mogućnošću serijske veze i programabilnim I/O portovima
0x43DS28EC2020 kb EEPROM

Podaci se prenose sekvencijalno, bit po bit. Prijenos svakog bita inicira master. Prilikom snimanja, vođa spušta liniju na nulu i drži je. Ako je vrijeme zadržavanja linije 1…15 µs, tada se upisuje bit "1". Ako je vrijeme zadržavanja 60 µs ili više, upisuje se bit "0".

Čitanje bitova također pokreće master. Na početku čitanja svakog bita, master povlači sabirnicu nisko. Ako slave želi poslati "0", on drži sabirnicu u LOW stanju 60 do 120 µs, a ako želi poslati "1", on drži sabirnicu u LOW stanju oko 15 µs. Nakon toga, slave otpušta liniju, a zbog pull-up otpornika se vraća u HIGH stanje.

Ovako, na primjer, izgleda vremenski dijagram komande pretraživanja ROM-a Search (0xF0). Naredbe za pisanje bitova su na dijagramu označene crvenom bojom. Obratite pažnju na redoslijed bitova kada prenosite preko 1-Wire: najznačajniji bit je na desnoj strani, a najmanji bit je lijevo.


3) Komande za rad sa PROM-om

Prije razmatranja komandi za rad sa iButton PROM-om, potrebno je reći nekoliko riječi o strukturi dongle memorije. Memorija je podijeljena u 4 jednaka dijela: tri su dizajnirana za pohranu tri jedinstvena ključa, a četvrti je za privremeno skladištenje podataka. Ovaj privremeni bafer služi kao neka vrsta nacrta gdje se pripremaju podaci za pisanje ključeva.


Za rad sa PROM-om postoji 6 naredbi:

ImeTimSvrha
Zapisivanje u privremeni međuspremnik (Write Scratchpad)0x96Koristi se za pisanje podataka u privremeni međuspremnik (scratchpad).
Čitanje iz privremenog međuspremnika (Read Scratchpad)0x69Koristi se za čitanje podataka iz privremenog međuspremnika.
Kopiraj iz privremenog međuspremnika (Copy Scratchpad)0x3CKoristi se za prijenos podataka pripremljenih u privremenom međuspremniku u odabrani ključ.
Upišite ključnu lozinku (Write Password)0x5AKoristi se za snimanje lozinke i jedinstvenog identifikatora odabranog ključa (jedan od tri).
Napišite ključ (Write SubKey)0x99Koristi se za direktno upisivanje podataka u odabrani ključ (zaobilazeći privremeni bafer).
Ključ za čitanje (Pročitaj podključ)0x66Koristi se za čitanje podataka odabranog ključa.

4) Prijenos podataka

Nastavlja se...

5 Moguće greške prilikom sastavljanja skice

1) Ako dođe do greške prilikom sastavljanja skice WConstants.h: Nema takve datoteke ili direktorija #include "WConstants.h", zatim, kao opcija, slijedi u datoteci OneWire.cpp zamijenite prvi blok nakon komentara sa sljedećim:

#include #include vanjski "C" (#include #include }

2) Ako dođe do greške tokom kompilacije klasa OneWire nema člana po imenu read_bytes, zatim pronađite i pokušajte koristiti drugu biblioteku za rad sa OneWire interfejsom.

Izgubili ste ključeve interfona i ne možete napraviti duplikat. Želite li posjetiti prijateljicu, ali nemate ključeve njenog ulaza. Ili samo treba da serete svom neprijatelju, ali ne možete ući u njegovu kuću, onda je ovaj članak za vas.

Nekoliko riječi o principu rada...
Postoji mišljenje da se u tabletima od interfona nalazi magnet, koji otvara vrata. Ne, nije. Tablet je ROM, sa ožičenim ključem u njemu. Ovaj ROM se zove - Touch Memory, marke DS1990A. DS1990A je marka interfonskih ključeva. Komunicira sa interfonom preko jednožične magistrale (jednožilni interfejs). Ovu magistralu je razvio Dallas i omogućava da dva uređaja komuniciraju preko samo jedne žice. Ako je uređaj pasivan (kao u našem slučaju), onda i on preko ove žice prenosi struju na njega. Također treba napomenuti da je potrebna i zajednička žica (tako da se krug zatvori), ali, u pravilu, svi uzemljenja uređaja povezanih na ovu sabirnicu su spojeni zajedno. Ključ sadrži kondenzator od 60 pikofarada, koji daje kratkoročno napajanje ključu u trenutku odgovora. Ali glavni uređaj mora stalno (barem jednom svakih 120 mikrosekundi) generirati jedan signal za punjenje ovog kondenzatora kako bi ROM u tabletu nastavio biti napajan.

Unutrašnjost tableta

Organizacija jednožične magistrale
Jednožična magistrala radi na sljedeći način. Postoji glavni uređaj i podređeni uređaj, u našem slučaju pasivni ključ. Glavne signale generiraju glavni signali, logički jedan i nulti signali. Slave uređaj može forsirati samo nulte signale (tj. samo povući sabirnicu na masu kroz tranzistor). Pojednostavljeni dijagram master i slave je prikazan na slikama.

Šema čarobnjaka

Ako pogledate krug, lako je vidjeti da po defaultu master uvijek ima +5 volti, a la logička jedinica. Za prijenos logičke nule, master zatvara sabirnicu na masu preko tranzistora, a za prijenos jedinice jednostavno je otvara. Ovo se radi kako bi se opskrbilo napajanje podređenom uređaju. Slave uređaj je napravljen slično, samo što ne generiše +5 volti. Može samo potopiti sabirnicu na uzemljenje, prenoseći na taj način logičku nulu. Logička jedinica se prenosi jednostavno "tišinom" uređaja.

Work Protocol
Odmah možete primijetiti da samo Master vlada paradom, sam ključ DS1990A ili drži zemlju (majstor sam postavlja sabirnicu na nulu), ili jednostavno šuti, u slučaju da želi prenijeti jedinicu, jednostavno šuti. Pogledajmo crtež.

Primjer čitanja ključa putem interfona.

Nakon generisanja PREFERENCE impulsa pomoću ključa, glavni uređaj čeka neko vrijeme i izdaje komandu za čitanje ROM-a, obično je to porodični kod, u našem slučaju 33H. Obratite pažnju na to kako se vrši prijenos nule i jedinice. U svakom slučaju, impuls "pada" na tlo, ali ako se jedinica prenese, onda se brzo obnavlja (oko 1 mikrosekundu), ako bi trebao biti nula, tada impuls "visi" na tlu neko vrijeme, zatim se ponovo vraća na jedan. Povratak na jedinstvo je neophodan kako bi pasivni uređaj stalno nadopunjavao energiju kondenzatora, a na njemu je napajanje. Nadalje, interfon izdržava neko vrijeme i počinje generirati impulse za primanje informacija, ukupno 64 impulsa (odnosno, prima 64 bita informacija). Ključ je samo da pravilno uskladite trajanja. Ako želi da prikaže nulu, onda drži autobus na nuli neko vrijeme, ako ne, onda jednostavno šuti. Interfon radi sve ostalo umjesto njega.

Sadržaj ključa DS1990A.
U interfonima, i jednostavno uređajima gdje se takvi uređaji koriste za otvaranje vrata, koristi se ključ standarda DS1990A. Ovaj uređaj je 8-bajtni ROM, sa informacijama snimljenim laserom.


Šema dump ključa.

Niži bajt sadrži šifru porodice. Za DS1990A uvijek će biti 01h. Sljedećih šest bajtova sadrži serijski broj ključa. Najintimnija stvar koja identifikuje ključ. Posljednji bajt se zove CRC, ovo je provjera parnosti koja osigurava autentičnost prenesenih podataka. Izračunava se iz prethodnih sedam bajtova. Inače, ovo nije jedini standard. Postoje ROM-ovi koji se mogu ponovo upisivati ​​na kojima se mogu prenositi informacije, a tu su i ključevi za šifriranje. Ali čitavu raznolikost Dallas tableta jednostavno je nerealno razmotriti u okviru jednog članka, o njima možete pročitati na disku.

Fizički uređaj ključa.
Vjerojatno je sve gore navedeno obeshrabrilo svaku želju da se bavite emulatorima ključeva, jer se ključ mora pročitati, a ovo je takvo krvarenje. Ispostavilo se da nije! Proizvođači iz Dalasa su se pobrinuli za nas i smjestili sve potrebne informacije direktno na ključ, štaviše, u heksadecimalnom sistemu! Na njemu je ugravirano i sasvim ga je moguće pročitati, a zatim kasnije ušiti u naš divni emulator.

Ključna njuška

Od svih ovih informacija nas zanima sljedeće:

CC = CRC je bajt za provjeru parnosti 7. bajta u firmveru
SSSSSSSSSSSS = dvanaest grickalica //nibbles = 1/2 bajta// serijskog broja, tj. sam ključ u heksadecimalnom kodu.
FF = šifra porodice, u našem slučaju to je 01h - nula bajta našeg ključa.

Ispostavilo se da možemo jednostavno napisati program, ukucati cijeli ključ u njega, vizualno prepisati dump iz pravog ključa olovkama, i dobićemo gotov emulator. Dovoljno je samo uzeti ključ u ruke neprijatelja i prepisati ono što je na njemu napisano. Što sam i uradio sa velikim uspehom. :)

emulator.
Tako smo došli do najukusnijeg - emulatora ključeva od interfona. Prvo sam na nekom sajtu pronašao gotov emulator, ušio ga u svoj AT89C51 i nije radio (što i nije iznenađujuće). Ali nije sportski koristiti tuđi firmver i hvatati tuđe, posebno ostavljene, greške u kodu. Stoga sam počeo da pravim sopstvene emulatore i da pišem svoje programe za njih. Generalno, pokušao sam da napravim emulator na 6 različitih mikrokontrolera, različitih arhitektura, koji pripadaju dvema porodicama AVR i i8051, a svi proizvodi Atmel. Nije išlo svima, a napisano je mnogo programa. U početku su se generalno postavljali Napoleonovi zadaci da se napravi univerzalni emulator sa mogućnošću odabira ključa, ali onda sam napustio ovu ideju zbog njenih hemoroida i besmislenosti, neka se pobrinu drugi ljudi koje zanima ovaj članak. Ali trošak emulatora, ne računajući utrošen rad, manji je od 70-80 re, možete čak i 30 re, ako to učinite, na primjer, na ATtiny12.

Princip rada emulatora.
Detaljno smo razmotrili princip rada interfona, pa prema tome neće biti veliki problem opisati algoritam programa emulatora DS1990A. Pažljivo gledamo dijagram i razmišljamo šta treba učiniti. I treba da uradite sledeće. Noga mikrokontrolera koja visi u vazduhu (dok se ne poveže sa zemljom, resetni impuls) kontroler će smatrati logičnom jedinicom. To znači da nakon napajanja kontrolera moramo pričekati dok nam noga ne padne na tlo, a la na nulu. Kako smo čuli nulu, radujemo se, čekamo malo i prebacimo port iz režima čitanja u režim pisanja. Zatim spuštamo sabirnicu na nulu i držimo je neko vrijeme - generišemo puls PRISUTNOSTI (pogledajte tablicu za trajanje impulsa). Zatim ponovo prebacimo sabirnicu u režim čitanja i čekamo šta će nam reći glavni - interfon. On će nam reći naredbu za čitanje, koja se sastoji od 8 bitova. Nećemo ga dekodirati, jer u 99,999% slučajeva, on će nam reći komandu da damo svoj dump, a la 33H, samo izbroji 8 impulsa i ne brini. Čekamo dalje. I počinje ono najteže i najzanimljivije - morate brzo pogledati šta nam interfon govori i brzo odgovoriti. Moramo malo po malo izdati serijski broj koji se sastoji od 8 bajtova, što sam pomenuo gore. Uradio sam to na sledeći način (nije bitno koji mikrokontroler, princip će svuda biti isti), učitao bajt u neki slobodni registar, pomerio ga udesno i gledao prenosni bit. Čim interfon spusti sabirnicu na nulu, onda ako imam zastavicu prijenosa postavljenu na jedan, onda jednostavno šutim na ovaj impuls i čekam generiranje sljedećeg pulsa čitanja bita od mastera. Ako imam nulu u zastavici za prijenos, onda nakon što interfon spusti sabirnicu na nulu, stavljam port mikrokontrolera u izlazni mod i prisilno držim sabirnicu na nuli neko vrijeme, a zatim je otpustim i vratim port kontrolera na način čitanja. Prema trajanju impulsa u zemlji, glavni uređaj razumije da li mu je prenesena jedinica ili nula. U principu, sve, tada bi interfon trebao radosno piskati i otvoriti vrata.

Vježbajte.

Tester board. Vidim natpis Dallas.

Nakon malo hemoroida i rata sa debagerom, ispao je kod. Evo primjera koda za slanje podataka na interkom na AT89C2051. (Općenito, AT89C2051 je popularan, ali zastarjeli kontroler. Jedan od prvih koje sam programirao. Minimalna periferija, memorija također ništa. Šiva se samo visokonaponskim programatorom. Iako postoji njegova nova zamjena AT89S2051 , vec moze da se flesuje u struju preko nekakvog AVR ISP-a, a mozda i preko AVRDUDE-a - nisam proveravao. Najzanimljivije je da je kompatibilan sa ATTiny2313 na nogama pa se kod moze portovati na Tinka. Napomena DI HALT)

D.I. STAJE:
Napisali smo ovaj pakleni kod sa Longom još 2006. godine u njegovom stanu. Požurili da štucaju zbog svojih tupi. Tada sam prvi put osjetio AVR. Sjedio sam na potpuno nepoznatom asembleru za proceduru čitanja iz EEPROM-a, dok je Long birao demo ploču za svoj budući emulator. Posebno se sećam svoje šale sa psom čuvarom kada je moj MK resetovan dok je pisao u EEPROM i rezao i2c memorijski čip sa ploče pomoću točkića za sečenje. Eh... ništa, vozim se za Moskvu, opet ćemo zapaliti!

;======================================== ; Izdavanje serijskog broja; u: R0- adresa na kojoj je serijski sa tipom tableta i CRC8; UPOTREBA: A,B,R0,R1,R2 ;====================================== = ================= DEMUL_SendSer: mov R2,#8 SS3: mov ACC,@R0 mov R1,#8 SS2: JB TouchFuck,$ ; nula 1->0 RRC A ;C:=A.0; pomak A; mov TouchFuck,C ;TouchFuck:=C; MOV B,#9 DJNZ B,$ ;Odgoda 20 us setb TouchFuck JNB TouchFuck,$ ;petlja do 0 DJNZ R1,SS2 inc R0 DJNZ R2,SS3 ret ;=============== =========================================

Rezultati.
Kao rezultat toga, dobio sam puno emulatora. Istina, neke od njih još uvijek treba podsjetiti. Iako nekoliko 100% radi. Primjere emulatora možete pogledati na slikama.



Fotografije emulatora

Najzanimljivija je CRC provjera koju obavlja interfon. Ovo će vam trebati ako, na primjer, želite staviti Dallas lock na svoje računalo. Primjer izračunavanja CRC-a na A89C2051 (iako će ovaj kod raditi na svim mikrokontrolerima iz porodice i8051.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 DO_CRC: PUSH ACC ;sačuvaj akumulator PUSH B ;sačuvaj B registar PUSH ACC ;sačuvaj bitove za pomeranje MOV B,#8 ;postavi pomak = 8 bita ; CRC_LOOP: XRL A,CRC ;izračunati CRC RRC A ;premjestiti ga u prijenos MOV A,CRC ;dobiti posljednju CRC vrijednost JNC NULA ;preskočiti ako je podaci = 0 XRL A,#18H ;ažurirati CRC vrijednost ; NULA: RRC A ;pozicionirajte novi CRC MOV CRC,A ;pohranite novi CRC POP ACC ;dobite preostale bitove RR A ;pozicionirajte sljedeći bit PUSH ACC ;sačuvajte preostale bitove DJNZ B,CRC_LOOP ;ponovite za osam bitova POP ACC ;očistite stek POP B ;vratite B registar POP ACC ;vratite akumulator RET

DO_CRC: PUSH ACC ;sačuvaj akumulator PUSH B ;sačuvaj B registar PUSH ACC ;sačuvaj bitove za pomeranje MOV B,#8 ;postavi pomak = 8 bita ; CRC_LOOP: XRL A,CRC ;izračunati CRC RRC A ;premjestiti ga u prijenos MOV A,CRC ;dobiti posljednju CRC vrijednost JNC NULA ;preskočiti ako je podaci = 0 XRL A,#18H ;ažurirati CRC vrijednost ; NULA: RRC A ;pozicionirajte novi CRC MOV CRC,A ;pohranite novi CRC POP ACC ;dobite preostale bitove RR A ;pozicionirajte sljedeći bit PUSH ACC ;sačuvajte preostale bitove DJNZ B,CRC_LOOP ;ponovite za osam bitova POP ACC ;očistite stek POP B ;vratite B registar POP ACC ;vratite akumulator RET

Zaključak.
Kao što vidite, ključevi interfona nisu tako jednostavni kao što se čine. Međutim, njihovo emuliranje dostupno je svakome tko posjeduje programiranje i lemilicu.

D.I. STAJE:
Slučajevi prošlih dana, legende antike duboke... Dugo - WDR! (to će biti jasno samo iniciranim;)))))

Unaprijed uređena verzija članka iz časopisa Hacker

Dobar dan! Nekako sam se umorio od plaćanja 150 rubalja za kopiju ključa interfona i odlučio sam sastaviti jednostavan, proračunski iButton duplikator na Arduinu. Cijene takvih gotovih uređaja "grizu", iako je njihova funkcionalnost šira, kopiraju gotovo sve, uključujući i bežične ključeve. Dovoljna mi je jednostavna kopija iButton ključa a la "dugme". Zanimljivo? Molimo pod "cut"!

Pa počnimo! Za početak, "tehnički zadatak", šta bi ovaj uređaj trebao moći:
1) Pročitajte sadržaj ključa, zanimljivo je šta je tu ušiveno.
2) Kopirajte ključeve, ma koliko čudno zvučalo :)
3) Bljesak "univerzalni" ključ. Pod riječju "univerzalni" podrazumijevamo bilo koji od naših vlastitih ključeva, koji će biti snimljeni prema zadanim postavkama.

UPD. Veoma važno! Ako je prvi bajt, porodični kod 00 , na primjer 00 :12:34:56 AB:CD:EF: aa, tada će nakon firmvera ključ "umrijeti", neće ga čitati ovaj programer, a možda i drugi. Pronađen iskustvom, zahvaljujući prijatelju 16 :AB:CD:EF:E0 sa prirodno pogrešnim kontrolnim zbrojem E0. Pošto je kontrolni zbroj netačan, interfon ignoriše ovu sekvencu prilikom čitanja. Ovaj interfon je uništio sve ključeve koji se mogu ponovo upisivati, a ja sam shvatio šta se dešava i zašto se podaci u ključevima „sama po sebi“ menjaju. Kao rezultat toga, nije bilo moguće napraviti duplikat za ovaj interfon, morao sam otići u servisnu organizaciju i naručiti ključ za 100 rubalja. :)


Kao rezultat toga, dobijamo stvar korisnu u domaćinstvu za smiješan novac, prodaju se "prazne" za snimanje, iako možemo pronaći offline za 30 rubalja po komadu, za kopirke na tržištu za 100 - 150 rubalja :).
UPD.Čitamo o tome koje tipove ključeva se može napisati s ovim duplikatorom. Hvala na pomoći druže.
UPD. Ako ključ nije napisan, slijedite druga. Planiram kupiti +197 Dodaj u favorite Svidjela mi se recenzija +95 +184

Svima je poznato da se svaki mehanizam vremenom pokvari i da se mora mijenjati, posebno kod elemenata koji su podložni čestim fizičkim naporima.

Elektronika je u tom smislu pouzdanija, a ako je dobro električno zaštićena, može trajati dosta dugo.

Gubitak ključeva iz mehaničke brave često je povezan sa zamjenom potonjeg. Ako izgubite elektronski čip, dovoljno je napraviti njegovu kopiju koristeći.

Kako je duplikator uređen i radi

Koji su modeli i tipovi duplikatora ključeva

Svi duplikatori interfonskih ključeva dostupni u prirodi mogu se klasificirati u tri različita tipa:

  1. Programatori za treptanje beskontaktnih ključeva tmd;
  2. Duplikatori za izradu kopija ključeva kontaktnog interfona;
  3. Univerzalni tip duplikatora koji može reflaširati bilo koju vrstu interfonskih čipova.

Svaki od ovih tipova uređaja ima svoje modifikacije.

Beskontaktni duplikatori

Među njima su tri modifikacije uređaja.

Prva modifikacija uključuje programere koji prave RFID standard EM-Marin, HID i Indala (tmd duplikatori), druga modifikacija podržava Mifare standard, treća modifikacija duplikatora radi sa ključevima TECH-COM ili TKRF standarda.

Uređaji tipa kontakta

Uređaji su predstavljeni u dvije vrste. Prvi tip je dizajniran za rad sa tipkama tipa kontakta Dallas, drugi tip programera duplira tipske tipke ili.

Dallas čip ima heksadecimalni kod, a digitalni je bljeskao kodom tipa protokola, koji je velike veličine.

Univerzalni uređaji za programiranje ključeva

Univerzalni duplikatori ključeva za interfon, osim što mogu kreirati kopiju bilo kojeg digitalnog čipa, imaju niz dodatnih funkcija:

  • Mogućnost ažuriranja;
  • Prisutnost memorijske baze;
  • Generisanje koda.

Uzimajući u obzir prvu funkciju, mora se reći da kada budu puštene nove modifikacije ključeva sa originalnim kodiranjem, baza uređaja za programiranje se može flešovati za ove čipove i moći će da ih kopira.

Druga funkcija omogućava kloniranje ključeva bez originala. Odnosno, nakon prvog treptanja, kod čipa se jednostavno upisuje u bazu uređaja i reprodukuje po potrebi.

Treća funkcija vam omogućava da flash ključeve s originalnim kodovima, na primjer, za zaposlenike kompanije, od kojih svaki mora imati svoj osobni pristupni kod za bravu. Tada možete pratiti broj posjeta određenom objektu od strane određene osobe.

Šta vam je potrebno da napravite umnožavač ključa za interfon

Prilikom izrade ključnog fotokopirnog uređaja vlastitim rukama, kao osnovu možete uzeti Arduino modul.

Baza elemenata koja će biti potrebna za proizvodnju uređaja:

  1. Mikrokontroler tipa “Arduino Nano” je glavni “mozak” uređaja, gdje se obrađuju informacije i snimaju podaci;
  2. RFID RC522 ploča, koja djeluje kao modul koji čita kodove i preusmjerava informacije na mikrokontroler;
  3. Piezoelektrični tip zujalica;
  4. Dva LED elementa za monitor;
  5. Dva otpornika od 330 oma;
  6. Blok tastature tip 4X4;
  7. Adapter za ekran sa tečnim kristalima tipa I2C (LCM1602), koji deluje kao LCD pretvarač u format kompatibilan sa Arduino;
  8. Displej sa tečnim kristalima LCD16X2BL.

Ekran sa tečnim kristalima je povezan sa kontakt grupom adaptera pomoću šesnaest pinova. Na oba modula kontakti su numerisani.

Zatim se žice za napajanje spajaju na adapter zaslona iz rf ID RC522 modula: crvene - na VCC (+) kontakt i crne - na GND (zajednički) kontakt. Kontrolne žice su zalemljene na SDA i SCL pinove. LED elementi se ugrađuju u tandemu sa otpornicima za ograničavanje struje.

Princip treperenja tastera

Interfonski čipovi, koji su u obliku tableta i čija se površina mora nanijeti na interfonski kontakt, ne sadrže magnetne elemente unutra.

Kolo uređaja je bazirano na korištenju nepromjenjive memorije (drugim riječima, ROM-a).

U takvoj memoriji upisuje se niz znakova digitalnog jedinstvenog koda.

Princip ponovnog pisanja takvih ključeva je da tmd duplikator čita kod i ponovo ga kreira na platformi čistog čipa.

RFID sistem je izgrađen na prenosu koda ne kontaktom, već određenom radio frekvencijom.

Ključno kolo sadrži oscilatorno kolo. Ako je pobuđen, podaci iz memorije će se prenijeti do čitača kroz prostor.

Takav uzbudljiv signal bit će signal koji dolazi iz antene interfona ili duplikatora. Inače, princip kako kopirati kod u memoriju, njegova daljnja reprodukcija se ne razlikuje od principa rada kontaktnog uređaja.

Jedina razlika je u tome što programeri mogu pohraniti i reproducirati samo određenu vrstu digitalnog signala. Izuzetak su univerzalni uređaji koji se mogu programirati za rad s bilo kojom vrstom digitalnih podataka.

Zaključak

Izrada čipova za interfon vlastitim rukama može biti ne samo rješenje za problem gubitka ličnih ključeva, već i prilika da na tome izgradite svoj posao.

Za početak, možete napraviti jednostavan aparat za kopiranje ključeva za interfon za najpopularnije "prazne".

Najvažnije je da takva zarada ne zahtijeva velika početna ulaganja, a usluge će uvijek biti tražene, posebno u velikim gradovima.

Video: Umnožavač ključa za interfon koji uradi sam

mob_info