UHF RFID система контроля доступа автотранспорта
Давайте рассмотрим основные составляющие UHF RFID системы автоматизации контроля проезда автомобилей:
1. UHF RFID транспондер
UHF метка для автотраспорта может выполнена в разных форм-факторах, имеющих те или иные преимущества:
а) в виде обычной пластиковой карты;
Мы предлагаем два вида меток-наклеек:
в) в виде шильдика из пластмассы;
Это ни что иное, как UHF RFID метка в герметичном корпусе, как правило, из ABS материала. Применение данного идентификатора обусловлено непрозрачностью лобовых стёкол некоторых автомобилей. В этом случае необходимо закрепить метку снаружи автомобиля, а для этого метка должна выдерживать условия внешней окружающей среды: температуру, влагу, мойку под давлением. Данные метки как раз выдерживают такие жёсткие условия эксплуатации.
2. UHF RFID антенна
3. UHF RFID считыватель
4. UHF RFID считыватель с антенной в едином корпусе
>
Дворы в опасности: как с помощью ключей-«вездеходов» открывают шлагбаумы
Как взламывают шлагбаумы, и зачем это кому-то нужно
В больших городах России, особенно федерального значения: Москве, Санкт-Петербурге, пока в меньшей степени в Севастополе, – где плотность жителей высока и много автовладельцев, в старых центральных районах городов, по мнению многих других автомобилистов (не резидентов района) есть проблема: дворы, в которые теперь нельзя заехать. Придомовые территории, некогда открытые для всех желающих припарковать свои автомобили, перекрыты шлагбаумами, и заехать под них могут только избранные – те, у кого есть передатчик, открывающий загораживающее устройство.
Вот и приходится тем автомобилистам, кто не у дел, колесить по району в поисках бесплатной парковки, откуда не эвакуируют автомобиль или не выпишут штраф, в надежде, что где-то есть дворик, в котором не установлена «рука» шлагбаума, окрашенная в бело-красную полоску. Времени на ритуал поисков уходит много, и выбора порой не остается – приходится парковаться на платных местах или парковках. Явление недешевое, особенно после повышения стоимости парковки в столичном центре parking.mos.ru с декабря 2018 года.
Как вы уже поняли из названия, тема, которую мы хотим поднять, пойдет о закрытых шлагбаумами дворах, в которых места бесплатные, а оттого такие желанные для многих приезжающих в центр города на автомобиле.
И ведь способы, чисто теоретически, для проникновения на закрытую жильцами территорию есть. Правда, способы эти если и нельзя назвать полностью незаконными, то по крайней мере граничат с нормами этики и морали, ввиду чего можно и на неприятности нарваться.
Поэтому, прежде чем в общих чертах описать суть и смысл одного из возможных «решений» проблемы, сразу предупредим: КАТЕГОРИЧЕСКИ НЕ СОВЕТУЕМ приобретать подобные электронные ключи-отмычки для чужих шлагбаумов. Хоть это отчасти и легально, но подъезжать под шлагбаумы и занимать чужие машино-места (хоть они и муниципальные и не выкуплены жильцами домовладения) – как минимум путь к конфликту с местными автомобилистами. Примелькается машина, зададутся люди вопросом: а что это за незваный гость? – и в лучшем случае в один прекрасный день вашу машину эвакуируют.
Электронные ключи-отмычки, или ключи-«вездеходы» для шлагбаумов: как работают?
Принцип действия устройства «многоканальщика» для открытия чужих электронных замков известен достаточно давно, аналогичными техническими возможностями современной специализированной (нелегальной) электротехники пользуются автоугонщики.
По сути, подобные устройства – это код-грабберы, радиоперехватчики, способные украсть и запомнить радиопароль с чужого брелока, открывающего шлагбаум в момент передачи радиосигнала. То есть в момент использования.
В общих чертах это выглядит следующим образом: персона с электронным ключом- «вездеходом» подходит (уловить сигнал приемник ключа может на разном расстоянии, от 15 до 30 метров) или подъезжает на автомобиле к шлагбауму. Ждет, когда кто-то выедет или заедет на дворовую территорию. В момент, когда происходит использование оригинального ключа-брелока (человек нажал кнопку), сигнал, идущий на приемник шлагбаума, перехватывается поддельным устройством.
Если «операция» перехвата прошла успешно (устройство исправно, оно действительно работает, не подделка, не произошло наводок или других влияний, которые могли исказить сигнал) или электроника шлагбаума не защищена или имеет низкую степень защиты от взлома, считайте – бесплатный код у вас в кармане. В виде обычного брелока от того же шлагбаума или автомобильной сигнализации.
Вкратце система работает именно так. По инструкциям, судя по веткам форумов, где обсуждают подобные гаджеты, у каждого устройства свои нюансы работы, но, как правило, для взятия сигнала не потребуется большого опыта, достаточно нажать пару кнопок на устройстве. На сайтах, где продаются гаджеты, продавцы даже предоставляют демонстрационный ликбез по пользованию и запись кодов шлагбаумов и автоматических ворот.
Конечно, есть Кулибины, которые и из бабушкиного утюга могут сделать высокотехнологичную вещь собственноручно. Один из примеров такого подхода опубликовал на Хабре Александр Юдаков, где в материале «Управление шлагбаумом с помощью Arduino UNO и радиопередатчика 433 МГц» явно очень подкованный в электротехнике и прогроматике гражданин (еще бы ему не быть подкованным, если человек – инженер-электротехник) показал, как и из чего можно сделать подобное устройство.
Правда, у него, в отличие от многих желающих попасть на чужие парковочные места автовладельцев, был исключительно спортивный интерес и, как выразился автор, «природная лень»:
«…въезд на парковку сделали так же, по этим же пропускам. То есть подъезжаешь к парковке, подносишь пропуск к считывателю, он срабатывает, шлагбаум открывается (закрывается автоматически), заезжаешь – и все. Так думали они. Но мое увлечение электроникой и природная лень (это ведь каждый раз подъезжать, открывать окно, вытаскивать руку, закрывать окно, а если дождь, а если холодно) пошли против системы».
Пост действительно интересный и для саморазвития подойдет на ура! Особенно кто увлечен темой гаджетов. Не все ж обзоры iPhone смотреть…
Сможет ли «волшебный» ключик открыть все электронные шлагбаумы?
А вот здесь есть нюанс. Вкратце – нет, не сможет.
Несмотря на все заверения продавцов гаджетов о поддержке широкого диапазона частот (каждая фирма-производитель оборудования настраивает передатчики на разные частоты 433.92МГц, 434.4МГц, 315МГц и так далее), большого объема памяти, в некоторых случаях в базу устройства можно вбивать до 99 различных систем и более (впрочем, наиболее ходовые шлагбаумы вписаны в память даже недорогих устройств, стандартно поддерживаются шлагбаумы и автоматические ворота фирм CAME, NICE, DOORHAN, BENINCA, DEA, FAAC, ALLMATIC и других) и других технологических нюансов, например поддержке RFID меток (они используются для автоматического считывания кода, по типу работы транспондера для автоматической оплаты проезда по платному участку), не все может работать гладко или работать вообще.
Многие технические решения могут присутствовать в небольшом гаджете, но не всегда они срабатывают. Опять же, защита шлагбаума от взлома, некачественные ключи-«вездеходы», помехи и другие нюансы работы электроники.
Пример: подобные электронные ключи продаются и для домофонов. Да, как говорят форумчане, они работают, но примерно в 70-80% случаев. Какие-то двери открывают, какие-то – нет.
Отсюда вывод: покупка электронной отмычки для шлагбаумов, вероятно, не решит проблему нехватки свободных парковочных мест именно в вашем районе. Устройство просто может не сработать ни на одном из представленных шлагбаумов. Хотя в других случаях может срабатывать.
Сколько стоит ключ-«вездеход» для автомобилистов?
Ценники разнятся очень серьезно, буквально от 600 рублей за устройство до десятков тысяч: 8, 15, 20 тыс. рублей! Все будет зависеть от того, рабочий это девайс или нет, сколько ячеек памяти в нем присутствует (сколько шлагбаумов брелок-перехватчик может запомнить), есть ли у него LCD-дисплей и так далее.
Законно ли приобретение и использование подобного ключа?
А вот это самое важное! Все же гаджеты такого типа похожи на нелегальные спецсредства. Законно ли иметь при себе электронные ключи к шлагбаумам, а также универсальные ключи от домофона?
Обратимся к юристам по теме. Сайт pravoved.ru :
На вопрос о том, законно ли применение подобных ключей для открытия шлагбаумов во дворы многоэтажек, юристы дают следующие ответы:
«Законно, если это не спецобъект, охраняемый законодательством».
«Существует ответственность только за незаконное использование специальных технических средств, предназначенных для негласного получения информации, в частной детективной или охранной деятельности. Ст. 20.24 КоАП РФ».
Отсюда можно сделать вывод, что наличие брелока и даже открытие шлагбаума или автоматических ворот во двор жилого дома – действия, не противоречащие закону. И только в случае, если шлагбаум стоит на территории спецобъекта, режимного объекта, где даже фото- и видеосъемку по законодательству производить запрещено, безусловно, будет нарушением законодательства. Даже без попытки въехать на автомобиле на территорию такого объекта.
Поэтому говорить о полной легальности использования подобных устройств не приходится. Несмотря на отсутствие прямого законодательного запрета, стоит брать картину в целом и смотреть на нюансы. Может статься так, что, перепутав шлагбаумы, можно открыть проезд на режимный объект, скажем Министерства Вооруженных сил или спецобъект. Тогда придется отвечать по закону:
КоАП РФ Статья 20.17. Нарушение пропускного режима охраняемого объекта
1. Самовольное проникновение на охраняемый в установленном порядке объект, за исключением случаев, предусмотренных частью 2 настоящей статьи, –
влечет наложение административного штрафа в размере от трех тысяч до пяти тысяч рублей с конфискацией орудия совершения административного правонарушения или без таковой.
2. Самовольное проникновение на подземный или подводный объект, охраняемый в соответствии с законодательством Российской Федерации о ведомственной или государственной охране, если это действие не содержит признаков уголовно наказуемого деяния, –
влечет наложение административного штрафа в размере от семидесяти пяти тысяч до двухсот тысяч рублей с конфискацией орудия совершения административного правонарушения или без таковой либо административный арест на срок до пятнадцати суток с конфискацией орудия совершения административного правонарушения или без таковой.
Не стоит играться такими «игрушками». Уж лучше доехать до места своим ходом, оставив автомобиль у дома, чем быть привлеченным к ответственности или в один из дней увидеть, что автомобиль эвакуировали по жалобам жильцов дома со шлагбаумом.
UHF RFID: Бюджетное решение для шлагбаума
Постановка задачи
Что касается пассивных меток, начиная с 2012 года компания GS1 AISBL начала публиковать стандарты, описывающие работу UHF меток. На сегодняшний день более 60 компаний выпускает оборудование для работы с UHF метками и сами метки. Это отличное решение для нас, т.к. с точки зрения пользователя достаточно наклеить себе на машину дешёвую метку, добавить её в систему и пользоваться, пока метка физически не повредится. Никаких батареек для пультов, телефонов и смс. Принято считать, что эта технология используется в основном в промышленных системах и достаточно дорогая, но после включения в игру Китая ситуация кардинально изменилась.
Мы разработаем решение для КПП в посёлке максимально бюджетным способом и в то же время постараемся выжать максимум с точки зрения безопасности. В первую очередь нас интересует цена самих меток, она должна быть минимальная, система не должна ограничиваться одним производителем, а поддерживать любые виды меток. Во вторую очередь нас интересуют максимально бюджетные считыватели UHR. В третью очередь необходимо максимально обезопасить метки от возможности клонирования.
Выбор меток
Но возвращаемся к реальности. Нас в первую очередь интересует то, что можно крайне легко купить как оптом, так и в розницу в свободной продаже. Изучая рынок России и Китая выясняем, что в массовой продаже можно найти метки от компаний Alien и NXP, модели Higgs H3/4 и UCODE 7/8 соответственно. Периодически можно встретить Impinj MINOZA 4QT/R6, Smartrac Dogbone и другие, но значительно реже и часто дороже. Начинаем изучать общие возможности меток и выясняем, что все эти метки имеют идентификатор (TID), перепрограммируемую память для идентификации (EPC) и поддержку паролей (кроме R6). Пароль позволяет заблокировать возможность «убивать метки» и менять EPC. Зная пароль, можно проверить, он ли установлен на метке, считав, например, TID с помощью него. Есть ряд функций, которые поддерживают только конкретные метки, например, NXP UCODE поддерживает блокировку памяти на чтение по паролю, но эта функция не поддерживается всеми метками, так что её брать в расчёт не будем.
Способ защиты от копирования и нелегального прохода
Изучив базовые возможности, мы продумываем максимально безопасную схему прохода:
1.1. Считыватель считывает TID без пароля,
1.2. На основании преобразований TID создаём пароль,
1.3. Считывает TID с паролем; если считать удалось, формирует событие на открытие (в нашем случае отправляет в СКУД идентификатор по wiegand).
Попробуем оценить, что должен сделать злоумышленник, чтобы скопировать метку:
2.1. Выяснить пароль от метки,
2.1.1. Применить brute-force атаку,
2.1.2. Воспользоваться другими атаками,
2.1.3. Воспользоваться сниффером непосредственно у шлагбаума,
2.2. Создать такую же метку с тем же TID,
2.2.1. Найти в продаже метки с незакрытой TID на запись,
2.2.2. Воспользоваться эмулятором UHF метки.
Многие считыватели UHF меток и почти (если не все) метки поддерживают пароли. Но по умолчанию предлагается выставить статический пароль, который будет использоваться в системе для всех меток. Это нам грозит тем, что узнав этот пароль, злоумышленник, имея решение проблемы 2.2, сможет делать копию любых меток в этой системе. В интернете уже можно найти статью «Serialized TID Numbers – A Headache or a Blessing for RFID Crackers», но вот беглый обзор не дал мне простого и дешёвого решения, как склонировать TID (но по опыту Mifare Classic, где есть даже готовые утилиты на githab) и с учётом, что мы поддерживаем любого производителя, потерять пароль по 2.1.2 становится делом времени, может быть не сейчас, но в ближайшем будущем точно. С учётом развития SDR пункт 2.1.3 не выглядит невозможным.
В итоге я решил сделать разные пароли для каждой метки на основе их TID. Даже если злоумышленник сможет скопировать одну метку, чтобы скопировать другую, ему придётся затратить столько же сил и времени, как и на первую. Минус данной технологии в том, что приходится зачитывать метку два раза вместо одного. Это увеличивает время и ошибки. Наиболее простой алгоритм формирования пароля, как мне показалось, это посчитать hash от TID и секретного ключа. В качестве алгоритма я взял sha256, а секретный ключ установил размером в 128 бит, чтобы исключить возможность подобрать его методом перебора. Почему именно sha256 и сколько его ломать? Конечно sha265 выбран из-за того, что он самый топовый алгоритм хеширования, так как используется для закрытия блоков в bitcoin. По опыту майнинга, где на данный момент успешно (минут за 10) подбирают «ключи» размером в 76 бит, подобрать 128 бит не представляется возможным.
Можно было как дополнительную меру защиты записывать на метку специальный код и контролировать его в системе. Это позволило бы выявлять клоны и сообщать об этом в систему. Но для записи на метку необходимо сокращать расстояние от метки до считывателя, а значит нам необходимо покупать более мощные считыватели, для бюджетной системы с низкой степенью защиты это излишние усложнения. Но в каких-нибудь объектах с платным заездом это бы себя оправдало. Например, похожий вариант данной технологии используется в московском метрополитене.
В схеме обнаружился один неприятный минус, метки Impinj Minoza R6 не поддерживают пароли. А учитывая то, что я купил в том числе и их (200 штук), пришлось делать обходные пути, а именно, если мы выяснили, что метка R6, то возвращаем TID. Да, это позволит регистрировать любую метку, но сама СКУД просто не примет код. Т.е. мы лишились пункта защиты 2.1, но сохранили 2.2.
Выбор считывателя для улицы
В России найти бюджетные считыватели мне не удалось, так что пришлось воспользоваться китайским рынком, там есть множество предложений, близких к noname, которые предоставляют SDK для работы. Выяснилось, что некоторые не умеют работать с паролями, другие не имеют нормального описания. Есть варианты контроллер + антенна, есть варианты «всё в одном». Зная российский менталитет и опыт общественных проектов в нашем посёлке, любая ошибка в покупке привела бы к тому, что её пришлось бы оплачивать её самому либо выслушивать обвинения в коррупционной составляющей этого проекта. Короче говоря, бюджета на эксперименты с разными считывателями не было, пришлось выбрать максимально брендовый вариант с минимальными рисками, но всё равно «на удачу», а дальше пытаться выжать из этого решения максимум. Считывателем оказался CHAFON CF-RU5306.
Выбор оказался не тупиковый, в целом считыватель умеет работать автономно, т.е. можно записать туда параметры: читать EPC с какой-то позиции и выбрасывать в WG26, например, раз в секунду. В него даже встроено реле, которое можно замыкать, выполняя тем самым какие-то действия. Можно установить пароль, но только один, который будет использоваться при чтении всех меток.
К сожалению, нам все эти функции оказались не нужны, такой режим работы не подходит. Ещё в автономном режиме оказалась ошибка с зачитыванием TID с ненулевого смещения. Т.е. использовать TID для идентификации нельзя, только EPC. А это значит, что копирование меток будет элементарной задачей даже для школьника (даём обойти п. 2.2). Я конечно написал производителю о проблемах, на что они мне ответили: «Anyway, please use your controller to get data, our demo software it is for demonstrate only.», как бы заявляя, что автономный режим у них это «демо версия».
Пришлось копнуть глубже, я разобрал это устройство. Оно представляет собой МК STM32 и модуль UHR MagicRF M100, слева есть разьём для запайки какого-то ещё модуля, по пинам очень напоминающий ESP-12S. И… Бинго! Это оно. А значит мы теперь сможем реализовать всю логику считывателя на wifi модуле и получим возможность связываться по wifi как приятный бонус. Я конечно же написал производителю с просьбой прислать прошивку для ESP-12S, на что он конечно же отправил меня куда подальше (на китайский рынок купить считыватели с wifi), но по причинам, которые я описывал выше (нет права на ошибку), это было сделать уже невозможно.
После запуска системы она работала крайне нестабильно, это было связано, как я уже писал, из-за очень слабого сигнала wifi. Обещанный MQTT реконнект, конечно, работал, но явно не соответствовал моим ожиданиям. В конечном счёте я решил отказаться от MQTT вовсе и сделать отправку кода минимально возможным количеством сообщений. Я стал посылать udp broadcast пакеты, которые содержали ключ и имя считывателя (имя задается через web интерфейс Tasmota). Broadcast выбрал, чтобы избавиться от ненужного в нашем случае arp обмена. Ну и конечно заказал внешнюю антенну для роутера и модуль ESP-07, т.к. ожидать стабильной работы с таким уровнем сигнала себе дороже. Из плюсов использования UDP возвращение LuCI на роутер, т.к. бинарный файл стал значительно меньше и необходимость устанавливать там MQTT сервер отпала (как и надежды, что драйвер RU5300 включат в Tasmota).
Выбор считывателя для офиса
Из всего разнообразия считывателей выясняется, что почти все продают продукты с одинаковым API. Я приобрёл Chafon CF-RU5102 и ещё какой-то LJYZN-105, документация на них различалась только первой страницей. Разобрав оба, я обнаружил, что везде срезаны названия контроллеров. В целом там стоит преобразователь USB->UART, какой-то контроллер для UHF и какой-то управляющий MK.
Несмотря на наличие SDK, версии под GNU/Linux не оказалось, пришлось вооружиться документацией и написать самостоятельно. С учётом хобби и дефицита времени была реализована работа только с теми командами, которые необходимы непосредственно для программирования меток: дублирование TID в EPC, установка пароля, блокировка чтения и записи.
Первоначально был план написать программу для отправки кодов прямо в СКУД сервер, но к сожалению «бесплатное ПО» этих СКУД (не будем показывать пальцем на Эру) заставило нагородить костылей. В считывателе от Chafon используется USB->UART преобразователь SILABS CP2102, в котором есть неиспользуемые выходы RTS и DTR. Я допаял туда два провода, получив тем самым D0, D1 для wiegand. Единственное, что в этой системе было плохо, это 3.3v. В нашем случае это не критично, так как контроллеры от СКУД регистрировали 3.3 вольта как «1», но в общем случае нужно, конечно, использовать какую-нибудь развязку.
Итого
Систему удалось проверить на таком оборудовании:
считыватель для десктопа: CF-RU5102, LJYZN-105
считыватель для улицы CF-RU5306
протестированные метки успешно: Alien Higgs 4, NXP UCODE 8, Impinj Monza 4QT
протестированные метки с проблемами: Impinj Monza R6, пришлось отказаться от пароля для них
ещё потестировали метки с бирок магазина Декатлон, там оказались метки NXP какой-то неизвестной модели 0x890
ещё мне обещали дать погонять NXP DES, но обещания не реализовались
Для отладки пришлось купить ещё LJYZN-105 и CF-RU5300 (отладочную плату)
В дополнение к этому нам просадили бюджет контроллеры СКУД
$260, но это vendor lock, на который мы когда-то сели и который теперь приходится терпеть.
Система находится на стадии тестирования, так что любые замечания, комментарии, советы и т.п. крайне приветствуются. После того как система покажет стабильную работу какое-то время, я постараюсь опубликовать все исходники на github.
UHF RFID: Бюджетное решение для шлагбаума, после тестирования
В предыдущей статье я рассмотрел решение по созданию недорогого варианта для открывания шлагбаума. После нескольких месяцев тестирования в посёлке были выявлены проблемы, исправлены ошибки. Статья повторяет первую, но основана на практическом опыте, в ней много фотографий, ссылки на исходники. Информации должно быть достаточно, чтобы каждый смог это быстро повторить.
Общая концепция
На автомобили наклеиваются метки, на КПП вешаются считыватели меток, которые по wifi передают коды на роутер, роутер генерирует wiegand посылки, которые передаются в СКУД. СКУД принимает решение об открытии шлагбаума.
Сами считыватели можно купить с уже запаянными wifi модулями, которые отправляют в сеть информацию по меткам, так что если нет желания заморачиваться, можно купить готовый, написав только wiegand генератор на роутере.
Считыватели RU5306 отлично работают на всех автомобилях с обычным стеклом. Если же стекло с электроподогревом, качество считывания сразу очень сильно падает, в итоге я выставил RU5306 на продажу и купил RU5312. В этих моделях разница только в размере антенны и наличии светодиода, контроллеры совершенно одинаковые.
Модификация считывателей CF-RU5312
Антенна считывателя RU5312
К сожалению, у меня крайне мало опыта в антеннах, так что никаких комментариев дать не смогу.
К считывателю добавляем модуль ESP8266, прошивку можно взять из форка Tasmota https://github.com/BASM/Tasmota/ ветка uhf_nopass. Перед сборкой следует создать файл tasmota/mypass.inc, в котором указать логин/пароль от wifi, к которому будет подключаться модуль:
Стоит заметить, что tasmota в каких-то случаях начинает пытаться получить время и дату по NTP и делает это крайне неоптимальным способом. Если же до NTP сервера достучаться не получается, считыватель переводится почти в неработоспособное состояние, постоянно «подвисает». Я сделал грязный хак, отключающий этот функционал. Если вам нужна правильная дата, сделайте revert этого коммита.
Для сборки нужно воспользоваться инструментарием platformio, для упрощения я добавил Makefile, так что достаточно набрать make для сборки. После сборки будет создано две прошивки: tasmota-minimal и tasmota-sensors. Прошивки архивируются.
Не самый правильный, но самый простой способ перевести ESP8266 в режим программирования.
Для записи в ESP8266 нужно загрузить МК в режим программирования, это можно сделать, запаяв провода как на картинке. Для прошивки можно набрать «make flash», будет зашита прошивка tasmota-sensors. Перед прошивкой рекомендуется очистить память, это можно сделать командой «make flashclean». Если память не почистить, то области, где находятся настройки tasmota, не будут перетёрты, а значит могут возникнуть проблемы.
После прошивки нужно отпаять все провода кроме питания, а затем подать питание. Модуль подключится к wifi. Если это произошло, модуль можно запаивать, т.к. дальнейшее обновление можно делать через web-интерфейс. Из-за малого количества памяти на микроконтроллере обновление в tasmota сделано в два этапа: необходимо отправить сжатый образ minimal, после прошивки ещё раз перепрошить уже sensors версией.
Запайка ESP8266 в штатный разъём на ножки.
Можно запаять модуль прямо на штатный разъём, но (при необходимости) выпаять его будет крайне сложно. Если припаять на ножки, то это значительно облегчит задачу.
В стандартной схеме ESP модуль UART-ом подключён к управляющему микроконтроллеру и является ведомым устройством. Мы сделаем его главным, для этого мы подключаем выход UART считывателя к ESP модулю. UART подпаиваем прямо в параллель к RS-232 драйверу, ножка 12 (удобнее запаять к стабилитрону) и 11. Идеально было бы, конечно, переписать прошивку управляющего микроконтроллера, но я пошёл более топорным вариантом.
Считыватель можно настраивать в разные режимы работы, нас интересует режим считывания TID и выдача его в UART. Делается это с помощью программы Reader Software, которую можно скачать с сайта фирмы chafon. В идеальном случае настраивать считыватель нужно из ESP модуля, но я так и не заставил себя дописать этот функционал в прошивку.
Модификация закончена.
Делаем wiegand генератор на роутере
Утилита для компьютера
Настольных считывателей я в общей сложности купил два, один Chafon CF-RU5102, второй LJYNZ-105, так как на него появилась очень хорошая скидка. Оба считывателя имеют совершенно одинаковые интерфейсы, даже документация отличалась только первой страницей. Но внутренности оказались немного разные.
CF-RU5102
В LJYNZ-105 были заботливо затёрты все наименования чипов, в CF-RU5102 затёрт только чип, отвечающий за управление. Для RF используется ADF7020, для USB Silabs CP2101. С точки зрения общей схемы считыватели крайне похожи, это USB Uart преобразователь, микроконтроллер, реализующий интерфейс общения, и RF контроллер. В LJYNZ-105 была обнаружена незначительная проблема, при включении и выключении бизера он продолжал очень тихо пищать. Прошу прощения за качество фотографии CF-RU5102, заметил это после того как уже отдал оборудование.
CF-RU5102 с Wiegand интерфейсом
Я припаялся к DTR и RTS, тем самым получил возможность генерировать wiegand посылки из системы, куда подключён считыватель.
Какие метки использовать
Я накупил разных видов меток. Метки вида (2) работали крайне плохо, они имеют малый радиус и при чтении постоянно не совпадает CRC; лучше всего ловит (1), которые продаёт сам chafon. После того как был выявлен лидер, жителям по умолчанию выдавались метки вида (1). Было создано 3 тестовых комплекта, состоящих из всех видов, любой желающий мог взять его, протестировать и составить отчёт. Но к сожалению кроме меня этим никто не занялся. Так что по субъективным оценкам (3), (4) и (6) работают несколько хуже, чем (1), но лучше, чем (2). Метка (5) ко мне приехала в единственном экземпляре в качестве «пробника», я её наклеил на машину соседу и в целом дать оценку её работы не могу.
Если зайти в магазин Decatlon, то можно заметить, что там используется UHF для отслеживания и пробивания товара на кассе. Метки фирмы NXP, но модель отсутствуют в базе gs1.org. В метках выставлен пароль на запись. Их TID успешно считывается и потенциально может использоваться для открытия шлагбаума если вы, например, выезжаете на велосипеде. Практических опытов не проводилось.
А можно обойтись без модификаций считывателя?
Я пытался написать эту статью с минимумом теоретических рассуждений и воды, но всё же не смог удержаться. Я немного опишу, как можно было сделать систему без модификации считывателя, и расскажу о проблемах, которые могут возникнуть.
Помимо проводов питания необходимо будет тянуть провода для данных, будь то wiegand или UART. Либо можно заказать считыватели сразу с запаянным wifi модулем, проверить на практике такое решение у меня не было возможности.
Ещё она проблема, это таксисты. Почти у любого таксиста есть метка; когда он паркуется у КПП в ожидании клиента, считыватель начинает посылать массу сообщений о том, что метка найдена. СКУД конечно не знает этой метки и не открывает шлагбаум, но сообщает об этом в журнал. Считыватель может зачитывать по несколько меток в секунду, из-за чего журнал сильно замусоривается. Можно включить ограничение на скорость считывания, но тогда если в зоне чтения больше двух меток, ожидаемая метка может быть прочитана с большой задержкой. В своей прошивке я обошёл эту проблему созданием буфера прочитанных меток. Считыватель выдаёт метки с максимальной скоростью, если метки нет в буфере; её код выдаётся в wiegand и записывается в буфер. Если метка в буфере есть, ничего не происходит. Алгоритм, в свою очередь, следит, чтобы коды, попавшие в буфер, удалялись оттуда через 3 секунды. В результате скорость реакции на правильную метку оказывается максимально высокой, даже если вокруг находятся другие метки.
Использование считывателя без СКУД
Заключение
Запуск системы был сделан в апреле 2021, система работала успешно у 80-90% жителей. К августу работоспособность доведена до 100%. Последний тест покажет, будут ли проблемы в зимний период.
Мы встретили метку с другого объекта, при попытке добавить эту метку в нашу систему оказалось, что пароль на метке не выставлен. Наше оборудование заботливо переписало EPC и установило пароль на метку, в результате чего на том объекте она работать перестала. Если метка наклеена на вашу машину, следует осознавать, что потенциально к ней имеет доступ любой человек, который может подойти на расстояние в 10 метров, а значит оставление метки без пароля является грубой ошибкой. Рано или поздно её кто-нибудь затрёт, будь то моя заботливая программа или школьник-радиолюбитель.
В российском интернет-магазине мне удалось найти в продаже метки с открытой на запись TID, цена таких меток около 800 рублей. Если требуется использовать действительно защищённую систему, следует рассмотреть метки с AES, например, NXP DNA.
К сожалению, моя статься затрагивает в основном одного производителя, сравнить работоспособность разных считывателей не удалось из-за отсутствия времени и бюджета. Статей, подобных этой, крайне мало, так что я буду очень рад увидеть аналогичные статьи с опытом использования считывателей от других производителей.