0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 204
|
||||||
1 | ||||||
Распознавание RFID18.08.2014, 00:04. Показов 26713. Ответов 52
Метки нет (Все метки)
Доброго времени суток!
Делаю один девайс, в котором нужно считывать RFID карты (125 кгц), аналоговую часть взял здесь http://www.serasidis.gr/circuits/RFID_r ... reader.htm, вместо тиньки стоит атмега8. На сайте есть и код, но там сделано тупо в цикле, а мне нужно на прерываниях. Застрял в самом начале. Проблема в том, что я не могу понять, как вычислить период, так как из-за большой скорость передачи данных (в отличии от RC5) я осцилом не могу увидеть, что там карта передает в начале. Теоретически, вот начало (потому что много единичек): (смотрите пикчу ниже). На желтые и зеленые линии прошу не обращать внимания, это я дорисовал. Во первых, интересует, почему на первых восьми столбиках ширина активного уровня короче, чем ширина не активного? Во вторых, какая должна быть длина низкого уровня между двумя первыми столбиками? У меня получилось чуть больше 500 мкс, это правильно? Дело в том, что моя прога в начале определяет длину периода (1 бита) и она почему то получается 1500 мкс, но я хз, что микроконтроллер поймал. Вот кусок кода:
0
|
18.08.2014, 00:04 | |
Ответы с готовыми решениями:
52
RFID RFID считыватель RFID-считыватель 125 кГц на ATmega16 Grove - 125KHz RFID Reader + AVR Эмуляция RFID ключа домофона на микроконтроллерах AVR |
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
|
|
19.08.2014, 12:34 | 41 |
Сообщение от Ymk
Сообщение от BrMysho
Если нет протеуса, то вот схемка... Там при нажатии кнопок первая мега отправляет код RFID карты, а вторая мега его принимает и кидает номер карты в терминал...
Сообщение от BrMysho
Там прерывания происходят когда прошло 3\4 времени манчестерского бита, ну и непосредственно когда приходит сам следующий бит... Если частота манчестера 2кгц (например RFID карта), то период следования битов - 0,5 мсек... а это огого сколько тактов...
0
|
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 204
|
|
19.08.2014, 16:02 | 42 |
Сори, я протупил. Только что проспался, теперь вроде мозг норм работает.
Скажите, пожалуйста, а что будет, если на вход поступит сначала несколько десятков ошибочных периодов, а затем манчестерский код, Ваша прошивка его зафиксирует или нужно чтобы сразу передавался манчестерский код? Как я и писал выше, у меня в начале на вход попадает какой то мусор, а потом уже манчестерский код. Пробовал отлавливать начало по 9 единицам, а потом читать остальные биты. В итоге, эти биты были одинаковые для одной и той же карты, но разные для разных карт, с чего можно сделать вывод, что биты успешно прочитаны, но так как 9 бит может быть не только в начале, прочитаная последовательность битов не является верной:(
0
|
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 204
|
|
19.08.2014, 20:20 | 43 |
С горем пополам удалось отфильтровать мусор и принять рабочие данные. Итак, беру USB ридер, тыкаю в него RFID метку (брелок), мне выдает 30067971210 (это его серийный номер).
Вот какие биты выдает мой ридер: 1111111110000001111000000000000110000001101101001100011010011110. Как видим, в начале 9 единиц, в конце 0, как и должно быть. Вот разделил (9 начальных единичек убрал): Код
-----VERSION----- 0000 0 0111 1 -----TAG SERIAL NUMBER----- 0000 0 0000 0 0011 0 0000 0 1101 1 0100 1 1000 1 1010 0 -----COLUMN PORITY BITS----- 1111 -----STOP BIT----- 0
0
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
|
19.08.2014, 20:33 | 44 |
Ну так сложи все данные в кучку:
Код
-----VERSION----- 0000 0111 0000 0000 0011 0000 1101 0100 1000 1010 -----COLUMN PORITY BITS-----
0
|
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 204
|
|
19.08.2014, 20:34 | 45 |
PS: как вычислить column parity bits уже понял.
Stiit.mi, Хм, а я сразу что то не то вычислил))))
0
|
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 204
|
|
20.08.2014, 02:48 | 46 |
Товарищи, никто не подскажет, как можно сделать prymtf для uint64_t? %llu не работает, выводит пустую строку.
Ну или просто как вывести uint64_t в строку, не обязательно через prymtf. PS: пишу в Atmel studyo 6
0
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
||||||
20.08.2014, 12:59 | 47 | |||||
0
|
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 204
|
|
20.08.2014, 14:17 | 48 |
Пасибо! Работает)))
0
|
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 204
|
|
20.08.2014, 15:21 | 49 |
Вобщем, все готово.
Исходя с того, что в начале мусор, могу сделать вывод, что определить время периода не возможно. Как работает код: 1. Ждем пока придет 9 единичек, для этого включаем захват по нарастающему, если первые 9 нарастающих равны длине указанного периода, то продолжаем, если нет, начинаем сначала. 2. Принимаем биты в кольцевой буфер. 3. Когда пришло 64 бита, проверяем их (чтобы в начале было 9 единичек, в конце 0, совпадал паритет). Если проверка не прошла, переходим к пункту 2. 4. Если за 3/4 периода не было перехода (который должен быть в середине бита), переходим к пункту 1. Работа довольно стабильная. Исходники прилагаю.
0
|
otix_omd_r
|
|
02.04.2015, 13:47 | 50 |
Сообщение от ShodS
Если замер не попадает в окно допустимых значений - инициализируем прием сначала...pic2.png 4) Значение принятого бита (уровень в линии после прерывания) задвигаем в байт приемник ByteIn Подскажите пожалуйста, а как согласно этой схеме определять значение MAN_PERIOD_LEN? |
0 / 0 / 0
Регистрация: 03.06.2018
Сообщений: 4
|
|
14.06.2018, 15:31 | 51 |
Конечно уже прошло 4 года, но сейчас я пытаюсь сделать RFID-ридер 125 кГц на атмеге 16/32, и застрял на этапе вычисления периода между фронтами.
Не могли бы Вы скинуть еще раз исходник своей работы? P.S. Может быть кто-нибудь тут поможет с решением моей проблемы?
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
14.06.2018, 16:05 | 52 |
Использовать режим захвата таймера. Режим захвата позволяет генерировать прерывание TIMERx_CAPT_vect при изменении логического уровня соответствующего вывода микроконтроллера. При первом прерывании по захвату, устанавливаем соответствующий флаг начала измерения, и обнуляем счетный регистр. При втором прерывании по захвату, сбрасываем флаг и смотрим сколько насчитал таймер.
1
|
0 / 0 / 0
Регистрация: 03.06.2018
Сообщений: 4
|
||||||
14.06.2018, 17:41 | 53 | |||||
Витальич,
0
|
14.06.2018, 17:41 | |
14.06.2018, 17:41 | |
Помогаю со студенческими работами здесь
53
RFID reader на stm32 RFID RC522 протокол обмена Прошу помощи RFID Мультиплексор на MSP430F2370 Возможно-ли купить RFID/NFC-метку и оплачивать покупки? Android и распознавание распознавание различных устройств Rfid Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |