ZiChip. Механизм работы устройства (автор GetChip)

31 Августа 2013 К комментариям

Вот и подошли мы к самому интересному, так сказать, к самой сути – внутренней организации устройства ZiChip. Боюсь, по начальным статьям (Введение, Сеть) у читателей сложилось мнение что ZiChip – это протокол для создания сети устройств. Это не совсем так. На самом деле ZiChip – это, прежде всего, способ организации обработки входных сигналов МК и формирования выходных сигналов по задаваемым алгоритмам, плюс возможность, при формировании алгоритмов поведения, использовать данные с других устройств в сети.

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

Луковица ZiChip:

http://www.getchip.net/wp-content/uploads/ZiChip-scheme.png

Подробней:

Устройство ZiChip должно соответствовать следующим требованиям:

  • иметь различные варианты входов и выходов (не обязательно для каждого конкретного устройства, имеется в виду возможность как таковая);
  • позволять настраивать алгоритмы поведения (реакция на выходах по состоянию входов/состояний);
  • настройка алгоритмов должна производится без перепрошивки МК (алгоритмы записываются в EEPROM);
  • иметь возможность пользоваться данными сформированными другими устройствами в сети (получение данных);
  • иметь возможность пользоваться функционалом других устройств в сети (передача данных).

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

Сначала обычная реализация устройства.

Логика простая и на МК такое реализовать не составит никакого труда – 4 ножки на кнопки и концевики, пару ножек на двигатель – вот и вся схемка. Соответственно и программа на МК будет такой же незамысловатой.
Но если Вам понадобится что либо поменять в логике работы устройства (добавить индикацию, добавить лишний концевик и т.д.), естественно, Вам придется изменить программу и прошить МК заново. Но и это ерунда, пока Вы этим занимаетесь сами. Если для Вас это делали за деньги, то Вы поимеете новые затраты (а если еще и не сможете найти того кто Вам это делал, то новый человек будет делать устройство/программу с нуля). Кроме денег это еще и потерянное время. Но самое худшее Вы обречены на такие действия и в будущем.

Теперь как это должно выглядеть в ZiChip.

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

Устройство уже прошито. Теперь Вы вешаете на цифровые входа кнопки и концевики, пару выходов запускаете на двигатель. Запускаете программку на ПК и интерактивно все это настраиваете, буквально установкой галочек (при этом, прямо на ходу можно пробовать, как работает все устройство). Понадобился лишний концевик – прицепили его на свободную ножку – добавили лишнюю галочку – все. Закончились цифровые входа (или понадобилась другая периферия, например, управления с пульта, выносные кнопки и т.д.) – в сеть включаем еще одно (второе, третье) устройство и пользуемся его функционалом не ломая логики работы первого устройства.

Устройство ZiChip держится на 3 китах:

  • Точки доступа, как универсальный механизм взаимодействия периферии/устройств;
  • Независимые обработчики входных и формирователи выходных сигналов (работающие автономно и асинхронно);
  • Обработчики событий (или «Микропрограммы», или «Действия») –настраиваемые пользователем модули для формирования логики работы устройства.

Точки доступа.

Точки доступа являются связующими (опорными) точками, через которые осуществляется связь различных частей устройства между собой, с модулями формирующими выходные сигналы, модулями получающими данные из вне, с сетью, компьютером – короче любое взаимодействие происходит только через точки доступа и никак иначе. В сети устройство «видится» тоже точками доступа.

Каждое устройство может иметь до 126 точек доступа (зависит от конкретного устройства и его назначения). Физически точка доступа – это ячейка памяти (переменная) в которой хранится информация от (или для) какого-то модуля устройства.

Для большего понимания несколько примеров. Если устройство принимает посылки ИК-пульта, то модуль приема ИК-посылок после принятия очередной посылки – просто сохраняет номер нажатой кнопки на пульте в своей точке доступа. Если устройство формирует, например, ШИМ- сигнал на конкретной ножке, внутренние модули оставляют в точке доступа для ШИМ значения нужного уровня, а модуль вывода уже формирует сигнал на ножке.

Независимые обработчики и формирователи.

Это модули формирующие данные для точек доступа или формирующие выходные сигналы в соответствии с данными в точках доступа.

Механизм работы обработчика очень прост. Обработчик входных сигналов привязан к конкретному входу (ножке МК, внутренней периферии МК, внешнему устройству) и независимо от основной программы получает данные этого входа и складывает их в своей точке доступа. Связка вход-обработчик-точка_доступа всегда постоянна. То есть у каждого входа конкретного устройства есть свой обработчик и своя точка доступа. Пример: обработчик мониторит состояние на цифровых входах и по факту изменения записывает соответствующее значение в свою точку.

Формирователи сигнала работают еще проще. С конкретной точки доступа (у каждого формирователя своя точка) берутся данные и на основании этих данных формируется значение на выходе. Опять связка точка_доступа-формирователь-выход – постоянна. Пример: формирователь ШИМ постоянно удерживает на своей ножке МК скважность ШИМ соответствующую значению своей точки доступа.

Обработчики событий.

Действия или Микропрограммы – это своего рода правила реакции (алгоритмы поведения) устройства на различные воздействия. Микропрограммы в качестве аргументов (входных воздействий) берут одну или несколько точек доступа анализируют их и выдают в качестве результата значение для другой (или других) точек доступа.

Пример: Микропрограмма берет точку доступа клавиатуры и по значению в ней (например, нажатие определенной клавиши) изменяет другую точку доступа, например, подключенную к модулю формирования ШИМ. Нажата клавиша – ШИМ увеличивает скважность, нажата другая клавиша – ШИМ уменьшает скважность. В каждом конкретном устройстве будет определенный набор действий.

В следующей статье более подробней рассмотрим протокол общения устройств в сети.


Оригинал статьи http://www.getchip.net/posts/100-zichip-mekhanizm-raboty-ustrojjstva/


Categories: Проекты Tags: ZiChip

comments powered by Disqus