Контроллер СКУД на RDM6300

Рассматривая в предыдущей статье модуль считывателя бесконтактных карт EM-Marine RDM6300, можно понять, что этот модуль годится не только на то, чтобы получить актуальную информацию о коде бесконтактной карты, но и использовать его в качестве считывателя для контроллера СКУД (системы контроля и управления доступом). То есть микроконтроллер в этой конструкции будет не только обрабатывать приходящую от модуля считывателя информацию, но и сохранять и впоследствии сравнивать с новой полученной информацией о бесконтактной карте, а в случае совпадения открывать электрозамок (либо электромеханическую защелку).

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

В данной схеме используется микроконтроллер STM32F103C8T6 – недорогой и эффективный 32-битный микроконтроллер, ресурсы которого позволяют многократно совершенствовать конструкцию в будущем. Источником тактирования микроконтроллера является кварцевый резонатор частотой 8 МГц. Для простоты использования устройство оборудовано LCD символьным дисплеем на базе микроконтроллера HD44780. Размер экрана составляет четыре строки по двадцать символов, при этом используется все символьное поле дисплея, поэтому 1602 дисплеи использовать не получится. Меню на дисплее и работу устройства можно посмотреть на видео в конце статьи. Резистор R1 используется для ограничения тока подсветки данного дисплея – чем больше номинал, тем тускнее будет подсветка. Подстроечный резистор R3 регулирует контрастность дисплея. Подключение к микроконтроллеру используется стандартное по 4-битной схеме. Микроконтроллер STM32F103C8T6 не имеет энергонезависимой памяти, где лучше всего хранить информацию о записанных бесконтактных картах, поэтому было решено использовать внешнюю EEPROMпамять – 24LC02 в моем случае.

Данная микросхема имеет интерфейс I2C, по которому и соединяется с микроконтроллером. 24LC02 (или аналогичная память) имеет 256 байт памяти и адресацию в 1 байт. В данной версии прошивки устройства не поддерживается EEPROM с адресацией 2 байта. Выводы А0, А1, А2 микросхемы 24LC02 должны быть подсоединены к минусу питания – эти выводы определяют адрес микросхемы, поэтому если этого не сделать, то микроконтроллер не будет записывать информацию. В качестве считывателя бесконтактных карт используется модуль RDM6300.

Этот модуль имеет интерфейс UART, по которому и соединяется с микроконтроллером. Это первый способ получения доступа – по бесконтактным картам. Второй способ – это ввод пин-кода при помощи энкодера.

Способ ввода пин-кода напоминает способ, используемый в сейфах – необходимо вращением ручки энкодера ввести четырехзначный пароль, после чего доступ будет открыт. Ввод осуществляется следующим способом: из дежурного меню необходимо нажать кнопку энкодера, появится меню ввода пин-кода, вращаем ручку энкодера, набирая необходимую цифру, далее нажимаем еще раз кнопку энкодара и переходим на ввод следующей цифры и так до конца. В случае правильного ввода открывается доступ и загорается светодиод HL1. Если пин-код введен неверный, то загорается светодиод HL2. При этом на дисплее отображается соответствующая информация. Открытие электрозамка происходит при помощи размыкания контактов реле Rel1. Управляется реле микроконтроллером через транзистор T1. В схеме используется КТ815, однако можно использовать любой другой n-p-n транзистор с подходящими параметрами. Вся схема требует три уровня напряжения в данном варианте 12 вольт необходимо для работы реле и электрозамка или электромеханической защелки. 5 Вольт необходимо для LCD дисплея и модуля считывателя бесконтактных карт RDM6300. 3,3 вольта необходимо для работы самого микроконтроллера и EEPROM памяти. Можно было бы избавиться от уровня 12 вольт, используя реле с рабочим напряжением 5 вольт, но электрозамки и электрозащелки используют 12 вольт, поэтому этот уровень напряжения в любом случае останется в схеме. Электрозамок подключается к нормально замкнутому контакту реле, так как в рабочем состоянии должно подаваться напряжение – тогда пластина магнитится к электромагниту и дверь закрыта, при подаче сигнала о разрешении доступа реле перекинет контакт, напряжение снимется с электромагнита и дверь откроется. В случае использования электромеханической защелки ее необходимо подключать к нормально разомкнутому контакту реле и в целом ее работа инверсна электрозамку.

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

Устройство собиралось и тестировалось на макетных платах (финального варианта пока что нет, чтобы трассировать печатную плату):

В качестве релейного модуля используется вариант с 5 вольтовым реле, чтобы тестировать устройство без 12-вольтового уровня напряжения – так проще отлаживать устройство. Светодиоды HL1 и HL2 использовались в одном корпусе двухцветного светодиода, который имеет 3 вывода, средний вывод – общий катод.

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

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
IC1 EEPROM 24LC02 1
IC2 МК STM32 STM32F103C8 1
IC3 RFID считыватель RDM6300 1
VR1 Линейный регулятор LM7805 1
VR2 Линейный регулятор AMS1117-3.3 1
T1 Транзистор КТ815 1 или другой n-p-n
VD1 Выпрямительный диод 1N4007 1
R1 Резистор 22 Ом 1
R2 Резистор 100 Ом 1
R3 Подстроечный резистор 10 кОм 1
R4 Резистор 270 Ом 1
R5, R7, R8, R10-R13 Резистор 10 кОм 7
R6, R9 Резистор 1 кОм 2
R14 Резистор 390 Ом 1
C1, C2 Конденсатор 22 пФ 2
C3, C5-C8, C10, C11 Конденсатор 100 нФ 7
C4 Электролитический конденсатор 470 мкФ 1
C9 Электролитический конденсатор 220 мкФ 1
C12 Электролитический конденсатор 100 мкФ 1
HG1 LCD-дисплей 2004a 1
HL1 Светодиод Зеленый 1 HL1 и HL2 можно использовать как один двухцветный светодиод
HL2 Светодиод Красный 1 HL1 и HL2 можно использовать как один двухцветный светодиод
HL3 Светодиод Зеленый 1
L1 Антенна 1 В комплекте с RDM6300
Z1 Кварцевый резонатор 8 МГц 1
Rel1 Реле hjr-3ff-s-z 1 или любое другое
Jmp1 Перемычка Джемпер 1
S1 Тактовая кнопка 1
S2 Энкодер 1