|
|
Электронный замок с ключами iButton |
|
|
|
Электронный замок с ключами iButton
| В последнее время широкое распространение получили замки, ключом к которым является электронная таблетка iButton (или touch memory) фирмы Dallas Semiconductor. Такие замки используются во многих учреждениях, а также на дверях подъездов. Кроме того, ключи iButton часто применяются для расчетов на автозаправочных станциях и в других местах. Таким образом, у многих уже есть ключи iButton. Поэтому при проектировании самодельного замка рационально использовать в нем уже имеющиеся у пользователя ключи. | Именно так и сделано в предлагаемом замке: с ним могут работать любые типы ключей, так как используется только записанный в ПЗУ iButton серийный номер, который есть в любом их типе. К тому же, команда чтения этого номера одна и та же для всех типов ключей — 33H. Код семейства, который различается у разных типов, может быть любым. Он воспринимается как еще одна цифра сериального номера. Самым дешевым типом ключей является DS1990A. | Замок проектировался для индивидуального использования и имеет предельно простую конструкцию. На входной двери снаружи располагается только панелька для iButton и светодиод открывания дверей. Открывание дверей изнутри осуществляется с помощью кнопки. В качестве исполнительного механизма используется стандартная защелка с электромагнитом, рассчитанным на напряжение 12 В. Коды ключей хранятся в энергонезависимой памяти и могут стираться или добавляться пользователем. Для защиты от несанкционированного перепрограммирования замка используется мастерключ. Всего в память можно записать 9 ключей. Это количество продиктовано возможностями одноразрядного индикатора номера программируемого ключа. Если задействовать еще и буквы A–F, то можно увеличить суммарное количество ключей до 15. Это делается путем замены значения константы MAXK в программе. Таким же способом можно и уменьшить максимальное количество ключей. | | Принципиальная схема замка показана на рис. 1. Основой конструкции является микроконтроллер U1 типа AT89C2051 фирмы Atmel. К порту P1 подключен семисегментный индикатор, который используется при программировании ключей. Для этих же целей предназначена и кнопка SB1, подключенная к порту P3.7. Хранение серийных номеров ключей осуществляется в микросхеме U3 EEPROM типа 24C02, подключенной к портам P3.4 (SDA) и P3.5 (SCL). Внешняя панелька для iButton подключается к порту P3.3 через разъем XP2 и элементы защиты VD4, R3, VD5 и VD6. Подтягивающий резистор R4 выбран согласно спецификации однопроводной шины. Параллельно внешней панельке подключена еще и внутренняя панелька XS1, которая тоже используется для программирования ключей. Кнопка открывания двери подключена к порту P3.2 через разъем XP1 и такие же элементы защиты, как и для ключа iButton. Электромагнит используемый в качестве исполнительного устройства замка, подключен через винтовой терминал XT1. Электромагнитом управляет ключ VT3, в качестве которого используется мощный МОПтранзистор типа IRF540. Диод VD7 защищает от выбросов самоиндукции. Ключом VT3 управляет транзистор VT2, который инвертирует сигнал, поступающий с порта P 3.0 и обеспечивает управляющие уровни 0/12 В на затворе VT3. Инверсия нужна для того, чтобы исполнительное устройство не срабатывало во время сброса микроконтроллера, когда на порту присутствует уровень логической единицы. Управляющие 12-вольтовые уровни позволили применить обычный МОП-транзистор вместо более дефицитного низкопорогового (logick level) транзистора. Для индикации открытия замка используется светодиод, который управляется тем же портом, что и электромагнит, но через транзисторный ключ VT1. Светодиод подключается через тот же разъем, что и iButton. Поскольку устройство должно работать без обслуживания круглосуточно, для повышения надежности установлен супервизор U2 типа ADM1232. Он имеет встроенный сторожевой таймер и монитор питания. Порт P3.1 микроконтроллера формирует периодические импульсы для сброса сторожевого таймера. | Питание устройства осуществляется от встроенного блока питания, содержащего трансформатор T1, выпрямительный мост VD9-VD12 и интегральный стабилизатор U4. В качестве резервного источника питания используется батарея BT1-BT10 из десяти NiMH-аккумуляторов типоразмера AA емкостью 800 мА/ч. При питании устройства от сети батарея аккумуляторов заряжается через резистор R10 током примерно 20 мА, что составляет 0,025 с. Режим зарядки малым током называют капельным (trickle charge). В таком режиме аккумуляторы могут находиться сколь угодно долго, контроля конца процесса зарядки не требуется. Когда аккумуляторы оказываются полностью заряженными, забираемая ими от источника питания энергия превращается в тепло. Но поскольку ток зарядки очень маленький, выделяемое тепло рассеивается в окружающее пространство без сколько-нибудь заметного увеличения температуры аккумуляторов. | Конструктивно устройство выполнено в корпусе размером 150x100x60 мм. Большинство элементов, включая трансформатор питания, смонтировано на печатной плате. Аккумуляторы размещаются в стандартных пластмассовых держателях, которые закреплены внутри корпуса рядом с платой. В принципе можно использовать и другие типы аккумуляторов, например 12-вольтовую кислотную необслуживаемую батарею, применяющуюся в охранных системах. Для подключения исполнительного устройства на плате имеются терминалы типа TB-2, все остальные внешние цепи подключаются через малогабаритные разъемы с шагом контактов 2,54 мм. Разъемы расположены на печатной плате и снаружи корпуса недоступны. Провода выходят из корпуса через резиновые уплотнители. Поскольку индикатор HG1, кнопка SB1 и панелька для iButton XS1 используются только во время программирования, они размещены на плате внутри устройства. Это упрощает конструкцию корпуса и делает его более защищенным от внешних воздействий. На боковой панели корпуса размещен только светодиод индикации включения VD13. Схема внешних соединений показана на рис. 2. | | При открывании двери на электромагнит подается импульс длительностью 3 секунды. Логика работы устройства такова, что если кнопку открывания двери удерживать, то все это время электромагнит будет под напряжением и, соответственно, дверь будет открытой. | Замок может иметь максимум девять ключей плюс один мастер-ключ. Коды ключей заносятся в энергонезависимую память под номерами от 1 до 9. Код мастерключа занесен в ПЗУ микроконтроллера и не может быть изменен. Программирование новых ключей или стирание старых может быть произведено только при наличии мастер-ключа. Как и другие ключи, мастер-ключ может использоваться для открывания замка. | Для программирования нового ключа нужно проделать приведенную ниже последовательность действий: 1.Сначала надо нажать кнопку программирования. На индикаторе появится буква «P», что означает вход в режим программирования. 2.После этого следует коснуться мастер-ключом панельки. На индикаторе появится цифра «1», которая обозначает номер программируемого ключа. 3.Далее кнопкой выбирается нужный номер. 4.После этого нужно коснуться любым ключом панельки. Цифра на индикаторе начнет мигать, что говорит о готовности к программированию. 5.Для программирования коснуться панельки тем ключом, код которого требуется занести в память. В случае успешного программирования цифра на индикаторе перестанет мигать и будет гореть постоянно. 6.Для выхода из режима программирования нужно просто подождать 5 секунд, после чего индикатор погаснет. Схематически процесс программирования нового ключа показан на рис. 3. | | Если нужно запрограммировать несколько ключей, то можно сразу перейти от пункта 5 к пункту 3 и повторить пункты 3–5 необходимое число раз. | Если после того, как цифра на индикаторе начнет мигать, окажется, что выбран не тот номер, то для исключения потери кода ключа под этим номером можно нажать кнопку или просто подождать 5 секунд. В первом случае текущий номер увеличится на единицу, а содержимое памяти останется без изменений. Во втором случае произойдет полный выход из режима программирования без изменения кодов. Вообще, выход из программирования можно осуществить в любой момент, если сделать паузу более 5 секунд. | Для стирания из памяти лишнего ключа последовательность действий остается такой же, как и при программировании, только все действия производятся мастерключом. То есть процесс стирания фактически является записью кода мастер-ключа на неиспользуемые номера. Схематически процесс стирание лишнего ключа показан на рис. 4. | | В процессе программирования открыть дверь кнопкой можно, а вот открывание с помощью iButton заблокировано. Поскольку внутренняя и внешняя панельки соединены параллельно, нужно следить, чтобы во время программирования никакие ключи не касались внешней панельки. | Код мастер-ключа записывается в ПЗУ программ микроконтроллера начиная с адреса 2FDH. Длина кода составляет 8 байт. Последовательность цифр должна быть такая же, как и на корпусе touch-memory, читать нужно слева направо. То есть по адресу 2FDH заносится значение контрольной суммы, затем по адресам 2FEH-303H шесть байт серийного номера начиная со старшего байта, и, наконец, по адресу 304H — код семейства. Например, код в целом может выглядеть так: 67 00 00 02 D6 85 26 01. | Программа электронного замка имеет главный цикл, блок-схема которого показана на рис. 5. В основном цикле производится опрос панельки, и если там обнаруживается ключ, то считывается его код. Затем этот код проверяется, и если он совпадает с кодом мастер-ключа или любого другого ключа (ключа пользователя), занесенного в память, замок открывается. Так же проверяется состояние кнопки открывания двери, и в случае обнаружения нажатия замок открывается. | | Для обработки событий, связанных с программированием, имеются две подпрограммы PROGT и PROGS, блок-схемы которых приведены на рис. 6. Первая вызывается при считывании кода ключа в режиме программирования, вторая — при нажатии кнопки программирования (NUMBER). Процесс программирования разбит на три фазы. При нажатии кнопки NUMBER осуществляется вход в режим программирования, т. е. переход к фазе 1. При этом на индикатор выводится буква «P». Считываемые после этого коды ключей проверяются на совпадение с кодом мастер-ключа, так как только он может позволить продолжить программирование. Если такое совпадение произошло, то осуществляется переход к фазе 2. На индикатор выводится номер текущего ключа, который кнопка NUMBER может изменять. Если снова будет зарегистрировано касание ключа, то произойдет переход к фазе 3. Еще одно касание ключа приведет к запоминанию его кода и к возврату к фазе 2. Нажатием кнопки NUMBER тоже можно вернуться к фазе 2, но без изменения содержимого памяти. Любое действие в режиме программирования вызывает перезагрузку таймера возврата, который имеет интервал 5 секунд и проверяется в основном цикле. Если будет обнаружено обнуление этого таймера, то происходит выход из режима программирования. Приведенные блок-схемы являются сильно упрощенными, однако общую логику построения программы они понять позволяют. | Исходный текст программы, оттранслированный код и файл разводки печатной платы можно найти на сайте журнала "Схемотехника". | Описанный замок, конечно, не обладает широким набором возможностей. Однако он очень прост, что делает его доступным для повторения. Открытый исходный текст программы позволяет самостоятельно производить усовершенствование конструкции или адаптацию ее к конкретным требованиям. | Автор статьи: Леонид Ридико Опубликовано в журнале Схемотехника
|
|
Эта статья была опубликована 02 March 2017 г.. |
|
Число отзывов: 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|