Страница 1 из 1

Распознование последовательности

Добавлено: Сб апр 10, 2010 16:28:20
winex
Здравствуйте!
Помогите распознать последовательность импульсов и выделить из нее данные.
С чего начать и как делать? Как вот вообше это сделать?
МК - атмега128. Язык С.
длительность импульса известна (можно посчитать)

Re: Распознование последовательности

Добавлено: Сб апр 10, 2010 17:40:56
Meteor
Обычный последовательный обмен, аналогичен SPI. Принимаете всю последовательность (1 байт преамбула+1 байт заголовок+4 байта данных), во время защитного интерала проводите анализ принятого путем наглого чихания на первые 2 байта. (утрирую конечно насчет чихания)

Re: Распознование последовательности

Добавлено: Сб апр 10, 2010 17:52:53
winex
это из книги Яценкова про мк с радиопередатчиком. Вот надо принять данные в таком формате.
Обычный последовательный обмен, аналогичен SPI. Принимаете всю последовательность (1 байт преамбула+1 байт заголовок+4 байта данных), во время защитного интерала проводите анализ принятого путем наглого чихания на первые 2 байта. (утрирую конечно насчет чихания)
это то я понимаю :)
только вот как технически это сделать нет, то ли как-то таймер задействовать или через прерывание
как вот следить за потоком и веделить из него последовательность?

Re: Распознование последовательности

Добавлено: Сб апр 10, 2010 17:55:08
Meteor
_noise, не согласен на счет U(S)ART'а. Там ведь данные обрамляются как минимум стартовым и стоповым битами, а иногда и дополнением до четности/нечетности. Тут на времянке чистые 8 битники передаются... не однозначно не УАПП...
Автор, Вы писали что интервалы известны. Ну так ловите преамбулу - она признак начала передачи. Я бы выделил по внешнему прерыванию за счет анализа состояния по изменению фронтов.

Re: Распознование последовательности

Добавлено: Сб апр 10, 2010 18:35:19
winex
Meteor писал(а):Ну так ловите преамбулу - она признак начала передачи. Я бы выделил по внешнему прерыванию за счет анализа состояния по изменению фронтов.
Я совсем недавно начал знакомство с МК и не знаю как такое реализовать. Как я понял у атмеги128 только 8 внешних прерываний и соответственно 8 пинов? Это значит что я должен присоединить источник последовательности к одному из 8 пинов?
И если не сложно, опишите пожалуйста что дальше делать.

Re: Распознование последовательности

Добавлено: Сб апр 10, 2010 18:53:12
winex
Преамбула и заголовок не обязательно 1 байт
если интересно http://rapidgator.net/113732/Mk_rfPIC.djvu.html
296 и 307 стр

Re: Распознование последовательности

Добавлено: Сб апр 10, 2010 21:27:11
Digikey
Ни UART ни SPI к этому (прямого) отношения не имеют.
Речь идет о логическом уровне протокола.

Разумеется, нужно знать частоту_передачи/длительность_импульсов.
Определение начала импульса - прерывание по фронту.
Длительность защитного интервала, нужно полагать, больше чем длительность заголовок+данные

Автомат состояний:
S0: ожидание защитного интервала
-если защитный интервал обнаружен переходим к S1
S1: чтение 7 бит преамбулы
-если последовательность 1010101 нарушается переходим к S0
-если последовательность 1010101 правильная переходим к S2
S2: считываем заголовок и данные
-переходим к S0

Как это реализовать:
ожидание защитного интервала
a) Таймер на время = заголовок+данные, таймер запущен
b) прерывание(фронт на входе) должно переустанавливать Таймер,
соответсвенно Таймер досчитает до конца и выдаст свое прерывание только тогда, когда будет защитный интервал. Т.о. прерывание Таймера и есть признак обнаружения защитного интервала.

чтение преамбулы/данных
a)Таймер на время = период следования битовой последовательности, таймер остановлен
b)прерывание(фронт на входе) должно (с задержкой ~0.5 периода следования битов) разрешить работу таймера, по каждому прерыванию таймера считываем очередной информационный бит
длительность импульса известна (можно посчитать)
Кстати, какое реальное значение скорости передачи? Если период следования битов меньше нескольких десятков микросекунд, то там уже другой коленкор...
Это значит что я должен присоединить источник последовательности к одному из 8 пинов?
Источник последовательности должен быть подключен к одному из выводов с названием INT.., которые описаны в разделе External Interrupts, Sense Control для прерывания должен быть Risig Edge.
С чего начать ?
Найдите в сети, если у Вас нет, вот такую книгу: Шпак Ю.А. Программирование на языке С для AVR и PIC микроконтроллеров (djvu ~9 MB)
Посмотрите Атмеловские Application Notes

Re: Распознование последовательности

Добавлено: Вс апр 11, 2010 00:08:27
dosikus
Топикстартер приколист - там же в книге и реализация есть.
noise, Meteor там Манчестерский код...

Re: Распознование последовательности

Добавлено: Вс апр 11, 2010 01:47:23
Digikey
dosikus писал(а):...там Манчестерский код...
При Манчестерском кодировании линия не может находится в фиксированном состоянии (0 или 1) дольше, чем длительность 1 бита кодируемой последовательности. Достаточно взглянуть на "Заголовок" или "Защит. интервал", чтобы понять, что здесь это не так.

Re: Распознование последовательности

Добавлено: Вс апр 11, 2010 09:00:42
winex
dosikus писал(а):там Манчестерский код...
там не манчейстер, он по моему требует синхронизации
_noise писал(а):Что-то подсказывает, что водящему хотелось бы увидеть не абстрактные рассуждения, а полностью работающий код (и схему).
Да программировать я умею, это не проблема, проблема втом через что это все реализовать...
Достаточно написать как Digikey написал, на псевдо языке.

Re: Распознование последовательности

Добавлено: Вс апр 11, 2010 10:39:42
dosikus
Ну да немного лоханулся там не Манчестер . (winex какая на... синхронизация ты хоть почитал бы сначала.)
Ну вы то долго гадать будете ? :))
Я же написал - топикстартер или издевается или читать не умеет: в книге , что он привел , все это расписано от и до на низком уровне !!!
Микроконтроллеры rfPIC со встроенным маломощным радиопередатчиком (В.С. Яценков, 2006).djvu

KeeLoq там...

Re: Распознование последовательности

Добавлено: Вс апр 11, 2010 11:12:02
winex
dosikus писал(а):(winex какая на... синхронизация ты хоть почитал бы сначала.)
Ну вы то долго гадать будете ? :))
при манчейстере нужно передавать синхросигнал и информацию по одному каналу. здесь только информация!(Б.В. Шевкопляс. Микропроцессорные структуры, стр 98)
я знаю что там есть реализция, только она мне ни о чем не говорит! Мне надо это на С и под авр.
И тут я пытаюсь выяснить как вообще работать с такой последовательностью!!! Через что ее ловить.

Re: Распознование последовательности

Добавлено: Вс апр 11, 2010 11:42:35
dosikus
winex писал(а): при манчейстере нужно передавать синхросигнал и информацию по одному каналу. здесь только информация!(Б.В. Шевкопляс. Микропроцессорные структуры, стр 98)
Сэр , вы хоть понимаете о чем пишете ?
О синхронизации чего речь идет ?

И еще раз . В книге все есть .
А реализацию KeeLoq ищи в googl .
А вообще noise правильно сказал - Не туда лезешь , не с тоо начал...

Re: Распознование последовательности

Добавлено: Вс апр 11, 2010 12:16:52
winex
Meteor и Digikey только поняли о чем идет речь в ветке. остальным лишь бы что-то написать, ребята, если по сути нечего сказать лучше не пишите!

Re: Распознование последовательности

Добавлено: Вс апр 11, 2010 12:39:48
dosikus
winex писал(а):Meteor и Digikey только поняли о чем идет речь в ветке. остальным лишь бы что-то написать, ребята, если по сути нечего сказать лучше не пишите!
Все у меня нет слов , случай тяжелый практически неизлечим .
Тебе не помощь нужна, а что бы за тебя сделали и на тарелочке с олубой каемочкой выложили.
Я пас .
" -Пилите Шура , пилите..."

Re: Распознование последовательности

Добавлено: Вс апр 11, 2010 13:02:25
winex
Читал что они написали? Всего 2 поста и ограмная польза! А остальное вода!

Re: Распознование последовательности

Добавлено: Вс апр 11, 2010 13:17:33
dosikus
winex писал(а):Читал что они написали? Всего 2 поста и ограмная польза! А остальное вода!
Не удержался..
Что вода ?! Полное описание частного случая KeeLoq - базовый код без плавающей составляющей - то откуда ты кусок выдрал ?!? Или домыслы выложенные выше ?
Код с полными коментариями , не разобраться в нем не возможно .
Читай ту книжку со страницы 300 .