RFID - це просто. Реалізація власного RFID транспондера та рідера. Бюджетний UHF RFID зчитувач та його розвиток

Після декількох років роботи з RFID тематики та розробки різноманітних зчитувачів для моделей транспондерів популярних стандартів типу Mifare, EMMARINE, TIRIS… мене часто почало спантеличувати таке питання – буквально в останній рік широку популярність набули різного роду емулятори під теги популярних протоколів та різноманітні копіювальники ключів/брелків .

Враховуючи велику кількість доступних у продажу спеціальних мікросхем популярних протоколів RFID і дешевих рідерів, широкого поширення обладнання типу цифрових осцилографів, сніферів і спектроаналізаторів, це питання стало для багатьох розробників більш актуальним. Тоді я зважився зробити для одного з проектів протокол для обміну різним від описаних стандартів.

Безумовно, ця ідея не вирішує глобальних проблем захищеності. нової системиі може бути проаналізована іншими розробниками за наявності обладнання, проте суть у тому, що все це не збігається з існуючими стандартами і всі залізні копіювальники не дозволять швидко скопіювати і відтворити подібний алгоритм. Зрозуміло, подібна система не подається тут не як повне вирішення проблем безпеки, а як досвід адаптації RFID під закриту систему. Гарним плюсому питанні безпеки серед інших подібних бездротових систем є сама технологія низькочастотних RFID – вона не дозволяє рахувати теги на великій відстані.

Пасивні теги досить малопотужні і потребують свого харчування досить потужному генераторі зчитувача, особливості поширення радіохвиль на даних частотах також обмежують межі роботи даної системи. Реальна дальність зчитування транспондерів рідко перевищує 20см для 125 Кгц стандартів типу EmMarine, скажімо стандарту EM4001, для інших протоколів типу Mifare (13,56 МГц) може бути більше (1,5 метра для iso15693). Можна домогтися більшої відстані зчитування для низькочастотних рідерів, якщо збільшити розміри котушки і напругу живлення, відповідно і потужність ридера. Однак такі системи мають громіздкі і, як правило, їх важко зробити портативними. Як правило, такі системи реалізуються лише стаціонарно – скажімо для автомобілів.

Отже, тепер власне з архітектури нашої системи RFID. Для експериментів було обрано контролера atmel atmega8. Для цілей виготовлення транспондера це здається безперечною надмірністю. Однак у даному випадку вирішувалося першорядне завдання розробки нового інтерфейсу на готовій налагоджувальній хустці c atmega з подальшим портуванням даного коду більш дешеві контролери типу tiny13. Для транспондера алгоритм роботи був побудований на основі режиму ШІМ генерації за допомогою таймера T1 у режимі CTC з перериванням та скиданням за збігом з OCR1. Дані передачі транспондера зчитуються з EEPROM при включенні живлення контролера. Усього транспондер передає 10 байт. Вміст EEPROM транспондера можна бачити на малюнку 1.Перший байт 0xE7 є обов'язковим заголовком пакета, оскільки його наявність перевіряється насамперед при розборі пакета зчитувачем.

Перші 8 байт є вмістом пакета транспондера, останні 2 байти містять контрольну суму CRC16 перших восьми байт пакета. Для прикладу в нашому транспондері були записані такі дані – пакет 0xE7, 0x05, 0xE8, 0x93, 0x43, 0x7F, 0x20, 0xFF та відповідно контрольну суму 0xF5 0xA8. Для виготовлення власного унікального транспондера потрібно, крім першого байта 0xE7, записати сім наступних байт в EEPROM, після чого розрахувати контрольну суму для перших восьми байт. Після цього записати в EEPROM два байти CRC16 наприкінці пакета. Перший байт залишаємо без змін – 0xE7. При включенні транспондера дані цих байт розбиваються по бітах і кодуються відповідною довжиною імпульсу відповідно до значення регістра OCR. Для передачі використовуються 2 частоти 2Кгц та 5Кгц для передачі логічних “0” та “1”. Крім того, дані розділяються імпульсами синхронізації – стартові мітки пакетів.

Рис.1Вміст пакету транспондера.


Рис.2Дамп передачі транспондер на екрані віртуального осциллографа.

Схему транспондера можна побачити на малюнку 3.Частота генератора, що задає 8МГц. Живлення контролера +5В. Можна використовувати контролер mega8 з маркуванням “L”, тоді живлення можна здійснювати від літієвої батарейки 3в (параметри для такого чіпа +2,7…. +3,5). Замість цього транзистора можна використовувати будь-який інший малопотужний транзистор NPN. Котушка транспондера була намотана на оправці діаметром 50мм дротом 0,22мм і налічує 50 витків. На даний момент транспондер зроблений активним – із зовнішнім харчуванням. На наступному етапі планується зробити пасивний варіант транспондера, що досить просто зробити розв'язку для живлення від даної котушки, додати діоди моста випрямляча і стабілізатор.


Рис.3Схема транспондера.

Тепер поговоримо про схему зчитувача для транспондера. Схема була адаптована на основі раніше використаного зчитувача для карт EMMARINE. Частину схеми з генератором на 74hc4060 можна на даному етапі сміливо видаляти, оскільки ми використовуємо активну мітку. Однак ця частина схеми нам знадобиться надалі, коли ми робитимемо пасивну мітку і нам буде потрібно отримати харчування від зчитувача. В іншому схема немає істотних відмінностей від схеми зчитувача для EMMARINE: пасивний піковий детектор - фільтр - підсилювач - компаратор. Схема має максимально можливу простотуі дозволяє зчитувати дані транспондера з відривом 10-12см при добре налаштованих контурах.

Можна ще далі спрощувати схему, залишивши тільки детектор і фільтр, поставити один транзистор на виході, який буде грати роль компаратора, але я не став так робити. На виході ми отримуємо двійковий сигнал прямокутної форми відповідно до кодованих тривалостей імпульсів переданих транспондером. Допустимі відхилення номіналів елементів при якому схема працездатна 5-10%. Живлення контролера та операційника +5В. Частота кварцу генератора, що задає контролера 12МГц. Вихід компаратора на LM358 підключений до ніжки переривання зовнішнього контролера INT0. У програмі контролера налаштований виклик переривання по фронту, що наростає, на ніжці зовнішнього переривання INT0. В обробнику переривання відбувається перевірка синхронізуючих імпульсів, а потім перевірка заголовка пакета і запис вмісту в буфер контролера. Дані лічені пакети передаються за інтерфейсом RS232 на ПК. Для налаштування терміналки вказуємо наступні параметри: швидкість 57.6Kb/s, 8 біт даних, 1стоп біт, без контролю парності.

При прийомі пакета контролер розраховує контрольну суму прийнятих байт і передає дані терміналку (пакет і CRC). У разі збігу контрольних сум розрахованої контролером і прийнятої пакеті виводиться сигнал на ніжку PORTB.0 (14) контролера (LED1 на схемі). Можна підключити в дану точку пищалку із вбудованим генератором або світлодіод через опір. При зчитуванні коректного ключа контролер забороняє зовнішні переривання і затримує 1с перед наступним зчитуванням. Передбачено також режим роботи даного зчитувача як основу замку RFID. Для цього необхідно в EEPROM контролера зчитувача повністю записати байти дампа транспондера - 10 байт. Дані пишуться в EEPROM зчитувача так само, як у EEPROM транспондера. В даному випадку при зчитуванні чергового транспондера та збігу його із записаним в EEPROM зчитувача виводиться сигнал на ніжку PORTB.1 (15) контролера (LED2 на схемі). До цієї точки можна підключити світлодіод через опір або вихідний ключ (транзистор) на реле виконавчого пристрою. Тепер ми отримали замок RFID під конкретний ключ і звичайний зчитувач в одному флаконі.


Рис.4Схема зчитувача RFID міток. (Збільшити схему)

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

Завантажити прошивку:
У вас немає доступу до скачування файлів з нашого сервера

Характеристики:
Частота теги: 125 кГц
Джерело живлення: +5 В постійного струму
Дані, що виводяться: послідовно, 2 400 б/с 8N1. Видається 10-цифровий серійний номер мітки.

Малюнок 1:Малюнок 2:

Вступ

Даний RFID-зчитувач працює з мітками частотою 125 кГц у картках розміром із кредитну картку та 125 кГц брелоках (Малюнок 1). При цьому використовується протокол EM4100. Коли ви наближаєте RFID-мітку на близьку відстань (4-5 см) до котушки зчитувача (L1), зчитувач вважає 10-цифровий унікальний ідентифікатор мітки і передасть його як ASCII символи через послідовний вихід зі швидкістю 2400 біт в секунду.

У схему входить сигналізатор, який видає переривчасті звукові сигналиколи мітка успішно зчитується.

Опис

Я спробую у кількох словах пояснити, як працює RFID-зчитувач. Контролер ATtiny13 використовується функцію PWM для створення прямокутного імпульсного сигналу частотою 125 кГц. Цей сигнал виходить із виведення PB0. За заднім фронтом імпульсу на виведенні PB0 (Логічний нуль "0") транзистор T1 закритий. Таким чином, котушка L1 порушується через резистор R1 (номіналом 100 Ом) від напруги +5V. Коли імпульс на виводі PB0 зростає (Логічна одиниця "1"), транзистор T1 відкривається і один з висновків котушки L1 з'єднується з землею GND. До котушки L1 паралельно приєднується конденсатор C2, створюючи генератор LC. Дані перемикання котушки L1 від логічної одиниці до логічного нуля відбуваються 125 000 разів на секунду (125 кГц).

Малюнок 3:Коливання сигналу частотою 125 кГц, що передаються від котушки L1 та конденсатора C2.

RFID-зчитувач передає енергію транспондеру (мітці) шляхом створення електромагнітного поля. Передача енергії між RFID-зчитувачем та міткою відбувається на тому ж принципі, що і роботатрансформаторів , що перетворюють напругу 220 В мережі змінного струмув 12 В змінного струму, завдяки магнітному полю, яке створює первинна обмотка. У нашому випадку первинна обмотка - це RFID-зчитувач, а вторинна обмотка - RFID-мітка. Різниця лише в тому, що у схемі RFID-зчитувача немає сталевого магнітопроводу між двома котушками (одна котушка розташовується на стороні зчитувача, а інша котушка в RFID-мітці). Компоненти D1, C3 і R5 складають демодулятор AM сигналу (AM = Амплітудна модуляція).

Передача даних між мітками та зчитувачем.

Як мітки передають дані до зчитувача? Дуже просто! Коли мітка хоче передати логічний нуль "0" у зчитувач, вона додає "навантаження" до своєї лінії джерела живлення для отримання більшої енергії зі зчитувача. Це викликає невелике падіння напруги на стороні зчитувача RFID. Цей рівень напруги є логічним нулем "0" (див. рисунок 4). Одночасно з передачею зчитувачем сигналу частотою 125 кГц, він зчитує напругу сигналу, що передається через фільтри D1, C3 і R5, C1. Коли мітка знижує напругу, як було зазначено раніше, зчитувач зчитує дане падіння напругу як логічний нуль "0". Якщо мітка не потребує додаткової енергії, вона не викликає падіння напруги. Це відповідає логічній одиниці "1" (Малюнок 3). Довжина "одиниць" чи "нулів" залежить від швидкості передачі послідовної передачі. Наприклад, для несучої частоти 125 кГц ми отримуємо швидкість передачі даних 125 000 біт за секунду! Передача даних від мітки до зчитувача змінюється від 500 до 8 000 біт в секунду.

Малюнок 4:Знімок екрана даних, що передаються...10101...Малюнок 5


  • 125 кГц RFID-мітка передає 64 біти.
    1. Перші 9 біт - це стартові біти передачі (завжди "1").
    2. Наступні 4 біти – молодші біти ідентифікатора користувача (D00,..., D03).
    3. Наступний 1 біт (P0) - це біт контролю парності попередніх 4 біт.
    4. Наступні 4 біти - це старші біти ідентифікатора користувача (D04, ..., D07).
    5. Наступний 1 біт (P1) – це біт контролю парності попередніх 4 біт.
    6. Наступні 4 біти - це перша частина 32-бітного серійного номерамітки (D08,..., D11).
    7. Біт PC0 - це біт контролю парності бітів D00, D04, D08, D12, D16, D20, D24, D28, D32 і D36 (біти розташовуються в одній колонці).
    8. Біти PC1, PC2, PC3 є біти парності наступних трьох колонок.

Верифікація даних виконується за допомогою контролера ATtiny13, шляхом обчислення біта контролю парності кожного рядка і кожної колонки з бітами парності, які отримані в даних RFID-мітки.

Виготовлення котушки

Котушка має діаметр 120 мм та 58 витків. Про всяк випадок, залиште трохи мідного дроту для додаткових 2-3 витків (всього 60-61 витків). Для досягнення максимальної відстані між RFID-міткою та зчитувачем (між міткою та антеною-котушкою зчитувача) вам необхідно відкалібрувати котушку. Якщо підключити осцилограф у загальну точку з'єднання R1 і L1, ви побачите місце, позначене червоним кружком на малюнку зліва. Це означає, що котушка L1 має бути калібрована.

Як відкалібрувати котушку L1?

Увімкніть RFID-зчитувач:

1. Після підключення щупа осцилографа до загальної точки R1, L1 спробуйте повільно видалити або додати трохи мідного дроту (збільшити або зменшити кількість витків) котушки, поки шум не буде усунений.

2. Якщо ви не маєте осцилографа, тоді спробуйте перемістити RFID-мітку близько до котушки L1, поки мітка не буде розпізнана зчитувачем. Якщо вашу мітку буде виявлено на відстані 2 см від котушки L1, тоді спробуйте додати кілька витків мідного дроту для котушки L1, щоб переконатися у виявленні мітки на довшій відстані (наприклад, 3 см).

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

Я виготовив котушку L1 діаметром 120 мм із 58 витками, але згодом захотів зробити її меншого розміру. Тому я зігнув котушку навпіл так, щоб вона стала схожою на "цифру вісім" (за формою нагадує вісімку) і виконав повторне калібрування. Таким чином, котушка L1 на малюнках фактично має діаметр менше ніж 120 мм.

Котушка L1 на малюнку має діаметр 60 мм та майже 116 витків.

ПрограмуванняATtiny13

Набір бітів конфігурації (фьюзів) для ATtiny13: High Fuse: 0x1F та Low Fuse: 0x7A. Даний набір налаштувань ATtiny13 працює із внутрішнім генератором частотою 9.6 МГц. Функція поділу на 8 тактового системного генератора відключена.

Прошивка версії v1.00 займає 1024 байт та займає 100% Flash-пам'яті контролера ATtiny13. Можливо перехід на будь-який інший 8-вивідний AVR, такий як ATtiny85, буде гарною ідеєю, якщо ви захочете додати деякі функції у вихідний програмний код.

Проект спроектований:Вассіліс Серасідіс ( Vassilis Serasidis) 18 серпня 2012 року
Мова програмування:З
Середовище розробки:
Мікроконтролер:ATtiny13 (внутрішній генератор 9.6 МГц)

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

Позначення Тип Номінал Кількість ПриміткаМагазинМій блокнот
IC1 МК AVR 8-біт

ATtiny13

1 До блокноту
IC2 Операційний посилювач

LM358

1 До блокноту
IC3 Лінійний регулятор

LM78L05

1 До блокноту
T1 MOSFET-транзистор

BS170

1 До блокноту
T2 Біполярний транзистор

BC547B

1 До блокноту
D1 Випрямний діод

1N4148

1 До блокноту
C1 Конденсатор12 нФ1 До блокноту
C2 Конденсатор1.5 нФ1 До блокноту
C3 Конденсатор4.7 нФ1 До блокноту
C4, C5 Електролітичний конденсатор100 мкФ2 До блокноту
C6 Конденсатор100 нФ1 До блокноту
R1 Резистор

100 Ом

1 До блокноту
R2 Резистор

1 ком

1 До блокноту
R3 Резистор

390 ком

1 До блокноту
R4, R8 Резистор

33 ком

2 До блокноту
R5 Резистор

270 ком

1 До блокноту
R6 Резистор
Мітка 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 листопада. Побажаємо автору удачі! - Прим. перев.

Теги:

  • RFID
  • 7400 Contest
  • overengineering
  • логічні схеми
  • граблі всюди
Додати мітки Мітка 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 листопада. Побажаємо автору удачі! - Прим. перев.

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

Сьогодні урок про те, як використовувати 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: З'єднуємо всі деталі