Rdm6300 arduino uno дубликатор

Подключаем RDM6300 к Ардуино

RDM6300 — бесконтактный модуль для считывания данных RFID карт, брелков, различных электронных браслетов, отпирающих электромагнитных ∕ электромеханических и других устройств, которые функционируют на частоте 125 кГц. Модуль снабжен интерфейсом UART (TTL), благодаря которому вся информация поступает на контроллер быстро и оперативно.

RFID-считыватели подобного плана обладают массой преимуществ: они долговечны, легки в сборке, доступны по цене, функционируют на различных расстояниях (даже без прямой видимости, это зависит от модели), передают значительные объемы показаний и т.д. По этим причинам их активно используют для идентификации живых и неживых объектов в магазинах, архивах, библиотеках, режимных и промышленных предприятиях, системах логистики и контроля подлинности изделий. Сфер применения на самом деле гораздо больше, но суть ясна.

Что можно сказать о технических параметрах устройства? – Давайте их рассмотрим:

  • напряжение питания: 5V;
  • рабочая частота: 125 кГц;
  • ток: Поделись в социальных сетях:

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Сегодня хотим поговорить с вами о том, как подключить RC522 к Ардуино и что это за технология в целом. RFID (в переводе означает радиочастотная идентификация).

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет.

Давайте сегодня рассмотрим подключение CP2102 к Arduino — USB-UART 6-пинового конвертера. Подобные устройства еще называют переходниками либо.

На повестке дня — подключение LM35 к Arduino. Сегодня мы рассмотрим модуль устройства, его базовые характеристики, область применения и схему подключения. И.

В новом информационном обзоре рассматриваем GSM модуль SIM800L к Arduino. Почему выбрано именно это устройство? Во-первых, оно достаточно известно и популярно.

Источник

Interfacing RDM6300 RFID Reader Module with Arduino

Table of Contents

RDM6300 RFID Reader Module Features

If you are a little familiar with electronics then you have probably heard of RFID (Radio-Frequency-Identification). The RDM6300 model is one type of RFID modules with 125 kHz frequency. This module is designed for reading code from 125KHz (ID) compatible read-only tags and read/write 125KHz cards.

Features:

  • Support external antenna
  • Maximum effective distance: up to 50 mm
  • Uart interface
  • Small outline design

RDM6300 RFID Reader Module Pinout

This module has 9 pins:

  • VCC: Module power supply – 5V
  • GND: Ground
  • RX: Data Receive pin
  • TX: Data Transmit pin
  • ANT1: Antenna connection pin
  • ANT2: Antenna connection pin
  • LED: LED pin – This pin will be HIGH when there is no tag near module. When a tag is near module, it will change from HIGH to LOW for a short period of time.

You can see the pinout of this module here.

Источник

Подключение модуля чтения RFID меток RDM6300 к Arduino

Радиочастотная идентификация (Radio Frequency Identification, RFID) получает все большее распространение в современном мире. Эта технология использует электромагнитные волны радиочастотного диапазона для передачи данных. Простейшая система радиочастотной идентификации (RFID) состоит из 2-х компонентов: сама метка и считывающее ее устройство. Считывающее устройство для RFID меток состоит из радиочастотного модуля и антенны, с помощью которых генерируется электромагнитное поле высокой частоты. RFID метка является пассивным устройством, содержащим микрочип, который производит хранение и обработку информации.

В данной статье мы рассмотрим подключение модуля чтения RFID меток RDM6300 к плате Arduino Nano. Модуль чтения RFID (RFID Reader Module) меток RDM6300 работает на частоте 125 кГц – он может считывать информацию и записывать информацию (если они поддерживают функцию записи) на метки, работающие на частоте 125 кГц.

Ранее на нашем сайте мы уже рассматривали подключение к плате Arduino модулей чтения RFID меток MFRC522 и EM-18. Также на нашем сайте вы можете посмотреть все проекты, в которых использовалась радиочастотная идентификация.

Необходимые компоненты

  1. Плата Arduino Nano (купить на AliExpress).
  2. RDM6300 RFID Reader Module (модуль чтения RFID меток) (купить на AliExpress).
  3. 125 kHz Tags (метки, работающие с частотой 125 кГц).
  4. Макетная плата.
  5. Соединительные провода.

Модуль чтения RFID меток RDM6300 (EM4100)

Модуль RDM6300 (EM4100) предназначен для чтения и записи информации на метки, работающие на частоте 125 кГц. Он может использоваться в системах наблюдения и безопасности, персональной аутентификации, контроля доступа, цифровых игрушках и во многих других приложениях. Модуль RDM6300 представляет собой бесконтактную RFID плату, содержащую радиоприемник и встроенный микроконтроллер. Используя высокоэффективный алгоритм декодирования модуль может считывать RFID метки типа EM4100 и совместимые с ними метки. Модуль RDM6300 использует последовательную связь со скоростью 9600 бод (в логике TTL) для передачи данных от RFID меток, поэтому для считывания данных с данного модуля можно использовать любой микроконтроллер, имеющий UART (universal asynchronous receiver / transmitter — универсальный асинхронный приемопередатчик).

Назначение контактов (распиновка) модуля RDM6300 представлена в следующей таблице.

Название контакта Назначение контакта
5V питающее напряжение
GND общий провод (земля)
RX контакт приема данных
TX контакт передачи данных
ANT1 контакт для подключения антенны
ANT2 контакт для подключения антенны

Технические характеристики модуля чтения RFID меток RDM6300:

  • рабочая частота: 125 кГц;
  • скорость передачи данных: 9600 бод;
  • интерфейс: RS232 с логикой TTL;
  • рабочее напряжение: 5 В постоянного тока;
  • рабочий ток:

Источник

Эмулятор RFID на Arduino

Многие читали мой пост «Эмулятор RFID», где я в деталях рассказывал об устройстве EM Marine, о том как намотать антенну, и как сделать RFID-эмулятор из трёх деталей. Но, будем честны, несмотря на гениальную простоту того устройства, оно достаточно сложно для повторения. Не каждый имеет дома осциллограф, для того чтобы поймать резонанс, да и для прошивки ATtiny85 требуется отдельный программатор.

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

Аппаратное обеспечение

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

У нас есть колебательный контур, который мы будем замыкать в определённое время транзистором и таким образом в считывателе будет изменяться ток, и он будет получать передаваемые данные.
Самым сложным для нас в этой связке остаётся настроенный на частоту 125 кГц колебательный контур. И есть очень простое решение, откуда его можно взять. В продаже существует считыватель RFID-меток для Arduino RDM6300. Считыватель стоит сущие копейки, а у него в комплекте уже идёт антенна, а резонансный конденсатор уже распаян на плате. Таким образом, по сути считыватель нам нужен только для двух деталей: катушки и резонанстного конденсатора.

Считыватель RDM6300 и расположение резонансного конденсатора.

Я купил этот считыватель за какие-то копейки, которые несоизмеримы с трудами по намотке и настройке антенны. Самая сложная операция у нас — это отпаять данный конденсатор и припаять его на монтажную плату. Верю, что с ней справиться даже школьник младших классов.
В результате собираем всё на макетной плате. У меня два резистора в параллели стоит только лишь потому, что на 10кОм резисторов у меня не было под рукой, а были только на 20кОм.

Ну и посмотрим крупным планом, как это всё выглядит. Я специально под конденсатор выделил отдельную платку, там он припаян прямо на монтажные иголки, которые вставлены в этот матрац.

Для того, чтобы проверять работу эмулятора, изначально я думал использовать тот же RDM6300 (купил их два). И даже по началу так и делал, но потом решил, что это как-то не серьёзно, одной Ардуиной отлаживать другую, и разорился на заводской считыватель.

Взводим таймер

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

Напомню, что у EM4102 используется схема Манчестерского кодирования. Когда идёт модуляция EM4102 протокола, время передачи одного бита может составлять 64, 32 или 16 периодов несущей частоты (125 кГц).

Проще говоря, при передаче одного бита, у нас меняется значение либо единицы на нуль (при передаче нуля), либо с нуля на единицу (при передаче единицы). Соответственно, если мы выбираем для передаче одного бита информации 64 периода несущей частоты, то для передачи “полубита” нам нужно будет 32 периода несущей частоты. Таким образом каждый полубит должен меняться с частотой:

Период этого “полубита” будет равен 256 мкс.

Теперь нам нужно посчитать таймер, чтобы он нам дёргал ногу с данной частотой. Но я стал так ленив, что открыв даташит и начав зевать, решил найти какое-то готовое решение. И оказалось, что есть готовые расчёты таймеров, только вбивай свои данные. Встречайте: калькулятор таймера для Ардуино.

Нам необходимо только забить частоту таймера 3906 Гц, и нам сразу сгенерируют готовый к использованию код. Ну не чудо ли!

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

Гениально, просто, лаконично.

Вектор прерывания для вывода устроен тоже очень просто. Напоминаю, что нам необходимо делать переход с единицы на нуль в случае передачи нуля, и с нуля на единицу, в случае передачи единицы (смотрите рисунок для понимания). Поэтому смотрим, что мы сейчас передаём и в каком месте “полубита” находимся, постепенно считывая из массива data все данные.

Перевод данных для передачи

Тут тоже следует освежить в памяти форматы данных, хранимые на карте. То, в каком виде они записаны. Давайте на живом примере.

Предположим у нас есть карта, но нет ридера. На карте написан номер 010,48351.

Реальная карта с номером 010, 48351.

Как этот номер нам перевести в тот серийный номер, который записан на карте? Достаточно просто. Вспоминаем формулу: переводим две части числа отдельно:

Итого, серийный номер у нас получается: 0xABCDF. Проверим его, считываем карточку считывателем (он читает в десятичном формате), получаем число:

Переводим его любым калькулятором в хекс-формат и получаем снова: 0xABCDF.
Вроде пока просто, погодите, сейчас мозги придётся поднапрячь. Напомню формат данных, которые лежат на самой карте.

  1. Вначале идут девять единиц заголовка.
  2. Младшие пол байта ID клиента.
  3. В конце бит чётности.
  4. Вторые пол байта ID клиента.
  5. Бит чётности.
  6. Младшие пол байта нулевого байта серийного номера.
  7. Бит чётности
  8. Старшие пол байта данных байта нулевого байта серийного номера.
  9. Точно так же все остальные данные, передаются ниблами и оканчиваются битом чётности
  10. Самое сложное. Теперь все эти 10 нибблов по вертикали точно так же вычисляется бит чётности (прямо как в таблице).
  11. Завершает всё это безобразие стоп бит, который равен всегда нулю.

Итого у нас получается 64 бита данных (это из пяти байт!). В качестве ремарки, мой считыватель не читает ID-клиента, и я его принимаю равным нулю.

Что такое бит чётности? Это количество единиц в посылке: если оно чётное, то бит чётности равен нулю, если нет, то единице. Проще всего рассчитать его, просто обычным XOR.

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

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

card_id — это серийный номер карты (о котором мы говорили выше).

Первый столбец — это ниблы, второй — их битовое представление, третий — это бит чётности. Третья строка снизу — это биты чётности всех ниблов. Как я уже сказал, они рассчитываются просто операцией XOR.

Протестировав расчёты, сверив иx визуально, я проверил получившиеся данные в программе на Arduino (последняя строка специально для вставки в код). Всё отработало отлично. В результате наброска этой программы, я получил готовую функцию пересчёта. Раньше, расчёты битов были чужими программами на компе и мне не нравилась их монструозная реализация. Таким образом функция пересчёта серийного номера в формат передачи выглядит так:

Всё, можно переходить к полевым испытаниям. Исходный код проекта обитает тут.

Испытания

Как говориться, лучше один раз увидеть, чем тысячу раз прочитать. Специально для вас записал кино о работе этого эмулятора. Хотел его протестировать на реальном железе, и попробовать пробраться в офис с помощью Arduino, но с проклятой пандемией туда не пускают. Поэтому натурные испытания придётся смотреть на столе, в лабораторных условиях.

Выводы

Очень надеюсь, что подобные статьи подстегнуть новичков изучать программирование и электронику. А так же они поспособствуют уходу с рынка такого типа карт, как самых незащищённых и небезопасных, поскольку теперь их может скопировать и эмулировать даже ребёнок.

Выражаю благодарность Michal Krumnikl за его терпение много-много лет назад, когда он мне по icq разъяснял работу подобного эмулятора, а так же помощь с разработкой кода. В некотором смысле это его идеи и наработки 13-ти летней давности.

Источник

Adblock
detector