Найти в Дзене
Робототехника

Как строится диалог между ведущим(сервером) и ведомым(клиентом) контроллерами или устройствами.

Не смотря на громкое название, тема достаточна проста. Хотя многие специалисты об этом забывают.

Начнем с понятий и определений, а далее перейдем к реализации.

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

Периодически возникает задачка: необходимо передать данные от нескольких устройств на сервер.

Вариантов решения такой задачи несколько.

1. Опрашиваем устройства самостоятельно (главный сервер отправляет запрос ведомым) и получаем из них информацию.

2. Ожидаем, когда устройству понадобится передача данных (произошло важное событие).

3. В определенное время, устройство передает бит синхронизации и потом передает данные.

Это пример трех простых способов, казалось бы одинаковых. Но это совсем не так. У каждого обмена есть свои особенности.

-2

1 Способ. Опрос может быть реализован одновременно для нескольких устройств, а может быть сервер подключен к устройствам по одной шине, оба варианты допустимы. У меня есть 10 датчиков и проводное соединение. Датчики могут использовать протокол 1-wire и "сидеть" на одной шине. Тогда опрос к каждому из датчиков будет идти по конкретному адресу и по очереди. Если необходимо одновременно опрашивать несколько датчиков, то выделяется отдельный вход для каждого датчика и одновременно формируется запрос по каждому направлению,

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

3.Этот способ самый дисциплинированный и как правило легко реализуем по двух проводной схеме. У каждого устройства есть своё время для общения и он в это время начинает связь.

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

-3

1. Идет урок и учитель рассказывает различные тематики. Во время лекции учитель может взять и спросить любого ученика. ОН может ответить или сказать что не знает. В этот момент, все ждут , когда беседа закончится. Далее учитель продолжает и может снова спросить любого ученика.

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

3. Учитель проводит устную контрольную и чтобы успеть всем провериться, необходимо организовать правильный опрос. Он берет список из 20 человек и по 30 секунд уделяет на каждого, задавая простые вопросы. Таким образом через 10 минут примерно, учитель опросит всех учеников и начнет опрос заново, но уже по второй теме.

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

Аналогично с обменом данных между устройствами, между серверами.

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

--------------------------------------------------------------

Кроме того Вам могут быть полезны статьи:
🔹
Гид по электронике.
🔹
Словарь терминов электроники.
Если информация оказалось знакомой, то можешь пройти
Небольшой тест на знание азов электроники.
Хочешь узнавать быстрее и больше заполни
опросный лист обратной связи,
-----------------------------------------------------------
А так же подписывайтесь в группу 🔹
Вконтакте и 🔹 Телеграм-канал.