roboforum.ru

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

Коммуникации в системе.

Коммуникации в системе.

Ito » 21 авг 2010, 23:15

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

Re: Коммуникации в системе.

=DeaD= » 21 авг 2010, 23:33

Можно на главном шедулер замутить в который складывать инфу - когда какой слейв опросить по части ответа.

Re: Коммуникации в системе.

Michael_K » 21 авг 2010, 23:44

Сделайте человеческую шину (тот же 485) и "умные" слейвы.
Назначьте им номера и пусть говорят по очереди (они друг-друга будут слышать и знать, когда надо говорить)...

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

Re: Коммуникации в системе.

Ito » 22 авг 2010, 00:28

=DeaD=, видно так и придётся сделать, но как-то это неестественно...
Michael_K, человеческая шина это хорошо, но как-то раньше про это не подумал, а сейчас уже всё вытравлено и распаяно. В следующем проекте пожалуй буду на контроллерах с каном делать.


cron
Rambler\'s Top100 Mail.ru counter