Электронный замок с ключом iButton (DS1990A)
Вашему вниманию представлена схема электронного замка с ключом таблеткой iButton модели DS1990A (Touch Memory). Ключ представляет собой устройство, которое имеет в своей памяти уникальный серийный номер. Уникальность состоит в том, что серийный номер состоит из 48 бит и как следствие этому, количество возможных его вариантов составляет 281474976710656.
Замок собран на микроконтроллере фирмы Microchip PIC16F627A(628A, 648A). После подачи питания, микроконтроллер посылает импульс сброса длительностью 500 мкс и через 70 мкс проверяет ответ от DS1990A. Если ответа нет, то микроконтроллер ждёт еще примерно 80 мс и снова передаёт импульс сброса. По такому алгоритму проверяется подключение ключа к замку. Если ответ есть, значит DS1990A подключен к замку. Затем посылается команда «читать ROM» (33h), после чего микроконтроллер переходит на приём и записывает в ОЗУ переданный таблеткой DS1990A номер, где сравнивает его с записанным в EEPROM. Если он совпадает с одним из них, то выдается звуковой сигнал, и устанавливается высокий уровень на выводе RA1 в течение 1.5 с.
Запись номера ключа в EEPROM: приложить ключ к замку и после звукового сигнала нажать кнопку B1. Кнопку располагают, естественно, в недоступном для посторонних людей месте. Для очистки всех номеров из EEPROM удерживать нажатой кнопку B1 в течение 5с. После стирания EEPROM замок издает звуковой сигнал.
Общее количество серийных номеров в памяти – не более 21.
Чтобы микроконтроллер не пострадал из-за статического разряда, в схеме применен стабилитрон VD1 на 5В. В схеме замка можно применить любой из микроконтроллеров PIC16F627A, PIC16F628A, PIC16F648A. Для микроконтроллера PIC12F629/675 необходимо применить другую программу.
Схема+прошивка PIC16F628A, PIC12F629 (1.1 Мб, скачено - 2,443 )
Примечание:
при программировании следует выставить следующие биты:
Тип генератора IntRC,
WDT включен,
PWRT включен,
MCLR выключен.
Кто-нибудь может поправить прошивку и увеличить длительность сигнала на выводе RA1 до 20-30сек?
Очень нужно, а в программировании не силен.
@Александр
Я могу.