CANNY 5 nano, Драйвер каналов ввода-вывода

Материал из CANNY Wiki
Перейти к: навигация, поиск

Общее описание[править]

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

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

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

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

ВНИМАНИЕ! Каналы CANNY5 nano не имеют защиты от короткого замыкания, перегрузки и перенапряжения. Во избежание выхода каналов из строя, избегайте превышения допустимых показателей напряжения и тока на каналах контроллера!

Особенности работы канала №13[править]

Канал №13 может быть подключен через один из двух внешних контактов контроллера, обозначенных как «С13» и «*». При подключении через контакт «С13» канал №13, как и остальные контакты контроллера, может работать с сигналами напряжением 0-5В. При подключении через контакт «*» канал №13 подключается через резистивный делитель напряжения 22кОм / 11кОм (см. принципиальную схему), что дает возможность прямого включения данного контакта в цепи напряжением от 0 до 15В.

Регистры драйвера[править]

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

Регистр Ожидаемые значения
Регистр конфигурации канала №0
Регистр конфигурации канала №1
Регистр конфигурации канала №2
...
Регистр конфигурации канала №17
≥ 1 = установить конфигурацию канала контроллера, определяющую текущий режим и параметры его работы, как «Дискретный положительный выход»;
0 = установить конфигурацию канала контроллера, определяющую текущий режим и параметры его работы, как «Дискретный положительный вход».
Регистр включения подтягивающего резистора канала №7
Регистр включения подтягивающего резистора канала №8
Регистр включения подтягивающего резистора канала №9
Регистр включения подтягивающего резистора канала №13*
Регистр включения подтягивающего резистора канала №16
Регистр включения подтягивающего резистора канала №17
≥ 1 = включить подтяжку канала контроллера к потенциалу +5В;
0 = отключить подтяжку канала контроллера к потенциалу +5В.
Регистр включения активного режима / счетчика передних фронтов канала №7
Регистр включения активного режима / счетчика передних фронтов канала №8
Регистр включения активного режима / счетчика передних фронтов канала №9
Регистр включения активного режима / счетчика передних фронтов канала №13*
Регистр включения активного режима / счетчика передних фронтов канала №16
Регистр включения активного режима / счетчика передних фронтов канала №17
≥ 1 = включить активный режим / счетчик передних фронтов канала контроллера;
0 = отключить активный режим / счетчик передних фронтов канала контроллера.
Регистр включения активного режима / счетчика задних фронтов канала №7
Регистр включения активного режима / счетчика задних фронтов канала №8
Регистр включения активного режима / счетчика задних фронтов канала №9
Регистр включения активного режима / счетчика задних фронтов канала №13*
Регистр включения активного режима / счетчика задних фронтов канала №16
Регистр включения активного режима / счетчика задних фронтов канала №17
≥ 1 = включить активный режим / счетчик задних фронтов канала контроллера;
0 = отключить активный режим / счетчик задних фронтов канала контроллера.
Регистр выходного значения канала №0
Регистр выходного значения канала №1
Регистр выходного значения канала №2
...
Регистр выходного значения канала №17
≥ 1 = установить на соответствующем контакте контроллера электрический потенциал соответствующий состоянию «ВКЛ» (+5В);
0 = установить на соответствующем контакте контроллера электрический потенциал соответствующий состоянию «ВЫКЛ» (GND).
Примечание: При включении подтяжки или активного режима / счетчика фронтов канала №13 принимайте во внимание встроенную постоянную подтяжку данного канала к потенциалу GND за счет аппаратного делителя.

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

Регистр Возвращаемые значения
Регистр активности ввода-вывода
1 = в ходе прошедшего цикла выполнения функциональной диаграммы на каком-либо контакте контроллера, соответствующем каналам №№7, 8, 9 или 13, сконфигурированным как вход с включенным активным режимом, зарегистрировано изменение электрического потенциала;
0 = за прошедший цикл выполнения функциональной диаграммы на каналах контроллера №№7, 8, 9 или 13, сконфигурированных как вход с включенным активным режимом, изменений не обнаружено.
Регистр входного значения канала №0
Регистр входного значения канала №1
...
Регистр входного значения канала №17
1 = на соответствующем контакте контроллера установился электрический потенциал соответствующий полярности данного канала в режиме «ВКЛ» (+5В);
0 = на соответствующем контакте контроллера установился электрический потенциал не соответствующий полярности данного канала в режиме «ВКЛ» (+5В).
Регистр значения счетчика канала №7
Регистр значения счетчика канала №8
Регистр значения счетчика канала №9
Регистр значения счетчика канала №13
Регистр значения счетчика канала №16
Регистр значения счетчика канала №17
0...65535 = значение счетчика канала контроллера.
Регистр значения ширины входного импульса 1 канала №7
Регистр значения ширины входного импульса 1 канала №8
Регистр значения ширины входного импульса 1 канала №9
Регистр значения ширины входного импульса 1 канала №13
0...65535 = значение ширины импульса между восходящим и следующим за ним нисходящим фронтом, мкс.
Регистр значения ширины входного импульса 2 канала №7
Регистр значения ширины входного импульса 2 канала №8
Регистр значения ширины входного импульса 2 канала №9
Регистр значения ширины входного импульса 2 канала №13
0...65535 = значение ширины импульса между нисходящим и следующим за ним восходящим фронтом, мкс.


Состояние канала в момент запуска контроллера[править]

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

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

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

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

Параметр Перечень допустимых значений
Тип канала Дискретный выход
Состояние «ВКЛ» +5В
Состояние «ВЫКЛ» GND

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

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

Пример функциональной диаграммы выполняющей ежесекундное поочередное переключение электрических потенциалов с +5В на GND на контактах контроллера, соответствующих каналам №0 и №1.

8 6 5 1.png

ВНИМАНИЕ! Каналы CANNY5 nano не имеют защиты от короткого замыкания, перегрузки и перенапряжения. Во избежание выхода каналов из строя, избегайте превышения допустимых показателей напряжения и тока на каналах контроллера!

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

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

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

Изменение потенциала на контактах каналов №№7, 8, 9, 13, 16, 17 если конфигурацией установлен активный режим их работы, приведет к немедленному автоматическому выходу контроллера из режима пониженного энергопотребления при нахождении контроллера в нём. При этом канал работает с максимальной чувствительностью, т.е. «защита от дребезга» не предусмотрена и должна быть реализована, при необходимости, в функциональной диаграмме.

Пример функциональной диаграммы, устанавливающей состояние «ВКЛ» на контакте канала №1 контроллера при поступлении и удержании в течение не менее 200мс на соответствующем каналу №0 контакте контроллера, потенциала +5В:

8 6 6 1.png

Режим счетчика[править]

При включении активного режима любого из каналов №№7, 8, 9, 13, 16, 17 контроллера, сконфигурированных как дискретный вход, CANNY5 nano позволяет асинхронно функциональной диаграмме производить автоматический подсчет импульсов входного сигнала накопительным итогом.

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

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

Примечание: При использовании канала №13 в режиме счетчика принимайте во внимание встроенную постоянную подтяжку данного канала к потенциалу GND за счет аппаратного делителя.

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

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

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

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

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

Пример функциональной диаграммы тахометра с разрешающей способностью 100 оборотов в минуту, подсчитывающем число импульсов на соответствующем каналу №17 контакте контроллера CANNY5 nano:

8 6 7 1.png

Примечание: Работа канала CANNY5 nano в режиме входа-счетчика аналогична работе каналов контроллера CANNY7 в режиме счетчика с периодом равным нулю.

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

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

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


Вариант 1. Активирован только счетчик передних фронтов:

8 6 7 3.png

Регистр Значение, мкс
Регистр значения ширины входного импульса 1 канала №ХХ 0
Регистр значения ширины входного импульса 2 канала №ХХ Т2



Вариант 2. Активирован только счетчик задних фронтов:

8 6 7 4.png

Регистр Значение, мкс
Регистр значения ширины входного импульса 1 канала №ХХ Т1
Регистр значения ширины входного импульса 2 канала №ХХ 0



Вариант 3. Активирован счетчик передних и задних фронтов:

8 6 7 5.png

Регистр Значение, мкс
Регистр значения ширины входного импульса 1 канала №ХХ Т1
Регистр значения ширины входного импульса 2 канала №ХХ Т2



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

Пример функциональной диаграммы для определения длительности импульсов на канале №7 контроллера CANNY5 nano:

8 6 7 2.png


Смотри также[править]

CANNY 5 nano

CANNY 7

CANNY 7, Драйвер каналов ввода-вывода