User:J3qq4hch/sandbox

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

Характерные особенности
Главными особенностями UAVCAN являются:
 * Сеть с равнодоступными узлами - отсутствие единой точки отказа.
 * Модель обмена запрос/ответ или публикация/подписка.	design goals
 * Возможность эффективного обмена большими структурами данных.
 * Простота применения.
 * Поддержка синхронизации времени между узлами сети с микросекундной точностью
 * Двойное или тройное дублирование шины CAN.
 * Возможность использования во встраиваемых системах жесткого реального времени с ограниченными ресурсами.
 * Спецификация и примеры реализации с открытым исходным кодом (MIT License).

Ключевые цели разработки

 * Сеть с равнодоступными узлами - В сети не должно быть ведущего устройства. Все устройства в сети должны иметь одинаковые права доступа к шине, исключая таким образом возможность возникновения единой точки отказа.
 * Возможность обмена большими структурами данных - Устройства должен быть предоставлен простой способ обмениваться большими структурами данных, которые не могут быть переданы в 1 CAN кадра(например, решения GNSS, 3D векторы и т.д.). UAVCAN должен автоматически разбивать такую структуру на несколько кадров, а затем собирать ее обратно на уровне протокола, скрывая сложную внутреннюю реализацию.
 * Поддержка дублирующих интерфейсов и узлов сети - общее требование для систем с повышенной безопасностью.
 * Высокая пропускная способность, низкие задержки
 * Простая логика, низкие вычислительные потребности - UAVCAN предназначен для встраиваемых система,от высокопроизводительных мини-компьютеров(например, одноплатные Linux-компьютеры) до микроконтроллеров с очень ограниченными ресурсами.
 * Высокоуровневые функции должны быть четко определены - UAVCAN определяет стандартные сервисы и сообщения для общих высокоуровневых функций таких как сетевое обнаружение, конфигурирование устройств, перепрошивка устройств, мониторинг состояния устройств, сетевая синхронизация времени, динамическое присвоение сетевых идентификаторов(a.k.a. plug-and-play) и т.д.
 * Открытая спецификация и примеры реализации - Спецификация UAVCAN находится в свободном доступе. Примеры реализации распространяются по лицензии MIT

Обновление и утверждение спецификации
Команда разработчиков UAVCAN отвечает за поддержку и развитие протокола на основании запросов от пользователей. Эти запросы собираются через рассылку, открытую для всех Набор стандартных определений данных - одна из ключевых концепций спецификации(см. data structure description language (DSDL)). В рамках одной главной версии спецификация может быть расширена только следующими способами:


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

Cсылки

 * Homepage
 * Mailing list
 * Github organization