Электронный замок и ключи на attiny2313

Контроллер доступа на электронных ключах i-Button (DS1990)

Устройство собрано на микроконтроллере ATtiny2313, к которому подключена внешняя энергонезависимая память EEPROM – 24C16. Доступны исходники, проверена работа “на железе”. Контроллер доступа работает с ключами типа DS1990, поддерживает до 500 шт.

Программирование контроллера доступа через мастер ключ или через джамперы на плате.
Контроллер доступа кроме кнопки открытия замка имеет концевик, отслеживающий время незакрытой двери.

Время сработки сигнала программируется перемычкой JP2 (от 10 сек до 127сек).

Контроллер на электронных ключах DS1990A

Поддерживает до 500 ключей. Устройство выполнено на микроконтроллере AVR: ATtiny2313.

Принципиальная схема считывателя ключей i-Button DS1990 (кликните по схеме для увеличения):

Инструкция по программированию

Рабочий режим – при подачи 12В на контроллер светодиод мигает 1Гц.Режим программирования – светодиод мигает 2 Гц.При нажатии на кнопку “OPEN” серия коротких звуковых сигналов на время открытия замка.

Концевой датчик двери (NC) отслеживает несанкционированный проход без ключа.

Контроллер подаёт звуковые сигналы если: 1 – После открытия двери, дверь осталась открытой больше запрограммированного времени прохода.2 – Открытие двери без запрограммированного ключа или кнопкой “OPEN” , контроллер начинает издавать короткие двойные звуковые сигналы до момента закрытия двери.

Внимание!!! Запрограммировать время ожидания закрытой двери МОЖНО ТОЛЬКО ПЕРЕМЫЧКОЙ JP2.

1 короткий сигнал            – ключ записан в память контроллера.2 коротких сигнала            – ключ уже записан в памяти контроллера.5 коротких сигнала            – выход из режима программирования.1 длинный сигнал            – память ключей стерта из контроллера.короткие сигналы 20сек. – память ключей заполнена.1 – Выключить питание контроллера.2 – Нажать кнопку “OPEN”3 – Удерживая кнопку подключить питание к контроллеру, через 5 сек. контроллер “ПИСКНЕТ”, светодиод будет мигать с частотой 2 Гц. 4 – Отпустить кнопку.5 – Поднесите ключ к считывателю, раздастся одиночный звуковой сигнал,

Мастер ключ ЗАПИСАН,  при этом запишется время открытия замка 1 сек.

6 – Удерживая ключ на  считывателе – считаем звуковые сигналы, кол-во определяет требуемое время отрывания замка, приращение 1 сек. Но не более 32сек.7 – Отключаем питание контроллера или выдерживаем паузу 20 сек.1 – Рабочий режим.2 – Нажимаем кнопку “OPEN” и удерживая подносим  к считывателю МАСТЕР ключ и держим, через 10 сек. раздастся продолжительный звуковой сигнал – память ключей стёрта.3 – Отпускаем кнопку убираем ключ. 1 – Подносим  Мастер-ключ к считывателю удерживаем 5 сек, раздастся 2 коротких звуковых сигнала, светодиод будет мигать с частотой 2 Гц.2 – Поднеся поочерёдно к считывателю  дополнительные ключи – раздастся короткий звуковой сигнал, – ключ ЗАПИСАН, если раздастся 2 коротких звуковых сигнала – ПОПЫТКА ЗАПИСАТЬ ДУБЛИКАТ КЛЮЧА.3 – Записываем требуемое кол-во (до 500) ключей. Пауза между записываемыми ключами не более 20 сек.4 – Отключаем питание контроллера или выдерживаем паузу 20 сек.JP1 – Время работы РЕЛЕ, приращение 1 сек.JP2 – Время ожидания закрытия двери , приращение 1 сек.JP3 – Добавление новых ключей (максимум –  500).

JP4 – Стирание всех ключей из памяти контроллера.

Джампер выполняют свою функцию при постоянном замыкании на время использования.

Печатная плата:

Внешний вид собранного устройства:

«Время работы РЕЛЕ» – JP1  на всём протяжении замыкании джампера мигает красный светодиод с частотой 1 Гц. и звучит короткий звуковой сигнал бипера. С каждым звуковым и световым сигналом (зелёный светодиод) к переменной 'Время работы РЕЛЕ' прибавляется по 1 секунде. Всего может быть от 1 сек до 32. Отсчитав нужное количество секунд снимите перемычку.

«Время ожидания закрытой двери» – JP2  на всём протяжении замыкании джампера мигает красный светодиод с частотой 1 гц. и звучит короткий звуковой сигнал Бипера.  С каждым звуковым и световым зелёным сигналом переменная 'Время ожидания закрытой двери' прибавляется по 1 секунде, всего может быть от 5 сек до 126. Отсчитав нужное количество секунд снимите джампер.

«Добавление новых ключей» – JP3 на всём протяжении замыкания джампера красный светодиод мигает с частотой 2 Гц. Поднося ключ к считывателю при удачном считывании прозвучит короткий звуковой сигнал бипера и светодиод мигнёт зелёным цветом — ключ записан.

Если ключ  уже записан в памяти, то при попытки записать его снова раздаётся 2 коротких сигнала  бипера. При попытки записать в память больше 500 ключей постоянно мигает красный светодиод с частотой 2 Гц. и периодически звучит короткий звуковой сигнал бипера.

Снимите джампер.

«Стирание всех ключей из памяти контроллера» – JP4 через 3 сек после замыкания издаётся 5 коротких сигнала бипера, пауза, затем непрерывно звучит бипер на время стирания (примерно 10сек) — память ключей стёрта. Уберите джампер.

Проверить контроллер доступа на электронных таблетках i-Button DS1990 удалось на 35 ключах, больше нету. Ток потребления контроллера доступа на микроконтроллере ATtiny2313 около 50мА.

На выходе сильноточное реле с контактной группой на 10А.

Источник: http://radioded.ru/skhema-na-mikrokontrollere/kontroller-dostupa-na-elektronnyh-kliuchah-i-button-ds1990

Электронный телеграфный ключ на Attiny 2313

Источник: http://www.qrz.ru/schemes/contribute/constr/cwkey2/

Радиосхемы. – Электронный ключ из неисправной USB флешки

материалы в категории

Ну что такое электронный ключ, пожалуй, объяснять не нужно- мы их встречаем очень часто. Еще лет 10-15 назад электронные замки с кодовыми ключами можно было увидеть лишь на сейфах или в закрытых объектах, сейчас-же двери с электронным ключом устанавливаются даже на подъездах в обыкновенных жилых многоэтажек.

Самый, пожалуй, распространенный электронный ключ– это ключ от фирмы Dallas (на рисунке).

Имеют однопроводной интерфейс управления и отличаются высокой механической прочностью. Для передачи данных нужно соединить между собой сигнальные провода приемника и передатчика. Далее программа приемника сканирует код и выдает результат на исполняющее устройство в виде логических “0” или “1”

Здесь мы рассмотрим как можно изготовить электронный ключ самостоятельно.

Для этого нам понадобятся: неисправная USB-флешка (собственно сам корпус с разьемом) и пара микроконтроллеров ATtiny2313.

Читайте также:  Стабилизатор напряжения на микросхеме кр142ен19 с защитой

Приемником и передатчиком служат контроллеры ATtiny2313. Через разъем USB поступают как данные, так и питание (две линии питания и две линии данных).

Микроконтроллер в smd исполнении легко умещается в корпус от USB Flash памяти. В обвязке микросхемы используются только индикаторные светодиоды и ограничивающие резисторы, подключенные к выводам PB0 и PB1.

Выводы PD0 и PD1 подключены напрямую к разъему USB.

Скорость передачи данных по каналу UART составляет 2400 Бод/с, при частоте контроллеров 4 МГц. Для передачи четырех символов один раз в секунду этой скорости более чем достаточно. Оба контроллера настроены на частоту 4 МГц и тактируются от внутреннего осциллятора.

В основном контроллере, принимающем данные от электронного ключа, запись пароля происходит в DataBlok «login». Чтобы его поменять, нужно в исходном тексте отредактировать 4 цифры (стандартный пароль 1234). Пароль вводится только цифрами в количестве четырех символов.

Схема устройства

Запись пароля в ключ происходит после нажатия кнопки «Write» в схеме основного контроллера. Опрос вывода PD6 происходит один в секунду по сигналам прерывания от таймера. После того, как сработает кнопка, мигнет светодиод, подключенный к выводу PB7.

Далее идет передача пароля в контроллер с последующей записью в энергонезависимую память. Чтобы ключ обновил пароль, его нужно вставить заново. Проверка пароля происходит 1 раз в секунду. При совпадении пароля загорается светодиод «ОК», подключенный к выводу PB0.

Если пароль был заменен или не совпал, то загорается светодиод «Error», подключенный к выводу PB1.

При смене пароля, нужно производить его перезапись в ключ с помощью кнопки вывода PD6. Запись нового логина в основной МК возможна только после его перепрограммирования. При доработке программы данные можно заносить с клавиатуры или других вспомогательных устройств.

Внешний вид устройства

Видео о работе

Источник: http://radio-uchebnik.ru/shem/27-mikrokontroller/314-elektronnyj-klyuch-iz-neispravnoj-usb-fleshki

domofon-master2009 – Другие разработки

Источник: http://domofon-master2009.narod.ru/index/drugie_razrabotki/0-21

Семиканальный электронный ключ

Охранные устройства

Главная  Радиолюбителю  Охранные устройства

Основная функция устройства, о котором рассказывается в статье, – ограничение доступа, ограничение круга лиц, имеющих доступ к объекту (изделию, устройству и пр.).

Это могут быть, например, ячейки банковского сейфа или составные части сложного электронного изделия, ограничение доступа к которым может быть осуществлено как по цепям питания, так и по цепям управления.

Одноканальный кодовый замок, пожалуй, можно рассматривать как частный случай подобного электронного ключа. Программные и аппаратные ресурсы микроконтроллера ATtiny2313A позволяют разработать несложный многоканальный электронный ключ с простым и удобным интерфейсом.

Секретный код, хранимый в энергонезависимой памяти (EEPROM) микроконтроллера, не “потеряется” при выключенном питании, его всегда легко перепрограммировать, используя при этом только аппаратные ресурсы самого микроконтроллера (т. е. устройства, выполненного на его основе).

Схема семиканального электронного ключа (далее ключа) представлена на рис. 1. Собран он на основе микроконтроллера ATtiny2313A (DD2) и восьмиразрядного синхронного регистра К555ИР23 (DD1). Рассмотрим его основные функциональные узлы.

Рабочая частота микроконтроллера задана кварцевым резонатором ZQ1 на частоту 10 МГц. Порт РB управляет динамической индикацией, выполненной на цифровых семиэлементных индикаторах HG1-HG5 и транзисторах VT1-VT5. Резисторы R3-R10 – токоограничивающие для элементов индикаторов.

Для функционирования клавиатуры задействована линия PD4 (вывод 8) порта PD микроконтроллера.

Рис. 1. Схема семиканального электронного ключа

Питающее напряжение +5 В поступает на устройство через вилку XP1. Конденсатор С6 фильтрует пульсации в цепи напряжения +5 В. Блокировочные конденсаторы C4, С5 включены в цепи питания регистра DD1 и микроконтроллера DD2 соответственно.

Регистр DD1 задействован для увеличения числа выводных линий. В устройстве имеются семь независимых каналов. Для включения канала 1 нужно ввести секретный код № 1, канала 2 – секретный код № 2 и т. д. Выходные сигналы каналов снимают с контактов 1-7 розетки XS1.

Сразу после подачи питания все сигналы имеют уровень лог. 1.

Интерфейс устройства включает в себя пятиразрядный дисплей из цифровых семиэлементных индикаторов HG1-HG5 и клавиатуру, содержащую кнопки SB1-SB8. На первых четырёх индикаторах отображается вводимый код, на пятом – номер активированного канала. Как видно из схемы, аппаратные ресурсы микроконтроллера задействованы полностью.

В алгоритме работы устройства можно выделить 14 режимов работы. Первые семь из них – режимы ввода рабочих кодов (№ 1 – кода № 1, № 2 – кода № 2 и т. д.).

При совпадении рабочего (вводимого с клавиатуры) и секретного кодов на соответствующем номеру канала контакте розетки XS1 на 5 с устанавливается уровень лог 0 (сигнал “Канал N”, где N – его номер).

Режимы № 8-№ 14 – режимы ввода (записи) секретных кодов в EEPROM микроконтроллера (режим № 8 – для канала 1, режим № 9 – для канала 2 и т. д.).

Назначение кнопок клавиатуры:

SB1-SB6 – кнопки ввода кода доступа. Они обозначены цифрами от “1” до “6”. Вводимый код индицируется на дисплее устройства;

SB7 (“К”) – кнопка выбора каналов 1-7 (если выбран канал 1, на индикаторе HG5 отображается цифра “1”, если выбран канал 2, – цифра “2” и т. д.);

SB8 (“З/Р”) – кнопка выбора режима работы (“Запись” или “Рабочий режим”) для каналов 1-7. В режиме “Запись” в четвёртом разряде дисплея (индикатор HG4) индицируется децимальная точка h.

Алгоритм работы устройства следующий. Сразу после включения питания цепь R1C1 формирует на входе микроконтроллера сигнал системного аппаратного сброса. На дисплее появляется число 00001. Микроконтроллер DD2 ждёт ввода четырёхразрядного кода. Но вначале необходимо записать секретный код для каждого канала.

Нажатием на кнопку SB8 (“З/Р”) выбираем режим “Запись” и вводим с клавиатуры код для канала 1.

Микроконтроллер индицирует его на дисплее и записывает в ОЗУ Закончив ввод четырёхразрядного кода, нажимаем на любую из кнопок SB1- SB6, и индицируемый на дисплее код записывается в EEPROM микроконтроллера, становясь секретным для канала 1. После этого на дисплее в разрядах HG1-HG4 снова индицируются нули.

Кнопкой SB7 (“К”) выбираем следующий канал и проделываем аналогичные операции для канала 2 и т. д. Для выхода из режима записи нажимаем на кнопку SB8, при этом децимальная точка h на индикаторе HG4 гаснет. Устройство готово к работе.

В рабочем режиме микроконтроллер также ждёт ввода четырёхразрядного кода. Вводимый с клавиатуры код он индицирует на дисплее и записывает в ОЗУ.

После ввода четвёртого разряда и последующего нажатия на одну из кнопок SB1-SB6 микроконтроллер побайтно сравнивает введённый код с записанным в его EEPROM и, если они совпадают, на 5 с подаёт сигнал на включение соответствующего канала (устанавливает лог.

0 на его выходе) и подаёт сигнал на включение звукоиз-лучателя BF1. Через 5 с микроконтроллер выключает сигнал (устанавливает на выходе канала лог. 1), обесточивает звукоизлучатель и обнуляет ХР1 wf-2 на дисплее разряды вводимого кода.

Если вводимый код не совпал с секретным, то микроконтроллер всё равно обнуляет дисплей (на нём индицируется число 00001), но не изменяет состояния выходного сигнала канала. Целесообразно, чтобы доступ к кнопке SB8 был ограничен.

В программе используются два прерывания: Reset и прерывание таймера ТО, обработчик которого начинается с метки TIM0. При переходе на метку Reset инициализируются стек, таймер, порты, а также флаги и используемые в программе переменные.

В обработчике прерывания таймера Т0 осуществляются процедура опроса кнопок SB1-SB8, функционирование динамической индикации, перекодировка двоичного числа в код для отображения информации на семиэлементных индикаторах, а также формирование временного интервала длительностью 5 с, необходимого для изменения выходных сигналов каналов (установка сигнала уровня лог 0 на выводах розетки XS1), и процедуры записи и чтения набранного кода в EEPROM микроконтроллера.

В ОЗУ микроконтроллера с адреса $60 по $64 организован буфер отображения для динамической индикации (по адресу $60 находится число, определяющее номер канала, а с адреса $61 по адрес $64 – вводимый код).

Секретный код из EEPROM микроконтроллера переписывается в его ОЗУ по адресам с $66 по $69. Флаги, задействованные в программе, находятся в регистрах R19 (flo) и R25 (flo1). На рис. 2 приведён фрагмент программы записи секретного кода для канала 7.

Рис. 2. Фрагмент программы записи секретного кода для канала 7

Разработанная программа на ассемблере занимает всего около 0,7 Кб памяти программ микроконтроллера.

При изготовлении устройства применены резисторы с2-33Н-0,125, но подойдут и любые другие с такой же мощностью рассеяния и допустимым отклонением от номинала ±5 %. Конденсаторы С1-С5 – керамические К10-17а, С6 – оксидный импортный.

Конденсатор С4 монтируют в непосредственной близости от выводов питания регистра DD1, С5 – возможно ближе к выводам питания микроконтроллера DD2. Розетка XS1 – HU-10 (ответная часть – вилкаWF-10), вилкаXP1 – WF-2 (ответная часть – розетка HU-2). Индикаторы HG1-HG5 – HDSP-F501 (зелёного цвета свечения).

Если нет необходимости в визуальном контроле набираемого кода, то индикаторы HG1 – HG4, транзисторы VT1-VT4 и резисторы R3-R18 можно исключить, на работу устройства это не повлияет.

Схема включения соленоида для втягивания ригеля (задвижки) замка приведена на рис. 3. При поступлении на контакт 1 вилки XP3 сигнала лог. 0вклю-чается излучающий диод оптрона U1 и открывается встроенный в него фототранзистор.

При этом открывается транзистор VT1 и напряжение 24 В с контакта 1 вилки XP2 поступает на контакт 1 вилки XP1 и далее на соленоид, в результате чего ригель замка втягивается в него.

Резисторы – любые указанных на схеме номиналов и рассеиваемой мощности, конденсатор С1 – оксидный К50-35 или импортный аналог В общем случае cхемное решение этого узла определяется конкретными параметрами подключённых к ключу исполнительных устройств.

Рис. 3. Схема включения соленоида для втягивания ригеля (задвижки) замка

Налаживания описанное устройство не требует. При использовании исправных деталей и отсутствии ошибок в монтаже оно начинает работать сразу после подачи напряжения питания.

Для повышения степени защиты (увеличения разрядности эталонного кода) можно доработать программное обеспечение.

В этом случае на дисплее будут отображаться только четыре младших (или столько же старших) разряда вводимого кода.

Источник: http://www.radioradar.net/radiofan/security_devices/seven_channel_electronic_key.html

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}
");let k=document.querySelector(".flat_pm_modal[data-id-modal=\""+a.ID+"\"]");if(-1===d.indexOf("go"+"oglesyndication")?flatPM_setHTML(k,d):jQuery(k).html(b+d),"px"==a.how.popup.px_s)e.bind(h,()=>{e.scrollTop()>a.how.popup.after&&(e.unbind(h),f.unbind(i),j())}),void 0!==a.how.popup.close_window&&"true"==a.how.popup.close_window&&f.bind(i,()=>{e.unbind(h),f.unbind(i),j()});else{let b=setTimeout(()=>{f.unbind(i),j()},1e3*a.how.popup.after);void 0!==a.how.popup.close_window&&"true"==a.how.popup.close_window&&f.bind(i,()=>{clearTimeout(b),f.unbind(i),j()})}f.on("click",".flat_pm_modal .flat_pm_crs",()=>{jQuery.arcticmodal("close")})}if(void 0!==a.how.outgoing){let b,c="0"==a.how.outgoing.indent?"":" style=\"bottom:"+a.how.outgoing.indent+"px\"",e="true"==a.how.outgoing.cross?"":"",f=jQuery(window),g="scroll.out"+a.ID,h=void 0===flatPM_getCookie("flat_out_"+a.ID+"_mb")||"false"!=flatPM_getCookie("flat_out_"+a.ID+"_mb"),i=document.createElement("div"),j=jQuery("body"),k=()=>{void 0!==a.how.outgoing.cookie&&"false"==a.how.outgoing.cookie&&h&&(jQuery(".flat_pm_out[data-id-out=\""+a.ID+"\"]").addClass("show"),j.on("click",".flat_pm_out[data-id-out=\""+a.ID+"\"] .flat_pm_crs",function(){flatPM_setCookie("flat_out_"+a.ID+"_mb",!1)})),(void 0===a.how.outgoing.cookie||"false"!=a.how.outgoing.cookie)&&jQuery(".flat_pm_out[data-id-out=\""+a.ID+"\"]").addClass("show")};switch(a.how.outgoing.whence){case"1":b="top";break;case"2":b="bottom";break;case"3":b="left";break;case"4":b="right";}jQuery("body > *").eq(0).before("
"+e+"
");let m=document.querySelector(".flat_pm_out[data-id-out=\""+a.ID+"\"]");-1===d.indexOf("go"+"oglesyndication")?flatPM_setHTML(m,d):jQuery(m).html(e+d),"px"==a.how.outgoing.px_s?f.bind(g,()=>{f.scrollTop()>a.how.outgoing.after&&(f.unbind(g),k())}):setTimeout(()=>{k()},1e3*a.how.outgoing.after),j.on("click",".flat_pm_out .flat_pm_crs",function(){jQuery(this).parent().removeClass("show").addClass("closed")})}countMode&&(flat_count["block_"+a.ID]={},flat_count["block_"+a.ID].count=1,flat_count["block_"+a.ID].click=0,flat_count["block_"+a.ID].id=a.ID)}catch(a){console.warn(a)}}function flatPM_start(){let a=flat_pm_arr.length;if(0==a)return flat_pm_arr=[],void jQuery(".flat_pm_start, .flat_pm_end").remove();flat_body=flat_body||jQuery("body"),!flat_counter&&countMode&&(flat_counter=!0,flat_body.on("click","[data-flat-id]",function(){let a=jQuery(this),b=a.attr("data-flat-id");flat_count["block_"+b].click++}),flat_body.on("mouseenter","[data-flat-id] iframe",function(){let a=jQuery(this),b=a.closest("[data-flat-id]").attr("data-flat-id");flat_iframe=b}).on("mouseleave","[data-flat-id] iframe",function(){flat_iframe=-1}),jQuery(window).on("beforeunload",()=>{jQuery.isEmptyObject(flat_count)||jQuery.ajax({async:!1,type:"POST",url:ajaxUrlFlatPM,dataType:"json",data:{action:"flat_pm_ajax",data_me:{method:"flat_pm_block_counter",arr:flat_count}}})}).on("blur",()=>{-1!=flat_iframe&&flat_count["block_"+flat_iframe].click++})),flat_userVars.init();for(let b=0;bflat_userVars.textlen||void 0!==a.chapter_sub&&a.chapter_subflat_userVars.titlelen||void 0!==a.title_sub&&a.title_subc&&cc&&c>d&&(b=flatPM_addDays(b,-1)),b>e||cd||c-1!=flat_userVars.referer.indexOf(a))||void 0!==a.referer.referer_disabled&&-1!=a.referer.referer_disabled.findIndex(a=>-1!=flat_userVars.referer.indexOf(a)))&&(c=!0),c||void 0===a.browser||(void 0===a.browser.browser_enabled||-1!=a.browser.browser_enabled.indexOf(flat_userVars.browser))&&(void 0===a.browser.browser_disabled||-1==a.browser.browser_disabled.indexOf(flat_userVars.browser)))){if(c&&void 0!==a.browser&&void 0!==a.browser.browser_enabled&&-1!=a.browser.browser_enabled.indexOf(flat_userVars.browser)&&(c=!1),!c&&(void 0!==a.geo||void 0!==a.role)&&(""==flat_userVars.ccode||""==flat_userVars.country||""==flat_userVars.city||""==flat_userVars.role)){flat_pm_then.push(a),flatPM_setWrap(a),flat_body.hasClass("flat_pm_block_geo_role")||(flat_body.addClass("flat_pm_block_geo_role"),flatPM_ajax("flat_pm_block_geo_role")),c=!0}c||(flatPM_setWrap(a),flatPM_next(a))}}}let b=jQuery(".flatPM_sticky");b.each(function(){let a=jQuery(this),b=a.data("height")||350,c=a.data("top");a.wrap("
");let d=a.parent()[0];flatPM_sticky(this,d,c)}),debugMode||countMode||jQuery("[data-flat-id]:not([data-id-out]):not([data-id-modal])").contents().unwrap(),flat_pm_arr=[],jQuery(".flat_pm_start, .flat_pm_end").remove()}
Ярослав Рахматуллаевyaropolkow (at) gmail.com

Немного порывшись в интернете в поисках схем электронных телеграфных ключей, мне почти так и не удалось найти то, что нужно.

Некоторые ключи, состоящие из микросхем серии К 155, были довольно сложны и имели в себе не менее двух микросхем со сложной разводкой, другие состоящие из микроконтроллеров тоже неоправданно были усложнены.

В голову так и просилась очень простая схема на микроконтроллере с минимальными до пайками и довесами. Пришлось разработать свою схему, да тем более на таком известном и широко распространенным контроллере Attiny 2313. Она предоставлена на рис.1

Работает схема следующим образом. После подачи питания, контроллер постоянно опрашивает со скоростью 500 000 раз в секунду все контакты по очереди. Кроме клавиши «Reset», естественно. При замыкании ключа на точки или тире он начинает выдавать соответствующие пачки импульсов.

Начальная скорость передачи знаков, при загрузки контроллера составляет около 30 знаков минуту. Регулировка скорости передачи осуществляется клавишами S3-S4. Для этого надо нажать и удерживать соответствующую клавишу. Скорость начнет плавно регулироваться.

Диапазон настройки скорости составляет от 30 до 240 знаков в минуту. На практике скорость регулируется до бесконечности. Например, на минимальной скорости, длина точки составляет 13 секунд. На максимальной, скорость передачи составляет 900 точек в секунду.

Понятно, что это и не нужно, но на максимальном режиме данный ключ можно использовать в качестве генератора 1 кгц.

Для удобства оператора, клавишей S5 включается автоматическая передача CQ. Вид текста: «CQ CQ CQ DE», далее оператор подставляет свой позывной.

Для того, что б сохранить текущую скорость в энергонезависимую память, нужно нажать клавишу S6. Для того, что б извлечь, например, при новом включении контроллера, кнопку «Read»

Данная схема работает на частоте 4 Мгц. От внутреннего генератора. В качестве контроля применяется Бипер уже с готовой заданной частотой. Транзистор КТ 815 с любой буквой. Следует учесть если будет применятся реле, то в включить защитный диод на обмотку реле. Питание 5 вольт, желательно через микросхему серией 7805. Для себя я сделал сенсорный телеграфный манипулятор. Рис 2.

Многим это может покажется не удобным, но на самом деле вполне приемлемо на скоростях передачи до 200 знаков в минуту. В качестве манипулятора тогда используется двухсторонний фольгированный текстолит.

Fuse Биты надо поставить следующим образом

CKSEL3 – Есть галочка CKSEL2 – Есть галочка CKSEL1 – Нет галочки

CKSEL0 – Есть галочка.

Остальные без изменения.

Программа приведена ниже. Она как и в hex расширении так и в aps. Жалобы принимаются по адресу Email

С уважением Ярослав.

Ссылки для скачивания:

  1. Текст исходной прошивки в формате MS Word
  2. Исходная прошивка для ассемблера

 ДРУГИЕ  МОИ  РАЗРАБОТКИ  НА  AVR  КОНТРОЛЛЕРАХ

                                                                   ( экспериментальные варианты )

                                          1.                      Копировщик   карт   и   брелков   Mifare 1К  ( на  Ардуино  Нано  +  RC522  ).

                         Устройство  предназначено  для  чтения  карт  ( брелков )  семейства  Mifare Classic 1К  и  Mifare Ultralight.

Копирование  производится  на  заготовки  Mifare  Zero,  Mifare OTP,  Mifare UL  и  Mifare UL2.0.

    Дополнительная  память  ( буфер )  позволяет  хранить  и  редактировать

                         дампы  памяти  этих  карт  ( брелков )  и  записывать  их  ( по  блокам/страницам  или  полностью )

                         обратно  на  эти  карты  или  в  заготовки.

                                                 2.                       АНАЛИЗАТОР  ИМПУЛЬСОВ  ( на  Ардуино  Нано ).

                                                                Данное устройство было разработано, в первую очередь, как анализатор временных параметров сигналов

                                                          ( в частности, для изучения работы ключей и протоколов записи заготовок ключей ). 

                                                                              Построено на основе платы  Arduino Nano.  

                                                                             Основные возможности устройства:

                                            1.  Работа с сигналами шины 1-Wire и с токовыми сигналами ( ключи CYFRAL и METAKOM ) 

                                            2.  Запоминание выборки сигналов на шине ( выборка – это 768  сигналов на шине подряд ).

                                                 Запоминается уровень сигнала и его временная составляющая ( с точностью до 1 мксек ).

                                            3.  Возможность выбора начальной точки  чтения  по определённой временной посылке.

                                            4.  Возможность редактирования сигналов ( временного параметра ) в выборке.

                                            5.  Запоминание выборок сигналов во внешней памяти с целью их дальнейшего анализа. 

                                                 Количество запомненных выборок определяется типом установленной памяти.

                                            6.  Возможность обратной выдачи на шину всей выборки или определённой её части.

                                3.                 ФИЛЬТР  ПРОТИВ  КЛОНОВ  КЛЮЧЕЙ    DS – 1990  (  упрощённая   версия )

 Фильтр предназначен для отсеивания клонов ключей DS-1990, сделанных на заготовках:  RW-1990, RW-1990.1, RW-1990.2,

TM-08, TM-08V2, RW-2004, TM-2004,TM-01, KC-3TM, KC-4TM.

При чтении ключа определяется  клон это или нет.  На индикатор выводится информация о ключе и его номер.

Вместо индикатора можно контролировать это по светодиодам.  Если считался клон, то загорится красный светодиод ( ERR),

при чтении ключа DS-1990 загорится зелёный светодиод ( RD). Через 1 сек. устройство автоматически переходит в режим 

чтения ключа.

Фильтр сделан только с целью изучения заготовок ключей и их слабых мест.

                          Предложения по улучшению программы и схемы направляйте по адресу:    marka-555@bk.ru

                 Схема и программа выкладываются не для коммерческого использования, а только для тестирования !

              Программа выложена в каталоге файлов. ATMEGA 32  работает с частотой 8 МГц от внутреннего генератора

     (CKSEL3 = 0, CKSEL2 = 1, CKSEL1 = 0, CKSEL0 = 0, SUT1 = 1, SUT0 = 0,  все остальные фузы должны быть сняты  т.е. = 1,

                     при этом помним, что фуз = 0 – установлена галка в меню фузов, а фуз = 1  не установлена галка ).

       4.     КОНТРОЛЛЕР  ЗАМКА  С  ЗАПРЕТОМ  ВЫХОДА ЧЕРЕЗ  ОПРЕДЕЛЁННОЕ  ЧИСЛО НАЖАТИЙ  КНОПКИ   ВЫХОДА.

                                                             ИНСТРУКЦИЯ  К  УСТРОЙСТВУ  КОНТРОЛЯ  ВЫХОДА

Устройство предназначено для  выборочной проверки сотрудников при выходе.

Оно может работать вместе с различными контроллерами и домофонами.  Основано на микроконтроллере Attiny2313 и содержит реле

для коммутации исполнительных устройств с напряжением до 250 Вольт и током коммутации до 10 А.  Режимы работы устройства

задаются перемычками на плате с последующим нажатием  кнопки  RESET для записи изменений.

Устройство может работать в 4-х основных режимах  с разными временными задержками открытия и блокировки и разными режимами

работы реле. Режим работы задаётся установкой  перемычек.

                                                                             РЕЖИМЫ РАБОТЫ УСТРОЙСТВА:

Перемычки сверху вниз определяют количество нажатий кнопки выхода  до блокировки замка.  Для изменения режима работы

нужно переставить перемычку в другое положение и кратковременно нажать кнопку “RESET”  для записи изменений в микроконтроллер.

Перемычка 1 – 3 нажатия кнопки выхода и блокировка на четвёртое нажатие  кнопки выхода.

Перемычка 2 – 5 нажатий кнопки выхода и блокировка на шестое нажатие кнопки  выхода.

Перемычка 3 – 7 нажатий кнопки выхода и блокировка на восьмое нажатие кнопки  выхода.

Перемычка 4 – Выборочная блокировка при любом нажатии кнопки выхода в  диапазоне от 1 до 20.

В режиме открытия загорается зелёный светодиод, в режиме блокировки – красный.

После окончания времени блокировки, устройство продолжает работу в  выбранном режиме.

Последние две перемычки  5 и 6 определяют время открытия ( t ) и время блокировки ( t1).

Без перемычки 5 время открытия  t  = 1 сек., при установленной перемычке время открытия  t = 5 сек.

Без перемычки 6 время блокировки  t1  = 5 сек., при установленной перемычке время  блокировки  t1  = 10 сек.

Перемычка у базы транзистора определяет работу реле. В положении  R (перемычка вверху) реле срабатывает на открытие двери и

не срабатывает при блокировке. В положении BL (перемычка внизу) реле срабатывает при блокировке двери и не срабатывает  на открытие.

Для работы устройства необходим источник постоянного напряжения +12 Вольт с выходным  током не менее 60 мА .

                                                    5.              КОНТРОЛЛЕР ЗАМКА НА КЛЮЧАХ DS-1990 ( DALLAS ).                                                       

                                   Для питания устройства и замка нужен блок  на постоянное напряжение 12 Вольт (не менее 1А).

                                                               КРАТКАЯ ИНСТРУКЦИЯ ПО ИСПОЛЬЗОВАНИЮ КОНТРОЛЛЕРА

                       Устройство предназначено для работы с электромагнитными (ML) и электромеханическими замками (EL). Позволяет хранить в 

                       памяти 600 номеров ключей ( один мастер-ключ ).

                       Можно использовать с данным устройством и бесконтактные считыватели брелков и карт. Индикатор можно не ставить и 

                       использовать только светодиодную индикацию.

                       Устройство проверяет ключи на идентичность ключу DS-1990 и отсеивает дубликаты, сделанные на разных заготовках. 

                       В дальнейшем планирую добавить работу  с ключами с памятью (DS-1971) и с защищённой  памятью ( DS-1991, DS-1977).

                       После обнуления памяти или при первом включении необходимо сразу записать мастер-ключ. Далее работа с устройством

                       производится с помощью этого мастер-ключа.

                       При необходимости можно записывать и стирать ключи (в том числе и мастер-ключ), вводя контроллер в нужный режим 

                       при помощи джамперов.

                       Мастер ключ можно оперативно заменить, не стирая при этом всю память ключей.

                       Память контроллера можно сохранять, сбрасывая на ключ DS-1996 или загружать с этого ключа. Можно также сбрасывать

                       и загружать память с помощью различных программаторов памяти 24хх ( память установлена на кроватке и легко снимается ).

                       Запитывается микроконтроллер от блока постоянного напряжения через стабилизатор 142ЕН5 (или 7805). На схеме стабилизатор

                       не показан.

                       Имеется  кнопка  и джампера  для выбора режимов работы  после подачи  напряжения на контроллер.

                       Назначение джамперов:

                       EL/ML – выбор замка (EL – электромеханический замок, ML – электромагнитный замок ).

                       Time 5/10 – выбор времени открытия электромагнитного замка 5 или 10 сек.

                       Master – запись мастер-ключа в память.

                       Write key – запись ключей в память.

                       Erase key – стирание ключа из памяти.

                       Erase key + Master – стирание всей памяти. 

                       Кнопка ENTER служит для подтверждения выбора данного режима.

                       Горящий зелёный светодиод показывает, что считыватель находится в дежурном режиме.

                       При первом включении, когда память чистая, загорается красный светодиод. Он показывает, что нужно записать

                       мастер-ключ.

                       Для этого просто прикладываем к считывателю ключ, который будет в дальнейшем использоваться как мастер-ключ.

                       При нормальной записи загорится зелёный светодиод, а красный светодиод погаснет.

                       Переход в другие режимы может осуществляться с помощью мастер-ключа. Для этого нужно удерживать мастер-ключ

                       у считывателя не менее 5 сек. При этом загорится красный светодиод, а зелёный светодиод погаснет.

1.     режим записи ключей (горит красный светодиод, зелёный светодиод погашен).

     В этом режиме при прикладывании очередного ключа, ищется в памяти свободное место и туда записывается номер этого ключа.

     При нормальной записи кратковременно загорается зелёный светодиод.

     Для выхода прикладываем кратковременно мастер-ключ.

2.      режим стирания ключей (горят оба светодиода).

В этом режиме при прикладывании ключа к считывателю, его номер ищется в памяти и стирается. При стирании кратковременно

гаснет зелёный светодиод.

Для выхода прикладываем кратковременно мастер-ключ.

                   3.  режим стирания всей памяти (горят оба светодиода).

                        В этот режим можно войти только с помощью включения одновременно джамперов MASTER и ERASE KEY. Далее надо подать

                        напряжение на контроллер и нажать кнопку ENTER. После стирания всей памяти гаснет зелёный светодиод и зажигается 

                        красный светодиод, который показывает, что надо заново записать мастер-ключ.

                        В режимы записи мастер-ключа, записи  и стирания ключей можно входить и с помощью замыкания соответствующих 

                        джамперов при выключенном питании контроллера.

                        После подачи питания надо нажать кнопку ENTER для подтверждения входа в этот режим. Для выхода выключаем питание,

                        выключаем джампера и снова подаём питание.

                        Контроллер переходит в дежурный режим ( горит  зелёный  светодиод ).

.