CANNY 3 Tiny PRO. Драйвер каналов ввода-вывода
- Общее описание
- Регистры драйвера
- Состояние канала в момент запуска контроллера
- Режим дискретного выхода
- Режим широтно-импульсного выхода
- Режим дискретного входа
- Режим счетчика
- Определение значений ширины (длительности) импульса
- Режим энкодера счетчика
Общее описание
Пользователям CANNY 3 Tiny PRO доступен 21 дискретный канал ввода-вывода общего назначения. Каждый канал физически представлен соответствующим контактом разъема контроллера (Каналы №№0..20). Записывая и считывая данные соответствующих регистров драйвера, функциональная диаграмма может как управлять электрическим потенциалом на каждом из этих контактов так и получать информацию о текущем значении потенциала каждого из них.
Физические характеристики каналов позволяют подключать к ним различные внешние исполнительные устройства — транзисторы, светодиоды, слаботочные цепи управления оборудованием. В качестве внешних источников дискретных сигналов способных управлять работой контроллера, возможно использовать механические, электромеханические и электронные кнопки и переключатели, генераторы импульсов, источники напряжения 0..5В, транзисторные выходы различной аппаратуры и т.п.
Примечание: Избегайте прямого подключения каналов контроллера к электрическим цепям, в которые включены мощные нагрузки (более мощности каналов контроллера).
Режим и параметры работы любого из каналов задаются функциональной диаграммой. В каждый момент времени канал может работать только в одном из возможных режимов, однако допускается динамическое переопределение конфигурации канала из функциональной диаграммы в процессе ее выполнения.
Ряд драйверов контроллера CANNY 3 Tiny PRO в своей работе используют ресурсы драйвера каналов ввода-вывода и, при этом, имеют более высокий приоритет. Таким образом, при использовании ими тех или иных каналов контроллера, доступ драйвера ввода-вывода к этим каналам невозможен.
ВНИМАНИЕ! Каналы CANNY 3 Tiny PRO не имеют защиты от короткого замыкания, перегрузки и повышенного напряжения. Во избежание выхода каналов из строя, избегайте превышения допустимых показателей напряжения и тока на каналах контроллера!
Регистры драйвера
Параметры определяющие режим работы и текущее состояние каналов контроллера задаются для каждого канала независимо друг от друга. Ниже приведено описание допустимых значений регистров управления работой каналов ввода-вывода во всех основных режимах.
Регистр | Ожидаемые значения |
---|---|
Регистр конфигурации канала №0 Регистр конфигурации канала №1 … Регистр конфигурации канала №20 |
≥ 1 = установить конфигурацию канала контроллера, определяющую текущий режим и параметры его работы, как «Дискретный положительный выход»; 0 = установить конфигурацию канала контроллера, определяющую текущий режим и параметры его работы, как «Дискретный положительный вход» |
Регистр включения подтягивающего резистора канала №13 … Регистр включения подтягивающего резистора канала №17 Регистр включения подтягивающего резистора канала №19 |
≥ 1 = включить подтяжку канала контроллера к потенциалу +5В; 0 = отключить подтяжку канала контроллера |
Регистр включения активного режима / счетчика передних фронтов канала №8 … Регистр включения активного режима / счетчика передних фронтов канала №14 Регистр включения активного режима / счетчика передних фронтов канала №19 Регистр включения активного режима / счетчика передних фронтов канала №20 |
≥ 1 = включить активный режим / счетчик передних фронтов канала контроллера; 0 = отключить активный режим / счетчик передних фронтов канала контроллера |
Регистр включения активного режима / счетчика задних фронтов канала №8 … Регистр включения активного режима / счетчика задних фронтов канала №14 Регистр включения активного режима / счетчика задних фронтов канала №19 Регистр включения активного режима / счетчика задних фронтов канала №20 |
≥ 1 = включить активный режим / счетчик задних фронтов канала контроллера; 0 = отключить активный режим / счетчик задних фронтов канала контроллера |
Регистр выходного значения канала №0 Регистр выходного значения канала №1 … Регистр выходного значения канала №20 |
≥ 1 = установить на соответствующем контакте контроллера электрический потенциал соответствующий состоянию «ВКЛ» (+5В); 0 = установить на соответствующем контакте контроллера электрический потенциал соответствующий состоянию «ВЫКЛ» («GND») |
Регистр периода ШИМ канала №6 Регистр периода ШИМ канала №7 |
1…65535 = активировать ШИМ, установить период генерируемых на соответствующем канале контроллера импульсов, мс; 0 = деактивировать ШИМ, вернуть канал под управление драйвера ввода-вывода |
Регистр заполнения ШИМ канала №6 Регистр заполнения ШИМ канала №7 |
0…65535 = установить заполнение (скважность) генерируемых импульсов, мс; |
Регистр включения режима энкодера счетчика канала 13 в паре с каналом 15 Регистр включения режима энкодера счетчика канала 14 в паре с каналом 16 Регистр включения режима энкодера счетчика канала 19 в паре с каналом 17 Регистр включения режима энкодера счетчика канала 20 в паре с каналом 18 |
≥ 1 = включить режим энкодера счетчика, изменять значение счетчика канала в зависимости от состояния вспомогательного канала (см.раздел “Режим энкодера счетчика”); 0 = отключить режим энкодера счетчика |
Примечание: Контроль потенциалов на входах контроллера выполняется постоянно, дополнительно конфигурировать канал для работы в качестве входа не требуется. По умолчанию, входы настроены как положительные, т.е. за логическую единицу принимается положительный потенциал. Изменение настроек работы входов может выполняться независимо для каждого из каналов с помощью регистра инверсии входного значения соответствующего канала.
Примечание: Режимы счетчика передних и задних фронтов одного и того же канала могут быть активированы одновременно, при этом будет выполняться подсчет как восходящих, так и нисходящих фронтов, а значение общего числа зафиксированных изменений потенциалов (фронтов) на активном входе будет доступно в регистре значения счетчика соответствующего канала. Подсчет фронтов ведется накопительным итогом, с переполнением. Сброс значения счетчика выполняется при отключении активного режима работы канала.
Регистры контроля драйвера каналов ввода-вывода разделяются на содержащие информацию о состоянии драйвера ввода-вывода в целом и на содержащие информацию о состоянии каждого канала индивидуально. Ниже приведено описание возвращаемых значений регистров контроля драйвера каналов ввода-вывода во всех основных режимах работы.
Регистр | Возвращаемые значения |
---|---|
Регистр входного значения канала №0 Регистр входного значения канала №1 … Регистр входного значения канала №20 |
1 = на соответствующем контакте контроллера установился положительный электрический потенциал; 0 = на соответствующем контакте контроллера установился потенциал «GND». |
Регистр значения счетчика канала №8 … Регистр значения счетчика канала №14 Регистр значения счетчика канала №19 Регистр значения счетчика канала №20 |
0…65535 = число импульсов (с заданными параметрами), зарегистрированных на соответствующем контакте контроллера. |
Регистр значения ширины входного импульса 1 канала №8 Регистр значения ширины входного импульса 1 канала №10 |
0…43690 = значение ширины импульса между предыдущим фронтом (любым, последним зафиксированным) и следующим за ним нисходящим фронтом, мкс. |
Регистр значения ширины входного импульса 2 канала №8 Регистр значения ширины входного импульса 2 канала №10 |
0…43690 = значение ширины импульса между предыдущим фронтом (любым, последним зафиксированным) и следующим за ним восходящим фронтом, мкс. |
Состояние канала в момент запуска контроллера
При включении контроллера, все его каналы находятся в режиме входа без внутренней подтяжки.
Режим дискретного выхода
Канал, сконфигурированный для работы в режиме дискретного выхода, устанавливает на соответствующем контакте контроллера электрический потенциал соответствующий состоянию «ВКЛ» при записи ненулевого значения в регистр выходного значения канала, и устанавливает на соответствующем контакте контроллера электрический потенциал соответствующий состоянию «ВЫКЛ» при записи значения «0» в регистр выходного значения канала.
Конфигурация канала для работы в данном режиме, задается константой, определяющей электрический потенциал на контакте соответствующего канала контроллера, в положениях «ВКЛ» и «ВЫКЛ».
Параметр | Перечень допустимых значений |
---|---|
Тип канала | Дискретный выход |
Состояние «ВКЛ» | +5В |
Состояние «ВЫКЛ» | GND |
Именованные константы конфигураций каналов, содержатся в разделе «Конфигурация канала ввода-вывода» справочника констант CannyLab, доступ к которому осуществляется через контекстное меню входа функционального блока, имеющего тип «Константа».
Для перевода канала контроллера в режим дискретного выхода, необходимо в соответствующий каналу «Регистр конфигурации канала №ХХ» передать значение константы, соответствующей данному режиму работы.
ВНИМАНИЕ! Каналы CANNY 3 Tiny PRO не имеют защиты от короткого замыкания, перегрузки и повышенного напряжения. Во избежание выхода каналов из строя, избегайте превышения допустимых показателей напряжения и тока на каналах контроллера!
Режим широтно-импульсного выхода
Каналы №6 и №7, сконфигурированные для работы в режиме широтно-импульсного выхода, позволяют генерировать на соответствующих контактах контроллера широтно-импульсный сигнал с заданной частотой и заполнением импульсов. В данном режиме канал работает асинхронно функциональной диаграмме, что позволяет добиться большей стабильности временных параметров генерируемого сигнала, чем при организации широтно-импульсного генератора средствами функциональной диаграммы, особенно при малых значениях периода.
Для перевода канала контроллера в режим широтно-импульсного выхода, необходимо:
- в соответствующий каналу «Регистр конфигурации канала №ХХ» передать значение константы “Дискретный положительный выход”;
- в соответствующий каналу «Регистр периода ШИМ канала №ХХ» передать числовое значение от 1 до 65535, устанавливающее период генерируемых импульсов;
- в соответствующий каналу «Регистр заполнения ШИМ канала №ХХ» передать числовое значение от 0 до 65535, устанавливающее заполнение генерируемых импульсов.
Примечание: Режим ШИМ имеет приоритет над режимом дискретного выхода. При активном режиме ШИМ значения, записываемые в регистр выходного значения канала №ХХ, игнорируются - канал работает в режиме ШИМ.
Примечание: При использовании режима увеличения разрешения системного таймера период и заполнение измеряется в 0,1 миллисекунды, иначе — в целых в миллисекундах.
Режим дискретного входа
Канал, сконфигурированный для работы в режиме дискретного входа, возвращает значение «1» в регистре своего входного значения если на соответствующем контакте контроллера установился электрический потенциал +5В, соответствующий состоянию «ВКЛ», и возвращает значение «0» в регистре входного значения, когда на соответствующем контакте контроллера установился электрический потенциал «GND», не соответствующий состоянию «ВКЛ» канала.
Режим дискретного входа контроллера включен постоянно, что позволяет использовать его для обратной связи.
Параметр | Перечень допустимых значений |
---|---|
Тип канала | Дискретный вход |
Полярность входа | ПЛЮС |
Подтяжка | Положительная; без подтяжки (см.примечание) |
Режим ожидания | Активный / счетчик передних фронтов; активный / счетчик задних фронтов; пассивный |
Примечание: Каналы №№13,14,15,16,17,19 имеют внутренние подтягивающие резисторы. Включение подтяжки выполняется записью ненулевого значения в специальный регистр соответствующего канала.
Изменение потенциала на контактах каналов №№8,9,10,11,12,13,14,19,20, если конфигурацией установлен активный режим их работы, приведет к немедленному автоматическому выходу контроллера из режима пониженного энергопотребления. Изменение потенциала на контакте канала, находящегося в режиме пассивного ожидания, не повлияет на режим энергопотребления контроллера.
На вход каналы контроллера работают с максимальной чувствительностью, т.е. «защита от дребезга» не предусмотрена и должна быть реализована, при необходимости, в функциональной диаграмме.
Режим счетчика
При включении активного режима / счетчика передних (восходящих) или/и задних (нисходящих) фронтов каналов №№8,9,10,11,12,13,14,19,20 контроллера, CANNY 3 Tiny PRO позволяет, асинхронно функциональной диаграмме, производить автоматический подсчет изменения потенциалов входного сигнала соответствующей направленности.
Примечание: Под передним фронтом контроллером понимается изменение на заданном его контакте потенциала с отрицательного (GND) на положительный, под задним фронтом - изменение потенциала с положительного на отрицательный (GND).
Примечание: Включение счетчиков передних и задних фронтов выполняется с помощью двух отдельных независимых регистров, что допускает возможность одновременной активации обоих счетчиков и, соответственно, ведение подсчета любых изменений потенциала (передних и задних фронтов) на заданном контакте контроллера.
Асинхронный режим подсчета позволяет добиться большей точности подсчета количества поступивших импульсов и регистрировать сигналы большей частоты, чем при организации счетчика импульсов средствами функциональной диаграммы.
В режиме счетчика, канал всегда находится в активном ожидании с максимальной чувствительностью.
Сконфигурированный для работы в режиме входа-счетчика канал возвращает в своем регистре значения счетчика число импульсов, соответствующее: суммарному количеству переключений электрического потенциала на соответствующем контакте контроллера из состояния GND в состояние >=2.5 вольт, при включенном регистре счетчика передних фронтов; суммарному количеству переключений электрического потенциала на соответствующем контакте контроллера из состояния >=2.5 вольт в состояние GND, при включенном регистре счетчика задних фронтов.
Для перевода канала контроллера в режим входа-счетчика, необходимо:
- в соответствующий каналу «Регистр конфигурации канала №ХХ» передать значение константы “Дискретный положительный вход”;
- в соответствующий каналу «Регистр включения активного режима / счетчика передних фронтов канала №ХХ» или/и «Регистр включения активного режима / счетчика задних фронтов канала №ХХ» записать значение, не равное нулю;
Подсчет фронтов ведется накопительным итогом, с переполнением. Это означает, что при достижении значения 65535 и последующем увеличении на единицу, значение счетчика устанавливается равным нулю, но каждый последующий импульс вновь увеличивает значение счетчика на единицу. Сброс значения счетчика выполняется при отключении активного режима работы канала.
Определение значений ширины (длительности) импульса
Работая в режиме счетчика, каналы №8 и №10 контроллера позволяют, асинхронно функциональной диаграмме, определять длительность импульса в микросекундах. Информация о длительность импульсов доступна в специальных регистрах входов указанных каналов.
Если активирован подсчет только передних, либо только задних фронтов, то будет определено время между приходами соответствующих фронтов, т.е фактический период получения импульсов. Если активирован, одновременно, подсчет передних и задних фронтов, то будет определено время, прошедшее между двумя соседними фронтами, т.е. один регистр будет отображать время между восходящим и следующим за ним нисходящим фронтом, другой - время между последним нисходящим и следующим за ним восходящим фронтом, а сумма этих значений даст величину периода следования импульсов.
Параметр | Перечень допустимых значений |
---|---|
Регистр значения ширины входного импульса 1 канала №ХХ | 0 |
Регистр значения ширины входного импульса 2 канала №ХХ | Т2 |
Параметр | Перечень допустимых значений |
---|---|
Регистр значения ширины входного импульса 1 канала №ХХ | Т1 |
Регистр значения ширины входного импульса 2 канала №ХХ | 0 |
Параметр | Перечень допустимых значений |
---|---|
Регистр значения ширины входного импульса 1 канала №ХХ | Т1 |
Регистр значения ширины входного импульса 2 канала №ХХ | Т2 |
Асинхронный режим подсчета позволяет добиться высокой точности определения ширины импульсов.
Режим энкодера счетчика
Работая в режиме счетчика, каналы №№13,14,19,20 контроллера, могут выступать в качестве энкодеров, увеличивая или уменьшая свое значение в зависимости от состояния каналов №№15,16,17,18 соответственно: если, при фиксации фронта каналом-энкодером на вспомогательном канале был установлен положительный потенциал, то произойдет увеличение значения счетчика, иначе значение счетчика будет уменьшено. На работу канала в режиме энкодера не влияет счетчик каких фронтов был активирован.