CANNY 5 tiny, Системные ресурсы и режимы работы

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

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

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

Сброс контроллера[править]

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

Информация о том, что произошел сброс доступна при обращении к регистру «Регистр контроля восстановления питания» в течении первого цикла выполнения функциональной диаграммы.

Регистр Возвращаемые значения
Регистр контроля восстановления питания
1 = текущий цикл выполнения диаграммы является первым с момента программного сброса или восстановления питания контроллера
0 = текущий цикл выполнения диаграммы не является первым с момента сброса или восстановления питания

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

Регистр Ожидаемые значения
Регистр сброса
≥ 1 = запустить процедуру принудительного сброса контроллера
0 = значение игнорируется


Режим пониженного энергопотребления[править]

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

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

Регистр Ожидаемые значения
Регистр установки режима пониженного энергопотребления
≥ 1 = перейти в режим пониженного энергопотребления
0 = вернуться в режим нормального энергопотребления

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

  • при изменении электрического потенциала на контактах контроллера, если они сконфигурированы для работы в активном режиме;
  • при включенном из функциональной диаграммы драйвере UART1, Dallas 1-Wire, при изменении электрического потенциала на соответствующем драйверу контакте контроллера.
Примечание: Информация об изменениях электрического потенциала на контактах контроллера, сконфигурированным работы в активном режиме, и изменениях электрического потенциала на контактах контроллера, соответствующих включенному драйверу UART и т.д., доступна пользователю через специальный регистр состояния контроллера - "Регистр контроля активности интерфейсов контроллера".

Информация о текущем режиме энергопотребления доступна при обращении к регистру «Регистр контроля режима пониженного энергопотребления».

Регистр Возвращаемые значения
Регистр контроля режима энергопотребления
1 = контроллер находится в режиме пониженного энергопотребления
0 = контроллер находится в режиме нормального энергопотребления
Примечание: При создании функциональных диаграмм, использующих режим пониженного энергопотребления, следует учитывать побочный эффект привносимый изменением масштаба времени. Эффект выражается в том, что приращение счетчиков времени функциональных блоков: задержек включения, выключения и генераторов ШИМ в режиме пониженного энергопотребления происходит скачкообразно, в соответствии с временем фактически проведенным в фазе «сна».

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

13 5 3 1.png

Примечание: Обратите внимание на инверсию по выходу функционального блока №3.

Изменение разрешения системного таймера[править]

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

Регистр Ожидаемые значения
Регистр увеличения разрешения системного таймера х10
≥ 1 = установить разрешение системного таймера 0,1мс (100мкс)
0 = установить разрешение системного таймера 1мс

Если было включено увеличение разрешения системного таймера, то все значения временных интервалов, используемых в функциональной диаграмме и регистрах драйверов, такие как задержка включения, задержка выключения, генератор ШИМ и т. п., начинают измеряться в единицах х0,1мс, т. е. установка интервала времени, равного 100мс, будет соответствовать указанию числа 1000, при вводе соответствующей константы (100мс = 1000 х 0,1мс).

Фрагмент функциональной диаграммы, устанавливающей задержку выключения 100мс, при использовании режима увеличения разрешения системного таймера:

13 5 4 1.png

Фактическое время выполнения функциональной диаграммы[править]

Время, требующееся контроллеру CANNY5 tiny для выполнения функциональной диаграммы в реальных условиях эксплуатации зависит от числа и типов функциональных блоков присутствующих на диаграмме, числа задействованных драйверов входящих в состав системного программного обеспечения и их активности. На практике, цикл выполнения диаграммы содержащей около 100 функциональных блоков и активно взаимодействующей с драйверами передачи данных продолжается ~50 мс.

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

Информация о продолжительности предыдущего цикла выполнения функциональной диаграммы контроллера доступна в регистре «Регистр контроля длительности программного цикла».

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

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

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

13 5 5 1.png

Идентификатор устройства[править]

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

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

Регистр Возвращаемые значения
Регистр идентификатора устройства D1:D0
0...65535 = значение двух младших байт (D1 и D0) индивидуального идентификационного номера контроллера;
Регистр идентификатора устройства D3:D2
0...65535 = значение двух старших байт (D3 и D2) индивидуального идентификационного номера контроллера.


В процессе разработки пользовательской диаграммы, из CannyLab, идентификатор устройства можно узнать обратившись к информации об устройстве, доступной в пункте «Устройство» => «Информация» главного меню программы или по нажатию кнопки «Информация» панели инструментов, где он представлен в виде 4х байтового (32-битного) числа, с расположением старшего байта слева.

Например, идентификатор 0x563B8693 будет представлен так: регистр идентификатора устройства D1:D0 равен 0x8693, регистр идентификатора устройства D3:D2 равен 0x563B.

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

13 5 6 1.png

Контроль активности интерфейсов контроллера[править]

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

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

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


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

CANNY 5 tiny

CANNY 5 nano

CANNY 7

CANNY 5.2