Разработка стандарта передачи данных по радиоканалу (СС2500)

В разделе рассматриваются вопросы информационного обмена в робототехнике.
Аппаратный уровень, протоколы.

Re: Разработка стандарта передачи данных по радиоканалу (СС2500)

Сообщение Виталий » 18 сен 2008, 18:46

Я расскажу как у меня сделано, а вы решите нравится вам или нет.
1. Протокол передачи не предполагает передачи длины пакета, вместо этого символы стоп и старт (:,;).
2. Если в пакете встречаются такие символы, то они заменяются escape последовательностью: : = \:, ; = \;
3. В протокол включена контрольная сумма которая идет ПОСЛЕ символа окончания пакета.

Это все что нужно для пересылки пачки байт.
Никакого фрагментирования, т.к. мегабайты мне пересылать еще не приходилось.
Внутри пакета все зависит от задачи, но я предпочитаю вариант с текстовыми сообщениями, например так: T motor-left(power=128, direction=0), servo-cam(angle=20)
Естественно можно и бинарный формат передавать, для этого в моем протоколе есть признак типа данных: T - text, B - binary
Это основное. Считаю что ничего более чем это - не нужно.
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Разработка стандарта передачи данных по радиоканалу (СС2500)

Сообщение blindman » 18 сен 2008, 18:57

А какие действия предпринимаются в случае ошибки?
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Разработка стандарта передачи данных по радиоканалу (СС2500)

Сообщение frig » 18 сен 2008, 19:00

а как работать более чем "в одно лицо"?
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

Re: Разработка стандарта передачи данных по радиоканалу (СС2500)

Сообщение Виталий » 18 сен 2008, 19:36

Можно и более чем в одно лицо. Как - не очень сложно догадаться.
Ответ опять же (это к комментарию про ошибки): motor-left(error=0, current=10, pwm=10), servo(error=10);
Никакой самовольно перепосылки нет.
Все решает пользователь.
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Разработка стандарта передачи данных по радиоканалу (СС2500)

Сообщение blindman » 18 сен 2008, 19:45

То есть никакой информации, что пакет дошел до получателя - нет
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Разработка стандарта передачи данных по радиоканалу (СС2500)

Сообщение Myp » 18 сен 2008, 19:58

Виталий писал(а):(:,;).


ктулху ? :shock:
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Разработка стандарта передачи данных по радиоканалу (СС2500)

Сообщение =DeaD= » 18 сен 2008, 20:51

Не вижу особого смысла пока рассматривать какие-то конкретные протоколы по контролю наличия и коррекции ошибок. Думаю всё надо будет планировать после того как разберем SimpliciTY и конкретные параметры CC2500, оттуда появится информация по поводу скорости обратки той или иной информации и т.п. Из этого будем выбирать размера пакета данных, способ распознавания и корректировки ошибок и т.п.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Разработка стандарта передачи данных по радиоканалу (СС2500)

Сообщение Виталий » 18 сен 2008, 21:07

То есть никакой информации, что пакет дошел до получателя - нет

Почему нет, в любом случае обратно отправляется пустой пакет (если ни один из модулей не ответил).
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Разработка стандарта передачи данных по радиоканалу (СС2500)

Сообщение =DeaD= » 19 сен 2008, 08:48

Кстати, правильно писать SimpliciTI это для тех кто искать что-то будет.

Почитал малость - ничего не нашел про какую-то помехозащищенность протокола - он вообще эти задачи решает? Выбора свободной частоты, в т.ч. чтобы не мешал соседним девайсам на этих же чипах. Кто нибудь в теме?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Разработка стандарта передачи данных по радиоканалу (СС2500)

Сообщение avr123.nm.ru » 19 сен 2008, 09:21

Ну если там точка доступа на UART PC и несколько радио датчиков, то наверно решает КАК ТО.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: Разработка стандарта передачи данных по радиоканалу (СС2500)

Сообщение =DeaD= » 19 сен 2008, 09:27

Она может решать только вопросы доступа к среде, а не выбора канала, т.е. может оказаться, что в одном помещении у трёх пар передатчиков будет не у каждого 100Кбит/с, а у трёх в сумме только, а скорее всего существенно меньше, потому что часть посылок будет биться друг об друга. Т.е. они обмениваются микропосылками и большие объемы данных не гоняют, поэтому коллизии им не сильно мешают. Это как в сети будет - если много компов посадить на 1 провод без коммутаторов и маршрутизаторов - они друг другу начнут мешать и пропускная способность сети резко начнет снижаться.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Разработка стандарта передачи данных по радиоканалу (СС2500)

Сообщение Виталий » 19 сен 2008, 09:33

А я думал это нормальные передатчики и они сами выбирают частоту на которой работать.
Или меняют рабочую частоту. WiFi например сам решает вопросы с битыми пакетами. Ведь в этом и есть я думаю смысл новых трансиверов, а иначе это полная лажа и нужно переходить на синий зуб и не париться.
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Разработка стандарта передачи данных по радиоканалу (СС2500)

Сообщение frig » 19 сен 2008, 09:45

Она может решать только вопросы доступа к среде, а не выбора канала, т.е. может оказаться, что в одном помещении у трёх пар передатчиков будет не у каждого 100Кбит/с, а у трёх в сумме только,


а иначе и не будет. радио тем и погано, что на всех один эфир. даже если прыгать по каналам - все равно эфир один на всех. это только значит что полоса будет между всеми поделена на куски и куски будут розданы. те же яйца, только тебе сразу будут давать кусок.

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


регулирование доступа к среде эти вопросы и решает как раз. передает ТОЛЬКО один. иначе не получит никто. и коллизию тут нельзя определить до окончания передачи и получения уведомления о том, что таки вышла лажа. это с проводами прокатывает определение коллизии в момент передачи и прерывание этой самое передачи. тут все хуже.

Это как в сети будет - если много компов посадить на 1 провод без коммутаторов и маршрутизаторов - они друг другу начнут мешать и пропускная способность сети резко начнет снижаться.


так и есть. так радио и работает.

WiFi например сам решает вопросы с битыми пакетами.


в wifi все работают на одной частоте. там CSMA/CA - система предупреждающая коллизии. т.е. ты слушаешь эфир, если никого нет - передаешь. и есть надежда, что другие, слушающие в этот момент не начнут передачу вместе с тобой. а есть еще проблема скрытого узла, когда 1-й слыший второго, второй слыший первого и третьего, но третий не слышит первого. первый и третий начинают передачу одновременно и у второго сплошная каша. нормальные решения (не класса wifi) работают сложнее.

Ведь в этом и есть я думаю смысл новых трансиверов, а иначе это полная лажа и нужно переходить на синий зуб и не париться.


там наверняка тоже свои бока, но с ними наверняка не прийдется морочить себе голову. это головная боль разработчиков. :)

вот так все не утешительно в радио. именно по причине того что это узкоспециальная шняга, призванная работать только в НЕОБХОДИМЫХ случаях - я так всех и отговариваю. еще учитывайте, что одно дело когда проблема будет у вас, дома, на столе -вы сможете что-то покрутить, подвигать, пошаманить... а потребитель этого делать не станет. он плюнет в пол, а железку выкинет в окно. и будет прав.
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

Re: Разработка стандарта передачи данных по радиоканалу (СС2500)

Сообщение =DeaD= » 19 сен 2008, 09:58

Чего означает фраза "нормальные передатчики"? У меня вот радиомодем лежит - он нормальный такой себе радиомодем. Но он на фиксированных частотах работает и сам ничего не выбирает.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Разработка стандарта передачи данных по радиоканалу (СС2500)

Сообщение hudbrog » 19 сен 2008, 10:42

Ну и почему в нашем случае не реализовать тот же csma/ca? там схема-то прсотейшая.. насколько я понимаю, отличий от csma/cd почти нет..
Сделать передаваемый юнит максимально маленьким, около 30-50 байт, и будет счастье, в общем-то..

А вообще, выбрали бы изначально чипы от nordic'а, щаз бы проблем не знали =( Там уже протокол зашит и с определением корректности посылки, и с ретрансмиссиями автоматическими и прочим подобным..
У меня в голове опилки и длинные слова меня только огорчают.
Аватара пользователя
hudbrog
 
Сообщения: 1585
Зарегистрирован: 14 май 2008, 15:49
Откуда: Москва
ФИО: Алексей

Пред.След.

Вернуться в Коммуникации

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3