VSCP (очень простой протокол управления) – это IoT-фреймворк с открытым исходным кодом, который работает на платах разработки, таких как Arduino или Raspberry Pi, и позволяет вам управлять задачами домашней автоматизации IoT. Фреймворк обладает высокой масштабируемостью, занимает мало места и, как таковой, специально разработан для устройств с ограниченными ресурсами.
VSCP – это стандартный протокол с открытым исходным кодом для m2m, IoT и других приложений дистанционного управления и измерений. Он позволяет объединять простые и недорогие устройства в сеть вместе с высокопроизводительными компьютерами и/или работать в качестве автономной системы, независимо от средств связи.
Протокол VSCP имеет два уровня: уровень 1 и уровень 2. Протокол в основном использовался в сетях CAN (то есть 1 уровень для крошечных микроконтроллеров), потому что CAN дешевый и надежный с высокой эффективностью. Однако VSCP можно использовать для более быстрых транспортных уровней, таких как TCP/IP, поэтому здесь идет уровень 2, который обеспечивает лучшую производительность.
Мы уже видели Souliss, IoT-фреймворк с открытым исходным кодом для домашней автоматизации. Если вам интересно, почему был разработан другой протокол, то производитель говорит:
VCSP предназначен для использования там, где другие решения слишком дороги в реализации. Обычно это может быть связано с накладными расходами кода, когда большинство других протоколов используют больше ресурсов (флэш-память / оперативная память) на микроконтроллере, чем фактическое «приложение», добавляя значительную стоимость проекту. VSCP может работать с обычно недорогими «простыми» узлами, такими как серия Microchip MCP250xx, с модулем микроконтроллера с флэш-памятью 1–2K, вплоть до полной реализации со всеми функциями во флэш-памяти размером около 5K.
Компоненты программного обеспечения VSCP
- VSCP daemon подобен концентратору. Он может подключаться к другим серверам VSCP и аппаратным узлам, образующим более крупные системы. Его можно использовать на ПК под управлением Windows или Linux и на платах для разработки, таких как Raspberry Pi, Beaglebone Black, Carambola и т. д.
- Прошивка VSCP – это код, который вы можете найти в аппаратных узлах, обычно на базе MCU, таких как платы Arduino, которые взаимодействуют с демоном через CAN, RS-232, Ethernet, TCP/IP, MQTT, 6LowPan и т. д.
- Вспомогательная библиотека VSCP – это набор библиотечных инструментов для разработчиков программ VSCP. Включает в себя вспомогательные функции, необходимые программисту для взаимодействия с драйверами уровня I (ранее называемые драйверами CANAL), а также функции для взаимодействия с локальным или удаленным VSCP daemon (уровень II) через TCP/IP и многое другое.
- VSCP Works – это набор диагностических инструментов для разработчиков VSCP, который можно использовать для обнаружения узлов, настройки узлов, обновления микропрограмм узлов и т. д.
Аппаратные модули
Если вы заинтересованы в разработке аппаратного модуля VSCP, весь код и образцы прошивки доступны в репозитории GitHub. Однако основной справочный код для разработчиков оборудования предоставляется аппаратными модулями Kelvin и Paris.
Модуль Kelvin NTC10KA используется для измерения температуры, и результаты этого измерения затем передаются другим модулям CAN4VSCP или серверам. Модуль полностью соответствует спецификации CAN4VSCP.
Paris – это релейный модуль, который соединяет шину CAN4VSCP и может использоваться для управления семью внешними реле. Этот модуль полностью адаптирован под спецификацию CAN4VSCP, и эти модули VSCP4CAN имеют скорость передачи данных 125 кбит/с.
Как работает протокол VSCP?
Протокол представляет собой систему, основанную на событиях. Чтобы понять это, давайте представим типичное применение резервуара для воды с датчиком уровня и водяным насосом. По сути, весь интеллект/принятие решений передаются узлам. Говоря подробнее о примере, с VSCP датчик уровня предназначен для отправки информации через заранее определенный интервал времени. Это означает, что водяной насос начинает наполнять резервуар при низком уровне воды и останавливается при высоком уровне.
Теперь, если вам интересно, что делать, если датчики по какой-то причине повреждены и перестают работать. Не волнуйтесь, он может быть сконструирован таким образом, что насос переходит в безопасное состояние == насос выключен, что указывает на наличие некоторой проблемы в автономной системе.
Но приложению неизвестен транспортный механизм, который вносит неопределенность в наступление события. Для этого очень важно получать подтверждение каждый раз, когда наступает событие. Таким образом, узел, который создает событие, должен как можно меньше знать о том, как будет использоваться отправляемое им событие, что делает систему очень гибкой.
Как начать работу с VSCP?
Вы можете скачать исходный код для VSCP с официального сайта Very Simple Control Protocol, а код прошивки доступен на GitHub. Чтобы начать работу с фреймворком, есть примеры на NXP FRDM-K64F или узле моделирования ПК.
Для библиотеки Arduino программной платформы VSCP для устройств 1 уровня вы можете подключить светодиод, который показывает состояние узла. В примере, показывающем базовую интеграцию библиотеки VSCP Arduino, используется CAN-BUS Shield от Seeed-Studio или CAN-BUS Shield от Sparkfun.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.