Jump to content
mail_robot

Как Лучше Всего Замутить Сеть Из Нескольких Мк

Recommended Posts

Вопрос кажется простым, но не тут то было.

Задача - штатными средствами мк (абстрактного) построить сеть шинной архитектуры. Дистанции можно сказать никакие. На одной плате стоит 6 контроллеров. Кроме can варианты есть? Желательно еще чтобы минимум обвеса из микрух требовалось.

Как то с шинами особо не сталкивался, поэтому спрошу совета


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Арбитраж шины будет? Или каждый может быть как ведущим, так и ведомым?

Share this post


Link to post
Share on other sites

Один можно сделать ведущим. Хотя лучше чтобы все могли отправлять и принимать равноправно


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Вебинар «Новинки и решения Traco для промышленных и отраслевых приложений» (28.10.2021)

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

Чето пока думаю кроме CAN что-то сложно придумать. Но она собака очень замусорена служебной и пакеты короткие. Неудобно как то смотрится


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Вебинар «Новинки и решения Traco для промышленных и отраслевых приложений» (28.10.2021)

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

Подробнее

Аппаратно во многих МК есть TWI (I2C). Правда для создания именно сети для обмена большими массивами информации вариант так себе...


И пусть судьба не справедлива, Жизнь игра - играй красиво!

И что б не кикнули тебя, Не злить Админа, юзверя!

Люблю "спасибки" :)

Share this post


Link to post
Share on other sites

Bourns – надежное решение для защиты блоков питания базовых станций

Телекоммуникационные базовые станции часто подвергаются ударам молний и выходят из строя из-за короткого замыкания. Компания Bourns предлагает решение, позволяющее обеспечить надежную защиту от перенапряжения и перегрузки по току с помощью гибридного компонента GMOV™, PTVS-диодов PTVS1-380C-TH и плавких предохранителей SF-3812F-T. Рассмотрим это решение
Подробнее

Все бы ничего, но нужен мастер

Оптимально был бы uart, но он собака точка точка...

Есть правда вариант uart закольцевать по линиям rx tx и передавать сообщения от любого всем по кольцу с подтверждением по возврату пакета источнику. И арбитраж как будто бы автоматом вырисовывается, даже если несколько узлов автоматом начнут передачу. В пакет только добавить маркер источника для опознавания на кольце. Ну и маркер адресата тоже не помешает. Как только ошибки опознавать и инициировать повтор. По контрольной сумме и таймауту на источнике?

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Будущее сегодня с TE Connectivity: мезонинные соединители высокой плотности COM Express со скоростью 16G+

Компания TE Connectivity выпустила на рынок серию 16G 0.5mm FH с поддержкой стандарта COM Express – самые миниатюрные соединители в портфеле TE Connectivity на сегодняшний день, обеспечивающие скорость передачи данных более 16 Гбит/с. По сравнению с более ранней версией, рассчитанной на 8 Гбит/с, версию 16G отличают улучшенные показатели качества передаваемого сигнала.
Подробнее

Для начала стоит оценить объём и характер передаваемых данных и определиться с типом микроконтроллера (разрядность, быстродействие, периферия). Дальше плясать от наличия подходящей периферии (скорее всего это будет TWI или UART). А вообще, 6 микроконтроллеров на одной плате это что-то из области извращений, лучше обойтись одним, но помощнее. Если всё-таки очень хочется странного, то можно взять RS-485, он как раз UART превращает в шину, но в нём сложно с разруливанием коллизий, поэтому крайне желательно наличие мастера. Ну и ничего не мешает в рамках одной платы сделать общую шину из UART без всяких драйверов, только на выходы нужно резисторы повесить, чтобы не пожечь порты при коллизии.

Share this post


Link to post
Share on other sites

Процы будут stm32. Пакеты фиксированной длинны по 64 байта. 6 процов на одной плате это условно. Реально 6 одинаковых устройств в одном шкафу. То есть практически рядом


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Раньше рассматривал вариант, что то вроде самодельного ПЛК из нескольких модулей (требовалась высокая скорость обмена) и был такой вариант (применительно к вашему варианту):

Каждый модуль имеет 5 входов и 1 выход, все модули соединяются друг с другом. Т.е. выход одного модуля заходит во все модули, приём ведётся от всех модулей (каждый по своему проводу).

Передача должна была идти манчестером с CRC только в одну сторону (без подтверждения). Принимающая сторона должна была диагностировать ошибку по отсутствию данных от других модулей. Протокол обмена уже не существенен, можно придумать любой. В этом варианте медь можно было бы легко заменить на оптику и разнести устройства на значительное расстояние. Манчестер предполагалось обрабатывать на прерываниях микроконтроллера (по фронту, срезу), в идеале использовать ПЛИС (только на приём манчестера с выделением своих данных по адресу модуля).

Edited by dm37

Share this post


Link to post
Share on other sites

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

Что касается интерфейса. UART можно развязать обычными диодами, запрараллелив все передатчикии и приёмники в одну шину. Адресация разрулит все остальные вопросы.

Share this post


Link to post
Share on other sites

отмечусь тут, чтоб не потерять, интересная темка


Не знаеш как? Спроси у Google'а !!!

Share this post


Link to post
Share on other sites

Как уже сказали выше - RS-485. В телемеханике на газопроводах использовался (в 2000-е годы, сейчас не знаю) в качестве КП промышленный компьютер (i486DX66, 4Mb RAM), в нём модуль процессора (аналог материнской платы PC) со всей периферией соединялся по RS-485 (цифровой и аналоговый ввод-вывод, модемы). ОС была QNX, то есть быстродействия хватало на режим реального времени. Единственное ограничение - должен быть один мастер, он по очереди опрашивает ведомых или раздаёт им команды. Легко реализуется аппаратно (USART).

Share this post


Link to post
Share on other sites

485 это сильно круто для микросистемы, как мне кажется. Ну и на счет мастера. Я сначала подумал, что смогу один выделить под мастер, но все больше прихожу к выводу, что лучше оставить узлы равноправными.

А вот запараллеленый уарт с проводком сигнала арбитража уже выглядит намного интереснее. Только вижу одну проблему - занятие шины при ожидании передачи несколькими узлами может быть одновременным и никак не поддающимся проверке

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

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Так в стм же как минимум по 2 уарта, и если все мк объединить в кольцо, то можно даже выйграть, ведь можно в обе стороны кольца одновременно слать данные, и все это аппаратно.

А что если их вообще по 1wire подключить? Как дс18б20. Там никогда коллизий не происходит, кто дольше удержал шину тот и матерится, единственное нужно будет расставить приоритетность, кто-то ведь нужные данные будет слать, а кто-то не очень важные и можно подождать. Или задать жесткую адресацию, у кого попросили тот и матюкается


Не знаеш как? Спроси у Google'а !!!

Share this post


Link to post
Share on other sites

В том то и дело, что по 2 упрта не потребуется. Если взять уарт и скажем линию тх отдать следующему узлу, а rx предыдущему, то получится кольцо. Если передаем, то всегда следующему. Он принимает, смотрит ему это или нет и передаёт дальше, пока пакет не найдет адресата. А адресат в свою очередь продолжает передачу, пока пакет не вернется на источник для подтверждения. Если пакет на источник не вернулся или пришел поврежденным, то передача повторяется. Шапка пакета содержит адрес источника, адрес приемника, номер пакета, и контрольную сумму. Должно наверное хватить. Высоких скоростей не требуется, пакеты короткие. Понятно что пропускная способность такоц шины будет в N раз ниже скорости передачи, где N число узлов. Но зато минимум аппаратных затрат. Можно даже гальваноразаязку сделать по простейшей схеме на оптопарах.

Надо будет попробовать макетик сделать и посмотреть как это все будет работать и сколько в конечном итоге потребуется буферов для пакетов. Библиотечку накатать опять же.

Еще подумал. В в пакет надо будет ввести поле индикатор корректного приема. Оно будет передаваться нулевым, а возвращаться не нулевым, если приемник получил телеграмму.

Если ограничить емкость такой сети 8-ю узлами, то можно делать и бродкаст. И авто определение числа узлов. И масштабировать такая сеть сможет без корректировки прошивки на узлах. Получится псевдокан по сути.

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

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

И так можно одновременно в обе стороны отправлять, двум мк сразу

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

Edited by Viktor26

Не знаеш как? Спроси у Google'а !!!

Share this post


Link to post
Share on other sites

Это если на каждом мк использовать по паре уарт. Но тогда и кольца не требуется. Достаточно просто соединить все узлы. Но беда в том, что уарт порой весьма ценный ресурс, даже если их по 3 штуки на борту.

Однако для коротких инфопакетов высокая скорость не требуется.

Ручная пристройка сети это конечно здорово, но лучше когда модель сети абстрактна и не зависит от физического расположения узлов

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

А ещё же есть эта крутая штука -dma, да тут Пентиум 3 как минимум получается))

Да, я так и имел в виду, по паре уартов на мк.


Не знаеш как? Спроси у Google'а !!!

Share this post


Link to post
Share on other sites

Это уже к сети отношения не имеет ) (дма)

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Я имел в виду, что уарты сами по себе поточат, а программа сама по себе работает, через дма обращается к памяти где уарт посылки складывает. Круто ))

Edited by Viktor26

Не знаеш как? Спроси у Google'а !!!

Share this post


Link to post
Share on other sites

Да это само собой. Поэтому даже и не обсуждается )


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Мое мнение CAN. все работает аппаратно, плюс фильтра 100% никакого мусора!

Edited by optima

Сергей.

Share this post


Link to post
Share on other sites

А can можно подключать напрямую без шинных формирователей?

Я с ним просто плоховато знаком. Все что успел вычитать из того и делаю выводы


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Так CAN - это протокол, на физическом уровне это и есть RS-485. А он, в свою очередь, просто UART, приспособленный к витой паре (нужно только два провода, а не три RX TX GND). Так что всё это = UART с точки зрения программы. Главное выбрать принцип арбитража - либо отдельным проводом либо назначить одного мастером.

Share this post


Link to post
Share on other sites

Спасибо. Задумалсо...

Стоит ли изобретать велосипед, если он уже и так изобретен. Попробую еще поподробнее CAN покурить

В Кане по моему мастера нет. Там телеграммы, адреса и одна на всех шина с арбитражном по приоритету пакета. У кого дольше держится ноль на передаче тот и правее, остальные зтыкаются. Но с точки зрения софта это не заметно. Софт просто должен сформировать пакет и передать модулю Кан, а что там дальше уже его не волнует.

Интересный механизм аппаратной фильтрации. То что не тебе не принимается.

Смущает только высокая избыточность и очень короткие пакеты

Длина пакета имхо вынужденная. Потому как при значительных размерах на линии начнутся заметные лаги. Поэтому пакеты принудительно сделаны коротышами.

В принципе Кан и не предназначен для активного инфообмена, это же шина управления.

Короче он мне все больше нравится. Надо курить. Еще бы научить его без шинных формирователей работать. Пин в пин

В стм32 Кан аппаратный и весьма мощный. (Читаю) вещ сама в себе с полной поддержкой всех функций протокола.

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...