roboforum.ru

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


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

Обсуждаем рождающиеся мысли и результаты экспериментов.

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

Сообщение Strijar » 26 ноя 2007, 16:39

В процессе доделки текущего робота, думаю над следующим. Дальномеры у меня уже есть. С SD разобрался. Хочу камеру какую нибудь прицепить - есть идея раскурочить web камеру, оторвав от нее USB. Ну и какое нибудь радо, например BlueTooth. Так вот - много всего получается! Текущая Mega162 точно не справится, лежащая 644 может и потянет - а вот они вместе уже точно! Хотя можно переползти на что нибудь принципиально другое - благо что на работе и ColdFire есть и ARM SAM7. Но как-то это мало паябельно моими руками. Короче решил я затеять несколько микроконтроллеров. Один на движки+энкодеры, второй на бамперы+дальномер+серва крутить "головой" и еще один центральный для обвязки всего + SD + звук. Пока обвязать думаю по SPI. Но мало представляю себе как будут работать slave - надо разбираться. Кто-что скажет? Кто нибудь такое делал?
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

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

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

Думаю имеет смысл поставить МК+ПЛИС - стандартное решение если и МК загружен и тупой переферии много... 2 МК - уже труднее, протокол надо придумывать. SPI - правильная мысль, он пожалуй самый быстрый после параллельного интерфейса. Режим работы простой как топор: есть 2 чипа, у каждого в SPDR лежит байт. После акта передачи эти байты меняются местами. Акт передачи генерит Мастер. У Слейва по завершении происходит прерывание и он может переложить куда надо полученный байт и положить туда ответ если надо.
Минусы такие: если надо читать много байт подряд - придется слать столько-же байт мусора обратно, передача работает только в обе стороны одновременно.
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

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

Сообщение Strijar » 26 ноя 2007, 20:01

Про ПЛИС на работе уже поспрашивал.. есть 100-ногие, в которые даже PicoBlaze влезет ;) Но это пока не для меня. Про "мусор" в SPI тоже уже понял, на примере с SD/MMC - там так сделано... Надо докупить несколько mega8 и начать паять "слоты" ;) А "матери" поставлю 644 ;) ...хоть ШИМы буду человеческие - а то сейчас все кроме звука програмные ;) Прошивать только их муторно будет - или кабель перетыкать или "чип селект" в програмер добавлять. А можно ложить образы на SD и главный пусть сам заливает ;)
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

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

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

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

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

Сообщение Duhas » 28 ноя 2007, 04:25

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

кстати не подскажете как лучше считать обороты энкодером в плане программной части ?
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение EdGull » 28 ноя 2007, 10:53

а что мешает мозгу постоянно опрашивать все остальные МК?
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

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

Сообщение Strijar » 28 ноя 2007, 12:02

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


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

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


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

Добавлено спустя 6 минут:
Вот еще обдумываю вариант с инициализацией передачи от Slave - он ведь может дрыгнуть ногой когда хочет что-то послать, а на этой ноге с стороны master сидит прерывание. А дрыгать можно тем-же "чип селектом" - что-б не плодить сущности. Изначально и на мастере и на слэйве включить его на вход, и по ходу дела переключать его когда надо на выход. Только я думаю может случиться засада если оба его на выход включат случайно. Через резюк?
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

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

Сообщение EdGull » 28 ноя 2007, 13:03

а еще есть CAN шина, там все могут быть мастерами...
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

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

Сообщение Digit » 28 ноя 2007, 13:26

А есть еще TWI =) Там и мастеров много, и стандарт это промышленный, и арбитраж коллизий на железном уровне (когда одновременно несколько "дрыгать" начнут чем попало)
злой полицейский
Аватара пользователя
Digit
 
Сообщения: 3339
Зарегистрирован: 27 ноя 2004, 00:42
Откуда: совсем Москва
ФИО: Григорий

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

Сообщение Strijar » 28 ноя 2007, 14:34

Уточняйте где там на mega162 нет, на tiny13 тоже ;)
Хотя если ставить в центр mega644 а на переферию mega8 - тогда вытанцовывается ;)
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

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

Сообщение Digit » 28 ноя 2007, 14:57

Хы!И точно - в меге 162 нету! :)
Ну тада ладно :)
злой полицейский
Аватара пользователя
Digit
 
Сообщения: 3339
Зарегистрирован: 27 ноя 2004, 00:42
Откуда: совсем Москва
ФИО: Григорий

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

Сообщение Duhas » 02 дек 2007, 21:37

по мне так на самом деле спи и дрыгать чип селектом... да и передача байта в обе строны лучше чем переда только в 1 сторону... да и инфы лишней нету ... типа адресов и прочего ... работать нада больше железом )))
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение Strijar » 03 дек 2007, 13:24

И тем более что через SPI надо прошивать модули - так что его так и так надо выводить ;)
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

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

Сообщение Different » 18 дек 2007, 21:58

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

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

Сообщение Duhas » 20 дек 2007, 22:20

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

склеив кучу каких нить тинег или мег8 мы получим много отдельных мдулей расположенных непосредственно на своих местах.. и делающих свое дело... легко программируемых... да и ходячем уроботу как рас необходимо множество отдельных камней.. ибо тягать проводки от тех же энкодеров на валах движков к 1-2 камням уже смотрися как бред чистой воды...
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

След.

Вернуться в Идеи

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

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