Broadcom BCM 2835 GPIO. Переважно для та використовується у Raspberry Pi.
Ліцензія:
GPL
Вступ
Модуль надає до системи OpenSCADA підтримку джерел даних Входів/Виходів Загального Призначення (GPIO) плати Raspberry PI, основаній на чипі BCM2835. BCM2835 GPIO на Raspberry Pi нараховує до 32 штирів деякі з яких можуть здійснювати альтернативні функції на кшталт: I2C, UART, SPIO. Для доступу до цього GPIO у загальних функціях використано бібліотеку libBCM2835, яку включено та вона збирається разом з цим модулем.
1. Об'єкт контролеру
GPIO у OpenSCADA конфігурується шляхом створення нового об'єкту контролеру (Рис.1) та об'єкту параметру контролеру — один параметр GPIO цієї плати.
Рис.1. Вкладка конфігурації об'єкту контролеру.
За цією вкладкою Ви можете встановити:
Стан контролера, а саме: Статус "Включено", "Запущено" та ім'я бази даних, що містить цю конфігурацію.
Ідентифікатор, ім'я та опис контролеру.
Стан, у який контролер має буту переведено при завантажені: "Включати" та "Запускати".
Ім'я таблиці для збереження параметрів контролеру.
2. Об'єкт параметру контролеру
Об'єкт параметру є безпосереднім представленням-відображенням GPIO, який містить перелік атрибутів логічного типу у загальної кількості 32. Вкладку конфігурації об'єкту параметра зображено на Рисунку 2. Збір даних здійснюється лише у синхронному режимі оскільки GPIO має бути швидким.
Рис.2. Вкладка конфігурації об'єкту параметру.
За допомогою вкладки конфігурації об'єкту параметру Ви можете встановити:
Стан параметру: тип, "Включений" та перелік статичних функцій.
Ідентифікатор, ім'я та опис параметру.
Стан, у який параметр має переводитися при завантажені: "Включати".
Вкладку "Атрибути" для GPIO зображено на Рисунку 3. Для GPIO також доступна вкладка "Конфігурація" (Рис.4) з режимом ВВ та станом інверсії.
Рис.3. Вкладка "Атрибути" об'єкту параметру.
Рис.4. Вкладка "Конфігурація" об'єкту параметру.
Для максимально швидкого доступу до GPIO об'єкт параметру надає три статичні функції: "mode", "get" та "put". Ці функції можуть бути використані у оточені програмування системи OpenSCADA для організації неординарних алгоритмів взаємодії. Для адресації функції ви можете використати статичний виклик адреси BCM2835.{cntr}.{prm}.{Func}() або динамічний SYS.DAQ.BCM2835.{cntr}.{prm}["{Func}"].call(). Де:
{cntr} — ідентифікатор об'єкту контролеру;
{prm} — ідентифікатор об'єкту параметру;
{Func} — ідентифікатор функції.
2.1. Функція GPIO: Режим (mode)
Опис: GPIO режим, вхід або вихід. Параметри:
ID
Параметр
Тип
Режим
По замовченню
rez
Результат
Ціле
Повернення
pin
Штир
Ціле
Вхід
set
Встановлення режиму входу: 1-Вхід, 2-Вхід (pull up), 3-Вхід (pull down), 4-Вихід
Ціле
Вхід
0
2.2. Функція GPIO: Отримати (get)
Опис: Отримання рівня штиру GPIO. Параметри:
ID
Параметр
Тип
Режим
По замовченню
rez
Результат
Логічний
Повернення
pin
Штир
Ціле
Вхід
2.3. Функція GPIO: Встановити (put)
Опис: Встановлення рівня GPIO штиру. Параметри:
ID
Параметр
Тип
Режим
По замовченню
pin
Штир
Ціле
Вхід
val
Значення
Логічне
Вхід
3. Зауваження
Модуль випробувано на платах Raspberry Pi 2, 3 моделі B. Детальніше Ви можете подивитися на сторінці та завдані.
Час доступу до статичних функцій було виміряно у порівнянні із різними методами, що Ви можете подивитися тут.
Для створення похідних DAQ шаблонів, із використаннями статичних функцій, Ви також можете застосувати динамічне підключення до них, на кшталт такого:
У такий конфігурабельний спосіб наразі реалізовано наступні шаблони низькорівневих пристроїв: