Фильтр по тематике

Кодовый замок с загрузкой эталонного кода по RS-485

В данной статье описываются кодовый замок на базе микроконтроллера ATtiny2313 и пульт для загрузки кода. Особенность предложения заключается в том, что через интерфейс RS-485 с одного пульта можно управлять девятью замками.

01.02.2015 373 0
Кодовый замок с загрузкой эталонного кода по RS-485

Приёмопередатчик USART позволяет интегрировать кодовый замок в любую распределённую систему управления и сбора данных через интерфейсы RS-232, RS-422, RS-485 и др. Последовательный интерфейс передачи данных RS-485 – один из самых широко распространённых. Его отличает высокая скорость передачи данных и помехоустойчивость. В качестве линии связи используется экранированная витая пара с волновым сопротивлением ≈120 Ом. Для защиты от помех экран витой пары заземляется на одном из её концов. Основные особенности интерфейса RS-485:

  • используется однополярный источник питания +5 В, который применяется для питания большинства электронных приборов и микросхем;
  • мощность сигнала передатчика RS-485
  • позволяет подключать к одному передатчику до 32 приёмников и таким образом вести широковещательную передачу данных;
  • использование симметричных сигналов, имеющих гальваническую развязку с нулевым потенциалом питающей сети, исключает попадание помехи по нулевому проводу питания;
  • возможность работы передатчика на низкоомную нагрузку существенно увеличивает дальность связи.

Инженерные решения

На базе микроконтроллера ATtiny2313 можно изготовить кодовый замок (далее замок) и пульт для установки кода (далее пульт). Из них и сети на основе RS-485 можно сделать несложную систему безопасности для небольшого офиса или лаборатории (см. рис. 1).

Данный микроконтроллер содержит 128 байт энергонезависимой памяти, записываемой в режиме EEPROM, которая может обеспечить 100 000 повторов записи и стирания кода замка. Также имеется возможность использовать функцию по защите данных программного кода и EEPROM.

Основные функциональные узлы замка и пульта одинаковы: драйвер RS-485, клавиатура и дисплей (см. рис. 2 и 3). Также замок содержит соленоид и схему его включения.


Замки №1–9 идентичны по схемотехнике и конструкции. Основой замка служит микроконтроллер DD3, рабочая частота которого задаётся генератором с внешним резонатором ZQ1 на 10 000 МГц. Порт РD-микроконтроллера управляет ди­намической индикацией, которая собрана на транзисторах VT1…VT3 и цифровых семисегментных индикаторах HG1…HG3 с ограничительными резисторами R4…R11. Коды для включения вышеуказанных индикаторов при функционировании динамической индикации поступают в порт PВ-микроконтроллера. Для функционирования клавиатуры задействован вывод 7 (PD3) микроконтроллера. Питающее напряжение +5 В поступает на замок с соединителя Х3. В цепи питания микроконтроллера стоят конденсаторы С7 (фильтрующий) и C6 (блокировочный).

Сигнал «Выход» (контакт 1 соединителя Х2) поступает c вывода 11 микроконтроллера. Сигналы с приёмо-передатчика USART поступают на драйвер интерфейса RS-485 – микросхему DD1. Интерфейс управления замка включает в себя дисплей (индикаторы HG1…HG3) и клавиатуру (кнопки S1…S8). Кнопки S1…S7 задают код ввода, который отображается на дисплее. Кнопка входа/выхода замка в режим записи эталонного кода (S8) должна иметь ограниченный доступ. Если отказаться от визуального контроля набираемого кода, то индикаторы HG1…HG3, транзисторы VT1…VT3 и резисторы R4…R17 можно исключить. Если нет необходимости вводить эталонный код с клавиатуры замка (вместо этого вводить с пульта), то кнопку S8 также можно исключить.

В распределённой сети каждое устройство имеет свой адрес. Поэтому ПО всех замков различаются только своими адресами, «зашитыми» в память программ. В алгоритме работы замка предусмотрено два режима работы: рабочий и записи кода.

Режим работы задаётся кнопкой S8. После подачи питания замок переходит в рабочий режим и на дисплее индицируется число 000. Микроконт­роллер в это время находится в режиме ожидания четырёхразрядного кода. Вводимый с клавиатуры четырёхразрядный код индицируется на дисплее (три младших разряда) и записывается в ОЗУ. После ввода четвёртого разряда нужно нажать любую из кнопок S1…S7. После ввода пятого разряда микроконтроллер побайтно сравнивает его с четырёхразрядным кодом, записанным в памяти EEPROM (так называемым эталонным кодом). Если в рабочем режиме вводимый код совпал с эталонным, то микроконтроллер в течение пяти секунд подаёт сигнал на включение механизма открывания замка (устанавливает лог. 0 на выводе 11 микроконтроллера) и обнуляет дисплей. Через пять секунд микроконтроллер выключает механизм открывания замка (устанавливает лог. 1 на выводе 11 микроконтроллера). Если вводимый код не совпадает с эталонным кодом, то лог. 0 на выводе 11 микроконтроллера не устанавливается, а дисплей обнуляется (на нём индицируется 000).

Для перевода замка в режим записи необходимо после включения питания нажать кнопку S8. При этом загорится точка h в третьем разряде (индикатор HG3). Вводимый с клавиатуры код микроконтроллер индицирует на дисплее и записывает в ОЗУ. После ввода четырёхразрядного кода необходимо нажать любую из кнопок S1…S7. Код, индицируемый на дисплее, запишется в память EEPROM микроконтроллера, а дисплей обнулится. Для выхода из режима записи нужно нажать кнопку S8, после чего точка h в третьем разряде (индикатор HG3) погаснет.

ПО для кодового замка

Программное обеспечение микроконтроллеров для пульта и замка было разработано в среде Atmel Studio 6.1. На ассемблере программа для замка занимает всего порядка 0,8 Кб памяти и прописывается к программам микроконтроллера.

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

  • процедура опроса кнопок S1…S8;
  • функционирование динамической индикации;
  • перекодировка двоичного числа в код для отображения информации на дисплее;
  • формирование временно¢го интервала длительностью пять секунд (установка сигнала лог. 0 на выводе PD6 микроконтроллера);
  • запись набранного кода в память EEPROM микроконтроллера и его чтение.

В ОЗУ микроконтроллера с адреса $61 по адрес $63 организован буфер отображения для динамической индикации (RAM = $60 – начальный адрес рабочего участка ОЗУ для буферов отображения и приёма по последовательному каналу). Флаги, задействованные в программе, находятся в регистрах R19 (flo) и R25 (flo1).

Загрузить эталонный код в память EEPROM микроконтроллера можно и с пульта. В данном случае в обработке прерывания по завершению приёма буфера, из регистра UDR данные переписываются в буфер приёма с адреса RAM+12 по адрес RAM+16. По адресу RAM+12 находится число, определяющее адрес замка, которому адресована посылка (эталонный код). Соответственно, по адресам RAM+13…RAM+16 записан эталонный код. Для примера в листинге приведён фрагмент программы для замка №1, где принятый адрес сравнивается с адресом «1» и далее переписывается в память EEPROM микроконтроллера (переход на метку ACP). Полный вариант листинга см. в дополнительных материалах к статье на сайте журнала.

Рассмотрим алгоритм работы пульта. После подачи питания пульт переходит в рабочий режим, на дисплее индицируется число 0000. Перед вводом эталонного кода необходимо установить в четвёртом разряде (индикатор HG4 на рисунке 3) адрес (число) того замка, в который необходимо загрузить эталонный код. Если установлен адрес 1, то эталонный код загрузится в замок №1, если установлен адрес 2, то – в замок №2 и так далее. Затем с клавиатуры нужно набрать четырёхразрядный код. Три младших разряда индицируются на дисплее замка (индикаторы HG1…HG3 на рисунке 2). После набора четырёхразрядного кода необходимо нажать кнопку S5. Код, индицируемый на дисплее, запишется в память EEPROM микроконтроллера выбранного замка. Далее для обнуления дисплея нужно нажать любую из кнопок S1…S4 или S6…S8.

Основные функциональные узлы пульта и замка идентичны. Динамическая индикация собрана на транзисторах VT1…VT4 и цифровых семисегментных индикаторах HG1…HG4 с ограничительными резисторами R4…R11. В интерфейс управления добавлен дополнительный разряд для числа, определяющего адрес замка.

Кнопки S1…S4 и S6…S8 обозначены соответственно цифрами 1…7. Они задают трёхразрядный эталонный код, отображаемый на четырёхразрядном дисплее. Кнопка S5 предназначена для записи эталонного кода в выбранный замок.

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

  • процедура опроса кнопок S1…S8;
  • функционирование динамической индикации;
  • перекодировка двоичного числа в код для отображения информации на индикаторах.

В подпрограмме обработки прерывания по событию «регистр данных USART пуст» происходит передача данных передатчиком USART. В ОЗУ микроконтроллера с адреса $61 по адрес $64 организован буфер отображения для динамической индикации.

В замке и пульте применены резисторы типа С2-33Н (подойдут любые другие с такой же мощностью рассеяния и погрешностью 5%) и конденсаторы типа К10-17а (С1…С6) и К50-35а (С7). Семисегментные индикаторы HG1…HG4 типа HDSP-F501 имеют зелёный цвет. Элементную базу для клавиатуры и динамической индикации можно подобрать совершенно любую, лишь бы она отвечала требованиям, применяемым для работы в составе функциональных узлов. Для организации сети RS-485 можно применить кабель типа КИПЭП 1 ´ 2 ´ 0,60 ТУ16.К99-008-2001 или любой другой типа «витая пара» с волновым сопротивлением 120 Ом.

Схема включения соленоида для втягивания ригеля (задвижки) замков приведена на рисунке 4. Соединитель Х1 подключается к ригелю. Через соединитель Х2 на схему поступает напряжение +24 В. К соединителю Х3 подключается соединитель Х2 замка.

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

Тексты программы для пульта и версии программ для замков №1…9, а также hex.фалы представлены в дополнительных материалах к статье, размещённых на сайте журнала «Современная электроника» (www.soel.ru). Незначительно изменяя программное обеспечение, можно повысить степень защиты системы: например, увеличивая разрядность эталонного кода до 10.

Литература

  1. www.atmel.com.

Если вам понравился материал, кликните значок — вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал —не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!

01.02.2015 373 0
Комментарии
Рекомендуем

ООО «ИнСАТ» ИНН 7734682230 erid = 2SDnjeiSs2p





ООО «ИнСАТ» ИНН 7734682230 erid = 2SDnjdmbf5z
  Подписывайтесь на наш канал в Telegram и читайте новости раньше всех! Подписаться