CANNY 3 Tiny
CANNY 3 Tiny — представитель новой ветви визуально программируемых логических контроллеров CANNY. В отличие от семейств CANNY 7 и CANNY 5.3 Pico, контроллеры CANNY 3 Tiny не имеют интерфейса CAN.
- Общие сведения
- Устройство и принцип работы
- Режимы работы
- Среда исполнения функциональных диаграмм
- Ресурсы контроллера – краткое описание
- Системные ресурсы и режимы работы
- Драйвер каналов ввода-вывода
- Драйвер высокочастотного широтно-импульсного модулятора (ВЧ ШИМ)
- Драйвер UART / Modbus
- Драйвер USB Virtual COM-port (VCP)
- Драйвер Dallas 1-Wire
- Параметры пользовательской конфигурации
- Энергонезависимая память (ЭНП)
- Аналого-цифровой преобразователь (АЦП)
Общие сведения
Также как и другие универсальные контроллеры CANNY, CANNY 3 Tiny может быть отнесен к классу “интеллектуальных реле” или NanoPLC. Контроллер CANNY 3 Tiny предназначен для повседневного использования в проектах малой автоматизации не требующих взаимодействия с CAN и позволяет применять CannyLab для решения задач, в которых возможности контроллеров более старших семейств оказываются явно избыточными.
К основным особенностям CANNY 3 Tiny можно отнести:
- номинальное напряжение питания (VDD) 5В при питании от разъема USB, либо 5.5В…16В при питании через основной разъем;
- номинальное напряжение каналов ввода-вывода 0…VDD;
- 6 универсальных каналов ввода/вывода с максимальным током каждого канала 100мА;
- поддержка популярных интерфейсов обмена данными: UART / invUART(RS-232), Dallas 1-Wire;
- поддержка USB-интерфейса, используемого для программирования и/или питания контроллера;
- поддержка USB Virtual COM-port, используемого для обмена данными с внешними устройствами через USB-интерфейс контроллера;
- двухканальный аналого-цифровой преобразователь (АЦП) с разрешением 10 бит;
- все 6 каналов контроллера могут работать в режиме низкочастотного ШИМ с разрешением 1мс/100мкс, обеспечивая частоту выходного сигнала до 5кГц;
- два канала контроллера могут работать в режиме высокочастотного ШИМ с разрешением 1мкс* (см. описание драйвера ВЧ ШИМ), обеспечивая частоту выходного сигнала до 376кГц;
- два канала контроллера могут работать в режиме определения ширины импульсов с разрешением 1мкс;
- встроенные средства управления собственным энергопотреблением контроллера в диапазоне от 2 до 10мА, позволяющие экономно расходовать заряд источника автономного питания, при его использовании;
- энергонезависимая память программ и шестьдесят четыре 16-и битные ячейки энергонезависимой памяти данных доступные пользовательскому приложению, способные сохранить критически важные данные при сбоях питания;
- дополнительный выход питания (контакт на плате контроллера), напряжением +5В, который может использоваться для питания различных внешних датчиков;
- широкий диапазон рабочих температур от -40 до + 85 оС;
- встроенная защита от высоковольтных выбросов и переполюсовки питания;
- компактное исполнение и возможность встраивания в качестве центрального управляющего процессора позволяет создавать уникальные пользовательские устройства.
Для написания пользовательских программ для CANNY 3 Tiny используется бесплатная интегрированная среда разработки CannyLab, содержащая средства редактирования, отладки и записи в контроллер программного обеспечения, которое разрабатывается с помощью графического языка программирования CFD, применяемого для программирования других контроллеров CANNY, позволяющего быстро создавать эффективные пользовательские приложения — функциональные диаграммы.
Для записи программного обеспечения в контроллер не требуется никаких дополнительных программаторов или других устройств - для подключения к ПК требуется только кабель-переходник USB-A–microUSB.
Доступный пользователю объем памяти контроллера способен вместить программы, состоящие из нескольких сотен функциональных блоков, что позволяет реализовать достаточно сложные алгоритмы.
Контроллер имеет 6 внешних каналов, режим работы которых настраивается индивидуально из пользовательской функциональной диаграммы, что позволяет, при необходимости, изменять его в процессе выполнения пользовательского алгоритма.
Контрольный светодиод зеленого цвета, управляемый из пользовательского приложения удобен для индикации режимов работы контроллера и диагностики.
Устройство и принцип работы
Внешний вид и расположение элементов
Основными конструктивными элементами CANNY 3 Tiny являются: микроконтроллер (MCU) со вспомогательными цепями, система электропитания всех элементов контроллера, схема согласования электрических уровней каналов ввода-вывода, система электрической защиты, разъемы и индикаторные светодиоды, размещенные на единой печатной плате, размером 36 х 23 мм, защищаемые, при необходимости, прозрачной термоусадочной оболочкой.
На плате контроллера расположен разъем microUSB, с помощью которого может осуществляться как питание контроллера в рабочем режиме (напряжением +5В), так и загрузка ПО при подключении контроллера к ПК. Кроме того, на плате предусмотрены контактные площадки с отверстиями для установки 8-и контактного разъема для внешнего питания контроллера и его подключения к исполнительным и сигнальным устройствам.
Возможно использование CANNY 3 Tiny в 3х исполнениях: с напаянными на контактные площадки проводами (выполняется пользователем), с 8-и контактным разъемом PLS (в комплект поставки не входит) для монтажа на платы через отверстия (DIP) или специальные разъемы (например, BLS), с 8-и контактным разъемом HK (из комплекта поставки) для использования с поставляемым с контроллером жгутом из 8 цветных проводов с соответствующим разъемом.
Примечание: Рабочее напряжение на каналах контроллера зависит от напряжения питания от внешнего источника.
Контактные площадки для установки перемычек контроллера CANNY 3 Tiny
На обратной стороне платы контроллера находятся контактные площадки перемычек каналов аналого-цифровых преобразователей А5 и А6 (по умолчанию разомкнуты) и перемычки режима программирования (по умолчанию замкнута). При установке перемычек каналов АЦП можно вывести каналы А5 и А6 на контакты №5 и №6 8-и контактного внешнего разъема контроллера, соответственно. Перемычка программирования определяет условия перехода контроллера в режим загрузки ПО: при замкнутой перемычке переход в режим программирования будет осуществляться каждый раз при подключении контроллера, не получающего внешнее питание, к ПК с помощью USB-кабеля; при разомкнутой перемычке, при подключении через USB, контроллер начнет получать через него питание и перейдет в рабочий режим, начав выполнять заложенный в него алгоритм, что можно использовать для питания контроллера от зарядных устройств с выходным напряжением 5В, имеющих разъем microUSB (например, зарядного устройства телефона).
Питание контроллера
В контроллерах CANNY 3 Tiny допускается 2 варианта питания:
- от источника постоянного тока напряжением 5,5..16,0В: положительный выход источника питания подключается к контакту №7 платы контроллера, потенциал GND — к контакту №8;
- напряжением 5В от USB-порта ПК, через разъем microUSB на плате контроллера.
Примечание: При питании контроллера через разъем microUSB, рабочее напряжение всех каналов контроллера будет равно 5В. При этом, совокупный ток потребления контроллера и внешних устройств не должен превышать 500мА.
Программная архитектура
CANNY 3 Tiny является цифровым программируемым вычислительным управляющим устройством.
В целом, для CANNY 3 Tiny справедливы общие сведения о программируемых логических контроллерах изложенные в статье программируемый логический контроллер.
Основными элементами CANNY 3 Tiny являются: арифметическо-логическое устройство (АЛУ), внутренняя память, подсистема управления ходом исполнения команд и система ввода-вывода.
Арифметическо-логическое устройство — вычислительное ядро CANNY 3 Tiny. АЛУ обеспечивает исполнение системного программного обеспечения и пользовательских функциональных диаграмм, помещенных во внутреннюю память контроллера.
Внутренняя память контроллера разделяется на энергонезависимую память программ, энергонезависимую память данных и оперативную память данных.
Подсистема управления ходом обработки команд, отвечает за переключение и настройку режимов работы контроллера.
Система ввода-вывода обеспечивает связь контроллера с внешним миром, с использованием как дискретных каналов ввода-вывода, так и поддерживаемых цифровых интерфейсов.
Структура программного обеспечения
Программное обеспечение CANNY 3 Tiny состоит из: программного загрузчика, системного ПО (операционной системы) и пользовательской функциональной диаграммы.
Программный загрузчик обеспечивает работу контроллера в режиме загрузки ПО, обеспечивая передачу данных между CANNY 3 Tiny и персональным компьютером через интерфейс USB, осуществляет проверку целостности и запись переданного от ПК программного обеспечения во внутреннюю память контроллера. Программный загрузчик помещается во внутреннюю память контроллера в процессе его производства и не может быть удален или изменен пользователем.
Системное программное обеспечение CANNY 3 Tiny распространяется производителем в виде файлов формата CCX и содержит операционную систему и набор драйверов, обеспечивающих исполнение пользовательской функциональной диаграммы и её взаимодействие с ресурсами контроллера. Модификация пользователем содержимого данных файлов не допускается. Содержимое различных файлов CCX может быть многократно записано пользователем в контроллер.
Пользовательская функциональная диаграмма создается и модифицируется пользователем в интегрированной среде разработки CannyLab и, после записи в контроллер, задает алгоритм его работы в автономном режиме. Пользовательские диаграммы могут быть многократно записаны в контроллер и сохранены из среды CannyLab в файлы формата CFD.
Режимы работы
Предусмотрено несколько режимов работы контроллера, предназначенных для выполнения основных операций с ним.
Режим загрузки ПО
В данном режиме, контроллер функционирует под управлением встроенного программного загрузчика, выполняющего запись системного программного обеспечения и функциональной диаграммы в контроллер по командам CannyLab. Вход в режим осуществляется при подключении контроллера, не получающего внешнее питание, к ПК с помощью кабеля-переходника USB-A–microUSB и установке соединения устройства с ПК, при этом включается встроенный зеленый светодиод контроллера.
Выход из данного режима происходит автоматически, при разрыве соединения контроллера с ПК. Если в момент выхода из режима загрузки ПО, энергонезависимая память программ контроллера содержала корректно записанное системное программное обеспечение, то при очередном подключении питания контроллер переходит в автономный режим работы.
Автономный режим
Автономный режим является основным режимом работы контроллера. В данном режиме контроллер под управлением загруженного в него системного программного обеспечения последовательно, в бесконечном цикле, исполняет функциональную диаграмму, работая по алгоритму заданному пользователем.
Переход в данный режим происходит автоматически, при подключении контроллера к внешнему питанию 5,5…16В, или при питании через разъем microUSB.
При работе в данном режиме, функциональной диаграмме пользователя доступны все ресурсы контроллера, драйверы которых включены в загруженное системное программное обеспечение.
Автономный режим пониженного энергопотребления
Данный режим является вариантом обычного автономного режима, в котором после каждого цикла исполнения функциональной диаграммы, контроллер делает паузу в работе, снижая своё энергопотребление до минимального. Таким образом, контроллер работает в пульсирующем режиме, периодически «засыпая» и «просыпаясь».
Включением, отключением и настройкой параметров данного режима управляет функциональная диаграмма.
Использование данного режима актуально при разработке систем, ориентированных на батарейное питание, например таких, как бортовое автомобильное оборудование.
Среда исполнения функциональных диаграмм
Представление функциональной диаграммы
Созданная в среде CannyLab графическая функциональная диаграмма, непосредственно перед записью в контроллер автоматически обрабатывается транслятором, который выполняет проверку диаграммы на непротиворечивость, определяет порядок выполнения функциональных блоков и преобразует диаграмму в исполняемый код — последовательность машинных команд АЛУ контроллера CANNY 3 Tiny.
Порядок исполнения
Исполняемый код диаграммы, при записи в контроллер, память которого уже содержит системное программное обеспечение, включается в последовательность машинных команд системного ПО. Таким образом, общая последовательность команд контроллера с загруженным системным ПО и функциональной диаграммой, будет состоять из: процедуры инициализации, исполняемой однократно после каждого сброса контроллера и исполняемого кода функциональной диаграммы, обрамленного процедурами управления ресурсами контроллера, и помещенного в бесконечно исполняемый цикл – цикл выполнения диаграммы.
Некоторые драйверы, включенные в состав системного ПО контроллера, требуют безотлагательной реакции контроллера на возникающие в процессе приема и передачи данных программные события. Программный код таких драйверов обрабатывается контроллером асинхронно, параллельно с основным потоком исполнения. На время обработки асинхронных вызовов драйверов, исполнение основного цикла выполнения диаграммы кратковременно приостанавливается.
Доступ к ресурсам контроллера
Все доступные пользователю из функциональной диаграммы ресурсы: системные ресурсы контроллера, подсистема ввода-вывода и дополнительные драйверы, включенные в состав системного ПО, отображаются на защищенное адресное пространство внутренней памяти контроллера. Данное адресное пространство разделено на регистры чтения (контроля) и регистры записи.
Пользователь имеет возможность указать регистр чтения в качестве источника входных данных практически любого функционального блока на диаграмме и, тем самым, извлечь и использовать при реализации собственных алгоритмов сведения, полученные контроллером из внешнего мира. Например, информацию об электрическом потенциале на каком-либо контакте контроллера, или содержимое пакета данных принятого контроллером по какому-либо из поддерживаемых цифровых протоколов.
Регистр записи может быть использован в качестве получателя выходных данных любого функционального блока на диаграмме. Таким образом, пользователь осуществляет управление ресурсами контроллера из функциональной диаграммы, получая возможность воздействовать на объекты внешнего мира. Например, переключить внешнее реле, изменив электрический потенциал на одном из контактов контроллера, к которому подключена его обмотка; включить контрольный светодиод; задать режим работы UART; отправить пакет данных.
Порядок использования большинства ресурсов контроллера включает в себя задание пользователем необходимых параметров их работы, например полярности выходных каналов, полярности и чувствительности входных каналов, скорости обмена данными по UART и т.д.
Задание таких параметров производится в форме записи специальных констант в один или в несколько определенных регистров контроллера, в зависимости от того, конфигурацию какого из ресурсов требуется задать. Например, передачей константы со значением 260 в регистр, расположенный по адресу 1027 задается режим работы канала №1 в качестве выхода положительной полярности.
В среде CannyLab, для удобства пользователя, все доступные регистры контроллера поименованы, как и все специальные константы, использующиеся при взаимодействии с ресурсами контроллера. Поэтому для пользователя CannyLab данная операция будет выглядеть как установка константы с именем «Состяние ВКЛ.: ПЛЮС; Состояние ВЫКЛ.: подтянут к минусу» или в сокращенном отображении – «Плюс / подтянут к минусу» в регистр с именем «Регистр конфигурации выходных потенциалов канала №1».
Установив таким образом режим работы канала №1, при записи значения «1» в регистр расположенный по адресу 1184 («Регистр выходного значения канала №1») на контакте №1 контроллера будет установлен положительный потенциал.
Ресурсы контроллера – краткое описание
Системные ресурсы и режимы работы
Основная статья: CANNY 3 Tiny. Системные ресурсы и режимы работы
Системные ресурсы контроллера отображаются на группу регистров чтения и группу регистров записи. Обращаясь к данным регистрам из функциональной диаграммы, можно получить востребованные в практическом применении сведения о текущем состоянии контроллера и управлять режимами его работы. Список регистров системных ресурсов находится в разделе «Состояние контроллера» справочника регистров, который доступен пользователю через контекстное меню элементов «Регистр чтения» и «Регистр записи».
Драйвер каналов ввода-вывода
Основная статья: CANNY 3 Tiny. Драйвер каналов ввода-вывода
Пользователям CANNY 3 Tiny доступны шесть дискретных каналов ввода-вывода общего назначения. Каждый канал физически представлен соответствующим контактом разъема контроллера (Каналы №№1..6). Записывая и считывая данные соответствующих регистров драйвера, функциональная диаграмма может как управлять электрическим потенциалом на каждом из этих контактов так и получать информацию о текущем значении потенциала каждого из них.
Физические характеристики каналов позволяют подключать к ним различные внешние исполнительные устройства — электромагнитные реле, небольшие электродвигатели, светодиоды, слаботочные цепи управления оборудованием. В качестве внешних источников дискретных сигналов способных управлять работой контроллера, возможно использовать механические, электромеханические и электронные кнопки и переключатели, генераторы импульсов, источники напряжения 0…5В или 0…16В, транзисторные выходы различной аппаратуры и т.п.
Режим и параметры работы любого из каналов задаются функциональной диаграммой. В каждый момент времени канал может работать только в одном из возможных режимов, однако допускается динамическое переопределение конфигурации канала из функциональной диаграммы в процессе ее выполнения.
Драйвер высокочастотного широтно-импульсного модулятора (ВЧ ШИМ)
Основная статья: CANNY 3 Tiny. Драйвер высокочастотного широтно-импульсного модулятора (ВЧ ШИМ)
Два из шести каналов ввода-вывода (Канал №3 и Канал №4) CANNY 3 Tiny поддерживают работу в режиме высокочастотного широтно-импульсного модулятора. Каналы могут быть задействованы независимо друг от друга и иметь независимые настройки скважности сигнала, однако период высокочастотного ШИМ является параметром, общим для обоих каналов. В режиме ВЧ ШИМ, временные параметры ШИМ – период и скважность задаются в диапазоне от 2 до 255 микросекунд, с шагом ~1* микросекунда.
Драйвер UART / Modbus
Основная статья: CANNY 3 Tiny, Драйвер UART / Modbus
Два из шести каналов контроллера CANNY 3 Tiny, каналы №1 и №2, поддерживают работу в режиме приема/передачи данных совместимом с последовательными интерфейсами UART, RS-232 и могут быть использованы для связи контроллеров друг с другом или с внешним оборудованием, поддерживающим данные виды связи. Каналы могут быть задействованы как по отдельности (только прием, либо только передача), так и совместно (прием и передача), при этом каналы могут иметь индивидуальные настройки подтяжки линии.
Реализация интерфеса UART совместимого с RS-232 в контроллерах CANNY 3 Tiny позволяет организовать обмен данными с другим UART / RS-232 устройством в дуплексном режиме, т.е. по одному каналу выполнять отправку данных, а по другому одновременно осуществлять прием данных.
Примечание: Канал №1 контроллера предназначен для использования только в качестве канала приема данных (RX), канал №2 - только в качестве канала передачи данных (TX).
Объем приемного и передающего буферов данных драйвера UART / Modbus контроллеров CANNY 3 Tiny составляет 32 байта.
Протокол Modbus в контроллерах CANNY 3 Tiny реализуется поверх UART в любом режиме его работы. В качестве ADU (Application Data Unit) используется компактный двоичный вариант - Modbus RTU. Проверка целостности данных осуществляется с помощью автоматически рассчитываемой контрольной суммы (CRC). Размер пакета ограничен 32 байтами включая CRC.
Примечание: Для корректной работы всех интерфейсов UART / RS-232 необходимо, чтобы контакты GND устройств, совершающих обмен данными, были приведены к единому потенциалу («общая земля»).
Драйвер USB Virtual COM-port (VCP)
Основная статья: CANNY 3 Tiny, Драйвер USB VCP
Драйвер USB Virtual COM-port (VCP) CANNY 3 Tiny позволяет подключать его к внешним устройствам, например к ПК, с помощью имеющегося на плате контроллера разъема microUSB, для возможности обмена с ними данными в процессе работы пользовательской диаграммы.
Драйвер Dallas 1-Wire
Основная статья: CANNY 3 Tiny, Драйвер Dallas 1-Wire
Контроллер CANNY 3 Tiny может быть использован в качестве ведущего (MASTER) узла в однопроводной сети передачи данных Dallas 1-Wire, при этом он имеет возможность только отправлять запросы на получение данных от ведомых устройств.
Для подключения контроллера CANNY 3 Tiny к шине 1-Wire может использоваться любой из его каналов ввода-вывода. Канал контроллера, используемый для работы с 1-Wire, должен быть снаружи подтянут к напряжению 5В резистором номиналом от 3 кОм до 7 кОм.
В контроллерах CANNY 3 Tiny предусмотрена возможность обращения к конкретному устройству на шине 1-Wire по его адресу, что позволяет организовать работу контроллера с несколькими ведомыми устройствами по одному каналу. Кроме того, используя несколько каналов контроллера, возможно последовательное подключение к нескольким шинам 1-Wire.
Параметры пользовательской конфигурации
Основная статья: CANNY 3 Tiny, Параметры пользовательской конфигурации
Параметры пользовательской конфигурации могут быть заданы конечным пользователем контроллера в момент загрузки в него программного обеспечения с использованием исполняемого файла автономной загрузки ПО в контроллер. После загрузки ПО и запуска контроллера в автономном режиме, установленные пользователем таким образом данные, становятся доступны функциональной диаграмме в соответствующих регистрах контроллера.
Грамотное использование пользовательских параметров существенно повышает гибкость и универсальность решений на базе контроллера, позволяя конечному пользователю, не имеющему навыков работы с CannyLab, вносить безопасные изменения в работу алгоритма контроллера используя простой пользовательский интерфейс.
Энергонезависимая память (ЭНП)
Основная статья: CANNY 3 Tiny, Энергонезависимая память (ЭНП)
Для исключения потери критически важной информации (состояния контроллера, состояния внешних устройств и т. п.) при сбросе питания, в контроллере CANNY 3 Tiny предусмотрено наличие энергонезависимой памяти. Сохраненные в ней значения будут доступны после восстановления питания контроллера в специальных регистрах.
Пользователю доступны 64 шестнадцатибитные ячейки энергонезависимой памяти, доступ к которым осуществляется с помощью соответствующих регистров чтения и записи.
Примечание: Работа с энергонезависимой памятью не требует какой-либо специальной предварительной конфигурации.
Аналого-цифровой преобразователь (АЦП)
Основная статья: CANNY 3 Tiny, Аналого-цифровой преобразователь (АЦП)
Два отдельных дополнительных контакта на плате контроллера, обозначенных А5 и А6, могут быть использованы в качестве независимых друг от друга аналого-цифровых преобразователей, позволяющих выполнять измерения напряжений от 0 до 5 вольт с разрешением 10 бит. При необходимости, каналы АЦП могут быть выведены на контакты №5 и №6 8-конактного разъема контроллера соответственно, путем установки перемычек на специальных контактных площадках на оборотной стороне платы контроллера.