Перейти к содержанию
    

Самый простой вариант с одним-единственным уартом - это повесить все на одну шину.

+100 Если ещё не поздно переделать архитектуру, то RS-485 + адресация на датчиках с помощью перемычек. Самый простой, надёжный и проверенный вариант.

Если такой возможности уже нет, то мультиплексировать UARTы. Либо внешним мультиплексором, либо внутренним ремапингом. Не знаю, что тут ещё обсуждать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

jcxz, во первых, у Вас написано

ПО датчиков принимает кадр со своего RX, смотрит целевой адрес в кадре, если этот кадр предназначен не ему

какой адрес? я же говорил, что все датчики должны быть идентичны. хотя я и пишу ПО для них тоже

кроме того, как я понял, придется увеличивать скорость передачи, поскольку в системе 1 UART - 1 датчик они могут передавать одновременно, используя DMA

 

Все не правы, потому что автор сам не знает, что хочет, а тему создал как эмоцию на "по идее, 8 должны примерно одновременно работать".

мне надо выдерживать определенную частоту опроса датчиков. если этот опрос делать по одной шине, то нужно скорость в 8 раз больше

 

Нормальное решение: RS485 + адресация в датчиках.

согласен, но есть ограничения на габариты датчика. кроме того, когда опытный прибор проверяли, сбоев не возникало.

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

Что за защитные диоды стоят? Те, которые сливают помеху на землю и питание? Не боитесь, что питание подскочит и все спалит?

да, они самые. есть стенд, где проводят испытания на статику. статикой били по всякому, сбить работу не удалось ни разу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Самый простой вариант с одним-единственным уартом - это повесить все на одну шину. Нефиг тут кольцевать. Работоспособный и проверенный вариант.

Какую шину??? UART - это не шина. Он допускает соединение только двух устройств. Читаем учебники.

 

какой адрес? я же говорил, что все датчики должны быть идентичны. хотя я и пишу ПО для них тоже

кроме того, как я понял, придется увеличивать скорость передачи, поскольку в системе 1 UART - 1 датчик они могут передавать одновременно, используя DMA

Адрес (или идентификатор) уникальный для каждого датчика (для каждого узла сети). Назначаться может как например перемычками на плате или по уникальному ID в каком-либо чипе либо автоматически на этапе старта ПО (алгоритм я описал).

Можно и вообще без адресов обойтись, если заранее известен порядок расположения датчиков в кольце.

Скорость будет зависеть от необходимой частоты опроса датчиков, объёма данных и кол-ва датчиков.

Но практически не будет зависеть от организации (кольцевая сеть или куча UART-ов).

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какую шину??? UART - это не шина. Он допускает соединение только двух устройств. Читаем учебники.

такую https://ru.wikipedia.org/wiki/%D0%A3%D0%BD%....B5.D1.82.D1.8C

UART - это всего лишь универсальный асинхронный приемопередатчик, а не RS232/RS422 Поэтому сеть или шина с точки зрения UART возможна.

 

Кроме того потребуется увеличить скорость обмена, что не есть хорошо.

Вас тут уже не единожды спрашивали: какая скорость обмена и период опроса каждого датчика? Присоединяюсь.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

UART - это всего лишь универсальный асинхронный приемопередатчик, а не RS232/RS422 Поэтому сеть или шина с точки зрения UART возможна.

Сеть и шина подразумевает подключение нескольких устройств к ней (более 2х).

Приведите, пожалуйста, пример схемы соединения 3-х устройств посредством единственного UART и двух его линий RX/TX. Именно UART, а не RS-485 и т.п.!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сеть и шина подразумевает подключение нескольких устройств к ней (более 2х).

Приведите, пожалуйста, пример схемы соединения 3-х устройств посредством единственного UART и двух его линий RX/TX. Именно UART, а не RS-485 и т.п.!

монтажное ИЛИ устроит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вас тут уже не единожды спрашивали: какая скорость обмена и период опроса каждого датчика? Присоединяюсь.

в настоящий момент скорость 350 000 bit/s

период опроса - 2,5 мс

то есть сейчас мк опрашивает один датчик, через 1,25 мс второй и т.д.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в настоящий момент скорость 350 000 bit/s

период опроса - 2,5 мс

то есть сейчас мк опрашивает один датчик, через 1,25 мс второй и т.д.

Сколько байт в запросе и сколько байт в ответе?

Сколько полезной информации генерит датчик и с какой частотой?

Какое допустимое время реакции на событие?

Что это за датчик? Есть подозрение, что стоит пересмотреть все архитектуру.

350 кБит/сек на 2 метра на 8 датчиков очень "сомнительное" решение.

Думаю, вы это сами прекрасно понимаете, поэтому и не спешите все рассказывать - палками закидают))

 

Насчет габаритов: это каких размеров ПП, если для подключения 9 кабелей место есть, а для установки дополнительной микросхемы нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в настоящий момент скорость 350 000 bit/s

период опроса - 2,5 мс

то есть сейчас мк опрашивает один датчик, через 1,25 мс второй и т.д.

каждые 1,25 мс опрашиваются четыре канала, после чего происходит переключение четный/нечетный?

тогда по идее скорость д.б. в 4 раза увеличена, а не как вы пишете - в 8.

но 1,4 мбит для асинхронной передачи по lvttl это тоже в общем как-то многовато

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

350 кБит/сек на 2 метра на 8 датчиков очень "сомнительное" решение.

Думаю, вы это сами прекрасно понимаете, поэтому и не спешите все рассказывать - палками закидают))

нет, я думаю, что эта лишняя информация вызовет лишние вопросы, которые в итоге ни к чему не приведут

Сколько байт в запросе и сколько байт в ответе?

Сколько полезной информации генерит датчик и с какой частотой?

Какое допустимое время реакции на событие?

Что это за датчик? Есть подозрение, что стоит пересмотреть все архитектуру.

350 кБит/сек на 2 метра на 8 датчиков очень "сомнительное" решение.

1 байт запрос - 16 байт ответ

собственно, столько полезной информации и есть - 16 байт за 2,5 мс

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

Говоря датчик, я подразумеваю микроконтроллер, который имеет буфер с данными (16 байт) и который по запросу эти данные выплевывает.

Не знаю, как можно пересмотреть архитектуру, если частоту дискретизации полюбому нужно выдерживать

Насчет габаритов: это каких размеров ПП, если для подключения 9 кабелей место есть, а для установки дополнительной микросхемы нет?

согласен, странно, но на данный момент все именно так

 

каждые 1,25 мс опрашиваются четыре канала, после чего происходит переключение четный/нечетный?

тогда по идее скорость д.б. в 4 раза увеличена, а не как вы пишете - в 8.

но 1,4 мбит для асинхронной передачи по lvttl это тоже в общем как-то многовато

да, ошибся 1,4 мбит получится

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

монтажное ИЛИ устроит?

С таким-же успехом можете RX/TX в сеть 220V воткнуть.

 

Не знаю, как можно пересмотреть архитектуру, если частоту дискретизации полюбому нужно выдерживать

Поставить в центр сбора МК с 8-ю UART как минимум и с каждого датчика отправлять данные периодически как только они появились. Зачем кстати запрос от центра если датчик должен сразу данные отдать как только они появились, а появляются они каждые 2.5мс?

Если так хочется всё-таки слать запрос - разведите TX от одного из UART центра на RX-ы всех датчиков параллельно и отправляйте его только один раз на все сразу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что мешает "отцу русской демократии" написать свой софтовый ЮАРТ?

Дело-то минут на 15

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С таким-же успехом можете RX/TX в сеть 220V воткнуть.

 

 

Поставить в центр сбора МК с 8-ю UART как минимум и с каждого датчика отправлять данные периодически как только они появились. Зачем кстати запрос от центра если датчик должен сразу данные отдать как только они появились, а появляются они каждые 2.5мс?

Если так хочется всё-таки слать запрос - разведите TX от одного из UART центра на RX-ы всех датчиков параллельно и отправляйте его только один раз на все сразу.

Дело в том, что нужно 9 UART-ов) еще один, чтобы данные от всех датчиков слать по RS-485

Запрос - чтобы синхронизировать данные от датчиков. У них же частоты выдачи данных гуляют немного. А тут получается, я их выравниваю.

 

А что мешает "отцу русской демократии" написать свой софтовый ЮАРТ?

Дело-то минут на 15

то, что датчики работают через DMA, а для общего UART-а, как тут посчитали, нужна скорость 1,4 мбит

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

то, что датчики работают через DMA, а для общего UART-а, как тут посчитали, нужна скорость 1,4 мбит

Как это?

Т.е. датчики имеют прямой доступ к оперативной памяти процессора? :wacko:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...