CANNY 3 Tiny. Драйвер каналов ввода-вывода

Общее описание

Пользователям CANNY 3 Tiny доступны шесть дискретных каналов ввода-вывода общего назначения. Каждый канал физически представлен соответствующим контактом разъема контроллера (Каналы №№1..6). Записывая и считывая данные соответствующих регистров драйвера, функциональная диаграмма может как управлять электрическим потенциалом на каждом из этих контактов так и получать информацию о текущем значении потенциала каждого из них.

Физические характеристики каналов позволяют подключать к ним различные внешние исполнительные устройства — электромагнитные реле, небольшие электродвигатели, светодиоды, слаботочные цепи управления оборудованием. В качестве внешних источников дискретных сигналов способных управлять работой контроллера, возможно использовать механические, электромеханические и электронные кнопки и переключатели, генераторы импульсов, источники напряжения 0-5В или 0-16В, транзисторные выходы различной аппаратуры и т.п.

Примечание: Избегайте прямого подключения каналов контроллера к электрическим цепям, в которые включены мощные нагрузки. При подключении к цепям, чья мощность превышает максимально допустимую для канала контроллера (полный ток более 100 мА), необходимо последовательно устанавливать резистор сопротивлением более 2000 Ом.

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

Ряд драйверов контроллера CANNY 3 Tiny в своей работе используют ресурсы драйвера каналов ввода-вывода и, при этом, имеют более высокий приоритет. Таким образом, при использовании ими тех или иных каналов контроллера, доступ драйвера ввода-вывода к этим каналам невозможен.

Примечание: Выходное рабочее напряжение на каналах №№1..6 зависит от напряжения питания контроллера, т.е. соответствует напряжению питания. Допускаемое напряжение на каналах, работающих в режиме входов, также не должно превышать напряжения питания контроллера.

Структурная схема канала контроллера

Структурная схема канала контроллера CANNY 3 Tiny

Регистры драйвера

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

Допустимые значения регистров управления работой каналов ввода-вывода в основных режимах.
Регистр Ожидаемые значения
Регистр конфигурации выходных потенциалов канала №1
Регистр конфигурации выходных потенциалов канала №2

Регистр конфигурации выходных потенциалов канала №6
≥ 1 = установить конфигурацию выходных потенциалов канала контроллера в состояниях «ВКЛ» и «ВЫКЛ» (задается специальной константой из справочника констант);
0 = перевести в нейтральное положение соответствующий каналу контакт контроллера и исключить возможность изменения его состояния из функциональной диаграммы.
Регистр выходного значения
канала №1
Регистр выходного значения канала №2

Регистр выходного значения значения канала №6
≥ 1 = установить на соответствующем контакте контроллера электрический потенциал заданный конфигурацией данного канала для состояния «ВКЛ»;
0 = установить на соответствующем контакте контроллера электрический потенциал заданный конфигурацией данного канала для состояния «ВЫКЛ».
Регистр периода ШИМ канала №1
Регистр периода ШИМ канала №2

Регистр периода ШИМ канала №6
1…65535 = период импульсов, генерируемых на соответствующем контакте контроллера, в миллисекундах;
0 = прекратить генерацию импульсов и установить потенциал на соответствующем контакте контроллера равным потенциалу состояния «ВЫКЛ» текущей конфигурации канала.
Регистр заполнения ШИМ канала №1
Регистр заполнения ШИМ канала №2

Регистр заполнения ШИМ канала №6
1…65535 = заполнение (скважность) импульсов, генерируемых на соответствующем контакте контроллера, в миллисекундах.
Регистр инверсии входного значения канала №1
Регистр инверсии входного значения канала №2

Регистр инверсии входного значения канала №6
≥ 1 = установить на соответствующем контакте контроллера инверсное (отрицательное) значение потенциала входного сигнала, принимаемого за состояние «ВКЛ» (логическую 1);
0 = установить на соответствующем контакте контроллера обычное (положительное) значение потенциала входного сигнала, принимаемого за состояние «ВКЛ» (логическую 1).
Регистр включения активного режима / счетчика передних фронтов канала №1
Регистр включения активного режима / счетчика передних фронтов канала №2

Регистр включения активного режима / счетчика передних фронтов канала №6
≥ 1 = перевести канал в активный режим / активировать режим входа-счетчика передних, восходящих фронтов (переключений потенциала «GND» на положительный потенциал);
0 = перевести канал в пассивный режим / отключить режим входа-счетчика передних фронтов.
Регистр включения активного режима / счетчика задних фронтов канала №1
Регистр включения активного режима / счетчика задних фронтов канала №2

Регистр включения активного режима / счетчика задних фронтов канала №6
≥ 1 = перевести канал в активный режим / активировать режим входа-счетчика задних, нисходящих фронтов (переключений потенциала положительного потенциала на потенциал «GND»);
0 = перевести канал в пассивный отключить режим входа-счетчика задних фронтов.

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

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

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

Значения возвращаемые регистрами контроля драйвера каналов ввода-вывода.
Регистр Возвращаемые значения
Регистр перегрузки выхода 1 = на одном или нескольких каналах контроллера, включенных как силовой выход, обнаружено короткое замыкание и канал переведен в режим защиты;
0 = ни на одном из каналов контроллера не обнаружено короткого замыкания.
Регистр входного значения канала №1
Регистр входного значения канала №2

Регистр входного значения канала №6
1 = на соответствующем контакте контроллера установился электрический потенциал соответствующий полярности данного входа (положительный - при обычной настройке входа; «GND» - при установке инверсии входного значения);
0 = на соответствующем контакте контроллера установился электрический потенциал не соответствующий полярности данного входа («GND» - при базовой настройке входа; положительный - при установке инверсии входного значения).
Регистр значения счетчика канала №1
Регистр значения счетчика канала №2

Регистр значения счетчика канала №6
0…65535 = число импульсов (с заданными параметрами), зарегистрированных на соответствующем контакте контроллера.
Регистр значения ширины входного импульса 1 канала №5
Регистр значения ширины входного импульса 1 канала №6
0…43690 = значение ширины импульса между предыдущим фронтом (любым, последним зафиксированным) и следующим за ним нисходящим фронтом, мкс.
Регистр значения ширины входного импульса 2 канала №5
Регистр значения ширины входного импульса 2 канала №6
0…43690 = значение ширины импульса между предыдущим фронтом (любым, последним зафиксированным) и следующим за ним восходящим фронтом, мкс.

Нейтральное состояние канала

Каналы автоматически переводятся в нейтральное состояние в следующих случаях:

  • при работе контроллера в режиме загрузки программного обеспечения;
  • при работе контроллера в автономном режиме, если конфигурация канала не задана, задана константой «Нейтральное состояние» или значением «0»;
  • в момент программного сброса или сброса питания контроллера, до перехода в автономный режим и начала исполнения функциональной диаграммы;
  • в случае аварии контроллера или отказа системного программного обеспечения.

Режим дискретного выхода

Канал, сконфигурированный для работы в режиме дискретного выхода, устанавливает на соответствующем контакте контроллера электрический потенциал соответствующий состоянию «ВКЛ» при записи ненулевого значения в регистр выходного значения канала, и устанавливает на соответствующем контакте контроллера электрический потенциал соответствующий состоянию «ВЫКЛ» при записи значения «0» в регистр выходного значения канала.

Примечание: Выходное рабочее напряжение на каналах №№1..6 зависит от напряжения питания контроллера, т.е. соответствует напряжению питания.

Конфигурация канала для работы в данном режиме, определяется константой, определяющей электрический потенциал на контакте соответствующего канала контроллера в положениях «ВКЛ» и «ВЫКЛ».

Параметры конфигурации канала для работы в режиме дискретного выхода.
Параметр Перечень допустимых значений
Тип канала Дискретный выход.
Состояние «ВКЛ» подтянут к плюсу (1мА); ПЛЮС (100мА); подтянут к минусу (1мА); МИНУС (100мА); нейтральное (воздух).
Состояние «ВЫКЛ» подтянут к плюсу (1мА); ПЛЮС (100мА); подтянут к минусу (1мА); МИНУС (100мА); нейтральное (воздух).

Именованные константы, представляющие доступные пользователю комбинации параметров конфигурации каналов, содержатся в разделе «Конфигурация выходных потенциалов канала ввода-вывода» справочника констант CannyLab, доступ к которому осуществляется через контекстное меню входа функционального блока, имеющего тип «Константа».

Для установки параметров работы канала контроллера в режим дискретного выхода, необходимо в соответствующий каналу «Регистр конфигурации выходных потенциалов канала №ХХ» поместить значение константы, соответствующей выбранному режиму работы.

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

Пример функциональной диаграммы выполняющей ежесекундное поочередное переключение электрических потенциалов с напряжения питания (100 мА) на GND (1 мА) на контактах контроллера, соответствующих каналам №2 и №3.

Режим широтно-импульсного выхода

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

График режима ШИМ.

Конфигурация канала для работы в данном режиме, определяется константой, представляющей комбинацию параметров, определяющих электрический потенциал и силу тока на контакте, в активной «ВКЛ» и пассивной «ВЫКЛ» фазе генерации соответствующего канала контроллера, и парой числовых значений, определяющих частоту и заполнение генерируемых импульсов.

Параметры конфигурации канала для работы в режиме ШИМ выхода.
Параметр Перечень допустимых значений
Тип канала Широтно-импульсный выход.
Состояние «ВКЛ» подтянут к плюсу (1мА); ПЛЮС (100мА); подтянут к минусу (1мА); МИНУС (100мА); нейтральное (воздух).
Состояние «ВЫКЛ» подтянут к плюсу (1мА); ПЛЮС (100мА); подтянут к минусу (1мА); МИНУС (100мА); нейтральное (воздух).

Именованные константы, представляющие доступные пользователю комбинации параметров конфигурации каналов, содержатся в разделе «Конфигурация выходных потенциалов канала ввода-вывода» справочника констант CannyLab, доступ к которому осуществляется через контекстное меню элемента диаграммы «Константа».

Для перевода канала контроллера в режим широтно-импульсного выхода, необходимо:

  • в соответствующий каналу «Регистр конфигурации выходных потенциалов канала №ХХ» передать значение константы, соответствующей выбранному режиму работы;
  • в соответствующий каналу «Регистр периода ШИМ канала №ХХ» передать числовое значение от 1 до 65535, устанавливающее период генерируемых импульсов;
  • в соответствующий каналу «Регистр заполнения ШИМ канала №ХХ» передать числовое значение от 0 до 65535, устанавливающее заполнение генерируемых импульсов.

Примечание: Режим ШИМ имеет приоритет над режимом дискретного выхода. При активном режиме ШИМ значения, записываемые в регистр выходного значения канала №ХХ, игнорируются - канал работает в соответствии с настройками ШИМ. Примечание: При использовании режима увеличения разрешения системного таймера период и заполнение измеряется в 0,1 миллисекунды, иначе — в целых в миллисекундах.

Примечание: Режим ШИМ имеет приоритет над режимом дискретного выхода. При активном режиме ШИМ значения, записываемые в регистр выходного значения канала №ХХ, игнорируются - канал работает в соответствии с настройками ШИМ. Примечание: При использовании режима увеличения разрешения системного таймера период и заполнение измеряется в 0,1 миллисекунды, иначе — в целых в миллисекундах.

Функциональная диаграмма постоянно выполняющая ежесекундное переключение электрического потенциала с GND (1мА) на напряжение питания контроллера (100мА) на контакте контроллера соответствующем каналу №1.

Режим дискретного входа

В процессе выполнения пользовательской диаграммы, текущее значение потенциала на контактах контроллера может быть определено с помощью регистров входного значения соответствующего канала, в котором, по умолчанию, возвращается значение «1», если на соответствующем контакте контроллера установился положительный электрический потенциал и возвращается значение «0», когда на соответствующем контакте контроллера установился электрический потенциал «GND». Настройка контролируемых потенциалов на контактах контроллера может быть изменена с помощью регистра инверсии входного значения канала.

Режим дискретного входа контроллера включен постоянно, что позволяет использовать его для обратной связи.

Параметры конфигурации канала для работы в режиме дискретного входа.
Параметр Перечень допустимых значений
Тип канала Дискретный вход.
Полярность входа ПЛЮС (по умолчанию); МИНУС (в состоянии инверсии входного потенциала).
Режим ожидания Активный / счетчик передних фронтов; активный / счетчик задних фронтов; пассивный.

Примечание: Наличие на канале подтяжки, ее полярность определяется конфигурацией выходного потенциала данного канала.

Изменение потенциала на контакте канала, находящегося в режиме активного ожидания, приведет к немедленному автоматическому выходу контроллера из режима пониженного энергопотребления. Изменение потенциала на контакте канала, находящегося в режиме пассивного ожидания, не повлияет на режим энергопотребления контроллера.

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

Пример функциональной диаграммы, включающей встроенный зеленый светодиод контроллера при поступлении и удержании в течение не менее 200мс на контакте контроллера, соответствующего каналу №1, положительного потенциала:

Режим счетчика

При включении активного режима / счетчика передних (восходящих) или/и задних (нисходящих) фронтов любого из каналов контроллера, CANNY 3 Tiny позволяет, асинхронно функциональной диаграмме, производить автоматический подсчет изменения потенциалов соответствующей направленности входного сигнала.

Примечание: Под передним фронтом контроллером понимается изменение на заданном его контакте потенциала с отрицательного (GND) на положительный (напряжение питания контроллера), под задним фронтом - изменение потенциала с положительного (напряжение питания контроллера) на отрицательный (GND).

Примечание: Конфигурация канала в режиме входа-счетчика определяется конфигурацией выходного потенциала данного канала.

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

Асинхронный режим подсчета позволяет добиться большей точности подсчета количества поступивших импульсов и регистрировать сигналы большей частоты, чем при организации счетчика импульсов средствами функциональной диаграммы.

В режиме счетчика, канал всегда находится в активном ожидании с максимальной чувствительностью.

Сконфигурированный для работы в режиме входа-счетчика канал возвращает в регистре своего входного значения число импульсов, соответствующее: суммарному количеству переключений электрического потенциала на соответствующем контакте контроллера из состояния GND в состояние >=2.5…7.5 вольт, в зависимости от напряжения питания контроллера, при включенном регистре счетчика передних фронтов; суммарному количеству переключений электрического потенциала на соответствующем контакте контроллера из состояния >=2.5…7.5, в зависимости от напряжения питания контроллера, вольт в состояние GND, при включенном регистре счетчика задних фронтов.

Для перевода канала контроллера в режим входа-счетчика, необходимо:

  • в соответствующий каналу «Регистр конфигурации выходного потенциала канала №ХХ» передать значение константы, соответствующей необходимой настройке канала;
  • в соответствующий каналу «Регистр включения активного режима / счетчика передних фронтов канала №ХХ» или/и «Регистр включения активного режима / счетчика задних фронтов канала №ХХ» записать значение «1»;

Подсчет фронтов ведется накопительным итогом, с переполнением. Это означает, что при достижении значения 65535 и последующем увеличении на единицу, значение счетчика устанавливается равным нулю, но каждый последующий импульс вновь увеличивает значение счетчика на единицу. Сброс значения счетчика выполняется при отключении активного режима работы канала.

Пример функциональной диаграммы тахометра с разрешающей способностью 100 оборотов в минуту, подсчитывающем число импульсов на соответствующем каналу №1 контакте контроллера CANNY 3 Tiny.

Определение значений ширины (длительности) импульса

Работая в режиме счетчика, каналы №5 и №6 контроллера позволяют, асинхронно функциональной диаграмме, определять длительность импульса в микросекундах. Информация о длительность импульсов доступна в специальных регистрах входов указанных каналов.

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

Вариант 1. Активирован только счетчик передних фронтов.
Значение регистров для варианта 1.
Параметр Перечень допустимых значений
Регистр значения ширины входного импульса 1 канала №ХХ 0
Регистр значения ширины входного импульса 2 канала №ХХ Т2
Вариант 2. Активирован только счетчик задних фронтов.
Значение регистров для варианта 2.
Параметр Перечень допустимых значений
Регистр значения ширины входного импульса 1 канала №ХХ Т1
Регистр значения ширины входного импульса 2 канала №ХХ 0
Вариант 3. Активирован счетчик передних и задних фронтов.
Значение регистров для варианта 3.
Параметр Перечень допустимых значений
Регистр значения ширины входного импульса 1 канала №ХХ Т1
Регистр значения ширины входного импульса 2 канала №ХХ Т2

Асинхронный режим подсчета позволяет добиться высокой точности определения ширины импульсов.

Пример функциональной диаграммы для определения длительности импульсов на канале №5 контроллера CANNY 3 Tiny

Скачать файл диаграммы примера.

СМОТРИ ТАКЖЕ