Поделиться через


Управление питанием HID через SPI

В этой статье описываются сведения об управлении питанием узла и устройства через SPI.

Оптимизация питания, инициированная устройством

Устройство отвечает за оптимизацию использования энергии при отсутствии параметров питания от узла. Это позволяет устройству переходить в состояние наименьшего энергопотребления без вмешательства узла, обеспечивая при этом возможность своевременного взаимодействия устройства с узлом.

Чтобы правильно выполнить оптимизацию питания, инициированную устройством, выполните приведенные далее действия.

  • Устройство отвечает за сохранение своего состояния в режиме низкого энергопотребления.
  • Все оптимизации питания устройства должны быть прозрачными для узла и конечных пользователей.
  • Устройство должно своевременно отвечать на все запросы от узла. Устройство отвечает за своевременное подключение к более высоким режимам питания при взаимодействии с пользователем или системой.
  • Устройство должно уведомлять узел о любых изменениях входного отчета без потери. Никакие события не должны быть потеряны или удалены устройством.
  • Состояния питания, описанные в разделе Оптимизация питания, инициированная узлом , не применяются к оптимизации питания, инициированной устройством.

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

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

Оптимизация питания, инициированная узлом

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

Следующие состояния питания определяются для оптимизации питания, инициированной узлом, и их не следует путать с состояниями оптимизации питания, инициированными конкретными поставщиками устройств.

  • ON
  • SLEEP (устройство может разбудить систему)
  • OFF (устройство не может разбудить систему, питание может быть отключено)

В состоянии ON устройство ведет себя нормально и может использовать инициированные устройством оптимизации питания для снижения энергопотребления. Устройство отвечает за то, что находится в состоянии ON при инициировании связи HIDSPI после сброса узла.

Узел указывает устройству перейти в состояние низкого энергопотребления из состояния ON, выполнив определенную Set Power команду. Узел решит сделать это в соответствии с политикой питания операционной системы для устройства.

Узел переводит устройство в спящий режим, когда политика питания платформы позволяет устройству пробуждение либо самого, либо системы. Поддержка SLEEP является необязательной и указывается операционной системе узла через ACPI или способом, соответствующим шине для контроллера конкретной платформы. SET POWER SLEEP Получив команду, устройство должно немедленно перейти в состояние с низким энергопотреблением, в котором оно будет ожидать взаимодействия с пользователем и не должно утверждать прерывания, за исключением запуска пробуждения. Если устройство обнаруживает входные данные, оно утверждает прерывание и ожидает отправки команды узлом SET POWER ON . Устройство отвечает на SET POWER ON команду и возобновляет отправку входных данных на узел.

Узел переводит устройство в состояние OFF, когда обмен данными с устройством больше не требуется. AcPI (или контроллер для конкретной платформы) должен быть настроен для обеспечения холодного состояния OFF. После получения SET POWER OFF команды устройство сразу переходит в состояние с наименьшей мощностью и прекращает связь с узлом. Чтобы перевести устройство в состояние ON, узел инициирует сброс, после чего начинается процесс инициализации.

Для устройств с перечислением ACPI необходимо реализовать следующие состояния питания:

  • D0 — нормальное рабочее состояние
  • D2 — используется для состояния SLEEP, если поддерживается. Устройство должно указывать на поддержку пробуждения из этого состояния питания.
  • D3 — этот параметр следует использовать для состояния OFF. Устройство не должно указывать на поддержку пробуждения из этого состояния питания.

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

Сопоставления состояния D на уровне платформы не отображаются и не передаются на устройство.

Обязанности состояния управления узлом и устройством

В таблице ниже указаны свойства, которые должны следовать устройству и узлу:

Состояние электропитания Ответственность узла Ответственность за устройство
ON — При необходимости устранять прерывания и проблемы ввода-вывода на устройстве. — состояние on power после сброса
— обработка, но не предоставление ответа на SET POWER SLEEP команду или SET POWER OFF от узла.
СПАТЬ — инструктирует устройство о переходе в спящий режим.
— Установка устройства в состояние ON, если устройство оповещает через строку прерывания.
— Если узел должен взаимодействовать с устройством, он выдает SET POWER команду (в on) перед любой другой командой.
— Отмена утверждения линии прерывания, если она была задана, до того, как узел инициировал оптимизацию питания.
— отправка прерывания на узел для запроса обслуживания. Устройство не должно повторно выполнять прерывание до тех пор, пока узел не отправит SET POWER команду для входа в состояние ON, на которое устройство ответило. В этот момент устройство должно повторить прерывание, чтобы уведомить узел о любом отчете об ожидающих входных данных.
— Сократите нагрузку на питание до абсолютного минимума, чтобы поддерживать состояние и при необходимости поддерживать удаленный пробуждение.
— Отвечать на SET POWER ON команды от узла.
OFF — указание устройству перейти в состояние OFF.
— направьте платформу, чтобы поместить устройство в состояние OFF.
— переведите устройство в это состояние, когда оно не может проснуться.
— Отмена утверждения линии прерывания, если она была задана, до того, как узел инициировал оптимизацию питания.
— Устройство не сможет инициировать пробуждение или предоставлять прерывания в этом состоянии.
— Уменьшите притягивая мощность до абсолютного минимума. Он не требуется для поддержания состояния.
— Рассматривайте переход OFF —> ON так же, как и регулярное включение питания.

См. также раздел

Состояния питания устройства