Ока в Новосибирске

Клуб Окаводов Новосибирска
Текущее время: 28 мар 2024, 21:11

Часовой пояс: UTC + 7 часов




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
СообщениеДобавлено: 01 ноя 2014, 00:59 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 10 апр 2007, 22:36
Сообщения: 11206
Откуда: Новосибирск, Дзержинский
Авто: ВАЗ-21043
Имя: Алексей
Ну не такое уж и новое, кстати. Но задумка крайне интересная и очень перспективная, между прочим. Радиометки по подобному принципу уже во всю используются, например, в крупных магазинах для предотвращения краж. Но черт с ними, с магазинами - вернемся к домофонным ключам. Раньше повсеместно использовались некие "таблетки" - "touch-memory", но мир не стоит на месте.

Некоторое отступление от темы (скрыто, что бы не мешало)
Текст свернут
Изображение
В чем минусы TouchMemory? Первая и самая главная проблема - необходимость физического и главное электрического контакта считывателя с ключом. Все, что из этого следует, и есть минусы. Ну во-первых считыватель никуда не спрячешь, например, под косяк. Во-вторых такой домофон (или любая другая система контроля допуска) может легко стать жертвой вандалов с электрошокером. И хоть серьезные системы от этого защищены, но нет абсолютно надежных систем.

Преимущество RFID:
    отсутствие непосредственного контакта между считывателем и идентификатором, нет надобности в прямой видимости;
    компактность и скрытность - электронная метка может быть установлена незаметно;
    информация не только считывается, но может быть записана, перезаписана, дополнена или удалена;
    высокая скорость записи и получения данных с идентификатора;
    высокое качество работы даже в сложных климатических условиях, агрессивных средах;
    возможность работы с любыми товарными группами;
    устойчивость к загрязнениям, пыли;
    пассивные метки не имеют ограничения срока эксплуатации, любые электронные метки более долговечны
    при необходимости, данные на электронном идентификаторе можно засекретить;
    память метки позволяет записать большой объем данных (до 10000 байт);

И вот на смену "таблеткам" пришли другие штуковины - бесконтактные ключи, взорвав тем самым мой любопытный мозг:


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

Конечно со временем я узнал, что внутри этого синенького брелка имеется катушка и маленькая микросхемка. Пардон, а где батарейка и от чего эта микросхемка питается? Оказалось, что все очень просто: считывающее устройство домофона имеет точно такую же катушку (только побольше), и ей оно создает определенное электромагнитное поле в небольшом радиусе. При попадании в него брелка, в его катушке появляется электричество - ей и питается микросхемка!



Далее все просто: код с брелка считывается, система проверяет его и дальше принимает решение открывать дверь или нет. Но вот как этот код прочитать????


В общем, с этим вопросом я живу с тех пор, когда в нашем подъезде заменили "тачмеморевый" домофон на RFID 125кГц. И вот я несколько дней назад совершенно случайно наталкиваюсь на статью на сайте РадиоДеда. Ух ты, интересно! И не нужно никаких специализированных микросхем!!! Да еще и готовый контроллер допуска в одном флаконе, хоть прям сейчас бери и в частный дом на ворота вешай! Даже инструкция по пользованию есть! Уже хотел собирать, но набрел на продолжение этой схемы. Тут и мой любимый МК, и более упрощенная схема входной части. Только не подошла мне печатная плата - пришлось открывать ДипТрейс, рисовать там свою схему и уже потом делать печатную плату. Но логика работы устройства аналогично первой ссылке

Инструкция по программированию
Текст свернут
Рабочий режим - при подачи 12В на контроллер светодиод мигает 1Гц.
Режим программирования - светодиод мигает 2Гц.
При нажатии на кнопку "OPEN" серия коротких звуковых сигналов во временя открытия замка.

Звуковые сигналы
1 короткий сигнал - карта или брелок записан в память контроллера.
2 коротких сигнала - карта или брелок уже записан в памяти контроллера.
5 коротких сигнала - выход из режима программирования.
1 длинный сигнал - память карт-ключей стерта из контроллера.
Непрерывные короткие сигналы - память карт/ключей заполнена, максимально 10шт. ( требуется отключение питания контроллера).

Запись МАСТЕР-КАРТЫ и времени открывания замка


1 - Выключить питание контроллера.
2 - Нажать кнопку "OPEN"
3 - Удерживая кнопку подключить питание к контроллеру, через 5 сек. контроллер "ПИСКНЕТ", светодиод будет мигать с частотой 2 Гц.
4 - Отпустить кнопку.
5 - Поднести в зону считывания карту или брелок, раздастся одиночный звуковой сигнал, Мастер-карта или брелок ЗАПИСАН, при этом запишется время открытия замка 1 сек.
6 - Удерживая карту или брелок в зоне считывания - считаем звуковые сигналы. Кол-во определяет требуемое время отрывания замка, приращение 1 сек., но не более 32 сек.
7 - Отключаем питание контроллера или выдерживаем паузу 30 сек.

Стирание всей памяти карт-брелков


1 - Рабочий режим.
2 - Нажимаем кнопку "OPEN" и удерживая подносим к считывателю МАСТЕР-карту или брелок и держим, через 5 сек раздастся продолжительный звуковой сигнал - память карт/брелков стёрта.
3 - Отпускаем кнопку отнимаем карту или брелок.

Добавление карт или брелков


1 - Подносим МАСТЕР-карту или брелок к считывателю и удерживаем 5 сек, раздадутся 2 коротких звуковых сигнала, светодиод будет мигать с частотой 2 Гц.
2 - Подносим поочерёдно к считывателю карту/брелок - раздастся короткий звуковой сигнал, карта/брелок ЗАПИСАН, если раздастся 2 коротких звуковых сигналов - код карты/брелка уже записан в памяти микроконтроллера.
3 - Записываем требуемое кол-во карт или брелков, максимально 10.
4 - Отключаем питание контроллера или выдерживаем паузу 30 сек


Однако в схеме есть 2 нюанса. Первый касается всех подобных читалок/писалок RFID без исключения - это настройка антенны 125кГц в резонанс. Делается это или подбором количества витков, либо подбором ёмкости конденсатора (по моей перерисованной схеме это С5 на 4700пФ 160В). Контролировать изменения лучше осциллографом с "горячего" плеча конденсатора С5, но можно и обычным мультиметром на катоде диода D1. Напряжение должно быть не ниже 20 вольт. Если там 15В и ниже, то схема или не будет работать вообще, или будет принимать не все брелки, не смотря на их принадлежность к одному типу (брелки разные бывают, при 100% внешней схожести, и не все они совместимы с описываемым контроллером!).
Второй нюанс касается только этой схемы: в состоянии покоя (брелок далеко от катушки) на коллекторе транзистора U4 нужно добиться напряжения в 1.1В. В зависимости от марки транзистора, R5 может быть как 33кОм, так и 500кОм.

Вложение:
RFID ATmega8.gif
RFID ATmega8.gif [ 83.35 КБ | Просмотров: 26413 ]

Вложение:
Комментарий к файлу: Прошивка для контроллера на АТмега8, фьюзы, оригинальная и перерисованная мной схема+моя печатка в формате DipTrace, инструкция по программированию карт - в общем, все в куче для повторения.
RFID_ATmega8_ded.zip [498.89 КБ]
Скачиваний: 782

Небольшое видео, дающее общее представление о приборе http://youtu.be/IQpQsGaToXU (видео не моё!)

В общем, собрал я эту схемку. Сначала напряжение было около 9 вольт и потому ничего толком не работало. Отмотал несколько витков от катушки - стало 7,5 вольт. Добавил обратно витков 10 и напряжение стало равным 17 вольтам. Затем припаял параллельно С5 конденсатор на 300пик, и еще до кучи на 100 (еще один на 300пФ привел к падению резонанса - вот она золотая середина!) И после этого чтение стало более уверенным, но зеленый брелок "Vizit" так и не хотел читать, хоть я точно знаю, что системы у брелков сходятся. Обратил внимание по осциллографу, что очень много шума. Увеличил С6 с 1000 до 5700пФ - шум стал заметно меньше, дальность считывания возросла вдвое, Vizit-овский брелок стал уверенно читаться!!! Но все таки чутье не дотягивало до желаемого и я потом собрал чуть другую схему (о ней в конце этого поста).

Поигрался вдоволь, но все таки интерес "как же оно работает?" не оставлял меня. В процессе поиска информации я нашел даже больше, чем искал - сайт serg22. http://serg22.sibgtu.ru/radio/ А на сайте - рабочий пример+исходник под мою среду написания прошивок. Снимаю шляпу перед неизвестным мне serg22, ибо без его примера мне было бы куда сложней разбираться в программистских тонкостях реализации протокола обмена. Видать я еще не такой опытный программер, ибо НУ ВООБЩЕ не могу себе представить в голове алгоритм считывания этих долбаных импульсов, их идентификации как "0" или как "1", и тд. Вот когда я садился писать ЗУ+БП, я себе хоть примерно представлял из чего будет состоять программа, из каких модулей и тд. А тут - затуп. На сколько я понимаю надо выделить из потока ноликов и единичек последовательность из 9 единичек и считать ее стартом (комбинации из 9ти единичек в протоколе больше не встречается нигде). Процедура обработки этой всей байды вызывается по лог1 и обрабатывается в [timer1_capture_isr]. В этом прерывании можно легко измерять время между импульсами - и все. Тем не менее этим прерыванием обрабатывается вся посылка от брелка, при чем весьма успешно. Чудеса!

В общем, надо еще глубже погружаться, разбирать каждую строчку кода, и тогда результат не заставит себя ждать. Кидаю напоследок тестовый проект читалки, портированный со схемы serg22 на схему, которую я спаял вчера. К сожалению, кое что пришлось в ней изменить. Например, пришлось добавить операционный усилитель LM385 и собрать полноценную входную цепь - с ней более лучшие фронты сигнала, а как следствие - более уверенное считывание и дальность! Ну и пришлось изменить порт МК, по которому в него будет приходить принятый сигнал. Все остальное (реле, светодиоды, пищалку и тд) я оставил без изменений - все равно они в прошивке практически не запитаны. Да и вообще обращаю внимание на то, что эта схема и прошивка НЕ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ, а для тех программистов, кто может быть тоже ищет пример/исходник самого процесса считывания RFID 125кГц карт. Если нужен пример записи в брелок, то на сайте serg22 есть пример writer-а. По идее можно тот код тупо перенести в исходник в архиве и читалка получит возможность писалки. Но так как у меня пока нет брелков, которые можно записать, функция записи меня пока никак не тревожит - мне бы с чтением разобраться...

Вот эта схема, где переделана входная часть, которая мне больше понравилась:
Вложение:
RFID ATmega8_test.gif
RFID ATmega8_test.gif [ 87.63 КБ | Просмотров: 22869 ]

ну и архив целиком с проектом и прошивкой:
Вложение:
Mega8test.zip [289.78 КБ]
Скачиваний: 731

_________________

Поблагодарить автора:
Контакты:
Телеграмм: alexSh154
Вконтакте
Одноквассники
Instagram
Skype: искать oka275 (в англ.раскладке)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 ноя 2014, 01:36 
Не в сети
Уже был(а), и не раз, и не два

Зарегистрирован: 16 фев 2013, 20:56
Сообщения: 56
Откуда: молдавия
Имя: степан
здравствуйте Алексей бродя по просторам сайта паяльник набрел на еще один проект по RFID-картам,гляньте может понравится.
http://cxem.net/guard/3-78.php


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 ноя 2014, 01:46 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 10 апр 2007, 22:36
Сообщения: 11206
Откуда: Новосибирск, Дзержинский
Авто: ВАЗ-21043
Имя: Алексей
stepanici85 писал(а):
здравствуйте Алексей бродя по просторам сайта паяльник набрел на еще один проект по RFID-картам,гляньте может понравится.
http://cxem.net/guard/3-78.php

Здравствуйте, Степан. К сожалению, это проект для 13.56мГц брелков, которые часто выглядят один в один с обычными, которые на 125кГц стандарта E-Marine.


RFID метка в виде пластиковой карты и брелка (тип S50, 13,56мГц). Модуль построен на базе микросхемы RC522. MF RC522 использует передовые концепции модуляции и демодуляции, полностью интегрированные во всех типах пассивных бесконтактных способов общения, работающих на частоте 13,56 МГц.

_________________

Поблагодарить автора:
Контакты:
Телеграмм: alexSh154
Вконтакте
Одноквассники
Instagram
Skype: искать oka275 (в англ.раскладке)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 ноя 2014, 01:58 
Не в сети
Уже был(а), и не раз, и не два

Зарегистрирован: 16 фев 2013, 20:56
Сообщения: 56
Откуда: молдавия
Имя: степан
Жали что он не на 125 кГц а так очень интересный проект.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 ноя 2014, 05:07 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 10 апр 2007, 22:36
Сообщения: 11206
Откуда: Новосибирск, Дзержинский
Авто: ВАЗ-21043
Имя: Алексей
Просидел с осциллографом и исходником на Си до 4х утра, но так и не понял протокола. Описание протокола твердит, что вначале посылки должны идти 9 логических единичек - это вроде стартовой строки. Смотрел ее по осциллу... Ну было что то похожее пару раз, да и то ерунда какая то. А в основном ересь какая то вроде 18 единичек. Нет, пока надо взять таймаут, может в голове чего уложится..

_________________

Поблагодарить автора:
Контакты:
Телеграмм: alexSh154
Вконтакте
Одноквассники
Instagram
Skype: искать oka275 (в англ.раскладке)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 ноя 2014, 03:58 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 10 апр 2007, 22:36
Сообщения: 11206
Откуда: Новосибирск, Дзержинский
Авто: ВАЗ-21043
Имя: Алексей
Закусила меня эта тема. Пока не докопаюсь до истины, дык спать не буду спокойно. Вот сегодня, например, спал очень плохо - все гонялся за какими то битами, дружил их, и все тёр глаза, словно одел мутные очки, через которые все никак не мог рассмотреть на экране осциллографа нужный мне фрагмент осциллограммы с этими битами.

Сегодня написал письмо тому serg22, на странице которого я скачал исходники примеров чтения/записи RFID-меток E-Marine EM-4100. Он ответил, что код, который вещает брелок, можно записать с помощью звуковой карты компьютера и потом спокойно рассматривать WAV-файл в каком нибудь музыкальном редакторе, как на запоминающем осциллографе. Это просто замечательная идея! И действительно - а почему нет? Скорость передачи там не большая, и сравнима со скоростью, с которой в конце 80х с магнитофона загружались игрушки в знаменитый SPECTRUM.

В архиве с примером лежал файл RFID-045-51384.wav с записанным ответом RFID-брелка и файлик для эмулятора "Протеус" со схемой. Я совсем забыл то, что в этой замечательной программе есть возможность подоткнуть WAV-файл и скормить тем самым этот сигнал напрямую МК, минуя необходимость использовать реальный брелок и реальное "железо". Так и сделал! Включаю эмулятор "Протеус", в нем запускается схема reader-a и через 5 секунд он распознает код брелка, который записан в файле WAV! Замечательно! Там же включаю осциллограф и вижу всю битовую последовательность, которая летит с брелка в МК. Моя задача увидеть на экране осциллографа не просто какие то биты, а определенную комбинацию, после чего я буду считать, что манчестерский код я понимаю верно, и смогу объяснить в этой осциллограмме каждую закорючку. Это свидетельство 100% ясности и понимания темы на данном этапе. Главное - с самого начала быть уверенным, что сигнал не отображается в инверсном виде, иначе можно зря потерять время. В Протеусе, после безуспешных попыток, таки пришлось применить транзистор и инвертировать сигнал - и сразу все встало на свои места!

Но прежде я таки еще раз обратился к мануалу EM4100. Там есть очень хороший пример того, как выстраивается вся битовая посылка - от первого бита до последнего.
Вложение:
screenshot.7.png
screenshot.7.png [ 2.92 КБ | Просмотров: 26314 ]

Пример приведен для брелка с кодом 06001259E3, где 06 это номер версии брелка или customer ID (как в iButtons код семейства), а 00 12 59 E3 есть не иначе, как уникальный код брелка, состоящий из 4х байт.

Передача все этого безобразия начинается с передачи девяти логических единичек - это есть стартовый паттерн (header bits, выделено красным), так сказать приглашение приемнику выслушать брелок. По скольку такой комбинации больше ни при каких ситуациях не может быть, то это приглашение молча и быстро принимается приемником. Если вдруг он "прослушал" это приглашение, то все, что пойдет следом он пропустит, пока брелок не начнет передавать всю пачку сначала.

Вложение:
screenshot.5.png
screenshot.5.png [ 20.14 КБ | Просмотров: 26314 ]

Сразу после приема последовательности "111111111", начинается передача кода семейства (выделено желтым). Передача начинается со старших его четырех бит (биты D0....D03 в мануале) и заканчивается посылкой бита проверки четности (для отправленных битов это бит Р0). Логика этого бита проста, как морковка: если в первых отправленных четырех битах было четное количество единичек (0-2-4), то брелок посылает ноль; а если количество единичек было не четным (1-3) то высылает единичку. Видите как все просто? Сразу за битом четности с кодом Р0 брелок высылает младшую часть байта (биты D04-D07), и сразу же за ними бит четности Р1. Принцип формирования этого бита такой же.

Итого: байт 06h разбивается на две половинки, то есть на 0 и 6. В битах это будет 0000 и 0110 соответственно. По скольку в первой половинке нет единичек вообще, то бит четности Р0 будет равен нулю. Бит четности Р1 тоже будет равен нулю, потому что количество отправленных единичек было четное. Всего, после 9 единичек, брелок отправит комбинацию бит 0000 0 0110 0

Сразу после этого отправляются 4 байта уникального кода брелка (выделено голубым цветом). Принцип разбиения байта, передачи и подсчета битов четности абсолютно идентичен с отправкой байта кода семейства.

Доходим до последней строчки в таблице - битов с названием РС0-РС4. Если биты Р0-Р9 нужны для контроля ошибок по строкам, то это есть контроль ошибок по столбцам. Вычисляются эти биты, в общем то, не так сложно, и по такому же принципу. Итак, для подсчета бита РС0 нужно посчитать количество отправленных единичек в первом столбце (биты D00, D04, D08, D12, D16, D20, D24, D28, D32, D36). Если их количество будет четным, то брелок отправит 0, а если не четным, то 1. В нашем случае по этому столбцу было отправлено всего 2 единички - число четное, значит на месте того бита будет ноль. Точно так же вычисляется бит РС1 по второму столбцу и так далее до РС03

Последним отправляется стоп-бит, то есть нуль и отправка всего пакета начинается заново. На всякий случай создайте сами всю последовательность битовой посылки, а затем сверьтесь с картинкой "screenshot.7.png"

Все это справедливо только для того брелка с конкретным кодом. В вышеуказанном же архиве с примером брелок имеет код 0x4B002DC8B8, соответственно битовая последовательность и осциллограммы будут другими. Вооружился экселем, составил точно такую же последовательность всех битов и байтов, но для кода брелка 0x4B002DC8B8. Даже нарисовал часть осциллограммы, которую я должен увидеть:
Вложение:
screenshot.8.png
screenshot.8.png [ 2.12 КБ | Просмотров: 26314 ]

Вложение:
screenshot.2.png
screenshot.2.png [ 988 байт | Просмотров: 26314 ]


и вот что я в итоге увидел на экране осциллографа:
Вложение:
screenshot.4x.png
screenshot.4x.png [ 117.64 КБ | Просмотров: 26314 ]


Сравните планируемую осциллограмму с реальной - 100% сходство! Такого попадания в десятку я не ожидал! Теперь то конечно ощущаешь крылья за спиной, а так же понимаешь, что все это очень и очень легко. Но видели бы вы меня прошлой ночью.. :)

Ну и напоследок хочу сделать пояснения на счет стрелочек на картинке с осциллографом. Конечно составить последовательность передачи бит на бумаге это одно, а вот передать их на реальное устройство... Дело в том, что приемник должен обязательно иметь возможность синхронизации с передатчиком, что бы не запутаться в данных. В шинах i2C или SPI всегда присутствует тактирующий сигнал CLOCK, от которого все и пляшет. Но у нас всего один провод, да и тот протянут через радиотракт. Следовательно нужно придумывать какие то особенные сигналы, по которым приемник будет понимать что происходит в данный момент. Хороший пример - стартовая последовательность из 9 единичек, которая больше никогда не повторяется. Но этого мало, ибо нужно иметь какие то другие ориентиры для приемника. Такими ориентирами служит сознательное увеличение длины импульса с 300мкС до почти 600мкС. Если при этом сигнал был равен лог.единице, то это значит для приёмника, что все дальнейшие импульсы нужно регистрировать не по нарастающему фронту, а по спадающему, а так же принимать все последующие спадающие фронты как нули. При этом нуль будет засчитан уже при окончании этого длинного импульса (то есть его нарастающий фронт был считан как 1, а спад уже будет считан как нуль)
Все это будет до тех пор, пока увеличенный по длине импульс не окажется лог.нулем, что будет интерпретировано приемником прямо противоположно ситуации с принятием длинного импульса лог.единицы, а именно: все последующие импульсы регистрировать по нарастающему фронту и читать их как единицу, начиная с текущей позиции. Остается только еще раз перечитать весь этот лепет и всмотреться в manchester_encoding.jpg и скриншот осциллографа. Или почитать подробней про манчестерский код.

PS. Прошу не бейте дубинками, если где то допустил неверную трактовку, термин или формулировку. Информации много, тема для меня новая, а время позднее. Основную суть я передал. Надеюсь, что мои умозаключения кому то помогут.


Вложения:
manchester_encoding.jpg
manchester_encoding.jpg [ 26.78 КБ | Просмотров: 26314 ]

_________________

Поблагодарить автора:
Контакты:
Телеграмм: alexSh154
Вконтакте
Одноквассники
Instagram
Skype: искать oka275 (в англ.раскладке)
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 ноя 2014, 16:33 
Не в сети
Постоянец
Аватара пользователя

Зарегистрирован: 11 мар 2010, 18:31
Сообщения: 2986
Откуда: Новосибирск, Юго-Западные окраины
Авто: Chevrolet Lanos
Имя: Кирилл
Леха, ты таки взломал матрицу :)

_________________
Don't worry, be crazy!
Изображение


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 ноя 2014, 05:26 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 10 апр 2007, 22:36
Сообщения: 11206
Откуда: Новосибирск, Дзержинский
Авто: ВАЗ-21043
Имя: Алексей
Кирилл, нет, тогда еще не взломал. Вот сейчас взломал!!!!
В общем, после того, как мне открылась вселенская истина о том, как работает EM4100, Остапа понесло :) Ведь я вчера несколько раз публиковал полный список битовой последовательности, которую брелок передает считывающему устройству (например, домофону). А почему бы взять и не повторить этот код в микроконтроллере, прикрутить к нему антенну и заставить прикинуться брелком. Прокатит? Глаза заблестели, крышу снесло и работа закипела.

В общем то генерировать манчестерский код посредством МК оказалось занятием весьма скучным. Во всяком случае опытный программист скажет именно так. Но я не избалованный, кроме того начинающий, и мне скучно не было. Сначала накидал программу тупо, в лоб, не экономя ни время, ни место. После того как убедился, что на правильном пути, начал попутно оптимизировать уже написанное (такие мысли приходят одновременно с основной мыслью). В итоге получилась не большая (для Атмеги 8 всего 7% от общего объема памяти, или 45% для Тини13А) программулина, которая берет код брелка из массива (прописан в исходнике) и тупо транслирует его считывателю, попутно не забывая высчитывать CRC. Последнее обстоятельство указывает на то, что написанное мной весьма универсально и может использоваться кем то в построении очередного супер-пупер считывателя или даже копира.

После того, как с кодом было покончено, пришло время взяться за железо. Отладочной платки с АТмега8 не нашлось (вернее она была занята и так не хотелось ее разбирать), но нашлась текстолитина с Тини13А Быстренько портировал код на новый МК, намотал антенну и проверил сие на самодельной читалке, которую сделал на днях - ОНО РАБОТАЕТ, при чем даже без какого либо питания вообще!!! Пулей побежал до домофона, но там меня ждало огорчение - домофон никак не захотел читать эмулятор. Нет, он обычно недовольно пикает, если ему пытаются скормить чужой брелок. А тут вообще тишина! Сбегал домой, прикрутил "Крону", но не тут то было. Несколько раз менял антенны, мотал то больше проволоки, то меньше. А потом сравнил осциллограммы моего эмулятора и реального ключа и пришел к выводу, что мой эмулятор генерирует импульсы 300мксек, когда родной брелок укладывается в 270. В очередной раз перемотал антенну и после недолгих уговоров домофон наконец то признал мой эмулятор за своего. Вот это видео (извините, что не студийная съемка)



Пришел домой и снял еще одно видео. На этот раз про то, как все таки хорошо и без запинки читается этот эмулятор самодельной читалкой.



После решил в очередной раз перемотать антенну, только подойти к этому более научно. Во-первых сделал каркас из плотного картона. Затем замерил индуктивность имеющихся пятидесяти витков проволоки 0.16мм - всего то 76мкгн. Онлайн-калькулятор мне подсказал, что это чертовски мало и я приступил к добавлению витков. Остановился на числе 170 витков (кончился провод). Потом была попытка вогнать контур в резонанс - удачно, но при подключении катушки к коллектору управляющего транзистора, напряжение на катушке резко снижалось, что вероятно приводило к весьма хреновой разборчивости сигнала (домофон просто глухой и просто не расслышал модуляцию передаваемого сигнала). Подумал и решил применить классический диодный мост. Минус выхода моста посадил на общий провод, а плюсовой выход посадил на коллектор КТ315. Теперь когда транзистор закрыт, то на катушке максимум напряжения, а когда открыт, то минимум. Получается весьма хороший перепад и, думаю, прекрасная читаемость передаваемого сигнала.

Затем в читалке припаял подстроечник и загрубил чутье приемника до еле-еле разборчивого чтения эмулятора и начал подкидывать параллельно катушке эмулятора конденсаторы по 300пф. Одновременно смотрел по осциллографу напряжение, а так же контролировал чтение - при подключении ёмкости напряжение подрастало, а чтение становилось уверенным. И так я дошел до момента стогнации, а потом и до момента, когда дальнейшее увеличение емкости делало только хуже. В результате я добился такого КПД, что читалка (будучи загрубленой по приёму) переставала различать заводские брелки, а мой эмулятор распознавала уверено. Когда разгрубил приёмник читалки то выяснилось, что эмулятор я могу отнести от антенны приёмника примерно на треть дальше того расстояния, на котором перестает читаться заводской брелок. Спустился до домофона, проверил - ПОБЕДА! УВЕРЕННОЕ ЧТЕНИЕ НА РАССТОЯНИИ ПРИМЕРНО 1.5см, когда заводской брелок приходится чуть ли не прикладывать к панели домофона. Но есть один огромный минус у моего эмулятора - необходимость наличия внешнего источника питания. Схему дорабатывать я наверное вряд ли буду - нет стимула, да и нет в нем никакой необходимости. Уже сейчас мне едет из Китая набор пустых заготовок (перезаписываемые брелки + копировщик). И если очень надо сделать дубликат ключа от двери подъезда какого нибудь родственника, то проще воспользоваться уже готовым. Да и не это важно. Главное, что я изучил этот вопрос и сделал вроде лабораторной работы. В дальнейших разработках обязательно пригодится!



Вот такая антенна. В купе с диодным мостом и дальнейшей подстройкой резонанса показала хорошие результаты.




Видны диоды. Что за диоды - ХЗ, но будет жаль, если они оказались какими то особенными, и потому так все хорошо у меня заработало.


А это читалка.


Чтение и распознание ключа прошло успешно (желтый светодиод и лампочка вместо реле замка двери)

Да, исходники эмулятора для атмега8 и тини13а выкладываю. ВСЕ ТОЛЬКО ДЛЯ ОЗНАКОМЛЕНИЯ, ОБУЧЕНИЯ И Т.Д. Это НЕ ГОТОВОЕ УСТРОЙСТВО! Исходник для Атмега8 задокументирован более-менее. По скольку код атмега8 и тини13 на 99.999999% одинаковый, читайте описание в коде для Атмега8. Кстати, версия CVAVR 2.05.3 С более древними возможен конфуз при компиляции.

Всем удачи!


Вложения:
RFID_emul_atm8_tin13a.rar [560.25 КБ]
Скачиваний: 823

_________________

Поблагодарить автора:
Контакты:
Телеграмм: alexSh154
Вконтакте
Одноквассники
Instagram
Skype: искать oka275 (в англ.раскладке)
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 ноя 2014, 15:46 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 10 апр 2007, 22:36
Сообщения: 11206
Откуда: Новосибирск, Дзержинский
Авто: ВАЗ-21043
Имя: Алексей

После апгрейда катушки и схемы

_________________

Поблагодарить автора:
Контакты:
Телеграмм: alexSh154
Вконтакте
Одноквассники
Instagram
Skype: искать oka275 (в англ.раскладке)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 ноя 2014, 15:15 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 10 апр 2007, 22:36
Сообщения: 11206
Откуда: Новосибирск, Дзержинский
Авто: ВАЗ-21043
Имя: Алексей
Пришли из Китая пустые ключи (болванки). Заодно заказал портативный копировщик с набором из еще 10 таких ключей и 10 карточек. По скольку приходится действовать на ощупь, я не был на 100% уверен в том, что найду мануалы на эти болванки, и выкину деньги зря. Кроме того у меня нет пока четкого желания собирать копировщик самостоятельно, потому как для удобства и портативности придется городить какой то корпус, а тут - заводская вещь! Потому для верности заказал этот копировщик, что бы уж наверняка. НЕ ЖАЛЕЮ! Теперь, если будет желание, можно в целях обучения и закрепления материала собрать свой копировщик, а этот продать например.

Заснял небольшое видео с проверкой работы записанных ключей в конце:

_________________

Поблагодарить автора:
Контакты:
Телеграмм: alexSh154
Вконтакте
Одноквассники
Instagram
Skype: искать oka275 (в англ.раскладке)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 дек 2014, 12:12 
Не в сети
Постоянец
Аватара пользователя

Зарегистрирован: 11 мар 2010, 18:31
Сообщения: 2986
Откуда: Новосибирск, Юго-Западные окраины
Авто: Chevrolet Lanos
Имя: Кирилл
К тебе теперь за дубликатами можно ездить? Во сколько дубль встанет?
Местная контора, обслуживающая домофон, брала 300 руб. за 4 ключа, заказывал в мае этого года.

_________________
Don't worry, be crazy!
Изображение


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 дек 2014, 12:17 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 10 апр 2007, 22:36
Сообщения: 11206
Откуда: Новосибирск, Дзержинский
Авто: ВАЗ-21043
Имя: Алексей
Получается 75 рублей ключ. Не дорого. Для тебя по 50 :)

_________________

Поблагодарить автора:
Контакты:
Телеграмм: alexSh154
Вконтакте
Одноквассники
Instagram
Skype: искать oka275 (в англ.раскладке)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 дек 2015, 13:47 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 10 апр 2007, 22:36
Сообщения: 11206
Откуда: Новосибирск, Дзержинский
Авто: ВАЗ-21043
Имя: Алексей
Как логичное продолжение темы:


Использованная софтина в видео - Rohos Logon Key, качать здесь http://www.rohos.ru/download Ознакомительный период 15 дней, далее стоимость лицензии примерно 1400 рублей, что не дорого. Есть варианты - ищите.

Но как работает Rohos Logon Key мне не понравилось. Даже в видео заметно, что разблокировка происходит то сразу после поднесения ключа к ридеру, то с задержкой. Все потому, что мне так и не удалось понять идиотский принцип работы Rohos с ком-портом. Дело в том, что если он опрашивает порт, но с ридера ничего не поступает (нет ключа в поле действия), то программа тупо висит до истечения таймаута. После чего прога отпускает ком-порт, отвисает, отрисовывает изменения и снова уходит в глушняк. Если ключ положить на ридер, что бы пакеты шли постоянно, то не зависает. Но все равно работа с ком-портом какая то прерывистая получается, из за чего бывает, что ключ считывается не верно (пролетает только часть его кода). При это мы 1000% знаем, что сам ридер читает ключ железно и если и выдает в порт, то только на 100% провереный результат, прошедший проверку CRC. Значит таки Rohos глючит и выбирает данные из компорта так, как ему вздумается. Или же я не разобрался с какими то особенностями, может быть Rohos использует управление потоком, а у меня оно не реализовано.

За то прекрасно работает бесплатный проект одного молодого человека, уж не знаю кто он по национальности. Он его писал не в одиночку, но это мне совершенно не важно. Ссылку на проект и на видеоролик я положу в описании к приложенному файлу. Делайте все так, как делает этот юноша и все заработает с первого раза! Я же начал мудрить и класть файлы в system32 не с помощью стандартного проводника Windows, а с помощью любимого Total Commander. И он с честными глазами копировал файл в system32, а на самом деле клал его в SysWOW64. А я все понять не мог почему у меня ничего не работает. Оказалось, что ТоталКоммандер есть под 32бит ОС, а есть под х64. Я до этого не делал никакого различия, и спокойно пользовался одними и теми же программами под разные битности ОС, но с таким глюком столкнулся впервые. Запустил файл тотала для х64бит и все начало копироваться нормально.


Вложения:
Комментарий к файлу: Исходник ридера для Rohos и для RFIDuinoWindowsLogin Прошивка скомпилирована для работы с RFIDuinoWindowsLogin. Проект запилен на базе того самого контроллера доступа несколькими постами выше. МК АТмега8, частота 8мгц внутреннего генератора (у меня почти все проекты на такой частоте, потому как одна и та же макетка, а меня все устраивает )))). Схема устройства для удобства повторяю: http://www.oka-nsk.ru/forum/download/file.php?id=1034 только нужно выкинуть пищалку, реле с управляющими цепями, кнопку, ведь это уже не контроллер доступа, а просто ридер.
reader.zip [137.68 КБ]
Скачиваний: 621
Комментарий к файлу: Подробности инсталляции в этом видео http://www.youtube.com/watch?v=_cwxYP0zOn0 Последние версии и исходники здесь: https://github.com/robotgeek/RFIDuinoWindowsLogin/releases Проект бесплатный! Но нет шифрования файла с паролями (( Опять же: кто знает - зайдет на комп и так. А кто не знает, тот не зайдет.
RFIDuinoWindowsLoginRelease_v1.2.zip [1.53 МБ]
Скачиваний: 618

_________________

Поблагодарить автора:
Контакты:
Телеграмм: alexSh154
Вконтакте
Одноквассники
Instagram
Skype: искать oka275 (в англ.раскладке)
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 7 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB