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

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

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

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

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

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

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

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

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

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


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

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

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

Для более точного подсчета временных интервалов в состоянии «сна» предусмотрена возможность калибровки внутреннего таймера контроллера при переходе в режим пониженного энергопотребления.

Регистр Ожидаемые значения
Регистр установки режима пониженного энергопотребления
≥ 1 = перейти в режим пониженного энергопотребления
0 = вернуться в режим нормального энергопотребления
Регистр включения замера длительности программного цикла в режиме пониженного энергопотребления
≥ 1 = включить режим замера длительности программного цикла при переходе в режим «сна», выполнить калибровку внутреннего таймера контроллера;
0 = не использовать калибровку внутреннего таймера контроллера при переходе в режим «сна».
Примечание: При включенном режиме замера длительности программного цикла в режиме пониженного энергопотребления подстройка внутреннего таймера будет выполняться при каждом входе контроллера в состояние «сна», в том числе после каждого автоматического выполнения одного цикла пользовательской диаграммы между этапами бездействия CANNY5 nano, находящегося в режиме пониженного энергопотребления. Рекомендуется выполнять калибровку таймера однократно, только при активации режима экономии энергии.

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

  • при изменении электрического потенциала на контактах контроллера «С7» (канал №7), «С8» (канал №8), «С9» (канал №9), «С13» (канал №13), «С16» (канал №16), «С17» (канал №17), если они сконфигурированы для работы в активном режиме;
  • при включенном из функциональной диаграммы драйвере CAN, UART1, UART2, Dallas 1-Wire, I2C, ИК при изменении электрического потенциала на соответствующем драйверу контакте контроллера.
Примечание: Информация об изменениях электрического потенциала на контактах «С7», «С8», «С9», «С13», «С16», «С17» контроллера, сконфигурированным работы в активном режиме, и изменениях электрического потенциала на контактах контроллера, соответствующих включенному драйверу CAN, UART и т.д., доступна пользователю через специальный регистр состояния контроллера - "Регистр контроля активности интерфейсов контроллера".

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

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

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

8 5 3 1.png

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

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

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

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

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

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

8 5 4 1.png

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

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

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

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

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

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

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

8 5 5 1.png

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

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

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

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


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

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

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

6 5 7 1.png

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

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

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

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


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

С выходом обновленного системного загрузчика контроллеров CANNY 5 nano версии 001005, при изготовлении устройств, каждому из них присваивается идентификационный номер их вендора (поставщика), который можно использовать в дальнейшем при разработке пользовательских диаграмм для дополнительной их защиты от несанкционированного использования.

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

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

Регистр Возвращаемые значения
Регистр идентификатора вендора устройства
0...0xFFFF = значение индивидуального идентификационного номера вендора;


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

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

6 5 9 1.png


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

CANNY 5 nano

CANNY 7

CANNY 5.2