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

 
 
> Вопрос по алгоритму
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
bodja74
сообщение Jun 1 2006, 16:37
Сообщение #4


Знающий
****

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



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


16 выборок на бит ,другое дело. smile.gif
По идее можно вписатся в погрешность,вопрос остается хватит ли нам оперативки?
Если передача действительно идет,как описал автор темы,то мы даже впишемся в 320 байт.
Я думал про непрерывную передачу и однозначно решил что поллинг не проидет,так что извинямс smile.gif
На асме можно и без прерывания обойтись,если других задач не нужно,
в цикле читать порты,если какой рыпнется,сливать всю посылку в оперативку,а потом пережовывать.
Главное что бы между посылками контроллер успел обработать полученные данные.
После пережовывания опять ждать следующую посылку.
Короче ,думаю,на 16 выборках на бит сделать можно. smile.gifsmile.gifsmile.gif
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
|- - defunct   Цитата(SasaVitebsk @ Jun 1 2006, 16:10) Т...   Jun 1 2006, 14:25
- - 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 Текстовая версия Сейчас: 23rd July 2025 - 20:43
Рейтинг@Mail.ru


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