RFID 125Khz card reader – без спец микросхем (atmega8).
Вот собственно схема. Вывод содержимого (64бит) –RS232 9600bps вывод контроллера тх-3 ножка. Для соединения с ПК использовать преобразователь на MAX232(RS232-ТТЛ), а можно схему на транзисторе (полно схем в интернете RS232--ТТЛ) . Кварц 11,0592Mhz. Индикатор чтения карточки ножка 11 (PORTD5).
Примеров использования масса – постановка объектов на охрану, цифровые замки, ограничение доступа в помещения (я использовал как замок – для этого необходим драйвер двигателя, эл.магнита и пр).
На bc547/557 выполнен узел накачки на контур, далее детектор, на LM358 выполнен фильтр и компаратор, оконечный bc547 – инвертор. Схема 100% РАБОЧАЯ проверена в симуляторе Proteus 7.5 и в железе, так что если не работает смотрим пункт кривые руки и прочее J. Для не верящих на слово симуляция протеуса (вторая mega8 – эмулятор RFID карточки).
Контроллер проверяет валидность кода - четность данных по столбцам и строкам (типа CRC). В программе реализовано декодирование манчестерского кода, по прерываниям (по захвату ICP). Интервал между считываниями 2сек. Расстояние считывания до 10см. В архиве файлы платы (SL5), схема и прочее.
Прошу обратить внимание на плате для накачки на контур использовались кт315/361(не было других L) их желательно заменить на указанные на схеме. Питание +5В подается через маломощный стабилизатор 78L05. При прошивке прошивать фьюзы таким образом:
Выполнено устройство на фольгированном текстолите (1 сторона), по ЛУТ технологии, размеры 45x65мм. Корпуса микросхем mega8-16, lm358-SMD. Позже выложу фотки готового устройства – нет сейчас доступного фотика, а веб камера это не дело. Все вопросы мыльте на kostua123@mail.ru.
Posted by Rubanov K.
Фьюзы прошикать SUT0, BODEN, CKOUT остальные можно ставить в 1.
Вот принцип на рисунке:
Вот карточка:
Чтож сразу так налетать?Просто выставил схему попроще!
Я в создании схем и програм полный 0,потому и прошу помощи!
разбирайтесь что к чему
Вот ссылка на схему уже проверенного мной варианта.Работает, без проблем!ВНЕСЕНЫ ИЗМЕНЕНИЯ В СХЕМУ.Генератор питается от 5 вольт.
Большое спс!Но есть два вопросики:
№1-Ты говориш что ключей 7-мь,а на схеме емулятора только 5-ть кнопок-ключей?
№2-записыватькод ключя надо через ридер?
Начну так: не знаю как правильно на этом сайте всё оформляется и посылается, я тыкаюсь, а у меня не получается тебе отправить, и времени в обрез.
На схеме я не указывал это т.к. пользуюсь переключателем на 5ть ключей,просто эту схему я делал чисто под себя. Фильтр в программе зарезервирован, что даёт возможность увеличения ключей до 7ми. Надо только эти метки активизировать. Что касается самих ключей, их 8ми байтный код ты должен знать, в противном случае, пользоваться прописанными там(в программе) моими ключами ты не сможешь. Тебе надо вписать (смотри внизу программы) свои ключи, хотя б один, чтобы проверить как это всё работает, а потом уже наращивать мощность. Меня интересует умеешь ли ты пользоваться программой AVR-Studio? которая нужна для пере трансляции программы.Напиши!O.K.? Теперь если ты не знаешь кодов, тебе нужно либо сходить куда-то и их со-считать, либо собрать простейший ридер по моей схеме. При чём там можно обойтись без чтения в память Атини2313. Весь массив кода можно считать и в компьютер, популярной программой Nero Wave Editor, которая есть у любого пользователя. Запрограммируй атини(залей hex) программой, и она начнёт выдавать в контур 125 КГц. Тогда у тебя будет возможность подставлять к контуру rfid ключи и считывать их в редактор через звуковую карту, в режиме записи установив "моно"дискретизацию 96Кбит и включать запись с сохранением. А потом декодировать в ручную, анализируй, растягивая полученную осциллограмму. Там найдёшь 9единиц подряд, а за ним собственно и сам ключ. Такая (ручная)раскодировка у меня занимает считанные минуты, не прибегая к ридеру. Всё - и так можно распознать на бумаге, двигаясь от метке к метке передвигая курсор каждый раз то в начло, то в конец окна редактора. Вот если коротко, то всё. Пиши посмотрим, что у тебя получится.
FAQ: Меня спрашивают а можно ли читать этим устройством ключи цифрал, dallas touch memory, и прочее...
Отвечаю ключи даллас не подходят они контактные (такой металический контакт на домофоне), контактные ключи цифрал тоже (они подобны даласовским, точнее аналог ds1990a)
Описываемые в статье ключи бесконтактнве (до 10-15см) так называемые RF ключи. Если вы хотите знать модно ли использовать для устройства ключи домофона и прочие смотрите тип поддерживаемых карт - EM MARINE 125Khz 64бит EM4001/4100 протокол описание подробное есть на сайте разработчика протоколо EM MARINE.
Если у вас такой ключ визит как на картинке (RF ключ), то сделать замок с моим ридером можно.
VIZIT RF 2.1
Х
неперезаписываемый
VIZIT RF 2.1 - одноцветный брелок. Небольшие размеры, тонкий корпус, привлекательный внешний вид. Железное кольцо для крепления.
Технические характеристики:
Ключ RF (RFID брелок EM-Marin).
Радиочастотный идентификатор 125кГц пассивного типа.
Используется для панелей Vizit, оборудованных контроллером ключей RF
Непрезаписываемый ( не программируемый).
Тип микросхем: EM-Marin.
Размеры(мм): 37х30х3.
Цвет: зеленый.
(взято из прайса, ваш брелок может отличаться размерами)
Также подходят карты белые прямоугольные EM MARINE фирменнные(фото есть в статье).
FAQ: Меня спрашивают как изготовить антену(катушку)...
По поводу катушки неплохо сделать магнитную антену, но это не принципиально.... в принципе будет работать даже с другой индуктивностью(на схеме 345мкг измерял по прибору+4,7нф кондер) только расстояние 2-3см. Контур настроен на 125кгц. можете изменить емкость и индуктивность главное настраивайте по осцилу на резонанс(125кгц) тогда дальность получите 10 см. подробности в архиве:
скачайте архив
соберите девайс, для начала будет работать даже с плохо настроенным контуром а потом доведете до ума:)
там симуляция протеус(7.5 sp3) работы ридера и карты и прошивки.
FAQ: Меня спрашивают а можно ли записать данным устройством карты...
Нет, потому что эти карты только для чтения и записываются только при производстве EM MARINE 64bit.
Это однако не мешает изготовить копию ключа через эмулятор карты, предварительно считав содержимое.
Cхема псевдоключа очень простая, для активного: контроллер транзистор, контур, батарейка. Для пассивного без внутреннего питания если будут желающие схему выложу. Советую скачать симулятор и прогнать в нем схему....кстати можете вносить изменения и смотреть как работает устройство... Для работы нет необходимости записывать конкретные ключи. По вашему желанию сделаю вариант с кнопочкой для стирания записи ключей, пока тестовый светодиод работает при обнаружении любого ключа.(интервал паузы поиска 1сек), это удобно для отладки устройства.
Константин kostua123@mail.tu
http:/micro.dax.ru/new.rar
отсюда скачивание должно работать
это для 13,56Mhz mifare 1.5метра нетрудно получить, а тут прийдется для этих целей магнитную антену лепить и накачку помощней. Продолжение будет....
Serg06 писал:
Если есть желание, могу предложить схему эмулятора ключей на 125КГц RFID, свой вариант.С применением Atyni2313, питается от антенны считывателя. Моя разработка.
Желание есть.В связи с этим хотелось бы знать какие прошивать фузы и нет ли разработанных печаток в lay формате?
все это можно исключить но думаю будет нейдобно работать с количеством ключей больше одного...
- первое нажатие: устройство включилось и эмулирует первую ячейку, светодиод моргает 2 раза в секунду
- второе: эмулируем 2 ячейку и светик моргает в 2 раза чаще.
- и т.д.
Если надо записать то долгим нажатием на текущей ячейке переводим устройство в режим чтения и записи, светик горит постоянно. при удчной записи он переходит в режим эмуляции текущей ячейки.
После прошествия скажем 5 секунд устройство выключается, при этом находясь в любом из режимов!!! Тини13 это самое правильное решение!!!
эмулировать UART, а usb hid точно не получится на одном тини с ридером
А на тини13 буду портировать готовый рабочий код... в смысле когда алгоритм будет протестирован... так будет меньше корректировать и искать ошибки. Тогда будет типа записал ключ нажав на кнопку, воспроизвел нажав на вторую...без лишнего.
PS Прошивка на стадии тестирования...пока не было возможности проверить на ридере домофона...но мой вроде нормально обрабатывает эмулированный ключ...испытания все покажут...
и прошивки на случай внутреннего и внешнего генераторов. Внутренний OCR2 -PORTB.3 17 нога, кидаете на вход вместо 4 ноги 74hc4060
по схеме примерно такое получается, реализовано пока на макетке...
внутри платка с кнопками, аналоговая часть и катущка...
вот прошивка под все это:прошивка ридера-эмулятора
Какая логика работы кнопок для записи,выбора и эмуляции карты? Где и в каком виде хранится код карты? Не плохо было бы видеть его в hex или bin...
Все функции кроме R-чтение дублированы на кнопки для автономной работы(если устройство подключено то в терминалке при нажатиях лог будет тоже идти)
При чтении тригером переключается светик с интервалом 700мс после каждого чтения, второй мигает при поднесении любой валидной карты не сохраненной в память.
Код пока храню в EEPROM, запись идет последовательно 1-5ключ потом опять 1 по кругу, при нажатии W. Метка на 1-й идет при включении.
Пустые ключи не будут воспроизводиться, остальные по 5раз каждый(для нормального захвата(синхронизации) содержимого ридером) ведь пассивная карта передает все время код. Кроме время эмуляции устройство работает как ридер, обратите внимание что используется внешний генератор на 74hc4060. Для большего количества карт целесообразно ввести внешнюю пзу типа 24LC256...
Вот примеры работы в терминалке:
//=================нажимаем R
SUCCESS
FFFFFFFFFF;
FFFFFFFFFF;
FFFFFFFFFF;
FFFFFFFFFF;
FFFFFFFFFF;
//==============нажимаем W
PRESENT CARD
SUCCESS
0F00E19803;
//подносим карту после present... теперь прочитаем
//жмем R
SUCCESS
0F00E19803;
FFFFFFFFFF;
FFFFFFFFFF;
FFFFFFFFFF;
FFFFFFFFFF;
//===========стираем E
SUCCESS
// смортрим содержимое R
SUCCESS
FFFFFFFFFF;
FFFFFFFFFF;
FFFFFFFFFF;
FFFFFFFFFF;
FFFFFFFFFF;
Для эмуляции жмем O: появится "Emalated #01...." для пустых будет сообщение "EMPTY #01..."
В eeprom пишутся только чистое содержимое,биты четности и стоповые, заголовок добавляются при эмуляции. В некоторых случаях сигнал жмуляции нужно будет инвертировать(в зависимости от реализации стороннего ридера(домофона))
Единой печатки нет пока, макетировалась на нескольких платках, сейчас делаю все на одной плате + печанная катушка + все smd для минимизации. Питание 5В, я подавал с 2-х литиевых 3в на стабилизатор, должен пойти и 3,7В литиевые аккум. типа как на пллеере.
Вот прошивка:скачать
вот еще ссылка
кстати симуляцию полной схемы не выкладываю потому что не все будет в протеусе отрабатываться(модель 74hc4060 не моделируется- ошибка протеуса)
так что все проверить не удастся, можешь смотреть модель и схему ридера-замка выше в постах...
Все верно нужно место экономить, а эмулировать конечно нужно полный дамп карты манчестер-коде
проверено тоже нормально
схема:
для начало можно и обычную намотать оптимально диаметр 50мм 0,2мм провод витков 55-60 я мерил по прибору 345uH, кондер 4,7nF тоже желательно точнее подобрать... Но все это не так критично, схему удастся запустить и с плохо подобранным контуром, правда дальность/чувствительность будут
плохими(нужно вплотную подносить карту) потом можно натроить как нужно
Появится время попробую поэксперементировать с печатным контуром 2-х или 4-х слойным
Кстати вы накачку на контур использовали как на схеме и генератор на 74hc4060 в ваших эксперементах?
Просто для настольного варианта можно да и нужно поставить узел накачки на 9-12В, и контур побольше
можно см 10 диаметра, дальность можно больше получить.
типа такого:
есть еще варианты, помните я о трансивере вместо отдельных транзисторов...
вот схемка модернезированного узла, смотрите кстати на эмуляторе нужно в таком случае убирать транзистор на выходе генератора PORTB.1 соединяете через сопротивление и диод(чтобы не было инверсии сигнала)
Хороший для ридера узел как и вся схема. А у меня просто, а простота она всем известна...от сюда и у некоторых проблемы.(если у кого по поводу..., то добро пожаловать - klsean@mail.ru. Сейчас разрабатываю версию "два в одном" именно по этой схеме(аналоговую часть)на символьном Led индикаторе(2 режима, 15 ключей, с возможностью выдачи/записи в одну из ячеек, или просто чтение в 16разр.индикатор весь 64битный код.
прошивка на эмулятора/ридера 5 ключей уже выкладывалась
У меня к kostua вопрос:читал, что на вашем устр-ве ключи в EEPROM записываются в чистом виде, а биты чётности и стоп добавляются при эмуляции. Следовательно вам известно как они вычисляются.Со столбцами понятно, там просто чётность. А как строки? Мне не удалось их вычислить, и нужна помощь. Если не затруднит?
конечно пишутся только байты данных(5) и не битом больше между прочим это как раз сделано для систем контроля (для передачи данных на ПК в чистом виде) + эти данне и написаны на карте(можно сверить код с надписью на карты) хотя там 3 байта последних пишут обычно. Для замка это не важно можно сравнивать полный код и записывать его....ну парой байтов больше По поводу четности
там она по строкам и столбцам (каждый 5 бит-четность) т.е ниблы(полубайты) разделены битом четности, последние 5 бит в пакете: 4 бита четности по столбцу + стоповый. Ниблы я склеиваю по 2штуки в байт
вот пример для наглядности
111111111
xxxx 0 четность строки
xxxx 0
xxxx 0
xxxx 0
xxxx 0
xxxx 0
xxxx 0
xxxx 0
xxxx 0
xxxx 0
yyyy stop
четность столбца
можете скачать файл протеуса(там с симулятора карты на вирт осцил идет сигнал) разобрать пакет и на листике посчитать биты и убедитесь что все так и вызодит....
Пример: для полной ясности.
111111111-заголовок --- кол-во битов в строке
1000-1? --- нечётн
1110-1? --- нечётн
0111-0? --- нечётн
0111-1? --- нечётн
1001-0? --- чётн
0101-0?
1000-1?
1000-0?
0000-0?
1101-0?
0111-0-стоп (без вопросов)
В том то и дело что обязан, а если считывается часть пакета с мусором(полубайт с неправильным битом четности) незачем вылавливать весь пакет
и тратить время... более того я пошел дальше - а если мы считали часть пакета и превышено максимально ожидаемое время приема пакета то он тоже сбросится(срабатывает например когда карта далеко от ридера или быстро прошла в поле ридера не успев еще передать код) это позволяет максимально ускорить время и надежность синхронизации с картой. Фильтр это само собой желательно кстати активный n-го порядка а не просто RC/LC цепочки ну и стабильность и чистота питания конечно
Вот ковыряю Proteus и вашу схему. Написал прогу на Bascome для card reader. Симуляция в Proteusе работает. Текст програмы банальный из хелпа к Bascom. А вот пошагово оттестить прогу не получается в Proteus, может кто подскажет в чем причина, может из за того что использую "вторая mega8 – эмулятор RFID карточки" и прошивку для эмулятора, а не исходник. Или как в Proteus сэмулировать сигнал от Rfid карточки. ХЗ иже башку срывает. Может рассогласование по частотам, в ридере я использую 3.6864MHz ну или как у автора 3х3.6864MHz а в эмуляторе от автора 8MHz.
ps
test EM4095 check... 84,C2,A6,E1,95,
кстати если то что не работает в протеусе это не приговор устройству(не все корректно отрабатывается) о ВЧ я вообще молчу так что без сборки и отладки не обойтись. Где то я выкладывал ридер-эмулятор на 5 ключей, в протеусе и железе у меня работает, чуть что файлы проекта залью на сервер
НЕ ТАК, у меня скорее всего из-за того, что я сигнал после детектора пропускаю только через один компаратор и сразу на tiny13. А у автора он еще инвертируется на транзисторе... Кстати зачем??? Видимо у меня ошибка в этом.
Я делал под EM описание дампа манчестера, по поводу ОУ и прочего схему можно упростить вообще до безобразия.
накачка-пиковый детектор-фильтр-транзистор(подбираем порог срабатывания) и все.... А разные вариации всеми любимой схемы где-то в даташитах была правда с большим количеством деталей, ASM код как-то не внушал доверия и был немного запутан, вот и родился проект... По поводу протокола все давно известно...и кажется строить версии содержимого карт не к чему...есть ведь документация EM, на ресурсе куча информации о протоколах/ типах модуляции....
Вот ковыряю Proteus и вашу схему. Написал прогу на Bascome для card reader. Симуляция в Proteusе работает. Текст програмы банальный из хелпа к Bascom. А вот пошагово оттестить прогу не получается в Proteus, может кто подскажет в чем причина, может из за того что использую "вторая mega8 – эмулятор RFID карточки" и прошивку для эмулятора, а не исходник. Или как в Proteus сэмулировать сигнал от Rfid карточки. ХЗ иже башку срывает. Может рассогласование по частотам, в ридере я использую 3.6864MHz ну или как у автора 3х3.6864MHz а в эмуляторе от автора 8MHz.
******************************************************
Сэмулировать сигнал RFID карточки в Proteus так как в реальности задумано (по магнитному полю) не получится. Да и зачем? Какая может быть в этом цель? Сигнал эмулятора можно подать на вход и напрямую проверив цифровую часть. А аналоговую можно проверить отдельно, подключая на вход и выход виртуальные приборы. Правда, результат не совсем будет точен, но по увиденному выводы какие то можно сделать. На счёт пошаговой отладки: Загружать надо в оба контроллера ни НЕХ, а объектный код полученный в результате трансляции программы( расширение "OBJ"
НЕ ТАК, у меня скорее всего из-за того, что я сигнал после детектора пропускаю только через один компаратор и сразу на tiny13. А у автора он еще инвертируется на транзисторе... Кстати зачем??? Видимо у меня ошибка в этом.
Если посмотреть на инвертир. пакет, то это более правдоподобно, значит вам нужно его "перевернуть", и тогда всё встанет на свои места.
Вот что у меня получилось с Proteus+Bascom
У меня вот такое предположение возникло насчет Ваших брелков - а может быть у Вас не манчестерское кодирование, а например биполярный код? Ведь собственно они похожи...
НЕХ, а объектный код полученный в результате трансляции программы( расширение "OBJ" Понятно, я уже это понял. Kostua обещал выложить: "чуть что файлы проекта залью на сервер". Я с Makfail не разобрался, под linuxom чтоли компилить. Вот нашел на просторах инета
Вот что у меня получилось с Proteus+Bascom
//====================================================
Makefile это файл настройки компилции, компилить нужно
WinAVR(там есть утилита кстати для создания Маке файлов)...
Очень хороший проект, спасибо, давно хотел подобное устройство.
Есть несколько вопросов: Какие фьюзы выставить? Исходя из программы (SPIEN, SUT0, CKSEL0) И по схеме узел эмуляции не совсем понятен или транзистор неправильно нарисован?
Это соответствует, кварц 8МГц, без деления такт.частоты и.т.д. Сюда же прикладываю фото моего устр-ва, можешь посмотреть.Сделано скромно, без наворотов. Возникнут вопросы, отвечу-решим. Это устройство работает безупречно. Проверено на большом кол-ве брелков и картах.
Ссылка на фото.
а также фото моего универсального ключа вездехода(эмулятора), открывающий примерно70% подъездов нашего города. Его код могу выслать по почте.
Прошил, работает код читает и эмулирует отлично!
Но непонятно что с дисплеем, не могу разобраться дисплей рабочий точно, контраст регулирую, снял с терморегулятора 1х16, просто черные сегменты половина дисплея. Нашел еще в закромах 2х8 подключил, та же песня, перепроверил прозвонил подключен правильно. Уже и спиртом напоил изрядно. Но увы. Может это дисплеи такие, один Winstar другой Sunlike.
Не силен в программировании и не могу разобраться, но когда то был случай, читал на форуме что бывают проблемы с выводом строб Е приходит одновременно с установкой данных и сигнала RS, а нужно выдерживать паузу в 1мс или более. Но некоторые дисплеи к этому не критичны. Может быть в этом проблема?
Заметил только, когда прошивал проц и не знал какие фьюзы выставить, пробовал разные под кварц и т д, то перевернув дисплей увидел надпись Emulator на половине экрана. Но сам ридер не работал. После правильной конфигурации работает, кнопочки нажимал по аналогии протеуса.
нашлось именно такого дисплея как у меня и у вас. Мне пришлось незначительно переделать свою программу, чтобы продемонстрировать устройство, а как иначе? На дисплей в протеусе все 16 символов выводятся располагаясь друг за другом с нулевого адреса после команды "очистка дисплея". Наши дисплеи работают немного по другому: Первые 8 символов выводятся с нулевого адреса как и в протеусе, а остальным 8ми, делается пере адресация на 40(DEC) адрес. Вот по этому у вас 2я половина не видна на дисплее . В программе инструкции пере адресации второй половины дисплея заменены командой NOP(резерв). Но это не важно, я вышлю вам ссылку, чтобы можно было скачать прошивку под 1 строчный дисплей с буфером на 80 символов, которые разделены как 2 х 8 по 40 символов в каждом. ССЫЛКА ---
Но ссилка уже не рабочая, собрал эмулятор но там проблема с инверсией ключа.
Может у кого сохранился архив Serg06 выложите его сюда, думаю многим пригодится.
Ешо вопрос, где можно скачать прошивку, чтобы изменить выходную строку?