Не всегда на бесконтактных картах EM-Marine, завоевавших широкое распространение в системах безопасности, контроля доступа и учета рабочего времени, может быть указан тэг в виде комбинации цифр на поверхности самой карты, а также не всегда, нанесенный на поверхность карты или брелка номер соответствует реальности, что часто характерно при покупках из Китая. Так вот, если вам, как и мне, вдруг понадобится знать номера тэгов просто или номера тэгов, соответствующих реальности, то данная статья может быть вам полезна.
Для организации простой, но эффективной системы пропусков чаще всего используются системы с использованием RFID (англ. Radio Frequency IDentification, радиочастотная идентификация) карт EM4100. Такие карты стоят относительно дешево и имеют вменяемую надежность и качество (именно вменяемую, потому что часто могут встречаться бракованные карты, работающие недолго). Эти карты имеют свой уникальный идентификационный номер, который уже при помощи программного обеспечения, используемого в системе контроля и управления доступом, привязывается к конкретному пользователю. Таким образом, в основном осуществляется контроль пропуска сотрудников и учет рабочего времени.
Итак, модуль считыватель бесконтактных RFID карт имеет маркировку RDM6300 (добыт на торговой площадке Aliexpress по цене 3 доллара). Состоит из двух частей: печатная плата с контроллером и необходимой обвязкой (операционный усилитель, стабилизатор напряжения, резисторы, конденсаторы, диоды) и катушка (рамка) для считывания.
Качество изготовления печатной платы модуля и пайка достаточно качественные, смыт даже флюс полностью. Однако есть одно но. Катушка (рамка) припаяна к проводам, которыми она подключается к модулю и заизолирована, но в месте соединения одножильный провод является слабым звеном. Если много экспериментировать, то неизбежно одножильный провод обломается из-за многократного сгибания и разгибания. Что бы этого не произошло можно зафиксировать это место термоклеем как на фото выше либо зафиксировать любым другим доступным методом. В целом же сам модуль достаточно интересен сам по себе, но имеет немного странный и нелогичный форм фактор. Такое чувство, что этот модуль сделан просто как получилось, так получилось в плане печатной платы модуля.
Характеристики модуля RDM6300:
- Частота 125 кГц
- Напряжение питания 5 вольт
- Потребляемый ток до 50 мА
- Расстояние считывания карты в пределах 5 см
- Интерфейс Weigang26 или TTL Electricity Level RS232 format
- Baud Rate 9600
Назначение контактов на плате модуля на обозначено, назначение контактов модуля ниже:
Контакты P3 необходимы для подключения внешнего светодиода, но гореть он будет только в момент считывания данных бесконтактной карты, а это достаточно короткий промежуток времени. Кроме всего этого, как видно из информации выше, модуль передает информацию по RS232 и в формате WEIGAND (простой проводной интерфейс связи между устройством чтения идентификатора (карточки) и контроллером, широко применяемый в системах контроля доступа (СКУД). Предназначен для передачи результата идентификации со считывателя СКУД на контроллер). А это значит, что этот модуль можно подключить чуть ли не куда угодно — к микроконтроллеру, к контроллеру СКУД, к компьютеру без единого вмешательства в схему!
Карты EM-Marine имеют следующий вид (на поверхности имеется информация этой карты, в том числе тэг):
Устройство построим на базе микроконтроллера STM32F103C8T6. Схема:
Резистор R5 подтягивает вывод BOOT0 к земле, что обеспечивает выполнение программы из flash памяти, при этом уровень на выводе PB2 (BOOT1) не учитывается и может быть как нулем, так и единицей (при комбинации нулей и единиц на BOOT0 и BOOT1 обеспечивается выполнение программы из разных областей памяти при включении питания – flash, SRAM, ISP). Кнопка S1 необходима лишь для удобства – после прошивки микроконтроллера его необходимо перезапустить, что и делается при нажатии на эту кнопку. Для обеспечения заданного режима по питанию используется стабилизатор напряжения AMS1117-3,3. LCD дисплей используется на базе контроллера HD44780, в моем варианте это 2004а – четыре строки по двадцать символов. В данной ситуации микроконтроллер STM32 питается от напряжения 3,3 вольта, а LCD дисплей от напряжения 5 вольт и при этом взаимодействуют друг с другом. Дело в том, что большинство выводов микроконтроллера толерантные к уровням напряжения 5 вольт. Подключение LCD дисплея к микроконтроллеру осуществляется по стандартной 4-х битной схеме. Резистор R1 ограничивает ток подсветки дисплея, подстроечный резистор R2 задает контраст символов на экране. Светодиод HL1 играет скорее эстетическую роль нежели практическую, поэтому при желании можно обойтись и без него. Резистор R7 ограничивает ток, протекающий через светодиод, чтобы он не вышел из строя. Кварцевый резонатор используется на частоту 8 МГц, однако тактовая частота микроконтроллера и его шин настроена на 24 МГц. Частота в данном случае весьма избыточна, поэтому при желании ее можно понизить для энергосбережения.
На дисплей выводится информация, считанная с бесконтактной карты, а именно заголовок (header), номер тэга (tag no), результат проверки контрольной суммы (если все в порядке, то checksum OK) и вся эти информация в шестнадцатиричной форме, в которой она передается с модуля RDM6300. Первый символ в этой строке это начало строки ASKII, а последний — конец строки, между двумя этими символами находится необходимая нам информация, которую необходимо расшифровать. Первые два символа — это заголовок. Далее четыре символа — тэг перед запятой. Следующие четыре символа — тэг после запятой. Последние два символа — контрольная сумма. Контрольная сумма это результат операции исключающего «ИЛИ»:
k3 = hexBlock1 ^ hexBlock2 ^ hexBlock3 ^ hexBlock4 ^ hexBlock5;
Для того, чтобы удостовериться в корректности принятой информации контрольную сумму необходимо рассчитать и сравнить со значением принятой информации. Не стоит упускать тот факт, что существуют китайские подделки, которые могут содержать самый неожиданный «мусор».
Таким образом мы получаем устройство, считывающее информацию с бесконтактных карт (собиралось устройство на макете для проверки полутора десятка бесконтактных карт и брелков):
Ниже вы можете скачать исходные коды (проект на основе Cube и Keil), а также некоторую полезную дополнительную информацию к статье.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
IC1 | МК STM32 | STM32F103C8 | 1 | |||
IC2 | Модуль RFID | RDM6300 | 1 | |||
VR1 | Линейный регулятор | AMS1117-3.3 | 1 | |||
HG1 | LCD-дисплей | 2004a | 1 | |||
R1 | Резистор | 22 Ом | 1 | |||
R2 | Подстроечный резистор | 10 кОм | 1 | |||
R3, R5, R6 | Резистор | 10 кОм | 3 | |||
R4 | Резистор | 100 Ом | 1 | |||
R7 | Резистор | 390 Ом | 1 | |||
C1, C2 | Конденсатор | 22 пФ | 2 | |||
C3, C4, C5, C7, C8, C9 | Конденсатор | 100 нФ | 6 | |||
C6 | Электролитический конденсатор | 220 мкФ | 1 | |||
C10 | Электролитический конденсатор | 10 мкФ | 1 | |||
Z1 | Кварцевый резонатор | 8 МГц | 1 | |||
HL1 | Светодиод | 1 | ||||
S1 | Кнопка | 1 | ||||
L1 | Антенна | 1 | в комплекте с RDM6300 | |||