Как записать и считать RFID-метку?

4d63 id83 80bit чип для ключа автомобиля mazda/ford

Всем привет.

В сегодняшнем обзоре речь пойдет о чипе для ключей автомобилей Mazda или Ford — 4D63 ID83 80Bit. Не исключаю той возможности, что он совместим и с другими автомобильными марками, но точной информации у меня по этому поводу нет.

Итак, все началось с того, что машинка мне досталась с уже установленной сигнализацией и одним ключом. Спустя некоторое время со мной связалась предыдущая владелица и сказала, что нашла второй ключ. Правда, это был не полноценный ключ, а его половинка (та часть где есть кнопочки, но без части с жалом). В итоге, набор ключей к автомобилю выглядел так:
Как записать и считать RFID-метку?
А поскольку моя супруга так же периодически на ней катается, то было принято решение о полном восстановлении второго ключа до рабочего состояния. По своей наивности я сперва полагал, что все основные «мозги» спрятаны в той плате, которая находилась в имеющейся у меня части ключа. То есть здесь:
Как записать и считать RFID-метку?
Но проведя самостоятельный ликбез, я был неприятно разочарован тем фактом, что это всего лишь пульт управления центральным замком. Сам же транспондер (приёмопередающее устройство, посылающее сигнал в ответ на принятый сигнал) или, проще говоря, чип-ключ, отключающий иммобилайзер, спрятан в части с жалом — той, которой у меня не было. Как было не трудно догадаться, поскольку сигнализация с автозапуском, то недостающая часть ключа спрятана в блоке обходчика иммобилайзера, спрятанного где-то в автомобиле…

Решить мою проблему можно было двумя способами — поехать в официальный сервис и за кучу денег заказать еще один ключ или же извлечь часть ключа из блока обходчика… Но рабочий автозапуск очень хотелось оставить, потому, почитав еще массу разной информации, я понял, что мне необходим тот самый чип — 4D63 ID83. Благо, продается он много где и с покупкой проблем быть не должно (по тому объявлению, где совершал покупку я его уже нет, но осталась масса других, правда, чуть-чуть подороже).

Продавец отправил посылку с полноценным треком, так что маршрут ее следования из Китая в Беларусь можно посмотреть здесь.

Пришел транспондер в небольшом бумажном пакетике — еле там его нашел, уж настолько он мал 🙂 В живую чип выглядит следующим образом:
Как записать и считать RFID-метку?
Осмотрев его со всех сторон я так и не нашел хоть какого-либо обозначения. Но внешне он был похож на то, что мне надо.
Как записать и считать RFID-метку?
Для лучшего восприятия размеров — вот фото чипа рядом с аккумулятором типоразмера 18650.
Как записать и считать RFID-метку?
Ну что же, теперь дело за малым — найти блок обходчика иммобилайзера. У меня на это ушел весь вечер — часа 3, примерно. Но в конце концов он был таки найден. Из соображений безопасности, фото данного процесса не производились 🙂 Теперь, имея на руках два полноценных ключа и чип, можно начинать привязку последнего. Сделать это можно без каких-либо специальных средств минут за 5.

Технология процесса сводится к следующему:
— вставляем первый ключ в замок и быстро включаем-выключаем зажигание. Следим за иконкой иммобилайзера — она должна потухнуть. Вместо включения/выключения зажигания можно завести/заглушить автомобиль;
— быстро повторяем пункт 1 со вторым ключом;
— а сейчас надо сделать то же с чипом. Тут есть несколько вариантов. Во-первых, можно изготовить еще одно жало ключа и проделать все прилепив к нему чип, но это лишние траты. Во-вторых, можно положить чип в блок обходчика иммобилайзер и произвести третий запуск двигателя при помощи дистанционного запуска (с брелока), но в связи с тем, что все 3 шага надо проделать максимально быстро, может не получиться. И в-третьих, можно воспользоваться кусочком металлической фольги. Повторяем шаг 1 с продетым сквозь нее жалом одного из двух ключей, а час чип прикладываем к замку зажигания (в районе надписи ON), лично я скотчем его там прилепил. Фольга сыграет роль отражателя, перекрыв сигнал от чипа, находящегося в ключе.
Как записать и считать RFID-метку?
Если все сделано верно, то машинка заведется. После этого чип можно поместить в блок обходчика, а оба ключа использовать по их прямому назначению 🙂

У меня все получилось со второго раза. Так что теперь полноценный ключ есть как у меня, так и у супруги 🙂
Как записать и считать RFID-метку?
Подводя итог всему, что тут было написано, могу сказать, что чип прекрасно справился со своей задачей. Теперь у меня 2 полноценных ключей, а так же работающий автозапуск, который совсем не лишний в зимние морозы 🙂 А главное, что затраты на все это были минимальны (особенно если учесть, что официалы новый ключ оценили в $150). Так что я остался доволен покупкой на все 100%.

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

Cyfral

Ключ «Цифрал DC-2000А» — это отечественная разработка. Взаимодействовать с ними гораздо проще, т.к. они весьма глупые — не принимают никакие команды. Достаточно просто подать на ключ питание, и он сразу начнёт бесконечно посылать код, изменяя своё сопротивление. Если дать ему 5 вольт, подключив через резистор в 1 кОм, то на осциллографе можно увидеть примерно такую картину:

Ключ меняет своё сопротивление примерно между 800 Ом и 400 Ом, если я не ошибаюсь, а следовательно и потребление тока. Можно сказать, что сигнал аналоговый, а это всё немного усложняет с аппаратной точки зрения. Хотя иногда может и упростить. Например, ключ можно прочитать, просто подключив его к микрофонному входу компьютера и записав аудиофайл.

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

Кодирование немного странное. Ключ циклически посылает девять нибблов (четыре бита), меняя своё сопротивление. Если оно сохраняется низким около 50 микросекунд, то это логический ноль, а если 100 микросекунд — это единица. Но данные кодируется не логическими нулями и единицами, а положением единиц среди нулей!

То есть ключ при посылке кода может выдать только одну из четырёх комбинаций: «1000», «0100», «0010» и «0001». Однако, используется ещё и комбинация «0111» как стартовая последовательность. В итоге данные от ключа могут выглядеть как-то так: «0111 1000 0100 0010 0001 1000 0100 0010 0001 », где «0111» указывает на начало. Никакой контрольной суммы нет — код просто читается несколько раз для уверенности.

Итого восемь последовательностей, в которых возможны четыре комбинации. Не сложно посчитать, что это даёт нам 65536 вариантов ключей. Не так уж и много, они явно часто повторяются. Теоретически если в подъезде 50 квартир, каждой из которых выдано три ключа, можно подобрать один из них перебрав всего 436 комбинаций. Но я таким не занимался.

Как же лучше читать ключи от Cyfral? Как я уже говорил, уровни аналоговые. Варианта два: аналого-цифровой преобразователь и компаратор. Последний мне кажется надёжнее. Всё отлично работает, если к одному из входов компаратора подключить линию данных подтянутую к Vdd резистором в 650 Ом, а ко второму — ровно половину Vdd, для чего можно использовать делитель напряжения из двух одинаковых резисторов. После этого результат вывода компаратора можно с уверенностью воспринимать как высокое и низкое сопротивление ключа.

Как же имитировать такой ключ? С первого взгляда кажется, что тоже нужно менять сопротивление, но результаты показали, что домофонам не нужна такая точность — можно смело замыкать линию на землю вместо низкого сопротивления и полностью отпускать её, когда нужно высокое.

Ibutton

Самый популярный тип домофонных ключей — это iButton, а именно DS1990A от компании Dallas, работает по протоколу 1-Wire. Протокол весьма хитрый, подразумевает двустороннее взаимодействие — на ключ можно отправлять различные команды, на которые он по-разному реагирует. Серийный номер имеет размер в шесть байт, что даёт 2

8*6

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

То есть теоретически чужой такой ключ можно подделать, если просто записать куда-то или сфотографировать эти цифы!

Для взаимодействия с iButton достаточно подключить его к микроконтроллеру и подтянуть линию данных к питанию (2.8-5 вольт) через резистор:

Скорее всего для многих это всё уже старо как мир, но всё-таки расскажу кратко принцип работы 1-Wire. Обмен данными происходит за счёт поочерёдного прижимания линии к земле, информация при этом кодируется длительностью таких сигналов. Происходит это примерно так:

Далее всё зависит от посланной команды. Обычно это 33h — “READ ROM”, чтение серийного номера, после которого мастер читает 64 бита (1 байт — тип устройства, 6 байт — сам номер, 1 байт — CRC). Чтение каждого бита инициализируется мастером, для этого он посылает импульс в 1-15 микросекунд. Если после этого линия прижата к земле со стороны ключа на 60-120 микросекунд, то прочитан ноль, иначе — единица.

Как видите, прочитать ключ достаточно легко. Имитировать ключ гораздо сложнее, тем более многие домофоны используют разные хитрости. Вот основные подводные камни:

  • Нужно всегда реагировать на reset, даже если он послан во время передачи данных. Импульс длиннее 480 микросекунд говорит о том, что надо начать всё сначала.
  • Момент прикладывания ключа с его точки зрения — это тоже reset, ведь до этого питания не было. Поэтому теоретически домофон может и не посылать reset, и следует периодически отвечать сигналом presence по своей инициативе.
  • Ключи могут реагировать и на другие команды: 0Fh как альтернатива 33h, SKIP ROM (CCh), MATCH ROM (55h) и самое хитрое, о чём я расскажу отдельно ниже, — SEARCH ROM (F0h). Некоторые домофоны могут послать самые разные комбинации таких команд, чтобы убедиться в том, что ключ настоящий.
  • Бывает и обратная ситуация — домофон посылает команду, на которую ключ реагировать не должен. Дело в том, что некоторые программируемые ключи на них всё-таки реагируют, и так происходит ещё одна проверка. Необходимо полностью игнорировать всё, что идёт за этими командами, пока не будет послан reset.
  • Для отсчёта времени лучше использовать асинхронный таймер в микроконтроллере, т.к. счёт идёт на микросекунды. Однако, установка кварца при этом будет излишней.

Про SEARCH ROM (F0h) — это команда поиска всех 1-Wire устройств на шине. Дело в том, что теоретически можно подключить параллельно много ключей и получить список всех серийных номеров. В реальности для iButton такое не используется, ведь к домофону всегда прикладывается один ключ.

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

Сначала обычным образом, а затем инвертированным. Что же получается в итоге? Если у устройства в серийном номере стоит единица, то посылается «10». Если ноль, то «01». И всё отлично, пока у всех устройств эти биты совпадают. А если нет… Выше я написал, что при чтении наличие длинного сигнала — это 0, а отсутствие — это 1, т.е.

0 является доминантным. Таким образом, при возникновении конфликтов читаются два нуля. После получения «10», «01» или «00» мастер должен послать в линию только что прочитанный бит. В случае с «00» он таким образом выбирает, с какой группой устройств работать далее.

В результате после N итераций получается бинарное дерево из N серийных номеров.Ответить на такую команду получается несколько сложнее, чем на обычный READ ROM. Нужно посылать каждый бит дважды — обычный и инвертированный, а затем проверять — совпадает ли с ним полученный от мастера ответ, и если не совпадает, то игнорировать дальнейшие команды.

Метаком

Ещё одна отечественная разработка — домофоны Метаком и ключи К1233КТ2. Как и Cyfral он просто бесконечно посылает код, меняя своё сопротивление/потребляемый ток. К счастью в Интернете доступна официальная документация:

Это всё, что нужно знать для работы с этим ключом. Он посылает четыре байта данных, но в каждом из них один бит уходит на проверку чётности. Итого выходит 28 полезных бит, а 228 = 268435456 комбинаций.

Увы, я так и не смог найти ни один такой ключ, чтобы поэкспериментировать с ним. Однако, в Интернете легко найти универсальный код, который открывает 99% домофонов Метаком. Один из них как раз в соседнем от меня подъезде. Я написал программу, посылающую этот код, основываясь только на технической документации.

Создание мультиключа

Перейдём уже к практике! Да, я пытался совместить в одном устройстве и имитацию ключей, и их считывание (кроме Метаком), и синхронизацию с компьютером по USB. Вот схема того, что получилось (кликабельно):

Компоненты и их предназначение:

  • IC1 — микроконтроллер ATMEGA8/ATMEGA8A/ATMEGA8L;
  • U1 — USB-контроллер FT232RL, нужен для подключения устройства к компьютеру;
  • CON1 — miniUSB разъём;
  • BT1 — батарейки, дающие 3-5 вольт;
  • D1 и D2 — диоды (желательно шоттки), которые изолируют питание от батареи от питания от USB;
  • P1 — «таблетка» iButton, используется для подключения к домофонам;
  • P2 — контакты считывателя ключей, используются для подключения к ключам;
  • R1 — резистор, подтягивающий линию 1-wire к VCC;
  • R2 — токопонижающий резистор для управления транзистором Q2;
  • R3 — резистор, ещё сильнее подтягивающий линию к VCC для считывания ключей Cyfral;
  • R4 — токопонижающий резистор, используется для открытия Q1 и определения подключения к USB;
  • R5 — подтягивает базу Q1 к земле, чтобы закрывать его, когда нет подключения к USB;
  • R6 — токопонижающий резистор для светодиодов, достаточно одного, т.к. одновременно они не горят;
  • R7 и R8 — делитель напряжения для одного из входов компаратора, чтобы считывать ключи Cyfral;
  • Q1 — транзистор для определения подключения к USB;
  • Q2 — транзистор для включения земли на считывателе и эмуляторе, чтобы не сажать батарейки, случайно замкнув контакты в кармане;
  • C1, C2 и C3 — конденсаторы для фильтрации питания;
  • SW1 — единственная кнопка для управления устройством;
  • LEDS — семь светодиодов в форме восьмёрочки для отображения номера ключа.

Печатная плата (кликабельно):

Это было ещё время до покупки 3D принтера, когда я проектировал устройства под корпуса, а не корпуса под устройства. Ко мне в руки попал очень приятный экземпляр в виде брелка и с кнопкой. Просто идеально, оставалось только проделать отверстия под USB и светодиоды. Увы, я до сих пор не могу найти в продаже точно такой же корпус. В итоге получилось как-то так:

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

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

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

При подключении по USB устройство видится как виртуальный COM-порт. Для простоты работы был написан клиент под Windows:

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

Стационарный комплекс.

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

Применяется в сфере транспортной и складской логистики, когда необходимо осуществить приемку/отгрузку груза, учет “въезд-выезд”. В своем составе содержит оборудование стационарные RFID-считыватели для записи данных и фиксации перемещения объектов, смонтированные на объект учета RFID-метки и RFID антенны, подключаемые к стационарным ридерам и предназначенные для организации считывания информации с меток.

Для каждой единицы одежды создаётся свой электронный паспорт с привязкой к конкретному идентификатору.

scale_600

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

Так например для идентификации транспорта, учет персонала, проходящего через зону контроля применяются ворота (портал) или потолочный считыватель. А для учета большого количества мелких объектов, ограниченных небольшой зоной считывания целесообразней применять тоннель (бокс) или как одно из решений – Smart-контейнер.

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

scale_600

  1. На первом шаге в момент маркировки оборудования для инвентаризации имущества предприятия RFID-метка монтируется на объект.
  2. На чип записывается уникальный номер – идентификатор (ID), который присваивается экземпляру и автоматически заносится в базу данных.
  3. Затем работник, осуществляя бесконтактный поиск, для дальнейшего выполнения необходимой операции задействует RFID считывателем, который определяет ID метки. В работе стационарного комплекса сотрудник только проводит необходимые операции и контролирует их корректную работу.
  4. Специальное ПО определяет уникальный номер в базе и передает исходные данные об объекте в систему учета, где хранится доступная информация для управления складом.
  5. Далее все необходимые сводные данные доступны через мобильное приложение или веб-клиент на экране поддерживаемого девайса для дальнейшей инвентаризации на предприятии.

Спасибо за то, что прочитали. По вопросам внедрения RFID-системы и дополнительной консультацией можно обратиться на нашем сайте

Существует 2 способа записи и считывания rfid-метки.

Мобильное приложение.

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

scale_600

Как работает Go-RFID Mobile?

Архитектура сервиса Go-RFID основана на модели “клиент-сервер”, в которой сервер обрабатывает данные из мобильного приложения в том числе. Обработанная информация о проведенных в приложении операциях передается «по требованию» или real-time клиентским приложениям.

Как записывать и считывать информацию

Приложение синхронизируется с базой данных на сервере Go-RFID, куда заранее заведены экземпляры оборудования вручную, выгружены из других систем учета или через интеграцию этих систем по API. Кодирование и регистрация RFID меток происходит с помощью считывателя RFID или планшета, на котором предустановлено приложение и присутствует модуль RFID.

scale_600

Типы домофонных ключей «таблеток»

Как записать и считать RFID-метку?

На самом деле подобные ключи в корпусе MicroCAN бывают разных типов, хотя внешне и выглядят почти одинаково. Объединяет их только то, что ключ имеет два контакта — земля и данные, при этом используется паразитное питание, т.е. ключ питается непосредственно от линии данных.

Универсальные коды ключей

На самом деле универсальные ключи от домофонов — это скорее миф. Разработчики почти никогда не делают для себя какой-то специальный код для всех дверей, исключение составляют только Vizit.

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

Звучит как полнейший бред. Каким надо быть программистом, чтобы допустить такой баг? Но… это действительно часто работает. Да, в свежих прошивках это обычно исправлено, но многие домофоны стоят без изменений годами. Невероятно, но факт.

Любые другие коды ключей выдаваемые за универсальные — это обычно всего лишь служебные ключи для сотрудников почты, ЖКО или самой домофонной компании, и они работают только в отдельных населённых пунктах.

Заключение

Очень удобно в одном устройстве иметь ключи от дома, родственников, работы и подъездов друзей. Особенно актуально для тех, кто не провёл в квартиру домофонную трубку. Но создавать мультиключ было не столько полезно, сколько интересно. Это отличная практика для изучения микроконтроллеров.

Да, именно с этого я в своё время начинал. Помимо этого каждый новый не открывающийся подъезд вызывал целую бурю интереса. Бегать по городу и решать логические задачи, чтобы открыть какую-то дверь — это как видеоигра в реальной жизни! Чертовски увлекательно. Не хватает только схваток с гопниками и бабулек у подъездов в виде боссов 😉

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *