Зчитувач RFID: розповідаємо про технологію. Зчитувач карток RFID RC522 у домашньому господарстві

19 вересня 2013 року о 18:32

Бюджетний UHF RFID зчитувач та його розвиток

  • Бездротові технології

Доброго дня, шановні леді і джентльмени.
Найдешевший UHF RFID зчитувач або зчитувач стандарту EPC Gen2 коштує в роздріб не менше 200 USD.

Як можна зробити працездатний UHF RFID зчитувач з деталей за 10 USD, і як можна було б з цього отримати користь, наведено нижче.

Більшість сучасних RFID зчитувачів стандарту EPC Gen2 використовують спеціалізовані мікросхеми. Їх випускають компанії Impinj, AMS та Phychips. Найдешевші мікросхеми коштують близько 20 USD у партіях по 1000 штук. RFID зчитувачі виходять чудові: потужні, спритні та далекобійні - але дорогі.
Навесні цього року в Інтернеті з'явилася стаття "Simple Low Cost UHF RFID Reader" про те, як із поширених радіодеталей вартістю близько 5 USD у роздробі зібрати діючий RFID зчитувач. Ідея начебто проста, але до реалізації дійшло лише нещодавно. Передумова до розробки базується на тому, що дуже часто поблизу антени потрібно не поспішаючи вважати пару трійку міток, і платити багато грошей за зчитувач скорострільністю 200-500 міток на секунду ні до чого. Блок схема зчитувача представлена ​​на зображенні.


Її краса в простоті. Основою є стандартний микроконтроллер, який формує на ніжці GPIO сигнали стандарту EPC Gen2, необхідних опитування мітки. Сигнали передаються на мікросхему трансмітера Melexis TH72035, потім на антену через каплер (coupler) Johanson 0910CF15B0100. Приймач зібраний на одному компараторі MAX931 за наступною схемою.


Логічні сигнали з приймача надходять на інший висновок мікропроцесора GPIO. Отримуємо простий софтовий UHF RFID зчитувач. Звичайно, написати софтовий EPC Gen2 RFID зчитувач – це не фунт родзинок. Але якщо чітко визначити цілі та використовувати тільки потрібне підмножина протоколу EPC Gen2, то завдання значно спрощується.
Автори описуваного проекту однією з цілей подальшого розвитку вважають розміщення всіх компонентів RFID зчитувача на одній платі. Але чи не буде цікавіше піти у протилежному напрямку? Тобто розділити зчитувач на фізично відокремлені функціональні модулі і потім із різних модулів будувати RFID зчитувач із необхідними характеристиками. Все, що внизу, лише ідея, без детального опрацювання.

Зрозуміло, що головний модуль – мікропроцесорний. Напевно, зробити його потрібно на Cortex-M0, вивести на роз'єм UART і USB з метою управління зчитувачем. Для підключення модуля приймача використовувати роз'єм на 6 контактів: Rx, Tx, 2 на живлення приймача, 2 GPIO. Таких роз'ємів можна зробити 2-4, скільки висновків мікропроцесора вистачить.
Модуль приймача підключатися до мікропроцесорного модуля буде безпосередньо або через короткий кабель. Мабуть, треба робити кілька варіантів модулів приймача з різною потужністю і ціною, але однаковим роз'ємом. 5-й контакт роз'єму можна використовувати для включення приймача, а 6-й можна використовувати під якийсь датчик при необхідності. Має сенс зробити друковану плату приймача з металізованими торцевими напівотворами. Тоді її можна буде припаювати до друкованих плат з різними антена або друкованої плати з коаксіальним роз'ємом SMA.
Отже, з'єднавши мікропроцесорний модуль і модуль приймача, ми отримуємо RFID зчитувач. Але заради цього городити город не варто. Ходімо далі. Встромимо в 6-контактний роз'єм мікропроцесорного модуля замість приймача плату з драйвером RS422 і розеткою RJ45 (пара 1 - прийом, пара 2 - передача, 3 - живлення, 4 - GPIO). Таку ж встромимо в приймач. Зрозуміло, що тепер можна з'єднувати мікропроцесорний модуль та приймач за допомогою будь-якого патч-корду або використовувати для з'єднання офісну СКС. Загалом, антена від мікропроцесорного модуля може розташовуватися дуже далеко. І жодного коаксіалу.
Ну і це ще не все :) RS422 – це шина. У приймачем можна розмістити мікросхему D-тригера. Модулі приймача з'єднати послідовно патч-кордами. Правда необхідний другий роз'єм RJ45 або Т-розгалужувач, якщо замість D-тригера поставити синхронний лічильник. За допомогою двох GPIO у четвертій парі UTPможна вибирати потрібний приймач. Виходить розподілений RFID зчитувач, як у картинці.


Навіщо потрібний USB: а для того, щоб вміти приєднати зчитувач до планшетника з Android.

Рішення застосовується, де не потрібна велика швидкістьзчитування міток та далекобійність.
1. Для гастрономів годиться. Це RFID магазини майбутнього. А RFID магазини сьогодення – це універмаги (взуття та одяг). Там RFID зчитувачі вже використовуються в примірювальних (разом з інтерактивним дисплеєм), на касах та розумних полицях з товаром.
2. Склади з європіддонами (ланцюжок модулів приймача там, де знаходяться ліві кути палет).
3. Пропускна система різні масові заходи.
4. Напевно, десь ще.

Сьогодні урок про те, як використовувати RFID-рідер з Arduino для створення простої системи блокування, простими словами- RFID-замок.

RFID (англ. Radio Frequency IDentification, радіочастотна ідентифікація) - спосіб автоматичної ідентифікації об'єктів, у якому за допомогою радіосигналів зчитуються або записуються дані, що зберігаються в так званих транспондерах, або RFID-мітках. Будь-яка RFID-система складається зі зчитувального пристрою (зчитувач, рідер або Інтеррогатор) і транспондера (він же RFID-мітка, іноді також застосовується термін RFID-тег).

В уроці використовуватиметься RFID-мітка з Arduino. Пристрій читає унікальний ідентифікатор (UID) кожного тегу RFID, який ми розміщуємо поруч із зчитувачем, і відображає його на OLED-дисплеї. Якщо тег UID дорівнює визначеному значенню, яке зберігається в пам'яті Arduino, тоді на дисплеї ми побачимо повідомлення «Unlocked» (англ., розблоковано). Якщо унікальний ідентифікатор не дорівнює визначеному значенню, повідомлення "Unlocked" не з'явиться - див. нижче.

Замок закритий

Замок відкритий

Деталі, необхідні для створення цього проекту:

  • RFID-рідер RC522
  • OLED-дисплей
  • Макетна плата
  • Провід

Додаткові деталі:

  • Акумулятор (Powerbank)

Загальна вартість комплектуючих проекту становила приблизно 15 доларів.

Крок 2: RFID-зчитувач RC522

В кожній мітці RFIDє невеликий чіп (на фото білої картки). Якщо направити ліхтарик на цю RFID-карту, можна побачити маленький чіп та котушку, яка оточує його. Цей чіп не має батареї для отримання потужності. Він отримує харчування від зчитувача бездротовим чином, використовуючи цю велику котушку. Можна прочитати RFID-карту, подібну до цієї, з відстані до 20 мм.

Той самий чіп існує і в тегах RFID-брелка.

Кожен RFID тег має унікальний номер, який ідентифікує його. Це UID, який відображається на OLED-дисплеї. Крім цього UID, кожен тег може зберігати дані. У цьому типі карток можна зберігати до 1 тисячі даних. Вражає, чи не так? Ця функція не буде використана сьогодні. Сьогодні все, що цікавить, - це ідентифікація конкретної картки її UID. Вартість RFID-зчитувача та цих двох карт RFID складає близько 4 доларів США.

Крок 3: OLED-дисплей

В уроці використовується OLED-монітор 0.96" 128x64 I2C.

Це дуже гарний дисплей для використання з Arduino. Це дисплей OLED, і це означає, що він має низьке енергоспоживання. Потужність цього дисплея становить близько 10-20 мА, і це залежить від кількості пікселів.

Дисплей має роздільну здатність 128 на 64 пікселі і має крихітний розмір. Існує два варіанти відображення. Один із них монохромний, а інший, як той, який використаний в уроці, може відображати два кольори: жовтий та синій. Верхня частина екрану може бути лише жовтою, а нижня частина – синьою.

Цей OLED-дисплей дуже яскравий і має чудову і дуже приємну бібліотеку, яку розробила компанія Adafruit для цього дисплея. Крім цього, дисплей використовує інтерфейс I2C, тому з'єднання з Arduino неймовірно просте.

Вам потрібно лише підключити два дроти, за винятком Vcc та GND. Якщо ви новачок в Arduino і хочете використовувати недорогий і простий дисплей у вашому проекті, почніть з цього.

Крок 4: З'єднуємо всі деталі

  • Програмування мікроконтролерів
  • Як відомо, у багатьох системах доступу використовуються карти RFID стандарту EM-Marin із частотою 125 КГц. Не винятком став домофон мого будинку. Одна проблема – непогано б навчитися копіювати такі карти, бо цінники на їхнє копіювання не радують. У мережі, звичайно, існує досить багато схем копіювальників (та й китайці продають свої копіювальники за копійки – правда, вони часто при копіюванні ставлять свій пароль на болванки), але чому б не зібрати свій власний копіювальник? Ось про це і наведена нижче стаття.

    Починати розробку копіювальника варто з'ясувати, а на що взагалі можна скопіювати такі мітки? Почитавши форуми, можна дізнатися, що найпоширенішими болванками для копіювання є T5577, T5557, EM4305.

    Тепер потрібна схема. Візьмемо аналогову частину такого копіювальника у RECTO та підключимо її до мікроконтролера atmega8. Доповнимо перетворювачем рівнів для підключення до COM-порту на базі max232 (бажаючі можуть використовувати ST232 або ще що, щоб підключитися по USB, але у мене на комп'ютері COM-порт є, як є і перехідник USB-COM, так що у мене таке завдання не стояло).

    Вийде ось така схема:

    Що вона собою являє? Подвійний емітерний повторювач, коливальний контур, детектор та RC-фільтри. За рахунок того, що RC-фільтри мають різні постійні часу, порівнюючи між собою рівні напруги між каскадами, можна виділяти зміну сигналу RFID-мітки. Даним завданням у нас буде займатися вбудований в atmega8 компаратор. Генерацію 125 КГц сигналу у нас буде забезпечувати вбудований у atmega8 ШІМ-контролер.

    Комбінація RFID-мітка – зчитувач утворюють трансформатор, де мітка є вторинною обмоткою. Передача інформації міткою здійснюється шляхом зміни навантаження вторинної обмотки. В результаті в котушці зчитувача (первинної обмотки) змінюється струм. Виділенням цих імпульсів струму займається наведена вище аналогова частина схеми. Коливальний контур потрібно налаштувати на максимальну напругу в контрольній точці, наприклад, змотуючи/намотуючи витки котушки. Щоправда, кажуть, краще все ж таки напруга трохи менша за максимум - стабільніше працює. У мене в контрольній точці близько 40 ст.

    Копіювана мітка використовує кодування типу манчестер. Для того щоб розшифрувати даний код, достатньо за будь-якою зміною фронту сигналу пропускати три чверті періоду слота біта і наступного за ним перепаду сигналу фіксувати значення біта, яке буде відповідати значенню сигналу після перепаду. При декодуванні варто встановити вікно, в яке повинен відбутися перепад сигналу - не більше половини періоду біта слота.

    Метод розшифровки манчестерського кодування та код для цього я взяв у Shads. Можна, звичайно, було написати свій власний, але я поспішав запустити копіювальник - хотілося переконатися, що робоча схема і прийом міток проводиться. Так цей фрагмент і залишився у коді копіювальника. Також виявилося, що у мене компаратор налаштований інверсно, ніж потрібно код декодування. Змінив у коді. Отже, ми отримали послідовності нулів та одиниць. Як отримати код карти?

    А дуже просто. Приймемо, що номер картки по нібблам має вигляд AB CD EF GH IJ. Карта видає ось що:

    1) Дев'ять одиниць на початку;
    2) Ніббл A;
    3) парність ніблу A (1 біт);
    4) Ніббл B;
    5) парність ніббла B (1 біт);

    16) Нібл I;
    17) парність ніббла I (1 біт);
    18) Ніббл J;
    19) парність ніббла J (1 біт);
    20) Ніббл парності колонок для ніблів A B C D E F G H I J;
    21) Біт 0.

    Зчитуємо всі 64 біти, розшифровуємо та отримуємо 40 біт коду карти. Логічно, якщо самому видати такий код, замикаючи котушку картки доданої до зчитувача, ми отримаємо емулятор карти. Але зараз нас цікавить не він.

    Карту ми читати навчилися, а ось як передати дані карті? Для цього потрібно просто вмикати або вимикати частоту 125 КГц відповідно до протоколу обміну карткою. На час "мовчання" зчитувача карта живиться запасеною енергією.

    Болванки T5557/T5577 повністю сумісні між собою за протоколами запису, однак, мають трохи різні мінімальні та максимальні часи імпульсів (на щастя, часи T5557 перекриваються з T5577). У EM4305 протокол запису інший.

    Щоб записати T5557, я скористався кодом BolshoyK. У таблиці нижче наведено параметри сигналів для брелока T5557.

    Запис починається із сигналу StartGape – потрібно вимкнути сигнал 125 КГц приблизно на 300 мкс. Це сигнал на карті, що зараз їй почнуть передавати дані. Далі слід передати болванці інформацію. Кодування даних - той же манчестер.

    Болванки T5557/T5577 та EM4305 багатофункціональні та вміють різні видимодуляцій, підтримують паролі та ще багато чого. У кожній болванці на борту є набір блоків по 32 біти. Призначення цих блоків є різним. У деяких – код ключа, що видається (він займає два блоки). В інших – конфігурація. По-третє – ідентифікатор виробника. Ми будемо використовувати обмежений функціонал, тому охочі розібратися, що означають усі ці біти, можуть зазирнути в документацію до болванок (я доклав її до архіву).

    Блоки зібрані на дві сторінки (0 і 1).

    У нульовій сторінці є блок конфігурації з індексом 0. Його ми й задаватимемо. Для T5557/T5577 у нас будуть наступні конфігураційні байти: 0x00,0x14,0x80,0x40 відповідно до таблиці з документації (червоним я відмітив обрані одиничними бітами режими):

    Таким чином, у нас вибрано: частота передачі даних RF/64 (125 КГц/64), кодування типу манчестер, видача блоків до другого (у блоках 1 і 2 у нас розташовуватиметься код, що видається карткою). Перед записом слід надіслати код операції (2 біти opcode) та один біт клямки (lockbit). Коди операції 10b і 11b передують запису даних для сторінок 0 і 1 (молодший біт визначає номер сторінки, старший - код запису сторінки). У нас видається 10b для коду операції (вся робота йде з нульовою сторінкою) і 0b для біта клямки. Після передачі всіх цих даних необхідно передати трибітну адресу сторінки, що записується. Всі передачі для T5557/T5577 ведуться від старшого біта до молодшого.

    Задавши код карти в блоках 1 та 2 та конфігурацію в блоці 0 можна отримати дублікат RFID-мітки. Як бачите, все просто.

    Наступний тип болванок – це EM4305. Ось розбиратися із записом цієї болванки мені довелося самому. Вона також складається з блоків по 32 біти, але їхнє призначення інше.

    Кодування даних, що передаються карті – за перепадами за інтервал часу. Якщо перепад за інтервал часу був, то це нуль, а якщо не було – одиниця. Конфігураційне слово зберігається в 4 байті і собі я визначив його так: 0x5F,0x80,0x01,0x00 (кодування манчестер, RF/64, видача слова 6). У слова 5 і 6 записую код карти (ті самі 64 біта, що видає карта). EM4305 вимагає щоб передача велася з молодшого біта до старшого. Карта розуміє, що з нею починають обмін після видачі комбінації імпульсів:

    1. Вимикаємо поле на 48 мкс.
    2. Включаємо поле на 96 мкс.
    3. Вимикаємо поле на 320 мкс.
    4. Включаємо поле на 136 мкс.
    5. Відключаємо поле до наступної команди.
    Команда на запис блоку карті передається так:
    1. Шолом вищевказану послідовність імпульсів.
    2. Шолом 0b.
    3. Передаємо CC0-CC1 та їх парність P. (0101b для запису, див. таблиці нижче).
    4. Передаємо адресу блоку (див. таблицю), два доповнюють нуля та парність адреси.
    5. Передаємо дані блоку (32 біти).

    Формат команди


    Коди команд

    Формат адреси блоку

    Таким чином задається конфігурація болванки EM4305 та її код.

    Власне, нічого більшого простому копіювальнику і не потрібно.

    Я зробив кілька варіантів копіювальника з різними дисплеями. Наприклад, ось копіювальник з дисплеєм 1602:

    А ось відео роботи копіювальника на екрані LPH9157-02.

    1 Опис зчитувача RFID RC522

    Модуль RFID-RC522 виконаний на мікросхемі MFRC522 фірми NXP. Ця мікросхема забезпечує двосторонню бездротову (до 6 см) комунікацію на частоті 13,56 МГц.

    Мікросхема MFRC522 підтримує такі варіанти підключення:

    За допомогою даного модуля можна записувати та зчитувати дані з різних RFID-міток: брелоків від домофонів, пластикових карток-перепусток та квитків на метро та наземний транспорт, а також набирають популярність NFC-міток.

    RFID - це скорочення від "Radio Frequency IDentification" та перекладається як "радіочастотна ідентифікація".
    NFC - це "Near field communication", "комунікація ближнього поля" або "ближній безконтактний зв'язок".

    2 Схема підключення RFID-RC522 до Arduino

    Підключимо модуль RFID-RC522 до Arduino за інтерфейсом SPI за наведеною схемою.


    Живлення модуля забезпечується напругою від 2,5 до 3,3 В. Інші висновки підключаємо до Arduino так:

    Пін RC522Пін Arduino
    RSTD9
    SDA (SS)D10
    MOSID11
    MISOD12
    SCKD13

    Не забувайте також, що Arduino має спеціальний роз'єм ICSPдля роботи з інтерфейсом SPI. Його розпинування також наведено на ілюстрації. Можна підключити висновки RST, SCK, MISO, MOSI та GND модуля RC522 до роз'єму ICSP на Ардуїно.

    3 Бібліотека для роботи Arduino з RFID

    Мікросхема MFRC522 має досить велику функціональність. Познайомитись з усіма можливостями можна вивчивши її паспорт (datasheet). Ми ж для знайомства з можливостями даного пристроюскористаємось однією з готових бібліотек, написаних для роботи Arduino з RC522. Скачайте її та розпакуйте в директорію Arduino IDE\libraries\


    Установка бібліотеки "rfid-master" для роботи Arduino з RFID-мітками

    Після цього запустіть середовище розробки IDE Arduino.

    4 Скетч для зчитування інформації,записаної на RFID-мітці

    Тепер давайте відкриємо скетч із прикладів: Файл Зразки MFRC522 DumpInfoі завантажимо його на згадку Arduino.


    Даний скетч визначає тип прикладеного до зчитувача пристрою та зчитує дані, записані на RFID-мітці або карті, а потім виводить їх у послідовний порт.

    #include #include const int RST_PIN = 9; // пін RST const int SS_PIN = 10; // пін SDA (SS) MFRC522 mfrc522 (SS_PIN, RST_PIN); // Створюємо об'єкт MFRC522 void setup() ( Serial.begin(9600); // ініціалізація послід. порту SPI.begin(); // ініціалізація шини SPI mfrc522.PCD_Init(); // ініціалізація зчитувача RC522 ) void loop() (// Очікування прикладання нової RFID-мітки: if (! mfrc522.PICC_IsNewCardPresent()) ( return; // вихід, якщо не прикладена нова карта) // Зчитуємо серійний номер: if (! mfrc522.PICC_ReadCardSerial()) ( return; // вихід, якщо неможливо вважати сер. номер ) // Виведення дампа в послід. порт: mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); }

    Текст скетчу досить добре прокоментовано.

    Для більш повного знайомстваз бібліотекою вивчіть файли MFRC522.hі MFRC522.cppз директорії rfid-master.

    5 Дамп данихз RFID-мітки

    Запустимо монітор послідовного порту поєднанням клавіш Ctrl+Shift+M, через меню Інструментиабо кнопкою із зображенням лупи. Тепер докладемо до зчитувача квиток метро чи будь-яку іншу RFID-мітку. Монітор послідовного порту покаже дані записані на RFID-мітку або квиток.


    Наприклад, у моєму випадку тут зашифровані унікальний номер квитка, дата покупки, термін дії, кількість поїздок, що залишилися, а також службова інформація. Ми розберемо в одній із майбутніх статей, що ж записано на карти метро та наземного транспорту.

    Примітка

    Так, за допомогою модуля RFID-RC522 можна записати дані на квиток метро. Але не зваблюйтеся, кожна карта має лічильник циклів запису, що не перезаписується, так що «додати» поїздок собі на метро не вийде - це відразу буде виявлено і карта буде забракована турнікетом:) А ось використовувати квитки метро для запису на них невеликих обсягів даних - від 1 до 4 кб – можна. І способи застосування цього обмежені лише вашою фантазією.

    Мітка EM4100 зберігає 64 біта даних, отже, конструкція повинна містити 64-бітний регістр зрушення, складений з восьми 8-бітних регістрів 74HC165. Регістр перезавантажується після кожних 64 зрушень, щоб скинути дані та почати спочатку. Дані на входах регістру такі:
    • Паттерн синхронізації: дев'ять одиниць
    • Ідентифікатор виробника/версії: 2 блоки по 5 біт, з яких 4 біти - дані, а п'ятий - парність
    • Унікальний ідентифікатор: 8 блоків по 5 біт, з яких 4 біти – дані, а п'ятий – парність
    • Контрольна сума: 4 біти парності, підраховані по стовпцях
    • Стоп-біт: "0"

    Навіть мітки з шифруванням уразливі для багатьох атак. Крім того, стає все легше емулювати мітки на смартфонах за допомогою NFC (які зазвичай працюють на 13,56 МГц). Просто правильно напишіть програму для модуляції поля, і ви зможете робити все, що хочете.

    Як стандартна відмазка нагадаю, що автор (І перекладач! – Прим. перев.) не несе жодної відповідальності за наслідки використання інформації з цієї статті. Читач має сам відповідати за всі свої дії.

    Корпус

    Іноді дужещастить. Гарний корпус не завадив би саме зараз, коли прототип закінчено, а друкована плата замовлена. І саме в цей час Флемінг перестав збирати і запустив верстат лазерного різання OSAA PhotonSaw. Після року роботи над проектом лазер готовий вирізати свої перші деталі. Флемінг і Рун роблять останні юстування і ставлять на місце алюмінієву кришку лазерної шафи. Ви можете собі уявити, як ми всі були раді бачити, що ця штука працює.

    З працюючим верстатом ми отримали можливість протестувати наш проект у реального життя. Корпус для нашої RFID-мітки зробили з 2-міліметрового огрскла. Цей корпус – перший об'єкт, зроблений на PhotonSaw, так!

    Народилася ідея розташувати котушку на зовнішній стороні корпусу. Спершу було вирішено використати половину висоти корпусу, але це не працювало на практиці (додаткові отвори в довгих сторонах, таким чином, не використовуються). Котушка просто чудово розмістилася по периметру всього корпусу, хоча я мав сумніви, чи не буде прямокутна обмотка (105x55 мм) занадто великою для нормального електромагнітного зв'язку.

    Тестова котушка була намотана, без жодних розрахунків, проводом 0,4 мм у 66 витків. І, очевидно, нам знову пощастило, тому що котушка вийшла такою, як треба, індуктивністю 645 мкГн, з підключеною міткою даючи резонансну частоту 125,2 кГц. Тест на зчитувачі дверей показав, що прототип працює просто чудово з цією котушкою.

    З котушкою зовні корпусу товщину останнього можна зменшити. Внутрішня товщина тепер залежить тільки від висоти деталей на платі і з урахуванням товщини плати повинна становити близько 6 мм. Крім того, було б добре додати гравіювання. Флемінг запропонував заокруглити бічні сторони корпусу з естетичних та ергономічних міркувань. Вигнутий корпус також краще захищатиме бічні сторони котушки, тому що там, де немає сильного натягу, витки дроту люблять вилазити назовні.

    Верстат PhotonSaw ще не зовсім у нормальному стані: гравіювання на верхній кришцізначно з'їхала. Необхідно остаточно його налагодити перед виготовленням фінальної версії корпусу. Вигнуті контури також зазнали помилки розрахунку програмне забезпечення, так як промінь не повернувся в початкове положенняпісля проходу замкнутої траєкторії. Але принаймні криві виглядають справді гладкими.

    Складання друкованої плати

    Прибула замовлена ​​плата:

    Складання було не дуже складним. На плату трафаретом нанесли паяльну пасту, розмістили всі деталі, а потім запаяли в саморобній печі.

    Через розділову ємність (47 пФ мають опір приблизно 27 кОм на частоті 125 кГц) і захисні діоди струм надходить на шини живлення. Енергії, що надходить із котушки, вистачає на підтримку напруги живлення близько 1 В. Струм може досягати 250-500 мкА. Дивно, але мікросхеми 74HC, схоже, працюють за такого харчування. На жаль, за такого напруження відбуваються досить дивні речі. Мікросхеми 74HC мають внутрішню схему скидання і потрібно переконатися, що вона спрацьовує. Зверніть увагу, що вимкнення захисних діодів не допомагає. На входах мікросхем є внутрішні захисні діоди, які у разі відкриваються і виконують ту ж роботу.

    Скидання живлення спрацьовує тільки якщо напруга живлення падає нижче певного рівня протягом деякого періоду часу. Якщо напруга залишається надто високою, то внутрішня логіка може заплутатися, тому що деякі її частини можуть бути в невизначеному стані, тоді як інші працюють належним чином. Необхідне внутрішнє скидання для встановлення всіх мікросхем у узгоджений стан. Таким чином, схема буде нестійко працювати при дуже низькій напрузі живлення.

    Симптоми спостерігалися такі: мітка працює деякий час, посилаючи коректні дані. Якщо котушку прибрати від зчитувача, а потім повернути назад, можете робити ставки, чи при цьому вимкнеться мітка. Іноді спрацьовує, іноді – ні. Відключення ФАПЛ погіршує ситуацію. Низьке енергоспоживання призводить до того, що рідер час від часу прийматиме дані від вимкненої мітки. Ось що означає "енергоефективна система".

    Існує два рішення: 1) зменшити конденсатор у ланцюзі відновлення тактового сигналу до 15 пФ, і 2) включити між живленням та землею резистор 22-100 кОм для скидання зайвої енергії. Другий метод призводить до зростання витоків під час роботи і насправді не потрібний при зменшенні ємності конденсатора. Тим не менш, він передбачений як опція, і це все одно краще, ніж невизначений стан мікросхем.

    Модуляція струмом чи напругою

    Модулятор приніс свіжу порцію головного болю. Модуляція повністю зникала при розміщенні котушки на певній відстані від зчитувача. Також це могло статися при переміщенні котушки до рідер або від нього.

    Причина опинилася у схемі модулятора. МОП-транзистори замикають котушку на резистор певного опору. Однак, якщо споживання енергії з контуру велике, опір модулятора значно вищий, ніж опір ланцюгів живлення. Це призводить до того, що глибина модуляції залежить від споживаного струму, а це не дуже добре. Ситуацію погіршив вибір обмежувального стабілітрону на нижчу напругу, ніж у прототипі.

    Вирішили перевести модулятор з режиму модуляції напругою в режим модуляції струмом. Для першого режиму резистор перебував у ланцюгу стоку, тепер він включений між витоком і землею. На цьому резисторі падатиме напруга затвор-витік, поки не залишиться значення трохи вище за поріг відкривання транзистора (0,9-1,1 В), яке переведе транзистор в лінійний режим. Тепер струм через транзистор буде стабільним, незалежно від напруги стоку.

    Тестування на прототипі показало, що модуляція струмом дуже добре працює. Дешевий безіменний зчитувач більше не збоїть (ну гаразд, може бути один раз на сотню або близько того). Можна припустити, що ця зміна працюватиме чудово і на інших рідерах, і мітка тепер, ймовірно, зможе працювати на більшості з них.

    Закінчена версія 1

    Можна помітити зміни на друкованій платі. У мене не було 15 пФ SMD-конденсатора, довелося впаяти звичайний, з ногами. Модулятор оброс додатковими резисторами на витоках транзисторів. Загалом прийнятно для першої версії.

    (картинки клікабельні)





    Відео-демонстрація

    Висновок

    Ви можете подумати, що цей проект, зібраний на логіці 7400, можна зарахувати до ретро-схемотехніки, але це не зовсім так. По-перше, сучасне сімейство 74HC не таке вже й старе. По-друге, схеми, що низько споживають, завжди актуальні. По-третє, мікросхеми одиночних логічних елементів (такі як використаний тригер Шмітта) часто використовуються в сучасних розробках. Часто забувають, що розвиток технологій не припиняється і для старих сімей мікросхем. Вони просто стали менш помітними на тлі загальної різноманітності.

    Аналогова частина виявилася складнішою у розробці, ніж цифрова. Частково через відсутність специфікацій, але в основному за рахунок безлічі компромісів, необхідних для відповідності параметрам, та непередбачених побічних ефектів. Цифрові конструкції мають відносно мало варіантів, тоді як аналогові зазвичай вимагають балансу між різними (і часто протилежними) критеріями.

    Я повинен зізнатися, що мікросхеми 74HC зроблено дуже, дуже добре. Розробники знали, що роблять, і досягли дуже низького енергоспоживання. Спершу я мав певні сумніви, чи зможе мітка працювати від пасивного харчування, але після прочитання специфікацій це залишилося лише питанням правильної схемотехніки. Хоча є ще можливості для оптимізації різних частин мітки.

    Тепер побачимо, як цей проект покаже себе на конкурсі 7400 2012 року. Подання заявок на конкурс закінчується 31 листопада. Побажаємо автору удачі! - Прим. перев.

    Теги: Додати теги