This documentation is out of date.

The new version of the documentation is here: https://cannylogic.com/docs

CANNY 7, System Registers

From CANNY Wiki
Revision as of 05:09, 10 December 2015 by MEGA (Talk | contribs) (Сброс контроллера)


Jump to: navigation, search

General description

System resources are divided into an address group of read registers and an address group of write registers. Referring to the given registers from the functional diagram, you can get demanding information for practical application about the current status of the controller, and control its operation mode. The list of system resources registers located in the "State of the controller" addresses directory CannyLab, which is available to the user via IO context menu "Address" type of the function blocks.

Reset controller

Reset controller occurs as a result of any of the three events: when power up the controller, with the soft reset from the functional diagram or on command by Watchdog. The controller is initialized after reset: the entire memory contents is cleared, input-output channels are resets to a neutral state, system software drivers are transferred to the initial state, power consumption is set to normal, a functional diagram execution starts from the beginning. The non-volatile memory content does not change at reset.

Information that reset occurred is available by accessing the address "Power On Detect Register"

Address Return Values
Power On Detect Register
1 = the current execution cycle is the first one, since a soft reset or restored power
0 = the current execution cycle is not the first one, since a soft reset or restored power

Forced reset of the controller is performed by writing a nonzero value to "Reset Register" address. In this case, the controller reset takes place immediately after the end of the execution cycle of functional diagram, in which there was such a record.

Address Expected values
Reset Register
1...65535 = start a forced controller reset
0 = value is ignored


Встроенный светодиод контроллера

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

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

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

6 5 3 1.png


Режим пониженного энергопотребления

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

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

Адрес Ожидаемые значения
Регистр установки режима пониженного энергопотребления
1...65535 = перейти в режим пониженного энергопотребления
0 = вернуться в режим нормального энергопотребления
Регистр установки масштаба времени режима пониженного энергопотребления
0...65535 = продолжительность фазы «сна» в миллисекундах после каждого цикла выполнения функциональной диаграммы

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

  • при изменении электрического потенциала на любом контакте контроллера соответствующем каналу, сконфигурированному как активный вход или счетчик импульсов;
  • при включенном из функциональной диаграммы любом из драйверов CAN, LIN, UART/RS232, ИК или Elita GSW при изменении электрического потенциала на соответствующем драйверу контакте контроллера.

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

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

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

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

Сторожевой таймер

Для исключения вхождения контроллера в бесконечный цикл вне функциональной диаграммы, что может произойти в случае его неправильного подключения или ошибок в системном программном обеспечении, предусмотрен сторожевой таймер - Watch Dog Timer (WDT).

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

Начиная с CannyLab версии 1.4, пользователь не имеет доступа к управлению WDT. Сторожевой таймер включен постоянно и его период составляет 1...2 секунды.

Если пауза в работе функциональной диаграммы превысит установленный период WDT, то произойдет автоматический сброс контроллера.

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

Время, требующееся контроллеру для выполнения функциональной диаграммы в реальных условиях эксплуатации зависит от числа и типов функциональных блоков присутствующих на диаграмме, числа задействованных драйверов входящих в состав системного программного обеспечения и их активности. На практике, цикл выполнения диаграммы CANNY 7 содержащей около 400 функциональных блоков и активно взаимодействующей с драйвером CAN продолжается приблизительно 9 мс.

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

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

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

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

6 5 6 1.png

Идентификатор устройства

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

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

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


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

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

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

6 5 7 1.png

Смотри также

CANNY 7