Easyelectronics.ru

Электроника для всех
Текущее время: 01 окт 2020, 18:53

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



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 45 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 17 мар 2016, 02:43 
Только пришел
Аватара пользователя

Зарегистрирован: 17 мар 2016, 02:00
Сообщения: 11
Откуда: г. Москва
Всем доброго времени суток.
Пришёл на Ваш форум в надежде попытать удачу в решении моей проблемы :)

Ситуация такая: Уже пол года сижу и думаю над одной задачей, а именно построения одноранговой сети для устройств на микроконтроллерах, в частности AVR.
Задача простая, - есть 255 устройств, которые должны общаться между собой посредством общей сети, при этом сеть (физический уровень) должна просто реализовываться, а так-же электрическая часть должна легко реализоваться с минимальным кол-во компонентов. Длинна шины должна быть приличной, 200-500 метров, с допуском на звёзды.
На первый взгляд вариантов куча, но давайте рассмотрим их поближе:
1) Ethernet. Да удобно, легко расширяется, легко адресуется, каждое устройство может передавать в сеть данные не согласовывая передачу, но есть огромный минус, который всё портит: одно устройство = один кабель, -огромное кол-во проводов тянуть не вариант.
2) Wifi на базе ESP8266. Преимущества первого пункта, + нужен только кабель питания, что несомненно даёт огромные плюсы, но тут другой момент, - жить в доме, где будет стоять 100-200 передатчиков Wifi это тоже самое что жить во включенной микроволновке... Вариант отпадает сразу.
3) RS-485. Вообще шикарный интерфейс, полностью устраивает, легко реализуется. Большая скорость передачи, помехозащищённость. На небольших скоростях можно 'звездить' чуть-ли не на 100 метров делая отводы, но и тут есть момент который всё портит: На нём нельзя реализовать одноранговую сеть, т.е. в любом случае это система "Запрос - Ответ", где есть координатор сети. И всё-бы ничего, но если определить по 10 мс на устройство (что-бы на скорости 9600 успеть передать как минимум 64 байта + 10 сервисных), то получаем что круг опроса займёт 2.5 секунды, что невразумительно много. Есть и другая проблема: если каждые 10 мс каждое устройство будет дёргаться по прерыванию и смотреть что там пришло по уарту, то микроконтроллер будет заниматься только разбором данных сети, и на основную задачу, возложенную на него, не останется ресурсов и процессорного времени.
4) Собственный интерфейс, который будет передавать данные по коаксиальному кабелю, но там придётся городить свой TX\RX, что уже не является простым и дешёвым решением.

Прошу Вашей помощи в данной проблеме.
Посоветуйте на чём остановиться или предложите какой-нибудь более интересный вариант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 17 мар 2016, 03:10 
Старожил

Зарегистрирован: 02 дек 2010, 13:52
Сообщения: 5158
Откуда: п. Борок, Ярославская область
У AVR есть фича Multiprocessor mode через USART. Там используются 9-ти битные пакеты и как раз адресация 255 устройств. Устроено все тривиально и в даташите все описано.

На хардварь там возложено лишь автоматическое отделение типа пакета: адрес или данные (задается тем самым 9-м битом). Все девайсы висят на одной шине в параллель и "слушают" ее. Инициировать обмен имеет право любой девайс, потому могут быть коллизии, но вроде как аппаратного детектора коллизий там нету. Так что удобнее всего чтоб на линии мастер был один, а слейвов много.

Пруфы:
http://we.easyelectronics.ru/AVR/vremya-govorit-s-kamnyami-ili-usart-multi-processor-communication-mode.html
http://www.avrfreaks.net/forum/avr-multi-processor-mode
http://www.atmel.com/images/doc4346.pdf

P,S, Организовать подобное можно и на других камнях, но уже софтварьно. А дальность связи нужную сделать - так это зависит от требуемой скорости, емкости кабеля и выходного сопротивления, напряжения/тока. Можно делать токовую петлю, можно дифф-сигнал гнать по UTP. Решений вагон и маленькая тележка. У меня вот при скорости 4800 бит/с обычный асинхронный UART работал на кабеле длиной 760 метров без потерь. Правда кабель с из многожильных проводов толщиной 2мм и каждый отдельный провод в экране.

_________________
Ёж птица гордая, пока не пнешь - не полетит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 17 мар 2016, 03:26 
Только пришел
Аватара пользователя

Зарегистрирован: 17 мар 2016, 02:00
Сообщения: 11
Откуда: г. Москва
VivalzarD писал(а):
У AVR есть фича Multiprocessor mode через USART. Там используются 9-ти битные пакеты и как раз адресация 255 устройств. Устроено все тривиально и в даташите все описано.

Спасибо за ответ.
Про Multiprocessor mode не знал, ушёл читать... Но всё равно сеть типа Один мастер - много слейвов не совсем подходит по двум причинам: Первое это большое время ожидания реакции устройства (на пяльцах это если-бы кнопка включения света включала свет спустя 2-3 секунды), а второе это невозможность 'подсунуть' пакет в сеть, например с компьютера, через специальный переходник отправить команду в сеть на конкретное устройство или сразу всем, а так-же очень хочется иметь загрузчик в каждом устройстве, что-бы через эту же сеть можно было обновлять устройства, но последнее это уже навороты, от которых готов отказаться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 17 мар 2016, 06:59 
Заглядывает иногда

Зарегистрирован: 14 ноя 2014, 15:16
Сообщения: 51
а i2c чем не подходит?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 17 мар 2016, 10:49 
Заглядывает иногда

Зарегистрирован: 28 мар 2013, 11:01
Сообщения: 86
Во-первых забыли про CAN, он сложнее UART но значительно проще Ethernet, помехозащищен. Во-вторых, с помощью RS-422 можно построить а-ля Token Ring. Сеть, конечно, имеет недостатки, является кольцом, но тем не менее представляет вполне работоспособный вариант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 17 мар 2016, 12:52 
Старожил

Зарегистрирован: 24 июн 2011, 14:05
Сообщения: 309
Откуда: Новочеркасск
+1 к CAN, нету явных мастеров и слейвов, фильтрация сообщений на аппаратном уровне.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 17 мар 2016, 12:58 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1953
Dragon_Knight писал(а):
3) RS-485. Вообще шикарный интерфейс, полностью устраивает, легко реализуется.
...
но и тут есть момент который всё портит: На нём нельзя реализовать одноранговую сеть, т.е. в любом случае это система "Запрос - Ответ", где есть координатор сети.

Это с чего бы это вдруг? )
Это только физический уровень, что хотите, то и делайте, а при 200-500 м тем более только rs485, вообще без вариантов

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 17 мар 2016, 13:11 
Старожил

Зарегистрирован: 02 дек 2010, 13:52
Сообщения: 5158
Откуда: п. Борок, Ярославская область
Dragon_Knight писал(а):
невозможность 'подсунуть' пакет в сеть, например с компьютера, через специальный переходник отправить команду в сеть

Да легко, комповый UART 9-бит поддерживает. А "многомастерная" сеть делается софтварьно - хотя да, это неправильно в данном случае. Но и даже тут есть минимум два пути:
1. Это когда каждый участник сети сам по себе и мониторит состояние сети на предмет активности. То есть ждет, когда линия освободится и в нее можно будет "нагадить". Но тут надо чтобы каждый участник имел алгоритмы определения коллизий и знал что делать при их возникновении.
2. В сети должен быть арбитр. Арбитр - это еще один участник сети, который рассылает широковещательные пакеты всем подряд, где указывает, какой из участников и на какое время может являться мастером в сети. Участники сети этого арбитра слушаются: поймал участник пакет, где говорится что ему делигировали права мастера на 10мсек - и он либо "плюет" арбитру инфу, что мол "не надо оно мне сейчас", либо использует делигированное время себе в пользу, либо говорит арбитру "мне 10мсек мало, давай %Value% мсек" - на что арбитр отвечает "да" или "нет". Арбитр дает "мастера" участникам сети либо циклически, либо по приоритетной таблице. Как-то так.

Кстати RS-485 это же протокол физического уровня в общем-то. На него сверху можно что угодно положить. Да хоть тот же IP протокол, хотя MODBUS будет проще, и этот Multiprocessor mode тоже можно гнать через RS-485, но с возможностью "отключения" линии RX в момент, когда девайс только слушает сеть ну или типа того...

_________________
Ёж птица гордая, пока не пнешь - не полетит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 17 мар 2016, 14:50 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2012, 00:31
Сообщения: 1799
Откуда: Новокузнецк
VivalzarD писал(а):
1. Это когда каждый участник сети сам по себе и мониторит состояние сети на предмет активности. То есть ждет, когда линия освободится и в нее можно будет "нагадить". Но тут надо чтобы каждый участник имел алгоритмы определения коллизий и знал что делать при их возникновении.

Дело за малым осталось. Сделать алгоритмы определения коллизий. Например 3 девайса мониторят сеть, сеть освобождается, три девайса начинают слать в сеть, коллизия, рандомная пауза, опять попытка. В итоге время доставки пакета недетерминировано. А с ростом загрузки сети лавинообразно падает пропускная способность. А можно при отправке каждый бит контролировать, не перебивают ли его другие девайсы, и тогда у нас получается CAN.
VivalzarD писал(а):
2. В сети должен быть арбитр. Арбитр - это еще один участник сети, который рассылает широковещательные пакеты всем подряд, где указывает, какой из участников и на какое время может являться мастером в сети. Участники сети этого арбитра слушаются: поймал участник пакет, где говорится что ему делигировали права мастера на 10мсек - и он либо "плюет" арбитру инфу, что мол "не надо оно мне сейчас", либо использует делигированное время себе в пользу, либо говорит арбитру "мне 10мсек мало, давай %Value% мсек" - на что арбитр отвечает "да" или "нет". Арбитр дает "мастера" участникам сети либо циклически, либо по приоритетной таблице. Как-то так.

Ну это и есть Мастер-слейв. Мастер по очереди всех опрашивает. Если на каждого тратить по 10 мс, то, чтоб опросить 255 устройств нужно 2,5 секунды. Детерминировано, но долго.

_________________
elisey.su


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 17 мар 2016, 23:39 
Старожил

Зарегистрирован: 02 дек 2010, 13:52
Сообщения: 5158
Откуда: п. Борок, Ярославская область
2 elisey
Ну да...

"Все уже украдено разработано до нас" (с)

_________________
Ёж птица гордая, пока не пнешь - не полетит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 18 мар 2016, 00:25 
Старожил

Зарегистрирован: 30 авг 2010, 00:02
Сообщения: 926
Придумано до нас и задолго до сетей. В процессе обдумывания протокола на каком-то этапе приходит понимание, что ты моделируешь очередь в кассу. Если функции устройств в сети не совсем примитивны, то там появляются свои "женщины с ребенком", участники войны, пропустившие свою очередь, "вы за кем? , а вы за кем", очередь внеочередников, "вас тут не стояло" и прочие аналогии.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 18 мар 2016, 00:41 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2795
Откуда: Санкт-Петербург
Ага. И ещё - вопль "есть кто на букву А?"
(если редко какой слейв посылает сообщения, а наличие хоть какого-то ответа на запрос мастера можно заметить даже при конфликте - например, в случае последовательного порта с монтажным "И" [старт-бит всяко распознается] - то опрос можно заметно ускорить таким методом: вначале спрашиваем "есть сообщения?", если кто ответил - спрашиваем "есть сообщения у слейвов 0XXXXXXX?", если да - мы узнали первую цифру адреса (a=0/1), спрашиваем "есть сообщения у слейвов a0XXXXXX?" - узнаём вторую цифру b, и так далее - итого, за 8 запросов узнаем номер того, кому есть, что сказать - причём в случае конфликта у меньших номеров будет приоритет).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 18 мар 2016, 01:26 
Старожил

Зарегистрирован: 30 авг 2010, 00:02
Сообщения: 926
Вообще-то без знания конкретики назначения устройств в сети и возможных ситуаций рационально построить обмен не получится, вернее посоветовать как его построить. Еще нужно знать, как по времени соотносится цикл работы устройства с циклом обмена в сети, сколько аппаратно может прочитать усиройство из сети не отвлекаясь от основной задачи и пр.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 18 мар 2016, 04:08 
Только пришел
Аватара пользователя

Зарегистрирован: 17 мар 2016, 02:00
Сообщения: 11
Откуда: г. Москва
Всем спасибо за ответы.

aamonster, взял Ваш метод на вооружение. Действительно достаточно интересно и просто.. Похоже на 1-Wire.

CAN интересный и 80% реализовано железно, но достаточно сложно реализовывается на аппаратном уровне (два чипа, кварц..), и максимальная посылка в 8 байт удручает.

Если в двух словах, то хочу придумать простую шину для своих устройств на базе AVR, что-бы можно было их связать в единую сеть... например умный дом.
Если на пальцах (чисто абстрактный пример), то в каждой комнате есть: кнопка управления освещением, контроллер освещения, датчики движения, управления шторами, управление форточками...... Каждое устройство взаимодействует друг с другом через шину, но например уходя из дома и прислоняя ключ у входной двери, происходит выключение всего освещение, закрытие штор и окон, датчик движение переходит из управление освещением в режим охраны и так далее.
С одной стороны режим работы Ведущий - Ведомые максимально оптимален в данной системе, и я с радостью буду делать именно по такой модели, т.к. она максимально простая в реализации, а с Multiprocessor mode ещё и очень экономична со стороны ведомых, если-бы не одно но: Время опроса по кругу... Математика простая 10мс на 255 устройств = 2.5 секунд. Ждать включения освещения 2.5 секунды ужасно долго.
Конечно сеть вряд ли будет нагружена хотя-бы на половину, да и не все устройства нужно опрашивать (например чисто исполнительные устройства), но это уже топор, который может испортить всю систему...

Если подвести итог этого сообщения, то задача стоит в оптимизации системы Ведущий - Ведомые по схеме UART + Multiprocessor mode + RS485 до уровня, когда время реакции любого устройства на команду с другого (через мастер устройство) не будет превышать 500мс. В противном случае нужно что-то похожее на вышеописанную схему, но с сохранением условий просторы реализации и времени реакции меньше 500мс.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 18 мар 2016, 10:01 
Только пришел

Зарегистрирован: 18 мар 2016, 09:57
Сообщения: 6
У нас в изделии уже 15 лет работает RS-485 с маркерным доступом к шине. Т.е. маркер передается от узла к узлу по кольцу. Кто владеет маркером. тот и мастер в данный момент.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 18 мар 2016, 10:08 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2012, 00:31
Сообщения: 1799
Откуда: Новокузнецк
Andrew_Q писал(а):
У нас в изделии уже 15 лет работает RS-485 с маркерным доступом к шине. Т.е. маркер передается от узла к узлу по кольцу. Кто владеет маркером. тот и мастер в данный момент.

Похоже на профибас. С него срисовывали, или его и используете? Если свой протокол, то можно подробностей, как часто передаете маркер, передаете ли просто по кольцу от одного к другому, общее впечатление от протокола и т.д.

_________________
elisey.su


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 18 мар 2016, 10:28 
Только пришел

Зарегистрирован: 18 мар 2016, 09:57
Сообщения: 6
Протокол свой, когда писали, не была осознана необходимость стандартизации протоколов (по сей день имеем некоторые затруднения с интеграцией своих блоков в АСУТПшные проекты). Маркер (специальный пакет) передается по кольцу. Узел, получивший маркер смотрит нужна ли ему сеть, если не нужна, то передает маркер следующему, если нужна проводит сеанс связи с нужными узлами и, тоже, передает маркер следующему. Полный состав команд управления сетью: маркер, передача маркера, запрос не регистрацию узла, установить преемника, регистрация,передача данных, данные приняты ОК, данные приняты Ошибка. Выход узла из сети у нас не предусмотрен. При пропадании узла сеть разваливается и собирается снова.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 18 мар 2016, 11:00 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1953
Dragon_Knight, во-первых 100 байт на 9600 это не 10 мс, а 100 )
Во-вторых, вы обрисовали слабозагруженную сеть, в которой спокойно будут разрешаться коллизии, т.е. можно позволить девайсам начинать передачу когда им хочется.
В-третьих, imho, под ваши задачи больше подходит не одноранговая, а двух-уровневая сеть.

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 18 мар 2016, 12:41 
Старожил

Зарегистрирован: 30 авг 2010, 00:02
Сообщения: 926
Dragon_Knight писал(а):
...например уходя из дома и прислоняя ключ у входной двери, происходит выключение всего освещение, закрытие штор и окон, датчик движение переходит из управление освещением в режим охраны и так далее.


Для этого ключу в сеть нужно отдать сообщение "всем!"_"код100". Каждое устройство по этой команде сделает, что надо и никаких 74 байта не нужно.
Или вы предполагаете, что ключ будет раздавать всем через сеть подробную инструкцию, что кому делать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 18 мар 2016, 12:57 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2012, 00:31
Сообщения: 1799
Откуда: Новокузнецк
Dragon_Knight писал(а):
Если в двух словах, то хочу придумать простую шину для своих устройств на базе AVR, что-бы можно было их связать в единую сеть... например умный дом.
и
Dragon_Knight писал(а):
Длинна шины должна быть приличной, 200-500 метров, с допуском на звёзды.

немного как-то не вяжется) Я думал нужна связь для каких-то промышленных вещей.
А так изначально хотел предложить clunet, но он конечно не потянет 500 метров. Из плюсов - мультимастер (не уверен что у него есть разрешение коллизий, но ее можно добавить), простота и дешевизна.
Вот тут можно прочитать что в итоге у автора получилось.

_________________
elisey.su


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 18 мар 2016, 18:19 
Только пришел
Аватара пользователя

Зарегистрирован: 17 мар 2016, 02:00
Сообщения: 11
Откуда: г. Москва
vt340 писал(а):
Dragon_Knight, во-первых 100 байт на 9600 это не 10 мс, а 100 )
Во-вторых, вы обрисовали слабозагруженную сеть, в которой спокойно будут разрешаться коллизии, т.е. можно позволить девайсам начинать передачу когда им хочется.
В-третьих, imho, под ваши задачи больше подходит не одноранговая, а двух-уровневая сеть.

Я считал на скорости 250к + время на работу самого устройства.
Я не против сети Ведущий - Ведомые, если привести время отклика до < 500мс.

анкер писал(а):
Для этого ключу в сеть нужно отдать сообщение "всем!"_"код100". Каждое устройство по этой команде сделает, что надо и никаких 74 байта не нужно.
Или вы предполагаете, что ключ будет раздавать всем через сеть подробную инструкцию, что кому делать?

Если реализация Ведущий - Ведомые, до достаточно опросить считыватель и Мастер уже сам разошлёт всё кому нужно, в зависимости от обстановке, но ждать опроса считывателя придётся время до 2.5 секунд а по факту больше, ибо не факт что 10 мс на устройства будет достаточно.

Иными словами нужно в схеме Ведущий - Ведомые реализовать работу прерывания, - что-бы устройство сообщило Мастеру что ему есть что сказать и мастер начал общаться с конкретно этим устройством.
Как это реализовать не представляю :(

elisey писал(а):
А так изначально хотел предложить clunet, но он конечно не потянет 500 метров. Из плюсов - мультимастер (не уверен что у него есть разрешение коллизий, но ее можно добавить), простота и дешевизна.
Вот тут можно прочитать что в итоге у автора получилось.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 18 мар 2016, 19:35 
Старожил

Зарегистрирован: 30 авг 2010, 00:02
Сообщения: 926
Dragon_Knight писал(а):
Если реализация Ведущий - Ведомые, до достаточно опросить считыватель и Мастер уже сам разошлёт всё кому нужно, в зависимости от обстановке, но ждать опроса считывателя придётся время до 2.5 секунд а по факту больше, ибо не факт что 10 мс на устройства будет достаточно.
Иными словами нужно в схеме Ведущий - Ведомые реализовать работу прерывания, - что-бы устройство сообщило Мастеру что ему есть что сказать и мастер начал общаться с конкретно этим устройством.
Как это реализовать не представляю :(


Я считал на скорости 250к + время на работу самого устройства.
Реальный информационный поток даже в умном доме на два порядка ниже, если только не захотеть видео по общему каналу гонять. Даже, если есть устройства, способные в одиночку забить сеть своей бесценной информацией
Вложение:
temper.PNG
temper.PNG [ 62.39 Кб | Просмотров: 5306 ]

типа изменения температуры на одну десятитысячную градуса, то разработчику нужно самому решить, насколько часто термометру разрешить лезть в канал.
Второе направление сжатия - подумать, насколько необходима длина пакета в 64 байта+10 сервисных. Мне кажется, что даже 64 бита сверхизбыточно.

Иными словами нужно в схеме Ведущий - Ведомые реализовать работу прерывания, - что-бы устройство сообщило Мастеру что ему есть что сказать и мастер начал общаться с конкретно этим устройством.
Как это реализовать не представляю :(

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 18 мар 2016, 20:05 
Только пришел
Аватара пользователя

Зарегистрирован: 17 мар 2016, 02:00
Сообщения: 11
Откуда: г. Москва
анкер писал(а):
Нет, только не не гибрид, не стоит скрещивать две идеологии, будет некрасиво и путано.
В той ситуации "ухожу из дома", при рациональной раздаче устройствам прав на захват канала, в нем будет тишина. Поэтому хоть в системе со всеми равноправными, хоть с посредником-диспетчером, информация от ключа пройдет без задержек.


Я не понимаю как можно передать информацию без задержек.
А скорость 250к выбрана потому что она на 8Мгц идёт без ошибки и что-бы максимально быстро передать всю информацию и дать время устройствам работать, а не слушать прерывание UART.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 18 мар 2016, 20:15 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2012, 00:31
Сообщения: 1799
Откуда: Новокузнецк
Dragon_Knight писал(а):
Я общался с авторором этой шины, и пришёл к выводу что она не совсем походит, - как минимум нужно строить приёмопередатчик, желательно с опторазвязкой и засовывать всю шину в коаксеал или дифференциал, что опять усложняет схему.

Ну в дифференциал можно попробовать засунуть, используя драйвер шины CAN, например TJA1050. Стоит не дорого, дальность достаточная. Опторазвязка тоже делается не сложно - две оптопары.
Вообщем самопал должен получиться хорошим.

_________________
elisey.su


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Одноранговая сеть для микроконтроллера
СообщениеДобавлено: 18 мар 2016, 21:36 
Старожил

Зарегистрирован: 30 авг 2010, 00:02
Сообщения: 926
Dragon_Knight писал(а):
...дать время устройствам работать, а не слушать прерывание UART.

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 45 ]  На страницу 1, 2  След.


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


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

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


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB