roboforum.ru

Технический форум по робототехнике.

Разработка стандарта передачи данных по радиоканалу (СС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
Это основное. Считаю что ничего более чем это - не нужно.

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

blindman » 18 сен 2008, 18:57

А какие действия предпринимаются в случае ошибки?

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

frig » 18 сен 2008, 19:00

а как работать более чем "в одно лицо"?

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

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

Можно и более чем в одно лицо. Как - не очень сложно догадаться.
Ответ опять же (это к комментарию про ошибки): motor-left(error=0, current=10, pwm=10), servo(error=10);
Никакой самовольно перепосылки нет.
Все решает пользователь.

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

blindman » 18 сен 2008, 19:45

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

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

Myp » 18 сен 2008, 19:58

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


ктулху ? :shock:

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

=DeaD= » 18 сен 2008, 20:51

Не вижу особого смысла пока рассматривать какие-то конкретные протоколы по контролю наличия и коррекции ошибок. Думаю всё надо будет планировать после того как разберем SimpliciTY и конкретные параметры CC2500, оттуда появится информация по поводу скорости обратки той или иной информации и т.п. Из этого будем выбирать размера пакета данных, способ распознавания и корректировки ошибок и т.п.

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

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

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

Почему нет, в любом случае обратно отправляется пустой пакет (если ни один из модулей не ответил).

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

=DeaD= » 19 сен 2008, 08:48

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

Почитал малость - ничего не нашел про какую-то помехозащищенность протокола - он вообще эти задачи решает? Выбора свободной частоты, в т.ч. чтобы не мешал соседним девайсам на этих же чипах. Кто нибудь в теме?

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

avr123.nm.ru » 19 сен 2008, 09:21

Ну если там точка доступа на UART PC и несколько радио датчиков, то наверно решает КАК ТО.

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

=DeaD= » 19 сен 2008, 09:27

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

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

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

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

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

frig » 19 сен 2008, 09:45

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


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

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


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

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


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

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


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

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


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

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

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

=DeaD= » 19 сен 2008, 09:58

Чего означает фраза "нормальные передатчики"? У меня вот радиомодем лежит - он нормальный такой себе радиомодем. Но он на фиксированных частотах работает и сам ничего не выбирает.

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

hudbrog » 19 сен 2008, 10:42

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

А вообще, выбрали бы изначально чипы от nordic'а, щаз бы проблем не знали =( Там уже протокол зашит и с определением корректности посылки, и с ретрансмиссиями автоматическими и прочим подобным..


Rambler\'s Top100 Mail.ru counter