roboforum.ru

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

Много-процессорность

Много-процессорность

Strijar » 26 ноя 2007, 16:39

В процессе доделки текущего робота, думаю над следующим. Дальномеры у меня уже есть. С SD разобрался. Хочу камеру какую нибудь прицепить - есть идея раскурочить web камеру, оторвав от нее USB. Ну и какое нибудь радо, например BlueTooth. Так вот - много всего получается! Текущая Mega162 точно не справится, лежащая 644 может и потянет - а вот они вместе уже точно! Хотя можно переползти на что нибудь принципиально другое - благо что на работе и ColdFire есть и ARM SAM7. Но как-то это мало паябельно моими руками. Короче решил я затеять несколько микроконтроллеров. Один на движки+энкодеры, второй на бамперы+дальномер+серва крутить "головой" и еще один центральный для обвязки всего + SD + звук. Пока обвязать думаю по SPI. Но мало представляю себе как будут работать slave - надо разбираться. Кто-что скажет? Кто нибудь такое делал?

Re: Много-процессорность

-= Александр =- » 26 ноя 2007, 18:52

Думаю имеет смысл поставить МК+ПЛИС - стандартное решение если и МК загружен и тупой переферии много... 2 МК - уже труднее, протокол надо придумывать. SPI - правильная мысль, он пожалуй самый быстрый после параллельного интерфейса. Режим работы простой как топор: есть 2 чипа, у каждого в SPDR лежит байт. После акта передачи эти байты меняются местами. Акт передачи генерит Мастер. У Слейва по завершении происходит прерывание и он может переложить куда надо полученный байт и положить туда ответ если надо.
Минусы такие: если надо читать много байт подряд - придется слать столько-же байт мусора обратно, передача работает только в обе стороны одновременно.

Re: Много-процессорность

Strijar » 26 ноя 2007, 20:01

Про ПЛИС на работе уже поспрашивал.. есть 100-ногие, в которые даже PicoBlaze влезет ;) Но это пока не для меня. Про "мусор" в SPI тоже уже понял, на примере с SD/MMC - там так сделано... Надо докупить несколько mega8 и начать паять "слоты" ;) А "матери" поставлю 644 ;) ...хоть ШИМы буду человеческие - а то сейчас все кроме звука програмные ;) Прошивать только их муторно будет - или кабель перетыкать или "чип селект" в програмер добавлять. А можно ложить образы на SD и главный пусть сам заливает ;)

Re: Много-процессорность

Виталий » 26 ноя 2007, 23:34

Систему можно сделать мультиагентной. Т.е. одноранговой с независимыми модулями.

Re: Много-процессорность

Duhas » 28 ноя 2007, 04:25

думал над организацией многопроцессорности для паучка ... там как минимум 1 камень на ногу ... мысли пришли с спи... и скорость и простота радуют .. но решил что понадобится еще 1-2 вспомогетальных линии чтобы к примеру экстренно крикнуть моску в ухо что у нас нога заклинилась или зацепилась ... и моск перестал считать овечек и занялся этой проблемой..

кстати не подскажете как лучше считать обороты энкодером в плане программной части ?

Re: Много-процессорность

EdGull » 28 ноя 2007, 10:53

а что мешает мозгу постоянно опрашивать все остальные МК?

Re: Много-процессорность

Strijar » 28 ноя 2007, 12:02

Duhas писал(а):кстати не подскажете как лучше считать обороты энкодером в плане программной части ?


У меня сейчас внешние прерывания (на смену фронта ) - лучше ИМХО никак ;)

Добавлено спустя 1 минуту 9 секунд:
EdGull писал(а):а что мешает мозгу постоянно опрашивать все остальные МК?


Я так и собираюсь делать ;)

Добавлено спустя 6 минут:
Вот еще обдумываю вариант с инициализацией передачи от Slave - он ведь может дрыгнуть ногой когда хочет что-то послать, а на этой ноге с стороны master сидит прерывание. А дрыгать можно тем-же "чип селектом" - что-б не плодить сущности. Изначально и на мастере и на слэйве включить его на вход, и по ходу дела переключать его когда надо на выход. Только я думаю может случиться засада если оба его на выход включат случайно. Через резюк?

Re: Много-процессорность

EdGull » 28 ноя 2007, 13:03

а еще есть CAN шина, там все могут быть мастерами...

Re: Много-процессорность

Digit » 28 ноя 2007, 13:26

А есть еще TWI =) Там и мастеров много, и стандарт это промышленный, и арбитраж коллизий на железном уровне (когда одновременно несколько "дрыгать" начнут чем попало)

Re: Много-процессорность

Strijar » 28 ноя 2007, 14:34

Уточняйте где там на mega162 нет, на tiny13 тоже ;)
Хотя если ставить в центр mega644 а на переферию mega8 - тогда вытанцовывается ;)

Re: Много-процессорность

Digit » 28 ноя 2007, 14:57

Хы!И точно - в меге 162 нету! :)
Ну тада ладно :)

Re: Много-процессорность

Duhas » 02 дек 2007, 21:37

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

Re: Много-процессорность

Strijar » 03 дек 2007, 13:24

И тем более что через SPI надо прошивать модули - так что его так и так надо выводить ;)

Re: Много-процессорность

Different » 18 дек 2007, 21:58

ИМХО, Propeller P8X32A, хоть и банально это звучит. 8 процессоров в одном корпусе DIP-40 или LQFP-44. Паябельность хоть куда. Параллельность работы ядер. Для ходячего робота вполне хватит. Можно запараллелить 2 чипа...

Re: Много-процессорность

Duhas » 20 дек 2007, 22:20

и минусы:
-всего 40 ног
-контроллер прерывания явно общий.. хотя хз... но внешних нормальных прерываний это не добавит..
-програмить будет тяжко... информации мало...
и зачем 8 ядер в паралели? кому они нах нужны в 1 камне ? чтобы их нормально нагрузить нужна дюжая куча данных.. откуда она ? вообше мне кажется камень галим...

склеив кучу каких нить тинег или мег8 мы получим много отдельных мдулей расположенных непосредственно на своих местах.. и делающих свое дело... легко программируемых... да и ходячем уроботу как рас необходимо множество отдельных камней.. ибо тягать проводки от тех же энкодеров на валах движков к 1-2 камням уже смотрися как бред чистой воды...


Rambler\'s Top100 Mail.ru counter