roboforum.ru

Технический форум по робототехнике.
Текущее время: 16 апр 2025, 06:06

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Коммуникации в системе.
СообщениеДобавлено: 21 авг 2010, 23:15 
Не в сети

Зарегистрирован: 26 июн 2009, 14:15
Сообщения: 157
Откуда: Минск
прог. языки: C++, Assembler
Вот есть система: главный относительно шустрый контроллер и много интелектуальных модулей на основе контроллеров попроще, это как бы в принципе. На практике в роли главного выступает dsPIC30F6014A у которого из аппаратных модулей два UART, два SPI и один I2C. На юарты повешены, как наиболее важные, радиоканал и драйвер двигателей. И вот дальше начинается главная проблема - связь с остальными датчиками. На практике есть например модуль сонара со своим контроллером, который рулит сервой и измеряет растояния и желательно должен отсылать их на главный мозг(с юартом просто - измерил, отослал, мастер за пару команд сложил в буфер и все щасливы), но юарты то закончились(((
Напрашивается решение в лоб, вешать его слейвом и производить измерения по команде с мастера. Но пока повернёшь серву, пока этот ультразвук назад вернётся - это уйма времени. Значит на мастере надо брать таймер, подбирать время ожидания на вторичный запрос для получения данных. Т.е. коекак работать будет но это с одним модулем, а хочется красивого решения для подключения реалистично большого количества модулей и чтоб система при этом работала.
Может я туплю и есть какой-то более рациональный алгоритм общения мастера со слейвами?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Коммуникации в системе.
СообщениеДобавлено: 21 авг 2010, 23:33 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Можно на главном шедулер замутить в который складывать инфу - когда какой слейв опросить по части ответа.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Коммуникации в системе.
СообщениеДобавлено: 21 авг 2010, 23:44 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Сделайте человеческую шину (тот же 485) и "умные" слейвы.
Назначьте им номера и пусть говорят по очереди (они друг-друга будут слышать и знать, когда надо говорить)...

А вообще, проблему считаю надуманной.
По крайней мере без оценки потока данных (реально нужных) выбирать что-то смысла нет...
Ну вот сколько нужно драйверу мотора... несколько десятков байт в секунду?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Коммуникации в системе.
СообщениеДобавлено: 22 авг 2010, 00:28 
Не в сети

Зарегистрирован: 26 июн 2009, 14:15
Сообщения: 157
Откуда: Минск
прог. языки: C++, Assembler
=DeaD=, видно так и придётся сделать, но как-то это неестественно...
Michael_K, человеческая шина это хорошо, но как-то раньше про это не подумал, а сейчас уже всё вытравлено и распаяно. В следующем проекте пожалуй буду на контроллерах с каном делать.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO