Свежие обсуждения
Консультации

RFID

1 4 6

Записал коды с 3-х брелков логическим анализатором Ulogic (нету цифрового осцилла - пришлось изгаляться с LPT портом). На второй вход подавал синро F/64 с доп. выхода МК. Приёмник самодельный, за отсутствием в продаже спецмикрух.
Выяснил: манчестер, F/64 на бит, всего 64 бита, АМ. В начале идут 9 единиц. Похожи и на EM4100, EM4102.

 

тогда дело в шляпе, заполнение буфера на 64 бита реализовано в прерывании, алгоритм поиска заголовка и подсчета контрольной суммы присутствует в исходнике,указанном мной выше. структура пакета описана в доке на EM4100.

 

Почитал немного ДШ. и возникло 2 вопроса (после праздников думается туго):
1. Как записывать последовательность в буфер, не имея clock, ведь последовательное к-во подряд нулей и единиц выглядит одинаково?
2. Стоит ли заморачиваться с подсчётами бит чётности по строкам и столбцам? Может найти в буфере заголовок (9 единиц) и, зная начало, считать всё кодом ключа? Проще сравнивать с EEPROM. Большое к-во ключей хранить не нужно.
DDR, может алгоритмы нарисуете от руки в виде логических блоков, а то расшифровывать asm для pic мне тяжело. Можно на мыло (в профиле) в любом виде.

 

smg123
Можно фото вашего ключа.

 

Фото здесь.
Разбирался с документацией и исходником от DDR. Голова уже кругом. Решение где-то рядом, но не даётся. Отложил до завтра-послезавтра.

 

процесс считывания метки можно условно разделить на два этапа:
1. это синхронизация потока передачи метки с буфером приемника ридера - вовсе не обязательно ждать девяти импульсов заголовка, код манчестера самосинхронизирующийся и состоит из фронтов подготовки уровня сигнала и фронта спада либо подьема - сигнализирующего о том единицу либо ноль передать. Задачча синхронизации - четко определить текущее изменение уровня - информационное или подготовка. Алгоритм вхождения в синхронизацию следующий - ждем первое изменение уровня, ждем второе - если между этими изменениями уровней удлинненный по времени импульс, то второе изменение уровня - это информационный сигнал, т.е после прихода удлиненного импульса начинаем считывание в буфер 64 бит данных(и не важно какую строку или бит в данный момент передает ключ, он всеравно циклично крутит по кругу свой пакет ).
2. Обработка буфера принятых данных - крутим по кольцу 64 битный буфер до тех пор пока не обнаружим 9 идущих подряд бит заголовка (если прокрутили буфер по кругу и не обнаружили - сответственно принимаем решение о том что в буфере мусор)
3. После обнаружения заголовка по известной структуре пакета передачи транспондера вычисляем биты четности по строкам и по столбцам и сравниваем их с переданной контрольной суммой.
в приложении есть исходник на Си, может будет попроще разобраться
PS используемые мною метки один в один похожи на выложенные на фото это 100% EM Marine

180533.zip

 

smg123: Записал коды с 3-х брелков логическим анализатором Ulogic (нету цифрового осцилла - пришлось изгаляться с LPT портом
Уххх, круто, я протупил, и для этих целей купил USB осциллограф, вещь не дорогая и идеально подошла для анализа пакета посылки транспондера

 

вот тут выдержка из форума по декодированию манчестера

180537.rar

 

Мне проще эмулятор ключа сделать, чем декодировать манчестер.
Поиски увенчались успехом. Нашёл алгоритм декодера у Atmel. Для моего такта в 512 мкс их рекомендации придётся удвоить: TS1=180, TS2=360, TL1=420, TL2=600 мкс. Tnext=TS2. Должен заработать.

 

у меня TS1=128мкс TS2=384мкс=TL1 TL2=640мкс