Реклама ⓘ
Главная » Охрана
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Считыватель бесконтактных карт радио-меток RFID RC522

Предлагаю Вашему внимаю обзор и в данном обзоре мы рассмотрим и протестируем модуль считывателя бесконтактных карт радио-меток RFID с обозначением RC522. Модуль построен на одноименном контроллере MFRC522 и может считывать и записывать информацию с/на бесконтактные радио метки RFID работающие на частоте 13,56 МГц. На Алиэкспресс есть много продавцов с данным модулем и соответственно с разными ценами на него. Заказ был сделан на самый дешёвый из них. Целью было быстро проверить работоспособность и пригодность модуля простым способом, пока не закончено основное устройство управления им. В итоге был получен положительный результат. А если рассматривать этот модуль в конкретной конструкции, то это тема уже другой статьи и об этом поговорим немного позже. В данной же статье Мы рассмотрим с Вами следующие пункты:

  • Заказ, доставка, распаковка;
  • Внешний осмотр, визуальная оценка;
  • Знакомство с документацией модуля;
  • Обзор справочных данных контроллера модуля;
  • Подключение и проверка модуля;
  • Вывод, окончательная оценка.

Заказ, доставка, распаковка

Заказ производился в китайском интернет-магазине Алиэкспресс стоимостью около 75 рублей:

Товар на Алиэкспресс

В Грузию товар был доставлен бесплатно компанией "4PX Singapore Post OM Pro" в стандартном пакете:

Товар в пакете

Внутри пакета находился свёрток с пупырышками:

Обёртка с пупырышками

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

Модуль в антистатическом пакете

С одной стороны пакета всё хорошо, но перевернув его видим, что согнутые штырьки, которые идут в комплекте с модулем, лежат в этом же пакете и проткнув его нарушили герметизацию:

Модуль в антистатическом пакете

Внешний осмотр, визуальная оценка

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

Плата модуля снизу

Со стороны радиоэлементов всё в порядке. Детали установлены ровно, флюс хорошо отмыт, повреждений не найдено:

Плата модуля со стороны деталей

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

Плата модуля в руке взрослого человека

Знакомство с документацией модуля

Рассмотрим описание с сайта продавца:

описание с сайта продавца

В RC522 применяется высокоинтегрированный считывающий и записывающий чип, работающий с бесконтактными картами на частоте 13,56 МГц , изготовленный для применения в низковольтных и недорогих устройствах небольшого размера. MF RC522 использует усовершенствованную концепцию модуляции и демодуляции, полностью интегрированную во всех типах пассивных бесконтактных коммуникационных методов и протоколов 13,56 МГц. Кроме того, поддерживаются быстрые алгоритмы шифрования CRYPTO1 и терминологическая проверка продуктов MIFARE. MFRC522 поддерживает высокоскоростную бесконтактную связь MIFARE, двухстороннюю скорость передачи данных до 424 кбит / с. Связь между ним и режимом SPI хоста помогает сократить объем соединения узкой печатной платы и снизить затраты.

Технические параметры:
1. Рабочий ток: 13-26 мА / DC 3,3 В
2. Ток ожидания: 10-13 мА / DC 3,3 В
3. Дежурный ток: <80 мкА
4. Пиковый ток: <30 мА
5. Рабочая частота: 13,56 МГц
6. Поддерживаемые типы карт: mifare1 S50, mifare1 S70 MIFARE Ultralight, mifare Pro, MIFARE DESFire
7. Физические характеристики продукта: размер: 40 мм × 60 мм
8. Рабочая температура: -20-80 ºC
9. Температура хранения: -40-85 ºC
10. Относительная влажность: 5% -95%
11. Интерфейсы: интерфейс SPI
12. Скорость передачи данных: до 10 Мбит / с
 
В комплект входит:
1 шт. RFID 13.56MHz RC522 RF Proximity Module Board.

Модуль работает через интерфейс SPI и придётся задействовать почти все выводы, ну кроме IRQ, который является необязательным:

Распиновка считывателя бесконтактных карт - радио меток RFID RC522

Распиновка из документации совпадает с реальной:

Распиновка считывателя бесконтактных карт - радио меток RFID RC522

Также представляю принципиальную схему модуля, которую прислал продавец:

Принципиальная схема считывателя бесконтактных карт - радио меток RFID RC522

Видим, что модуль состоит из микросхемы MFRC522 с небольшой обвязкой в виде резисторов, конденсаторов и кварцевого резонатора на частоту 27,12 МГц. Катушки представляют из себя витки дорожки на печатной плате и играют роль антенны для связи с бесконтактной радиочастотной меткой.

Обзор справочных данных контроллера модуля

Коротко рассмотрим документацию на микросхему MFRC522:

Технические характеристики MFRC522  Технические характеристики MFRC522

Технические характеристики MFRC522  Технические характеристики MFRC522

Технические характеристики MFRC522

MFRC522 - это высокоинтегрированный считыватель/записыватель для бесконтактной связи на частоте 13,56 МГц. Микросхема MFRC522 поддерживает стандарт ISO 14443A/MIFARE® и может управлять антеной считывателя/записывателя, предназначенной для связи с картами и транспондерами ISO/IEC 14443A/MIFARE® без дополнительной активной схемы. Часть приемника обеспечивает надежную и эффективную реализацию схемы демодуляции и декодирования для сигналов от совместимых с ISO/IEC 14443A/MIFARE карт и транспондеров. Цифровая часть обрабатывает полный ISO/IEC 14443A, кадрирование и обнаружение ошибок(Parity & CRC). MFRC522 поддерживает продукты MIFARE® Classic (например, MIFARE® Standard) и работает с использованием высоких скоростей передачи данных MIFARE® до 848 кбит/с в обоих направлениях.
Реализованы различные интерфейсы хоста:

  •  Интерфейс SPI
  •  последовательный UART(аналогичный RS232 с уровнями напряжения в соответствии с напряжением питания)
  •  Интерфейс I2C.

Особенности:

  • Высокоинтегрированные аналоговые схемы для демодуляции и декодирования ответов
  • Буферизованные выходные драйверы для подключения антенны с минимальным количеством внешних компонентов
  • Поддерживает ISO/IEC 14443A/MIFARE®
  • Типичное рабочее расстояние в режиме чтения/записи для связи с ISO/IEC 14443A/MIFARE® до 50 мм в зависимости от размера антенны и настройки
  • Поддерживает шифрование MIFARE® Classic в режиме чтения/записи
  • Поддерживает обмен информацией со скоростью передачи данных ISO/IEC 14443A до 848 кбит/с
  • Поддержка MFIN/MFOUT
  • Дополнительный источник питания для непосредственного подключения микросхемы смарт-карты, подключенной через MFIN/MFOUT 

Поддерживаемые интерфейсы хоста:

  • Интерфейс SPI до 10 Мбит/с
  • I2C-интерфейс до 400 кбит/с в режиме быстрого доступа до 3400 кбит/с в высокоскоростном режиме
  • последовательный UART с разной скоростью передачи данных до 1228,8 кбит/с, обрамление в соответствии с интерфейсом RS232 с уровнями напряжения в соответствии с напряжением питания
  • Удобный 64-байтовый прием и передача FIFO-буфера
  • Гибкие режимы прерывания
  • Жесткий сброс с низкой мощностью
  • Режим отключения питания для программного обеспечения
  • Программируемый таймер
  • Внутренний генератор для подключения кварца 27,12 МГц
  • Источник питания 2,5 - 3,3 В
  • Сопроцессор CRC
  • Свободные программируемые контакты ввода/вывода
  • Внутренняя самодиагностика 

Далее в документе приводятся блок-схема, назначение выводов, функциональные характеристики, логика работы и многое другое, что выходит за рамки этой статьи. Если кому то интересно, то может просмотреть прилагаемый документ с техническими характеристиками. 

Подключение и проверка модуля

Я подключил данный модуль к отладочной плате Arduino UNO, но можно использовать любой другой контроллер с последовательной шиной SPI, соответственно скоммутировав выводы между собой. Пример коммутации с Arduino UNO приведён на рисунке: 

Пример подключения модуля RC522 к Arduino UNO

Для подключения и проверки я использовал:

  1. Отладочную плату Arduino UNO;
  2. USB кабель для питания Arduino и для мониторинга её последовательного порта;
  3. Согнутую гребёнку со штырьками и семью разноцветными проводами для коммутации;
  4. Бесконтактную пластиковую карточку радио-метку типа Mifare Ultralight;
  5. Ну и собственно сам модуль RFID RC522;

Отладочная плата Arduino UNO USB кабель для питания Arduino и для мониторинга её последовательного порта 

Согнутая гребёнкa со штырьками и семью разноцветными проводами для коммутации Бесконтактная пластиковая карточка радио-метка типа Mifare Ultralight 

Ещё нам понадобится персональный компьютер c Arduino IDE для загрузки программы в микроконтроллер и для просмотра информации через последовательный порт отладочной платы. Модуль RC522 с отладочной платой Arduino UNO я соединил по следующей схеме: 

Схема соединения модуля RC522 с отладочной платой Arduino UNO

С одной стороны я припаял провода к гребёнке, а с другой прямо к модулю считывателя RC522: 

Распаянный модуль RC522

Гребёнку я разделил на две части, подключив одну часть к питанию, а вторую к шине SPI отладочной платы Ардуино: 

Соединение модуля RC522 с отладочной платой Arduino UNO

Для проверки, в качестве программы для Ардуино, я использовал два примера из библиотеки MFRC522. Первый пример называется "firmware_check" и показывает версию прошивки контроллера MFRC522. Он может определять только известные версии, но даже если тест прошёл, это не означает что весь модуль полностью работоспособен - могут быть физические причины его неработоспособности, такие как повреждённая обвязка, сломанная антенна или нерабочая радио-метка. Далее привожу текст программы данного примера:

/*
 * --------------------------------------------------------------------------------------------------------------------
 * Example sketch/program to test your firmware.
 * --------------------------------------------------------------------------------------------------------------------
 * This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid
 * 
 * This example test the firmware of your MFRC522 reader module, only known version can be checked. If the test passed
 * it do not mean that your module is faultless! Some modules have bad or broken antennas or the PICC is broken.
 * NOTE: for more informations read the README.rst
 * 
 * @author Rotzbua
 * @license Released into the public domain.
 * 
 * Typical pin layout used:
 * -----------------------------------------------------------------------------------------
 *             MFRC522      Arduino       Arduino   Arduino    Arduino          Arduino
 *             Reader/PCD   Uno/101       Mega      Nano v3    Leonardo/Micro   Pro Micro
 * Signal      Pin          Pin           Pin       Pin        Pin              Pin
 * -----------------------------------------------------------------------------------------
 * RST/Reset   RST          9             5         D9         RESET/ICSP-5     RST
 * SPI SS      SDA(SS)      10            53        D10        10               10
 * SPI MOSI    MOSI         11 / ICSP-4   51        D11        ICSP-4           16
 * SPI MISO    MISO         12 / ICSP-1   50        D12        ICSP-1           14
 * SPI SCK     SCK          13 / ICSP-3   52        D13        ICSP-3           15
 */

#include <SPI.h>
#include <MFRC522.h>

constexpr uint8_t RST_PIN = 9;     // Configurable, see typical pin layout above
constexpr uint8_t SS_PIN = 10;     // Configurable, see typical pin layout above

MFRC522 mfrc522(SS_PIN, RST_PIN);  // Create MFRC522 instance

/**
 * Check firmware only once at startup
 */
void setup() {
  Serial.begin(9600);   // Initialize serial communications with the PC
  while (!Serial);      // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
  SPI.begin();          // Init SPI bus
  mfrc522.PCD_Init();   // Init MFRC522 module
  
  Serial.println(F("*****************************"));
  Serial.println(F("MFRC522 Digital self test"));
  Serial.println(F("*****************************"));
  mfrc522.PCD_DumpVersionToSerial();  // Show version of PCD - MFRC522 Card Reader
  Serial.println(F("-----------------------------"));
  Serial.println(F("Only known versions supported"));
  Serial.println(F("-----------------------------"));
  Serial.println(F("Performing test..."));
  bool result = mfrc522.PCD_PerformSelfTest(); // perform the test
  Serial.println(F("-----------------------------"));
  Serial.print(F("Result: "));
  if (result)
    Serial.println(F("OK"));
  else
    Serial.println(F("DEFECT or UNKNOWN"));
  Serial.println();
}

void loop() {} // nothing to do

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

Результат работы примера firmware_check библиотеки MFRC522

Далее я использовал другой пример из библиотеки MFRC522. Этот пример под названием DumpInfo работает с радио-метками и в монитор последовательного порта выдаёт все данные, которые удалось прочитать с радио-метки. Привожу текст программы данного примера:

/*
 * --------------------------------------------------------------------------------------------------------------------
 * Example sketch/program showing how to read data from a PICC to serial.
 * --------------------------------------------------------------------------------------------------------------------
 * This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid
 * 
 * Example sketch/program showing how to read data from a PICC (that is: a RFID Tag or Card) using a MFRC522 based RFID
 * Reader on the Arduino SPI interface.
 * 
 * When the Arduino and the MFRC522 module are connected (see the pin layout below), load this sketch into Arduino IDE
 * then verify/compile and upload it. To see the output: use Tools, Serial Monitor of the IDE (hit Ctrl+Shft+M). When
 * you present a PICC (that is: a RFID Tag or Card) at reading distance of the MFRC522 Reader/PCD, the serial output
 * will show the ID/UID, type and any data blocks it can read. Note: you may see "Timeout in communication" messages
 * when removing the PICC from reading distance too early.
 * 
 * If your reader supports it, this sketch/program will read all the PICCs presented (that is: multiple tag reading).
 * So if you stack two or more PICCs on top of each other and present them to the reader, it will first output all
 * details of the first and then the next PICC. Note that this may take some time as all data blocks are dumped, so
 * keep the PICCs at reading distance until complete.
 * 
 * @license Released into the public domain.
 * 
 * Typical pin layout used:
 * -----------------------------------------------------------------------------------------
 *             MFRC522      Arduino       Arduino   Arduino    Arduino          Arduino
 *             Reader/PCD   Uno/101       Mega      Nano v3    Leonardo/Micro   Pro Micro
 * Signal      Pin          Pin           Pin       Pin        Pin              Pin
 * -----------------------------------------------------------------------------------------
 * RST/Reset   RST          9             5         D9         RESET/ICSP-5     RST
 * SPI SS      SDA(SS)      10            53        D10        10               10
 * SPI MOSI    MOSI         11 / ICSP-4   51        D11        ICSP-4           16
 * SPI MISO    MISO         12 / ICSP-1   50        D12        ICSP-1           14
 * SPI SCK     SCK          13 / ICSP-3   52        D13        ICSP-3           15
 */

#include <SPI.h>
#include <MFRC522.h>

constexpr uint8_t RST_PIN = 9;          // Configurable, see typical pin layout above
constexpr uint8_t SS_PIN = 10;         // Configurable, see typical pin layout above

MFRC522 mfrc522(SS_PIN, RST_PIN);  // Create MFRC522 instance

void setup() {
	Serial.begin(9600);		// Initialize serial communications with the PC
	while (!Serial);		// Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
	SPI.begin();			// Init SPI bus
	mfrc522.PCD_Init();		// Init MFRC522
	mfrc522.PCD_DumpVersionToSerial();	// Show details of PCD - MFRC522 Card Reader details
	Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
}

void loop() {
	// Look for new cards
	if ( ! mfrc522.PICC_IsNewCardPresent()) {
		return;
	}

	// Select one of the cards
	if ( ! mfrc522.PICC_ReadCardSerial()) {
		return;
	}

	// Dump debug info about the card; PICC_HaltA() is automatically called
	mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}

При поднесении бесконтактной карточки радио-метки к зоне работы считывателя RC522 происходит считывание записанной информации и её отправка в монитор последовательного порта:

Считывание информации с бесконтактной карты радио-метки считывателем RC522

Как и в предыдущем примере, при запуске микроконтроллера в функции setup() проверяется версия прошивки считывателя, затем в функции loop() определяется наличие радио-метки в зоне действия считывателя и выдаётся информация о типе, серийном номере и содержимом внутренней памяти бесконтактной карточки или другой поддерживаемой радио-метки. Результат работы смотрите на картинке:

Результат работы примера DumpInfo библиотеки MFRC522

В обеих примерах нам понадобится стандартная библиотека Ардуино "SPI" для работы по шине SPI и библиотека "MFRC522" для работы со считывателем RC522. Приведённые примеры уже находятся в библиотеке MFRC522 и в них Вы можете посмотреть варианты соединения считывателя RC522 с другими отладочными платами Arduino. Два вывода модуля считывателя можно назначить программно - это выводы "RST" и "SDA", остальные же работают аппаратно и жёстко привязаны к определённым портам отладочной платы.

Потребляемый модулем считывателя ток мне удалось замерить только в ждущем режиме с отсоединёнными выводами шины SPI, так как модуль работает от напряжения 3,3 В, а на портах отладочной платы Arduino UNO, во время логической единицы, напряжение достигает 5 В и основной ток в рабочем режиме течёт именно через шину SPI замыкаясь на шину питания модуля считывателя RC522. Ток потребления модуля без подключённой шины SPI составил почти 11 мА:

Ток потребления модуля считывателя RC522 в ждущем режиме

В интернете есть версия подключения модуля считывателя к Arduino UNO через согласующую схему на резисторах и диодах, но так как в официальной документации такая схема не используется, то я не стал усложнять задачу и прямо подключил выводы считывателя к портам отладочной платы.

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

Замер расстояния считывания карточки модулем RC522

При приближении карточки к модулю надёжное считывание информации начинается с расстояния 3,5 см, а при удалении связь теряется на расстоянии 4 см.:

Максимальное надёжное расстояние считывания

При приближении карточки вплотную к считывателю связь теряется на расстоянии менее одного сантиметра и в последующем удалении карточки от модуля надёжное расстояние считывания начинается с полтора сантиметра:

Минимальное надёжное расстояние считывания

В итоге уверенная зона работы модуля считывателя находится на расстоянии от 1,5 до 3,5 см от антенны модуля при параллельном нахождении данной карточки. В случае же с брелками или другими типами поддерживаемых карточек это расстояние может отличаться от замеренного. Так же программно можно менять мощность передатчика модуля, но здесь мы не будем затрагивать эту тему, так как данная статья представляет обзор и проверку модуля как есть, прямо из пакета, без изменения параметров и добавления узлов согласования.

Окончательный вывод

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

Скажу несколько слов о самом модуле считывателя. Из достоинств отмечу, что он имеет небольшой размер, питается от низкого напряжения, потребляет небольшой то, имеет режим сна, выход для прерываний, высокую скорость, приемлемую дальность действия и поддержку большого числа типов радио-меток, работающих на частоте 13,56 МГц. 
На счёт недостатков скажу, что штатный светодиод просто играет роль индикатора питания и нет никакой другой индикации процесса чтения/записи. Так же считаю недостатком шину SPI, так как она требует большого количества проводов, но имеет высокую скорость передачи данных. Хотя сам контроллер MFRC522 работает с другими интерфейсами, но переход на другой интерфейс требует установки определённых логических уровней на определённых выводах микросхемы и нужна небольшая переделка.

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

Прикрепленные файлы:

Теги:

Опубликована: 0 1
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (11) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
Стальной #
Для него нормально работать на уровнях 5В?
Ответить
0
Attiny2313 #
Питание исключительно 3.3В, если подать 5 - сгорит. При этом логические уровни на 5В работают замечательно, можно подключать. Но в идеале всё же 3.3 использовать на всех уровнях.
Ответить
+1

[Автор]
andro #
В интернете есть рекомендации по согласованию уровней, но этот модуль нормально работает и с уровнями 5В. Скорее всего у микросхемы на портах будут стоять ограничивающие диоды на землю и на питание, я не уверен, но судя по тому, что ток портов замыкается на шину питания, то это так и есть.
Отредактирован 13.11.2017 08:49
Ответить
0
Zlodey #
Питание, а также все логические уровни 2,5...3,6 вольт. Читайте даташит. Никаких 5 вольт там быть не должно - через защитные диоды попрёт на шину питания, возможно отгорят защитные диоды.
Ответить
0

[Автор]
andro #
Да, я тоже об этом беспокоился, но для того и делалась проверка, что бы узнать истину. Не знаю как поведёт себя модуль с другими устройствами, но с Arduino UNO он работает уже больше месяца, и никаких проблем не замечено.
Ответить
-2
Стальной #
Вот-вот.
Ответить
+1
Pauk #
2,5-3,6 В это напряжение питания, про логические уровни там не сказано. Или я что то упустил?
Ответить
+1
Стальной #
Плохая идея подавать на входы логики напряжение выше, чем напряжение питания.
Ответить
0
Kritik #
А он может работать с шифрованием?
Ответить
0
Александр #
Со считыванием ясно. А про запись только написали в статье, что записывает, но тема проверки записи не раскрыта. Полстатьи
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

DC-DC регулируемый преобразователь 1.5-37В 2А с индикатором
DC-DC регулируемый преобразователь 1.5-37В 2А с индикатором
Автомобильный GPS-трекер с GSM/GPRS и дистанционным управлением Raspberry Pi 2
вверх