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

 
 
> Вопрос по алгоритму
bbill
сообщение May 30 2006, 23:12
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 21-10-05
Пользователь №: 9 941



День добрый.
Поставлена задача: прием последовательного кода от семи датчиков, для каждого своя линия порта. Формат передачи: старт-бит, 8 бит данных, 1 стоп. Скорость передачи 2400 или 4800 бод. Передача от датчиков НЕ синхронизирована. Сдвиг между каналами от 0 до ∞ (минуты). Старт-бит необходимо использовать для определения точной скорости передачи от датчиков (по длительности бита), т.к. разброс/временной уход? частоты различных каналов составляет до ±10%. Процессор m8 или m88, частота 8МГц. Датчики однонаправленные, не адресные, из-за расстояния (50-100м), сигнал развязывается через оптроны и на свой пин.

Вопрос: как организовать алгоритм приема посылок от датчиков, при одновременном их поступлении и сдвиге между ними менее длины посылки.

Принимаем, что первым начинается прием канала 1.

..... _________
___|..10бит.....|_____________________ - канал 1
...................__________
__________|..10бит......|_____________ - канал 2
………
......................... _________
______________|..10бит....|_________ -канал 6
............___________
______|..10бит........|_______________ - канал 7
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
bodja74
сообщение Jun 1 2006, 12:45
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Три выборки на бит прекрасно подойдут для фиксированной скорости и для одного канала,
спору нет,но не для шести с произвольным сдвигом посылок и разной погрешностью +/- 10%.
Подумайте сами ,если мы прекрасно настроимся даже на один канал,у нас будет накапливаться ошибка на остальных,и достаточно не слабая.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jun 1 2006, 13:10
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(bodja74 @ Jun 1 2006, 15:45) *
Три выборки на бит прекрасно подойдут для фиксированной скорости и для одного канала,
спору нет,но не для шести с произвольным сдвигом посылок и разной погрешностью +/- 10%.
Подумайте сами ,если мы прекрасно настроимся даже на один канал,у нас будет накапливаться ошибка на остальных,и достаточно не слабая.


Давай определимся. Я говорю об rs232. Это так?

Если так, то Вы так и не поняли принцип. Погрешность не зависит от числа каналов. Не надо ни на что настраиваться!

Идёт выборка с частотой в 16 раз превышающая. Ты начинаешь отсчёт. В ОДНОМ прерывании от таймера. Считываешь ВСЕ каналы. Я тебе про это писал и др. чел. тоже писал, просто уточнил что он вешил все каналы на 1 порт. Это чтобы одной командой читать. Теперь представь что первый канал попал на 10% от начала. А пятый на 70%. Ну и что. Значит следующий импульс попадёт на теже самые проценты и так пока на закончится посылка. Т.е все 10 бит!

Поскольку таймер у тебя привязан к кварцу, то погрешность вызыва прерываний не превысит погрешность кварца. Единственно что у тебя может прерывание быть задержано на 1-2 такта (если не использовать MUL и т.п.). Но эта погрешность не накапливается! Давай её посчитаем.
На частоте 14372800 такт сотавляет ~70нс. Два такта 140нс. На частоте 4800 1 бит составит 208333нс. Таким образом погрешность составит менее 1%.

Так где Вы обнаружили 25%?
Или Вам нарисовать?
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 1 2006, 14:25
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(SasaVitebsk @ Jun 1 2006, 16:10) *
Так где Вы обнаружили 25%?
Или Вам нарисовать?


Вопрос вероятно ко мне был.
Если отрезок в 1м длиной разбить на 4 равные части. Очевидно, что длина каждого из получившихся 4-х отрезков будет равна 25см или 25% от целого ;>

Теперь если переложить все это на задачу приема данных. Имеется некий отрезок времени T удержания передатчиком одного бита. Передатчик имеет свой допуск на стабильность этого отрезка времени - 2%.

Мы же делаем приемник. Для того чтобы бит принимался достоверно нам надо его прочитать в любой момент времени отрезка времени T. Пусть начало отрезка T соответвует 0%, а конец - 100%.

Про непредсказуемость прихода старт бита уже говорили. Т.о. в лучшем случае старт бит придет в самом начале отрезка и ошибка начального сдвига составит 0% - байт примется без вопросов.

В худшем случае старт бит придется на конец четверти отрезка и ошибка начального сдвига составит 25% . Поскольку считывание бита присходит со сдвигом по времени на дополнительных 50% от общей длительности отрезка T, то с этим сдвигом в 25% мы будет читать данные на расстоянии 75% от начала отрезка. Добавляем допуск передатчика в 2% для 10-ти бит соответвенно 2%*10 = 20%, добавляем также и собственную систематическую ошибку приемника (кварц/код) еще 2-3% (для 10-ти бит - 20-30%), а теперь суммируем все это:
25% + 50% + 20% (передатчик) + 20%..30% (приемник) = 115..125%
что явно выходит за рамки отрезка T, следовательно читать мы будем уже другой бит.


почему вообще у УАРТа допуск по стандарту 2% на один бит.
для 10 бит надо принять во внимание, что приемник делает сдвиг в 50% относительно момента прихода старт бита (потому что неизвестно направление ошибки в "плюс" или в "минус"), а общая ошибка (сдвиг момента времени считывания бита относительно начала старт бита) по допуску может достигать:
50% + 2%*10 (передатчик) + 2%*10 (приемник) = 90% т.е. для последнего 10-го бита кадра момент считывания придется на 90% от T этого бита. Гарантированный устойчивый прием.


Цитата
Насчёт реализуйте - увидите. Давайте не опускаться, до банального. У меня нет сейчас такой задачи. Если будет - реализую. Возможно отойду в сторону от своего алгоритма. Но я его предложил! Предложил человеку! Так в чём меня упрекают? Что-то не понимаю? Если у Вас есть свой выложите! Если есть претензии к моему - напишите! А пустых фраз "знающего человека" - не надо! Просто не красиво это.


Свой, доведенный до практической реализации я уже выложил.

Насчет реализуйте - увидите, имелось в виду ответ на вопрос из вышеприведенного Вашего поста:
Цитата
За 10 бит выборки будут ложиться очень точно одна относительно одной! Что тут непонятного?

Точности здесь нет: хотя выборки и будут ложиться с одинаковым интервалом, но интервал может приводить к тому, что момент выборки будет плыть относительно передатчика. Насколько там понятного и непонятного вопрос спорный, просто предложил проверить Вам реализацией. И необязательно сейчас, может когда-то потом когда у Вас будет время и интерес ;>
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- bbill   Вопрос по алгоритму   May 30 2006, 23:12
- - _Bill   Цитата(bbill @ May 31 2006, 02:12) День д...   May 31 2006, 07:40
- - bbill   Железо уже готово...   May 31 2006, 07:45
|- - _Bill   Цитата(bbill @ May 31 2006, 10:45) Железо...   May 31 2006, 07:56
- - beer_warrior   Наверное можно поступить следующим образом: Есть A...   May 31 2006, 08:48
- - SasaVitebsk   Я делал аналогичное и менее оптимистичен. 1) Надо ...   May 31 2006, 09:50
|- - prottoss   Привет! Делал (Создавал ПО) два варианта таких...   May 31 2006, 11:19
- - bodja74   Да,без фиксации скорости это не реально сделать.....   May 31 2006, 11:58
- - GetSmart   Я вас умаляю! При желании всё это можно сделат...   May 31 2006, 12:24
|- - ksv198   Цитата(GetSmart @ May 31 2006, 16:24) Я в...   May 31 2006, 13:21
|- - SasaVitebsk   Цитата(GetSmart @ May 31 2006, 15:24) Я в...   Jun 1 2006, 11:06
- - _4afc_   Цитата(bbill @ May 31 2006, 03:12) Вопрос...   May 31 2006, 14:20
|- - bodja74   Цитата(_4afc_ @ May 31 2006, 17:20) 2. Сч...   May 31 2006, 15:30
|- - defunct   Цитата(_4afc_ @ May 31 2006, 17:20) 2. Сч...   May 31 2006, 20:34
- - GetSmart   Да я бы сделал эту прогу баксов за 300-500. Думаю ...   May 31 2006, 15:31
- - bodja74   А я бы лучше отдал лишних 10$ за контроллер...   May 31 2006, 15:46
- - Laksus   для bbill Ну раз Вы перешли сюда с http://www.fu...   May 31 2006, 19:07
- - Laksus   И еще забыл спросить. -А какая нестабильность по в...   May 31 2006, 19:41
- - bbill   От датчика посылки поступают по одному байту, мини...   May 31 2006, 20:58
|- - defunct   Цитата(bbill @ May 31 2006, 23:58) И очен...   May 31 2006, 21:04
- - mse   ЦитатаЕсли решать задачу с помощью поллинга, то не...   Jun 1 2006, 07:40
|- - SasaVitebsk   Цитата(mse @ Jun 1 2006, 10:40) Цитата Ес...   Jun 1 2006, 11:16
|- - defunct   Цитата(SasaVitebsk @ Jun 1 2006, 14:16) А...   Jun 1 2006, 11:45
|- - SasaVitebsk   Цитата(defunct @ Jun 1 2006, 14:45) Помое...   Jun 1 2006, 12:29
|- - bodja74   Цитата(SasaVitebsk @ Jun 1 2006, 16:10) И...   Jun 1 2006, 16:37
- - bzx   to bbill Я могу Вам сделать за определённый интере...   Jun 1 2006, 13:21
- - GetSmart   bbill Скажите, у вас скорость связи датчиков стаби...   Jun 1 2006, 13:22
- - bbill   GetSmart: Схемотехника датчика мне неизвестна, да ...   Jun 1 2006, 18:59
|- - SasaVitebsk   Цитата(bbill @ Jun 1 2006, 21:59) GetSmar...   Jun 2 2006, 10:02
|- - defunct   Цитата(bbill @ Jun 1 2006, 21:59) Алгорит...   Jun 2 2006, 19:07
- - dimka76   от каждого датчика посылки поступают довольно редк...   Jun 2 2006, 10:51
- - GetSmart   Оказывается я так и не написал важную мыслю. Хотя ...   Jun 2 2006, 20:28
|- - defunct   Цитата(GetSmart @ Jun 2 2006, 23:28) Чтоб...   Jun 2 2006, 20:49
- - GetSmart   Цитатаи с чем бы это дело было совместимо интересн...   Jun 2 2006, 21:02
|- - defunct   Цитата(GetSmart @ Jun 3 2006, 00:02) Цита...   Jun 2 2006, 21:23
- - bbill   Я перечитал текст своего вопроса: Формат передачи:...   Jun 2 2006, 21:18
|- - SasaVitebsk   Цитата(bbill @ Jun 3 2006, 00:18) Я переч...   Jun 3 2006, 16:08
- - GetSmart   Да, pin chang намного жизнь упростит. Именно он до...   Jun 2 2006, 21:31
- - bbill   Не знаю схемотехнику датчиков, залиты, есть разъем...   Jun 2 2006, 22:10
|- - defunct   Цитата(bbill @ Jun 3 2006, 01:10) Самое ...   Jun 2 2006, 22:36
- - GetSmart   10% ??? Это очень подозрительно. Обычно 2..5%, но ...   Jun 2 2006, 22:40
- - bbill   Это говорит о том, что я излагаю совсем не точно н...   Jun 3 2006, 20:16
- - dimka76   А что это за датчики такие интересные, передают да...   Jun 5 2006, 06:11
- - SasaVitebsk   Цитата(dimka76 @ Jun 5 2006, 09:11) А что...   Jun 5 2006, 13:51
- - dimka76   Цитата(SasaVitebsk @ Jun 5 2006, 17:51) Ц...   Jun 6 2006, 11:49
- - defunct   Цитата(dimka76 @ Jun 6 2006, 14:49) Вопро...   Jun 6 2006, 19:06


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

 


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


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