реклама на сайте
подробности

 
 
> Ридер Магнитных Карт, не правильно работает прерывание
Loreleja
сообщение Jun 8 2010, 14:45
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 7-06-10
Из: Киев
Пользователь №: 57 785



Уважаемые, помогите решить проблему!
Внешнее прерывание INT0 от одной дорожки магнитной карты. Прерывание настроено по любому изменению.
В обработчике тупо счетчик считает количество возникших прерываний и выдает по юарту.
Кто сталкивался с магнитными картами, в курсе, что на 1 дорожке как минимум 240 перепадов уровня - это я округлила. Но почему то с каждой карты счетчик упорно выдает от 35-45 - не больше.
В чем может быть проблема? С электроникой всё в порядке, на осцилографе видна четкая картина данных в виде миандра.
МК - atmega16U4, таймер пока в сторонке не юзается.

Код программы в прикреплённом файле...
Прикрепленные файлы
Прикрепленный файл  code.txt ( 1.02 килобайт ) Кол-во скачиваний: 118
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vesago
сообщение Jun 17 2010, 06:52
Сообщение #2


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



Loreleja, может у Вас в принципе алгоритм декодирования не очень? Каков он? Если одну дорожку декодировать, то проблем нет. Для одной дорожки я бы наверное делал так. Вначале идут нули для синхронизации. Т.е. можно определить временные характеристики данного семпла измеряя время между дерганиями ноги. Как только появится перепад отличающийся соответсвенно по времени - пошла единица начала посылки - B. После этого начинаем по каждому прерыванию, зная длительности 0 и 1 складывать в буфер биты. Также контролируем таймаут. На банковской карте на дорожке порядка 40 байт.

Если сразу несколько дорожек, то сложнее. Скорость протяжки может быть разная и длительности могут быть довольно малыми. Тут надо мудрить со вложенными прерываниями. Наверное. Вейганд я сразу 4 канал декодировал, но там длительности млс. Может проц пошустрее задействовать или применить на каждую дорожку свою мегу?
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jun 17 2010, 08:01
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(vesago @ Jun 17 2010, 10:52) *
Если сразу несколько дорожек, то сложнее. Скорость протяжки может быть разная и длительности могут быть довольно малыми. Тут надо мудрить со вложенными прерываниями. Наверное. Вейганд я сразу 4 канал декодировал, но там длительности млс. Может проц пошустрее задействовать или применить на каждую дорожку свою мегу?

Я бы, пожалуй, не стал работать с прерываниями от входного сигнала, а вместо этого просто по таймеру, с достаточным оверсемплингом, опрашивать каналы. Дискриминацию длительностей можно вообще сделать по одной дорожке. Определились со скоростями и погнали битовые потоки в накопители...
Go to the top of the page
 
+Quote Post
Loreleja
сообщение Jun 17 2010, 08:09
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 7-06-10
Из: Киев
Пользователь №: 57 785



Цитата(rx3apf @ Jun 17 2010, 11:01) *
Я бы, пожалуй, не стал работать с прерываниями от входного сигнала, а вместо этого просто по таймеру, с достаточным оверсемплингом, опрашивать каналы. Дискриминацию длительностей можно вообще сделать по одной дорожке. Определились со скоростями и погнали битовые потоки в накопители...

по одной дорожке никак не получится, там ведь интервалы разные. трек 2 длительность длиннее, там бит меньше...

может стоит кварц побольше поставить?
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jun 17 2010, 09:09
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(Loreleja @ Jun 17 2010, 12:09) *
по одной дорожке никак не получится, там ведь интервалы разные. трек 2 длительность длиннее, там бит меньше...

А... Я работал только с однодорожечными, значит, неправ...

Цитата
может стоит кварц побольше поставить?

Каковы длительности интервалов при максимально возможной скорости протяжки ? Ну примерно ?
Go to the top of the page
 
+Quote Post
Loreleja
сообщение Jun 17 2010, 09:19
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 7-06-10
Из: Киев
Пользователь №: 57 785



Цитата(rx3apf @ Jun 17 2010, 12:09) *
Каковы длительности интервалов при максимально возможной скорости протяжки ? Ну примерно ?


если память мне не изменяет, частота на дорожке 1 около 1кГц, на дорожке 2 - 600...700 Гц.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jun 17 2010, 09:51
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(Loreleja @ Jun 17 2010, 13:19) *
если память мне не изменяет, частота на дорожке 1 около 1кГц, на дорожке 2 - 600...700 Гц.

1 kHz максимальная ? Т.е. один полупериод 0.5 mS, это почти 3700 тактов процессора @7.3728 MHz. Думаю, если писать компактно (и на ассемблере, вероятно), то все три канала удастся обработать по опросу, сделав этот опрос где-то 8...16 kHz (можно и больше, вполне хватит быстродействия). Но да, это все ж сложнее, чем считать времянки и писать их в буфер...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Loreleja   Ридер Магнитных Карт   Jun 8 2010, 14:45
- - andrewkrot   Похоже, что интервал между прерываниями гораздо ме...   Jun 8 2010, 15:45
- - Loreleja   Да, спасибо огромное! Проблему решила следующ...   Jun 9 2010, 09:36
- - vesago   Где-то в софте косяк. Сперва нужно убедиться, что ...   Jun 9 2010, 14:08
- - andrewkrot   Еще раз повторю - у Вас драгоценное процессорное в...   Jun 9 2010, 18:30
- - IgorKossak   Разговоры не по теме скрыл. Модератор.   Jun 9 2010, 20:01
- - Loreleja   Уважаемый rx3apf, я очень благодарна за внимание к...   Jun 11 2010, 08:36
- - Loreleja   Снова прошу вашего совета! функция f2f явно н...   Jun 16 2010, 14:30
|- - rx3apf   Цитата(Loreleja @ Jun 16 2010, 18:30) как...   Jun 16 2010, 15:14
|- - Loreleja   Цитата(rx3apf @ Jun 16 2010, 18:14) А зач...   Jun 16 2010, 21:34
|- - Loreleja   Цитата(vesago @ Jun 17 2010, 09:52) Lorel...   Jun 17 2010, 07:06
|- - Loreleja   Цитата(rx3apf @ Jun 17 2010, 12:51) 1 kHz...   Jun 17 2010, 13:01
|- - rx3apf   Цитата(Loreleja @ Jun 17 2010, 17:01) да ...   Jun 17 2010, 13:35
- - Loreleja   я пока не представляю себе как реализовать, то что...   Jun 18 2010, 07:12
|- - rx3apf   Цитата(Loreleja @ Jun 18 2010, 11:12) я п...   Jun 18 2010, 07:38
- - Loreleja   честно говоря, боюсь что-то кардинально менять. Мн...   Jun 18 2010, 09:07


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 11:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01462 секунд с 7
ELECTRONIX ©2004-2016