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

 
 
> Алгоритм считывания передачи
micronano
сообщение Aug 2 2011, 09:55
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 13-10-10
Пользователь №: 60 133



Всем доброго дня!

Кто-нибудь может подсказать как прочитать передачу интерфейса?
Известна его его скорость и структура. Даже не важно что это за интерфейс.

Пытаюсь по первому биту запускать таймер, и с частотой раз в бит увожу контроллер в прерывание, где считываю значение порта.
Но огромное количество ошибок самого разного плана: сдвиг, чтение 1 вместо 0, чтение 0 вместо 1... Не знаю что делать.

Сигнал прямоугольный, так что дело к коде.

Какие есть программные алгоритмы приема сигнала?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
tmtlib
сообщение Aug 3 2011, 04:25
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531



я делаю так: по стартовому биту запускаю таймер с периодом в бит, но подправляю его текущее значение на _половину_ бита, затем читаю - таймер попадает в середину каждого бита.
Что за сдвиг? Сколько битов считываешь после запуска таймера?

Если скорости высокие а частота кварца твоего контроллера не делится кратно скорости передачи, то могут быть глюки со сдвигом в ту или иную сторону.

Отладку можно сделать так:

На вход контроллера посылаются данные с компьютера. В контроллер зашита отадочная программа следующего вида: на стартовые биты она дёргает ногу IOn на 3мс. При считывании битов - на 1 мс.
Подключаю ко всему этому делу двухканальный осциллограф: видны два графика. Зелёным - данные поступающие с компьютера, Красным - это то, когда контроллер начинает их "считывать" и показывает это нам, дёргая ногу IOn. По сути когда срабатывает таймер. И смотрю эту временную диаграмму, нет ли глюков.

Я так делал проверку своей программы, там выяснилось, что глюки на высоких скоростях - проблема оптопар и триггеров, а не софта. Так что посмотри, может у тебя там оптопары и триггеры не успевают?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 13:14
Рейтинг@Mail.ru


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