Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Радиоустройство Bluetooth обеспечивает короткий диапазон связи между КОМПЬЮТЕРом и входным устройством, звуковым устройством или другим периферийным устройством, подключенным к Bluetooth. На современном резервном компьютере драйвер для радио Bluetooth должен управлять состояниями питания этого устройства в соответствии с рекомендациями, представленными в этой статье.
Радио Bluetooth
В системе Windows управление состоянием питания радиоустройства Bluetooth зависит от шины, к которой подключен радио. На аппаратных платформах, поддерживающих современную модель резервной питания, Windows поддерживает радио Bluetooth, подключенные к UARTs или универсальной последовательной шине (USB). Теоретически, модель драйвера транспортной шины Bluetooth, которая была представлена в Windows 8, должна поддерживать любую базовую шину связи. В настоящее время корпорация Майкрософт проверяет совместимость с современным режимом ожидания только для модулей Bluetooth, подключенных к UART или USB, или интегрированных в систему на микросхеме (SoC).
Как и в типичных стеках драйверов Windows, политика питания Bluetooth управляется одним владельцем политики питания (PPO) - в частности BthPort (bthport.sys). BthPort работает в сочетании с соответствующим драйвером для конкретного транспорта (UART или USB), чтобы соответствующим образом перевести радио в требуемое состояние питания. В случае USB это делается через выборочную приостановку USB через контроллер USB-узла. В случае UART дополнительный драйвер шины передачи данных, предоставленный поставщиком, координирует запросы от BthPort к радиоустройству Bluetooth через подключение к системно-специфичной шине. Для управления оборудованием драйвер использует сочетание внутриполосной связи с шиной, координацию с энергетическим модулем расширения (PEP) и/или внеполосную сигнализацию через выводы GPIO.
Радиоустройства Bluetooth обычно поддерживают несколько режимов низкой мощности, некоторые из которых могут быть уникальными для самого устройства. В стеке драйверов Bluetooth Windows требуется, чтобы радио Bluetooth поддерживало следующие три состояния питания устройства:
- Активный (D0)
- Спящий режим (D2)
- Выкл. (D3)
Ожидается, что управление питанием устройств для радио Bluetooth будет работать согласованно во всех состояниях питания системы. Радио Bluetooth не входит в специальный режим управления питанием, когда система входит в современный резервный режим. Вместо этого радио Bluetooth перемещается в состояние спящего режима (D2) на основе времени ожидания простоя, управляемых BthPort. Для поддержки пробуждения от современного резервного копирования на устройствах ввода HID, подключенных к Bluetooth, радио остается в состоянии спящего режима (D2) и вооружается для пробуждения. Только сопряженные устройства Bluetooth HID могут выводить систему из современного ждущего режима. Ожидается, что радио Bluetooth будет иметь очень низкое потребление энергии (менее одного милливатта) в состоянии спящего режима (D2), если устройства не подключены через каналы RF. Ожидается, что потребление энергии зависит от количества связанных устройств, типов этих устройств и их шаблонов действий.
Радио Bluetooth также должно поддерживать возможность отключения радио через пользовательский интерфейс управления радио. Этот элемент управления пользовательского интерфейса встроен в Windows. После отключения радио Bluetooth через этот пользовательский интерфейс радио переключится в состояние питания Off (D3), в котором ожидается, что он будет потреблять почти ноль ватт.
Предыдущие версии Windows, включая Windows 8 и Windows 8 RT, требуют, чтобы поставщик устройств Bluetooth предоставил библиотеку DLL для управления радио. Однако начиная с Windows 8.1 и Windows RT 8.1 все радио Bluetooth на современных резервных платформах должны поддерживать спецификацию Bluetooth Core версии 4.0. Таким образом, поставщикам больше не требуется предоставлять библиотеку DLL для реализации функции включения и выключения радио. Windows теперь обрабатывает эту функцию и игнорирует любую такую библиотеку DLL, даже если она присутствует.
Режимы управления питанием
С точки зрения программного обеспечения радио Bluetooth поддерживает три режима управления питанием независимо от шины, к которой подключен радио. Драйвер Bluetooth Windows владеет определением трех режимов и управляет переходами в эти режимы и из них. В следующей таблице описаны три режима питания радиосвязи Bluetooth.
Режим | Описание | Состояние питания устройства (Dx) | Среднее потребление энергии | Задержка перехода в активное состояние | Механизм перехода |
---|---|---|---|---|---|
Активен |
Радио Bluetooth активно взаимодействует с соответствующим устройством от имени приложения в операционной системе. |
D0 |
Зависит от сценария и связанных устройств. |
Не применимо |
Не применимо |
Спящий режим (в основном бездействующий цикл с низкой скоростью работы) |
Радио Bluetooth находится в состоянии низкой мощности. Система была связана с удаленным устройством Bluetooth, но между ними нет подключения. То есть устройство было отключено. Контроллер Bluetooth должен иметь возможность создавать сигнал пробуждения (в SoC, если радио не интегрировано) при поступлении новых данных с парного устройства. Или, радио Bluetooth не имеет ассоциаций. Или радио Bluetooth имеет активное подключение, которое простаивает (данные не отправляются и не принимаются), и соединение находится в пассивном режиме. |
D2 |
< 4 милливатта |
< 100 миллисекунда |
Драйвер Bluetooth Windows инициирует переход на уровень мощности D2 с помощью IRP уровня D2. Драйвер Bluetooth в Windows инициирует ожидание для пробуждения IRP в базовом драйвере транспортной шины. Если устройство Bluetooth подключено через USB, это состояние эквивалентно выборочной приостановке. (Выборочная приостановка Bluetooth требует, чтобы устройство было обозначено как способное пробуждаться удаленно и как самообеспечиваемое устройством в дескрипторе USB-устройства.) |
Выключено |
Радио Bluetooth полностью отключено (ноль ватт) или в состоянии низкой мощности, в котором не сохраняется радиосвязь. Радио Bluetooth не может создавать сигнал пробуждения к SoC в этом состоянии. Радио Bluetooth также не может выдавать или принимать радиосигналы— все компоненты RF отключены. |
D3 |
0 ватт |
< 2 секунды |
Драйвер Bluetooth Windows инициирует переход в состояние D3 с помощью IRP, относящегося к питанию D3. Драйвер транспортной шины или встроенное ПО ACPI системы может удалять линии питания или переключать линии GPIO для перехода радиоустройства Bluetooth в состояние Off (D3). |
Радио Bluetooth также поддерживает связанный режим, в котором радиопередатчик может быть выключен программным обеспечением в ответ на запрос пользователя. Когда радио включено для устройства Bluetooth, это устройство находится в состоянии "Активный (D0)" или "Спящий (D2)". Если радиомодуль устройства Bluetooth отключен пользователем, Windows прекращает работу Bluetooth посредством неожиданного удаления драйверов протоколов и их компонентов, а затем переводит стек радиоустройства в состояние выключено (D3).
Механизмы управления питанием программного обеспечения
Управление питанием Bluetooth-радиоустройства осуществляется через переходы состояния устройства Dx, инициируемые BthPort как владельцем политики энергопотребления (PPO). PPO решает, когда устройство переходит между активным режимом (D0), режимом сна (D2) и режимом ожидания (D3).
Если радио не имеет связанных устройств, Windows переходит устройство на D2 и сохраняет его в этом состоянии, пока пользователь не начнет процесс связывания. Если радио связано с одним или несколькими устройствами, драйвер Bluetooth Windows использует время ожидания простоя, чтобы решить, когда переключить радио Bluetooth с D0 на D2. Этот алгоритм использует шаблон использования Bluetooth операционной системой и приложениями для определения времени перехода радио в состояние D2. Например, радио переключится на D2 через несколько секунд после последнего нажатия клавиши Bluetooth, если нет других действий на радио Bluetooth.
Драйвер Bluetooth для Windows переводит устройство в состояние D0 в ответ на любое из следующих условий:
- Пользователь начинает процесс связывания.
- Приложение запрашивает использование функций Bluetooth.
- Радио Bluetooth создал запрос пробуждения на основе входных данных со связанного устройства.
В отличие от других устройств, радио Bluetooth следует тому же шаблону управления питанием во время современного режима ожидания (дисплей системы выключен), что и в обычном режиме работы системы, когда дисплей включен. Это связано с тем, что радио Bluetooth, как ожидается, будет доступно для пробуждения SoC при получении входных данных от связанного устройства в любое время во время современного ожидания. Например, если пользователь связал клавиатуру Bluetooth с компьютером с Windows, нажимая любую клавишу на клавиатуре, должно вывести компьютер из режима ожидания и включить дисплей.
Если устройства не связаны с радио, ожидается, что радио будет настроено на использование менее одного милливатта, когда оно находится в состоянии спящего режима (D2).
Если радио Bluetooth находится в состоянии Off (D3), ожидается, что оно потребляет почти ноль ватт.
Заметки о реализации драйвера
Если Bluetooth-радио подключено через UART или интегрировано в сам SoC, поставщик устройства Bluetooth должен реализовать и предоставить драйвер транспортной шины. Водитель автобуса отвечает за следующее:
- Преобразование запросов пакетов Bluetooth HCI от драйвера Windows Bluetooth (Bthmini.sys) в команды, отправляемые через транспортную шину на Bluetooth-радио.
- Переход радиоустройства Bluetooth в различные режимы управления питанием, которые соответствуют активному (D0), спящему режиму (D2) и выключенному состоянию (D3) устройства. Драйвер также реализует подпрограммы, обрабатывающие события управления питанием.
- Настройка радио Bluetooth для пробуждения SoC, когда устройство генерирует входные данные, и изменение состояния любых опциональных линий GPIO между SoC и радио Bluetooth, использующихся для управления питанием.
- Перечисление и управление питанием других устройств (таких как датчик FM или GPS-устройство), которые используют ту же шину, что и радио Bluetooth. Если другие устройства физически подключены к общей шине, но не предоставляются операционной системе, водитель транспортной шины должен полностью включить эти устройства.
Дополнительные сведения о реализации драйвера транспортной шины см. в руководстве по обработке управления питанием Bluetooth. Драйверы шины должны быть написаны с помощью Windows Driver Framework (WDF). Пример драйвера доступен в драйвере шины Bluetooth Serial HCI.
Чтобы включить управление питанием радио Bluetooth, водитель транспортной шины должен выполнить следующие действия:
- Включите поддержку управления энергопотреблением в режиме ожидания во время выполнения и обеспечение поддержки состояний энергопотребления устройства: активного состояния (D0), спящего режима (D2) и выключенного состояния (D3).
- Укажите драйверу Bluetooth Windows, что радиоустройство Bluetooth может сигнализировать о событиях пробуждения из состояния D2.
- Поддержка включения радиоустройства Bluetooth для пробуждения SoC и отключения сигнала пробуждения устройства Bluetooth к SoC. Эта поддержка может потребовать обработки одного или нескольких прерываний GPIO и выполнения методов пробуждения в WDF.
- Измените состояние любых необязательных линий GPIO от SoC к радиоустройству Bluetooth, когда устройство переходит между состояниями "Активный" (D0), "Сон" (D2) и "Выкл." (D3).
Если радиомодуль Bluetooth интегрирован в сам SoC, драйвер транспортной шины может зарегистрироваться в системе управления питанием Windows для передачи информации о состоянии питания радиомодуля Bluetooth в модуль управления питанием SoC (PEP). Для этого необходимо задать элемент IdleTimeoutType структуры WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS значением SystemManagedIdleTimeout.
Если радио Bluetooth подключено через USB, необходимо использовать встроенный стек драйверов Usb Bluetooth для Windows. Стек обрабатывает все операции управления питанием.
Управление радио
Состояние радиопередатчика Bluetooth привязано непосредственно к состоянию питания устройства. Ожидается, что радиопередатчик будет включен, когда радио находится в активном состоянии питания (D0) или спячего (D2). Радиопередатчик должен быть отключен при переходе радиосвязи в состояние Off (D3).
Когда пользователь отключает радиомодуль Bluetooth, Windows прекращает работу Bluetooth, отменяя ожидающие операции ввода-вывода и выгружая драйверы протокола и их дочерние элементы. Затем стек драйверов Bluetooth Windows выдает команду HCI_Reset контроллеру, чтобы сбросить радио в состояние по умолчанию. В состоянии по умолчанию контроллер не должен передавать или получать радиосигналы. Наконец, контроллер переходит в состояние off (D3).
В ответ на переход в состояние отключения (D3) драйвер транспортной шины должен перевести устройство Bluetooth в самое низкое состояние энергопотребления, используя методы, относящиеся к устройству. Обычной реализацией является изменение состояния линии GPIO с SoC на радио Bluetooth, чтобы отключить питание модуля Bluetooth. Альтернативная реализация состоит в требовании, чтобы встроенное ПО ACPI отключало питание модуля Bluetooth с помощью методов управления _PS0 и _PS3.
Когда пользователь включает радио Bluetooth, Windows переходит в состояние "Активный (D0"), повторно инициализирует радио, а затем повторно перечисляет дочерние драйверы протокола. При переходе в активный режим (D0) все необходимые линии ввода-вывода (GPIO) должны быть переключены в рамках обычной последовательности режима D0 для Bluetooth радио. Если встроенное ПО ACPI было использовано для отключения радиосвязи, оно должно восстановить мощность с помощью метода управления _PS0.
В рамках этой обычной последовательности водитель транспортного автобуса должен пометить устройство как внутренне подключённое устройство, задав ContainerId Bluetooth радиопередатчика для определенного значения GUID, {00000000-0000-000-ffff-ffffffffffff}. Это позволяет элементам пользовательского интерфейса радио Windows обнаруживать, что радио Bluetooth, предоставляемое драйвером транспортной шины, является встроенным в компьютер, а не внешним подключаемым радиоприемником, для которого управление радиом не требуется.
Поддерживаемые конфигурации питания оборудования
Конфигурация оборудования управления питанием для радиосвязи Bluetooth зависит от шины связи. Как правило, все радио Bluetooth, как ожидается, имеют следующие аппаратные функции управления питанием:
- Поддержка состояния Off (D3) в качестве средства отключения радио в ответ на запрос пользователя. Отключение радио переводит Bluetooth радио в состояние с низким энергопотреблением, что почти не потребляет электроэнергию.
- Механизм входа в режим пониженного энергопотребления (D2), в котором подключения остаются активными для связанных устройств, но активные передачи отсутствуют.
- Механизм, который генерирует прерывание для пробуждения, когда связанное устройство имеет данные для SoC, а SoC находится в состоянии пониженного энергопотребления, в котором шина, к которой подключено радиоустройство Bluetooth, не активна.
Каждая поддерживаемая шина (USB, UART и интеграция с SoC) для радиоустройства Bluetooth поддерживает все три основных функции управления питанием оборудования в предыдущем списке. Кроме того, каждый радио Bluetooth может иметь функции управления питанием для конкретного поставщика или устройства, но они находятся за пределами этой статьи.
Производителям оборудования Bluetooth рекомендуется внедрять функции энергосбережения, которые работают автономно в аппаратном обеспечении и не требуют дополнительных драйверов от поставщика в системе Windows. Поставщикам радио Bluetooth также рекомендуется реализовывать свои драйверы и программное обеспечение управления питанием таким образом, чтобы интегрировать платформенные различия в ACPI прошивку системы вместо кода драйвера устройства или файла .inf драйвера. Такой подход позволяет повторно использовать один пакет драйверов для устройства Bluetooth на дополнительных платформах, не требуя обновления исходного, двоичного или подписанного пакета установки драйвера.
Радио Bluetooth, подключенное через UART за пределами SoC
Если радио Bluetooth подключено через UART и физически расположено за пределами SoC, поставщик радио Bluetooth должен предоставить драйвер транспортной шины, предоставляющий радио Bluetooth и любые другие функции устройства (например, радио FM), которые используют тот же путь связи через UART. Драйвер шины также отвечает за управление любыми ресурсами GPIO, которые управляют энергопотреблением Bluetooth модуля и функцией пробуждения.
В отличие от других классов устройств, линии GPIO, управляющие питанием Bluetooth и пробуждением, управляются непосредственно водителем транспортного автобуса, а не абстрагируются методами управления ACPI. Эта схема управления является результатом дизайна драйвера многофункциональной шины, который определяет радиомодуль Bluetooth и другие функции, использующие один и тот же порт UART. В этом дизайне драйвер ACPI Windows, Acpi.sys, не загружается в стеки драйверов для Bluetooth и FM-радио, что делает невозможным использование выполнения метода управления ACPI в качестве способа реагирования на переход устройства в состояние Dx.
Если радио Bluetooth подключено к порту UART на SoC, системный интегратор должен использовать контакт на контроллере GPIO на SoC для управления подачей питания радио. В встроенном ПО ACPI этот пин-код должен быть назначен в качестве ресурса ввода-вывода GPIO для объекта устройства, представляющего корневое устройство драйвера транспорта. Контакт GPIO может быть подключен напрямую к радио Bluetooth, если оно поддерживает отключение устройства с помощью встроенной функции энергосбережения.
Если радиомодуль Bluetooth поддерживает отключение питания, то источник для радиомодуля может быть подключен к любой шине питания системы.
Если радио не поддерживает внутреннее управление питанием, которое управляется выводом GPIO, системный интегратор должен поместить радио Bluetooth на шину питания, которую можно переключать. Затем вывод GPIO из SoC подключается к оборудованию для управления питанием. В этом дизайне методы управления ACPI не могут использоваться для отслеживания ссылочных счетчиков или объединения состояния питания нескольких устройств, использующих один и тот же источник питания, поэтому радиомодуль Bluetooth должен быть изолирован на собственном переключаемом источнике питания.
Системный интегратор должен использовать дополнительный вывод на контроллере GPIO на SoC для получения прерываний пробуждения от радиомодуля Bluetooth. Прерывания на этом выводе должны иметь возможность пробуждать SoC из его самого низкого уровня энергопотребления. В некоторых конструкциях SoC такой пин-код называется всегда на GPIO, так как контроллер GPIO может обнаруживать прерывания на этом закреплении в любое время независимо от состояния питания SoC. Функция always-on может быть ограничена аппаратным набором пин-адресов GPIO на SoC или может быть настроена в встроенном ПО. Важно, чтобы системный интегратор просматривал этот дизайн с поставщиком SoC, чтобы убедиться, что прерывание пробуждения Bluetooth приведет к тому, что SoC выйдет из своего глубокого состояния питания бездействия. (В любое время во время современного резервного режима система находится в S0. Современные резервные системы не поддерживают S3.)
Когда все функции, перечисленные водителем транспортной шины, были отключены, и устройство транспортной шины, перечисленное ACPI, входит в D3, выключается пин-код GPIO always-on. Это происходит, когда радио для всех функций устройств, перечисленных водителем транспортной шины, был отключен пользователем.
Радио Bluetooth на USB
Если радио Bluetooth подключено к soC или ядру кремния через USB-шину, радио должно быть подключено из источника, отличного от USB-шины. В спецификации USB такое радио описано как имеющее собственное питание, и эта возможность должна быть отражена в дескрипторах USB устройства Bluetooth.
Аналогичным образом, оборудование USB-устройства должно рекламировать поддержку удаленного пробуждения, что позволяет Bluetooth-радио генерировать сигналы возобновления USB в полосе для пробуждения хост-контроллера USB. Возможность удаленного пробуждения также должна быть объявлена в дескрипторах USB-порта Bluetooth радио.
Радио Bluetooth должно поддерживать функции самостоятельного и удаленного пробуждения, чтобы оно могло входить в спящий режим (D2) и включить выборочную приостановку.
Если радио Bluetooth находится в состоянии спящего режима (D2) и данные с связанного устройства доступны для хоста, радио Bluetooth должно создать сигнал удаленного пробуждения, чтобы разбудить хост. Сигнал возобновления вне полосы с помощью линии GPIO к основному кремнию не поддерживается. Радио Bluetooth, в том числе его канал USB-подключения, как ожидается, будет потреблять менее одного милливатта питания в состоянии сна (D2).
Проблемы пробуждения
Ожидается, что радио Bluetooth сможет создать прерывание пробуждения при состоянии сна (D2). Прерывание пробуждения должно привести к включению SoC, даже если SoC находится в самом низком состоянии питания. В следующей таблице суммированы два механизма пробуждающего сигнала Bluetooth.
Шина подключения | Путь аппаратной сигнализации | Комментарии и заметки |
---|---|---|
UART (с водителем транспортной шины, предоставленным поставщиком) |
GPIO от Bluetooth-радио к SoC. |
Радио должно быть подключено к контакту GPIO, который может разбудить SoC из состояния минимального энергопотребления. |
USB |
Возобновление сигнала USB в полосе из состояния выборочной приостановки. |
Пробуждение посредством внеполосных GPIO сигналов не поддерживается. |
Тестирование и проверка
Поставщикам устройств Bluetooth рекомендуется проводить тестирование и проверку функционирования энергосбережения радиоустройства Bluetooth.
Переходы между состояниями "Активный" (D0), "Спящий режим" (D2) и "Выкл." (D3) можно легко наблюдать с помощью средства Xperf, как описано в других разделах.
Действия драйвера Bluetooth можно отслеживать с помощью инструментирования ETW, встроенного в Windows. Рекомендуется разработчику драйвера использовать инструментирование трассировки событий для Windows (ETW), чтобы отслеживать значительные изменения состояния управления питанием в драйвере и следить за этими изменениями с помощью средства Xperf или встроенного в Windows средства просмотра событий.
Если радио Bluetooth подключено через USB, встроенная программа Powercfg.exe может использоваться вместе с параметром командной строки /energy для проверки того, что радио входит в состояние спящего режима (D2) и приостановлено. Чтобы использовать служебную программу Powercfg.exe, выполните следующие действия.
- Откройте окно командной строки от имени администратора.
- Перейдите в корневой каталог диска (cd \).
- Введите команду powercfg.exe /energy.
- Дождитесь 60 секунд по умолчанию.
- Программа Powercfg.exe выводит количество ошибок и предупреждений в системе, как показано на следующем снимке экрана.
- После записи сводной информации в окно командной строки средство создает HTML-файл с именем Energy-report.html. Откройте файл и найдите условия ошибки или предупреждения с устройства USB Bluetooth. В следующем примере сводки сообщается, что устройство USB Bluetooth не ввело состояние спящего режима (D2) при простое.
Поставщики устройств Bluetooth, предоставляющие дополнительные сторонние драйверы профиля Bluetooth и приложения, должны убедиться, что их программное обеспечение поддерживает внезапное разъединение и позволяет инфраструктуре управления радиосвязью корректно отключать радио Bluetooth своевременно. Эти сценарии должны проверяться во время использования профиля или приложения. Например, для звуковых драйверов должна быть потоковая передача звука через Bluetooth при выключенном радио. Затем переключатель должен быть включен и аудиопоток перезапущен, чтобы убедиться, что он по-прежнему работает.
Контрольный список управления питанием Bluetooth
Системные интеграторы, поставщики радио bluetooth и поставщики SoC должны использовать следующий контрольный список, чтобы обеспечить совместимость своей системы управления питанием с Windows 8 и Windows 8.1:
Определите шину связи для радио Bluetooth в системном дизайне. Радио Bluetooth подключено через UART или подключено через USB.
Убедитесь, что радио Bluetooth поддерживает режим сна с низкой мощностью, который потребляет менее одного милливатта, если устройства не связаны.
Потребление энергии радио Bluetooth в спячем режиме может отличаться в зависимости от количества связанных устройств, которые в настоящее время присутствуют, но обычно не должны превышать пять милливатт в любое время.
Убедитесь, что радио Bluetooth поддерживает следующие основные необходимые возможности управления питанием:
- Поддержка состояния off (D3) в качестве способа, чтобы разрешить пользователю отключить радио.
- Механизм перехода в спящий режим с низким энергопотреблением (D2), с сохранением подключений к связанным устройствам, но без активных передач.
- Механизм пробуждения SoC, когда связанное устройство создает данные, а SoC находится в режиме низкого энергопотребления.
Если Bluetooth-модуль подключён через шину, отличную от USB (UART или интегрированную в SoC), поставщик должен разработать драйвер транспортной шины. Водитель автобуса должен выполнить следующее:
- Поддержка функций и требований, изложенных в Руководстве по управлению питанием для Bluetooth для Драйвера транспортной шины.
- Перевод запросов Bluetooth из драйвера Bluetooth Windows (Bthmini.sys) в команды на радио Bluetooth через шину UART или собственную внутреннюю шину SoC.
- Переключите радиоустройство Bluetooth в различные режимы управления питанием, которые сопоставляют с состояниями "Активный" (D0), "Спящий режим" (D2) и "Выкл." (D3). Драйвер также должен реализовать подпрограммы, которые обрабатывают IRP по управлению питанием устройств (Dx).
- Настройте радиомодуль Bluetooth так, чтобы он пробуждал SoC при генерации устройством входных данных, и измените состояние любых необязательных линий GPIO, которые подключают SoC к радиомодулю Bluetooth для управления питанием.
- Перечислите другие устройства (например, fm-передатчик), которые могут быть общими на радио Bluetooth.
- Используйте Windows Driver Framework (WDF) для разработки драйверов.
- Реализуйте его на основе драйвера шины Bluetooth Serial HCI.
Если радио Bluetooth подключено через USB, поставщик радио Bluetooth должен:
- Включите поддержку выборочной приостановки в радио.
- Убедитесь, что радио имеет возможности удаленного пробуждения и самостоятельной работы, заданные в дескрипторе USB-устройства.
- Убедитесь, что радио (включая USB-компоненты) потребляет менее одного милливатта.
Независимо от шины подключения, радио Bluetooth должно выполнять следующие действия для внутреннего подключенного радио:
- Убедитесь, что все радиочастотные компоненты отключены в ответ на команду HCI_Reset, отправляемую на радио, в рамках подготовки к отключению радио. Радио не должно быть способным передавать или получать радиосигналы.
- Введите самый низкий режим питания при установке состояния off (D3).
Если радио Bluetooth подключено через UART, системный интегратор должен подключить сигнал пробуждения от радио Bluetooth к закреплению GPIO на SoC, который может проснуть SoC из наименьшего состояния питания.
- SoC может требовать передачи сигналов пробуждения к ограниченному набору пин-кодов GPIO, которые предварительно настроены для постоянного включения.
- Кроме того, SoC может поддерживать настройку контакта GPIO как всегда активного контакта в системном микропрограммном обеспечении при загрузке.
Системный интегратор должен тестировать и проверять, что радио Bluetooth входит в состояние спящего режима (D2), если нет связанных устройств.
Системный интегратор должен проверить и убедиться, что радио Bluetooth входит в состояние спящего режима (D2), когда все связанные устройства не имеют активной передачи.
Системный интегратор должен проверить и убедиться, что радио Bluetooth может проснуть SoC из своего наименьшего состояния питания, когда радио находится в состоянии спящего режима (D2).
Системный интегратор должен проверить и убедиться, что радио Bluetooth не создает ложные сигналы пробуждения в спящем состоянии (D2).
Системный интегратор должен тестировать и проверять, что стороннее программное обеспечение, такое как дополнения, например, профили драйверов и приложения, правильно работает с управлением радиомодулем Bluetooth. Радио должно быть выключено и включено, пока стороннее программное обеспечение активно используется (например, для воспроизведения звука или передачи файла).