VSCP – Очень Простой протокол контроля

VSCP – это аббревиатура от Очень Простой Протокол Контроля. Является он простым потому, что был разработан для использования с упрошенными (дешевыми) микроконтроллерами. Однако, VSCP – это не только всего лишь протокол. Собранный в пакет под названием VSCP и друзья, это комплексное решение для измерения и контроля. Протокол был выпущен для общего использования в 2000г, на начальной стадии проекта, и является доступным для всех (бесплатно) . VSCP использует специально определенный формат сообщения, поддерживающий глобальные идентификаторы, тем самым позволяющий определить узлы, где бы они не были установлены в любой точке мира. VSCP имеет регистрационную модель, обеспечивающую гибкий интерфейс для конфигурации узлов, и модель контроля функциональности узлов. VSCP не делает предположений о системе низшего уровня, и работает с различными механизмами передачи, такими, как Ethernet, TCP/IP, Wireless, Zigbee, Bluetooth, CAN, GPRS, RS-232, USB. Каждая контрольная ситуация может быть описана и применима с помощью VSCP.

Некоторые свойства протокола:

* Доступно для коммерческого и другого использования.

* Имеет два уровня. Уровень I и Уровень II - уровень I создан с помощью механизма CAN как наименьшего общего знаменателя. Можно использовать для TCP, UDP, RF, электрической коммуникации, и т.д. * Имеет глобальные уникальные идентификаторы для каждого узла. * Имеет механизм, позволяющий автоматически выдавать уникальный идентификатор только что установленному узлу, и сообщать другим узлам и возможным хост- системам, что появился готовый новый узел и он готов к активизации. * Использует “регистры” как стандартный метод конфигурации узлов. * Может использовать “матрицу решений” для программирования узлов с динамичной функциональностью. * Имеет общий язык спецификации “MDF”, стандартно описывающий модули, что позволяет легко использовать и устанавливать программное обеспечение * Имеет программное обеспечение и драйверы для Windows и Linux. Постоянно добавляются новые.

Зачем нужен новый протокол?

VCSP используется в тех случаях, когда применить другие решения обходится слишком дорого. Большинство других протоколов требуют использования большего количества ресурсов (флэш/оперативную память) микроконтроллера, что повышает стоимость проекта. VSCP может работать с такими обычными немыми узлами, как Microchip MCP250xx , максимально используя флэш-микроконтроллеры 1K-2K, что обеспечивает все особенности флэша до 5K. VSCP является доступным для всех. Все могут присоединиться к проекту и добавлять новые элементы и функции в протокол. Имеются бесплатные встроенные программы и код драйверов, который использует различную технику связи. Этот код может использоваться всеми, без необходимости сообщать в ответ о новом добавленном коде.

===== Как действует протокол? События

VSCP – это система, основанная на событиях. Узлы создают и реагируют на события. Обычно, события не адресуются, а транслируются, и приемный конец решает, заинтересован ли он в событии, или нет. Все события получают исходящий адрес узла, от которого они посылаются. Это – GUID (глобальный уникальный идентификатор), в размере 16 байтов, но, как правило, в большинстве систем используется упрощенный краткий идентификатор в размере одного байта. Всегда возможно вычислить полный GUID из упрощенного идентификатора. События разделяются на группы. Существуют события Уровня I и Уровня II. События уровня I не превышают размер восьми байтов информации, а события Уровня II достигают 488 байтов. Наименьший максимальный размер Уровня I определяется использованием CAN как наименьшим общим знаменателем. Это не лимитирует VSCP Уровень I к использованию только вместо CAN. События обоих Уровней I и II подразделяются на классы и типы. Класс определяет группу событий конкретного типа. Типичным примером являются классы измерений, информации и контроля. Как было сказано выше, события не адресуются. Это утверждение не совсем верно. Так как на каждым уровне есть класс (CLASS1.PROTOCOL и CLASS2.PROTOCOL) событиями, которые адресуются. Эти классы определяют функциональность протокола, которую должны применить все узлы. Типичные примеры – события типов загрузчиков, доступа к регистрации и статуса информации. Большинство событий могут использовать определение по зонам/частям зон, чтобы определить группу узлов.

Регистры

Каждый узел имеет определенное количество байтовых регистров, что служит вторым интерфейсом для «черного ящика», который представляют собой узлы. Пространство регистров узла - 256 байтов, разделенные пополам. Нижняя часть (0×00-0×70) связана с конкретным приложением. Содержание верхней части является обязательным и специфицированным VSCP. Это пространство включает в себя встроенные программы и версию аппаратного оборудования узла. GUID, идентификатор пользовательского модуля, аварийная ситуация, и подобные регистры. Вверху обязательного регистрационного пространства сохранена строка 32 байтов, MDF, которая содержит URL-адрес, который указывает где искать файл XML, который описывает этот модуль, его регистры и его функциональность. Нижняя часть регистра используется для определения контроля и статуса , и более сложных структур. Этот участок начертан, и при необходимости могут использоваться 65535 страниц, что позволяет применять сложные, комплексные сценарии.

MDF. Файл описания модуля

Файл MDF описывает модуль на высоком уровне. Он дает информацию о производителе модуля, ожидаемых событиях, и содержании регистров. MDF видит значения с плавающей запятой, битовый массив, таблицу опций в регистрационном пространстве, тем самым позволяя прикладным программам представлять регистры в более доступном для пользователей формате. Существуют два пути приобретения MDF, после получения его из модуля, читая содержащие его регистры . Так как VSCP создан для использования с узлами с ограниченными возможностями, узлы не в состоянии сохранить MDF во внутренней памяти. В таком случае, строка указывает на веб-сервер, с которого можно загрузить и обработать XML. Модуль с большими возможностями способен сохранить MDF во внутренней памяти, и в этом случае строка имеет нулевую длину, и информацию MDF можно получить с самого модуля. Создатель узла решает, какой ему использовать метод. MDF так же указывает где искать драйверы для разной среды, системы для модулей и правила пользователя, и т д.

Матрица решений

Все узлы могут применять матрицу решений. Эта матрица используется для определения одного или группы событий, запускающих предопределенную функциональность в модуле. В VSCP это называется механизмом Событие-Решение-Действие со времен предыдущего проекта под названием EDA. Типичный пример – это запуск переключателя (реле). Модуль получает одно действие, запускающее реле, и другое, которое его восстанавливает. Обычно, это можно установить таким образом, что реле будет запускаться при получении «включенного» события, и восстанавливаться при получении «выключенного» события. Используя матрицу решений, легко использовать любое событие для запуска действий, а не только включенные/выключенные события. Матрица решений, как и другие параметры модуля, расположена в регистрационном пространстве, поэтому функции доступа регистра используются для внесения изменений.

Измерения

Используется специальный класс для измерений и событий всех СИ единиц, и производных единиц. Со временем этот класс будет увеличиваться, если понадобятся новые типы. Это значит, что, например, температура обычно измеряется по шкале Кельвина. Шкалы Цельсия и Фаренгейта можно тоже использовать в этом случае, так же как и подобные альтернативы, но единицы СИ всегда используются по умолчанию. Установлено так же то, как представляются измерения в структуре. Битовое поле, строка, целые числа, нормированные числа и значения с плавающей запятой – все это является возможными методами. Нормированные целые числа обычно хорошо подходят к использованию с системами с ограниченными возможностями, для послания десятичной информации. Так как событие и его содержание четко определены, очень легко интерпретировать данные в приемном конце, где они обрабатываются, сохраняются в базе данных, записываются , или выводятся на экран.

Сбор всей системы вместе

Так как VSCP основан на событиях, при сборке системы необходимо мыслить немного иначе. Типичный пример – это бак с датчиком уровня и насосом, которые вместе создают самостоятельную систему. Традиционная система использовала бы ведущий механизм для управления насосом и датчиком уровня. VSCP допускает это, но в тоже время старается распределить интеллект системы по всем узлам. Следовательно, мы указываем датчику уровня послать информацию об уровне с предопределенным интервалом, возможно, имея несколько запасных датчиков. Мы указываем насосу начинать заполнять бак, когда уровень достигнет низкого предела, и остановиться, достигнув высшего уровня. Это может быть опасным, так как датчик может перестать работать, или порвутся провода, итд. В таком случае мы так же программируем насос, на вхождение в безопасное состояние == насос выключен, и сообщение тревоги всей системе, на случай если измерения от датчика уровня перестали поступать. Это “безопасное состояние“ зачастую существует в большинстве контрольных ситуаций. Так как механизм передачи неизвестен прикладной программе, временной режим должен быть очень гибким для VSCP. Мы не знаем точно, когда свершится событие, или свершится ли оно вообще. Многие механизмы передачи, такие как CAN и TCP/IP, позволяют более четкое определение свершения события, в то время когда другие - UDP, RF и PLC – делают это проблематичным. Поэтому, чрезвычайно важно получить подтверждение о высланном событии. Для некоторых узлов это не так важно. Узел для регулирования температуры или уровня жидкости просто посылают свои измерения, и им не важно, используются они, или нет. Такое мышление является центральным. Узел, из которого исходит событие, должен, по возможности, знать как можно меньше о том, как будет использоваться посланная им информация. Это обеспечивает гибкость системы.

Друзья

Пакет программного обеспечения VSCP и Друзья имеет поддержку для VSCP пользователей. Этот пакет, содержащий прикладные программы и код, можно загрузить и использовать бесплатно. Подходит для использования с системами Windows и Linux.

Самое главное – пакет должен содержать VSCP демон. Это серверное программное обеспечение, которое позволяет контролировать несколько сегментов VSCP через Интернет.

Сервер выявляет безопасный интерфейс и позволяет добавить драйверы для сегментов узлов, или специального оборудования. Драйвер может посылать сообщения серверу с помощью интерфейса CANAL для драйверов Уровня I, и интерфейса TCP/IP для драйверов уровня II.

Программа CANAL - CAN Abstraction Layer (Слой аппаратных абстракций) - была разработана в качестве слоя программного обеспечения между прикладными программами и аппаратурой CAN. Для VSCP – это не только связь с аппаратурой CAN, но и с драйверами для большинства переходников CAN, таких как PEAK, IXXAT, PORT итд, так как много пользователей CAN используют эту систему.

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

Демон способен на большее, например – дистанционно заменить/установить драйверы, управлять пользователями и правами доступа, установить и управлять матрицей решений для создания самостоятельной системы, итд.

VSCP Works – приложение-клиент, входящий в пакет, который можно использовать для посылки /получения событий VSCP в/из любого сегмента/устройства, который экспортирует интерфейс CANAL и способен посылать сообщения удаленному VSCP демону. VSCP Works можно использовать для исследования регистрационного пространства любого VSCP узла, и приложение так же поддержит дистанционное обновление аппаратно-программного обеспечения.

Приложение-сервер и клиент выпускается под лицензией GPL. Библиотеки классов выпускаются в соответствии с измененной лицензией LGPL, с целью их применения в частных проектах.

Наверное, самый главный аспект пакета VSCP и Друзья это то, что его можно использовать как отвод для связи с другими технологиями и протоколами. Стоит всего лишь построить драйвер, который сообщит функциональность системы событиям VSCP, затем установит этот драйвер для VSCP демона, и сразу же станет доступным дистанционный контроль функциональности, интерфейс программного обеспечения, итд. Таким образом, создается один прикладной интерфейс для контролирования нескольких технологий, использующих разные протоколы. Это можно сравнить с ситуацией принтеров, до выпуска Windows. Каждой прикладной программе приходилось распределять пакет дисков между драйверами принтеров. Windows положило этому конец, введя в использование абстракцию API для принтеров. VSCP & Друзья делает то же самое для устройств SECO (SEensor/COntrol).

A web interface named OHAS is under development that will make it possible to build dynamic control interfaces with drag and drop technology.

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

Заключение

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

Более подробную информацию можно загрузить на сайте http://www.vscp.org

wikiwork/translation/intro-russian.txt · Last modified: 2010/08/19 03:11 (external edit)
Public Domain www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0