Very Simple Control Protocol

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

The Very Simple Control Protocol (VSCP)[1] - це безкоштовний протокол автоматизації, що підходить для будь-яких завдань автоматизації, де основна увага сфокусована на будівництві або домашній автоматизації. Основна його перевага полягає в тому, що кожен VSCP-вузол може працювати повністю автономно, будучи частиною розподіленої мережі інших вузлів. VSCP не залежить від фізичного з’єднання, (наприклад, шини CAN, Ethernet, RS-485, RS-232, MiWi), що з'єднують окремі вузли для формування автоматизованої мережевої шини. На шині можуть бути такі вузли: зчитувальні вимикачі, керування освітленням, жалюзі, вікна або інформаційні дисплеї, трансляція фізичних вимірювань (наприклад, температура, освітленість, споживання енергії тощо), мультимедійний контроль, охоронна та пожежна сигналізація та інше. Існує підмножина протоколу (Рівень I), що дуже підходить для шин CAN та мікроконтролерів з обмеженим ресурсом. Рівень протоколу II призначений для Ethernet (UDP, TCP та власний Ethernet-тип Raw-Ethernet) та бездротових фізичних рівнів. Всі поділяють ті ж самі поширені поля повідомлення та структуру, і їх можна підключити через шлюзи.

Подія[ред. | ред. код]

VSCP базується на подіях. Кожного разу, коли відбувається подія, вона транслюється по відношенню до всіх інших вузлів. Кожен вузол в мережі отримає сигнал і вирішить, чи потрібно обробляти цю подію чи ні. Наведений на діаграмі приклад описує натискання кнопки. Це призведе до того, що вузол 1 надсилає повідомлення про події на шину, повідомляючи всім іншим про натискання цієї кнопки. Вузол 2 отримує повідомлення, але вирішує, що ця кнопка не повинна викликати подію для вузла 2. Вузол 3 отримує повідомлення і вирішує, що ця кнопка повинна викликати включення лампи 2.

Там можуть бути події для всіх речей, що відбуваються: подія може бути викликана натисканням кнопки, включенням сенсора присутності або положенням сонця. Події також можуть надходити періодично, наприклад, показники температури кожної хвилини. VSCP попередньо визначає багато подій, які можуть статися. Ці події визначаються за типами та класами. Незалежно від того, чи повинна оброблятися подія визначається матрицею рішень.

Клас та тип події[ред. | ред. код]

Події відрізняють за класами. Клас - це сукупність подій, які якось схожі між собою. Є класи для БЕЗПЕКИ, ВИМІРЮВАНЬ, КОНТРОЛЮ, ІНФОРМАЦІЇ тощо. В даний час VSCP визначає близько 25 класів, але має місце для багатьох інших. Кожен клас у свою чергу підрозділяється на типи. Тип додатково визначає подію в класі. Наприклад, події класу 20 (0x14) - це ІНФОРМАЦІЙНІ події. У цьому класі є підтип 1 (0x01) КНОПКА, що сигналізує про натискання кнопки. У цьому класі ІНФОРМАЦІЇ також є типи сигналів: ON, OFF, BELOW LIMIT і т. Ін. Також у вимірах класу є типи для сигналу температури, струму, напруги тощо. Якщо всі ці класи та типи визначені, то вузли говорять однаковою мовою.

Структура дейтаграми подій VSCP[ред. | ред. код]

Події, які транслюються, містять декілька полів, що разом утворюють одну дейтаграму VSCP. Точно так, як ці поля вказуються на фізичний рівень, це задано для ряду протоколів фізичного рівня, таких як CAN, Ethernet, TCP та ін. Для інших це ще не визначено, але загалом не важко орієнтувати ці поля на протокол фізичного рівня. Існує два рівні протоколу VSCP під назвою LEVEL I та LEVEL II. Вони обидва в основному однакові, але відрізняються за розміром різних полів. Рівень I призначений для роботи на вузлах з більш обмеженими ресурсами, а поля визначені трохи консервативніше. Рівень I насправді є підмножиною рівня II, і з відповідними подіями шлюзу може бути поперечним між мережею рівня I і II.

Матриця рішень[ред. | ред. код]

Якщо вузол приймає подію, він повинен визначити, чи потрібно виконати завдання на основі цієї події. Це робиться шляхом короткої оцінки матриці рішень або DM. Матриця DM складається з ряду IF ... THEN ... умов. Кожне таке значення IF / THEN називається лінією, а матриця рішення складається з декількох рядків. Клас і тип вхідного повідомлення завжди оцінюються лінією Матриці рішень. Оцінювання класу та типу виконується шляхом передачі класу / типу через маску спочатку, а потім порівнюючи його з фільтром. Цей метод дозволяє декілька класів / типів ініціювати дійсний стан для 1 рядка DM. Інші умови для лінії DM (SenderGUID, Zone, Subzone) необов'язково оцінюються. Якщо лінія DM дійсна, то ACTION виконується. Разом з ACTION є параметри ACTION. Прикладом ACTION буде: включення реле 6, коли 6 - параметр дії. Можливі ДІЇ приймаючого вузла, визначаються конструкцією самого вузла. Розробник прошивки визначає, які дії можуть бути виконані. До того часу документуючи можливі дії в файлі MDF, конфігурація SW буде знати, як вибрати цю дію. DM можна змінити, встановивши відповідні регістри, конфігурації вузла.

Корисність даних[ред. | ред. код]

Подія, що надсилається, також може включає корисність даних. Зміст та організація цієї корисної інформації залежить від класу та типу події. Наприклад, подія класу 10 (вимірювання) та типу 6 (температура) буде мати дані про температуру (з кодуванням, визначеним байтом 0, градусів за Цельсієм) у його корисному навантаженні. Кнопка події несе інформацію про кнопку / зону / підзони кнопки у своєму завантаженні даних.

Зони / підзони[ред. | ред. код]

Деякі (зовсім деякі) події містять поле зони та поле підзони під час завантаження даних. Ця функціональність присутня, щоб групування вузлів було можливим. Наприклад, ми могли б визначити, що всі кнопки, що контролюють певну лампу, є частиною однієї групи. Це спрощує DM для певних сценаріїв. Замість того, щоб мати одну лінію DM як вузол лампи для кожної кнопки (1 рядок на кнопку: кнопка IF, а потім лампочка вмикання), ми можемо мати 1 лінію магнітного поля, яка говорить лише про відповідність IF (зона відповідності) THEN лампою вмикання. Налаштування вузла VSCP Перед виконанням своєї функції вузол потрібно належним чином налаштувати. Кожен вузол VSCP забезпечує власний набір реєстрів конфігурацій, пристосованих для його функції. Кнопковий вузол матиме певну можливість налаштувати зону / підзони, на які належать кнопки. Температурний вузол матиме певну можливість встановити тригерні значення. Також налаштування DM є частиною налаштування вузла.

Конфігураційні регістри[ред. | ред. код]

Налаштування вузла здійснюється шляхом запису в регістри. Кожен (рівень I) вузол забезпечує доступ до 256 регістрів. Найвищі 128 регістрів зарезервовані для основних функцій VSCP. У цих 128 регістрах ми знаходимо такі елементи, як GUID вузла, назву, MDF та регістр підкачки. Нижчі 128 регістрів вільні для конкретного використання програми. Якщо 128 регістрів недостатньо, то існує 16-бітна пейджингова можливість. Це дозволяє використовувати 65536 x 128 8bit регістрів для використання програми. Написання / читання цих регістрів здійснюється за допомогою подій CLASS 0. Події класу 0 - повідомлення про функціональні можливості протоколу VSCP, призначені для конфігурації та керування вузлами.

Файл опису модуля[ред. | ред. код]

Відстеження того, який регістр служить для якої мети, може бути проблемою, особливо для конкретних регістрів програми. Але саме там з'являється файл опису модуля або MDF. Файл MDF - це машиночитаний XML-файл, що описує функцію кожного регістра модуля, дає параметри конфігурації для цього регістра і т. д. Цей файл використовується програмним забезпеченням конфігурації (VSCPWorks), щоб показати параметри конфігурації, специфічні для адреси модуля. Файл MDF може зберігатися на самому вузлі і вилучатися звідти за допомогою VSCPWorks, але частіше цей файл MDF буде файлом XML, розміщеним на вебсервері десь. Тоді вузол просто повинен інформувати VSCPWorks, де (URL) XML-файл можна знайти. Ця URL-адреса присутня в зарезервованих VSCP зарезервованих 0xE0-0xFF.

VSCPWorks[ред. | ред. код]

VSCPworks - це інструмент на базі ПК (Linux і Windows) для налаштування та управління вузлами. VSCPWorks дозволяє зчитати / встановлювати регістри, що представляє ці регістри, у форматі, читаному людиною, шляхом автоматичного аналізу файлу MDF. VSCPWorks також надає майстрам можливість встановити матрицю рішень.

Примітки[ред. | ред. код]

  1. Hedman, Ake. "YAP". VSCP Specification. Grodans Paradis AB. Retrieved 4 September 2017.