Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Urządzenie radiowe Bluetooth umożliwia komunikację RF z krótkim zakresem między komputerem a urządzeniem wejściowym, urządzeniem audio lub innym urządzeniem peryferyjnym podłączonym do połączenia Bluetooth. W nowoczesnym komputerze rezerwowym sterownik radiowy Bluetooth powinien zarządzać stanami zasilania tego urządzenia zgodnie z wytycznymi przedstawionymi w tym artykule.
Radio Bluetooth
W systemie Windows sposób zarządzania stanem zasilania urządzenia radiowego Bluetooth zależy od magistrali, z którą jest podłączony radio. Na platformach sprzętowych obsługujących nowoczesny model zasilania rezerwowego system Windows obsługuje urządzenia radiowe Bluetooth podłączone do sieci UARTs lub uniwersalnej magistrali szeregowej (USB). (Teoretycznie model sterownika magistrali transportowej Bluetooth wprowadzony w systemie Windows 8 powinien obsługiwać dowolną podstawową magistralę komunikacji. Obecnie firma Microsoft weryfikuje zgodność z nowoczesnym trybem wstrzymania tylko w przypadku urządzeń radiowych Bluetooth podłączonych do sieci UART lub USB lub są zintegrowane z systemem na mikroukładach (SoC).
Podobnie jak w typowych stosach sterowników systemu Windows, polityka zasilania radia Bluetooth jest zarządzana przez jedynego właściciela polityki zasilania (PPO), którym jest BthPort (bthport.sys). Usługa BthPort działa w połączeniu z odpowiednim sterownikiem specyficznym dla transportu (UART lub USB), aby odpowiednio napędzać radio do żądanego stanu zasilania. W przypadku portu USB odbywa się to za pośrednictwem selektywnego wstrzymania USB za pośrednictwem kontrolera hosta USB. W przypadku UART, dodatkowy sterownik magistrali transportowej dostarczony przez dostawcę koordynuje żądania od BthPort do urządzenia radiowego Bluetooth za pośrednictwem połączenia magistrali specyficznego dla systemu. Aby kontrolować sprzęt, sterownik używa kombinacji komunikacji magistrali pasmowej, koordynacji z wtyczką silnika zasilania (PEP) i/lub poza pasmem sygnalizujących za pośrednictwem wyprowadzeń GPIO.
Urządzenia radiowe Bluetooth zwykle obsługują wiele trybów niskiego zasilania, z których niektóre mogą być własnością samego urządzenia. Stos sterowników Bluetooth systemu Windows wymaga, aby urządzenie radiowe Bluetooth obsługiwało następujące trzy stany zasilania urządzenia:
- Aktywne (D0)
- Sen (D2)
- Wyłączone (D3)
Oczekuje się, że zarządzanie energią urządzenia dla radia Bluetooth będzie działać w spójny sposób we wszystkich stanach zasilania systemu. Urządzenie radiowe Bluetooth nie wprowadza specjalnego trybu zarządzania energią, gdy system wchodzi w tryb wstrzymania nowoczesnego. Zamiast tego radio Bluetooth jest przełączane do i z powrotem ze stanu Uśpienia (D2) na podstawie limitów czasu bezczynności, które są zarządzane przez BthPort. Aby zapewnić obsługę wznawiania z nowoczesnego trybu wstrzymania na urządzeniach wejściowych HID dołączonych przez Bluetooth, radio pozostaje w stanie Uśpienie (D2) i jest uzbrojony w pobudki. Tylko sparowane urządzenie Bluetooth HID może wznawiać system podczas nowoczesnej rezerwy. Oczekuje się, że radio Bluetooth będzie miało bardzo niskie zużycie energii — mniej niż jeden miliwat — w stanie Uśpienie (D2), jeśli żadne urządzenia nie są podłączone za pośrednictwem łączy RF. Można oczekiwać, że zużycie energii będzie się różnić w zależności od liczby skojarzonych urządzeń, typów tych urządzeń i ich wzorców aktywności.
Radio Bluetooth musi również obsługiwać możliwość wyłączania radia za pośrednictwem interfejsu użytkownika zarządzania radiem. Ta kontrolka interfejsu użytkownika jest wbudowana w system Windows. Po wyłączeniu urządzenia radiowego Bluetooth za pośrednictwem tego interfejsu użytkownika radio jest przenoszone do stanu zasilania Wyłączone (D3), w którym oczekuje się, że zużywa prawie zero watów.
Poprzednie wersje systemu Windows, w tym Windows 8 i Windows 8 RT, wymagają od dostawcy urządzenia Bluetooth zapewnienia biblioteki DLL sterowania radiowego. Jednak począwszy od systemów Windows 8.1 i Windows RT 8.1, wszystkie urządzenia radiowe Bluetooth na nowoczesnych platformach rezerwowych powinny obsługiwać specyfikację Bluetooth Core w wersji 4.0. W związku z tym dostawcy nie muszą już dostarczać biblioteki DLL oprogramowania w celu zaimplementowania funkcji sterowania włączonej/wyłączonej funkcji radiowej. System Windows obsługuje teraz tę funkcję i zignoruje dowolną taką bibliotekę DLL, nawet jeśli istnieje.
Tryby zarządzania energią
Z punktu widzenia oprogramowania radio Bluetooth obsługuje trzy tryby zarządzania energią, niezależnie od magistrali, z którą jest podłączony radio. Sterownik Bluetooth systemu Windows jest właścicielem definicji trzech trybów i zarządza przejściami do i z tych trybów. W poniższej tabeli opisano trzy tryby zasilania radiowego Bluetooth.
Tryb | Opis | Stan zasilania urządzenia (Dx) | Średnie zużycie energii | Opóźnienie wyjścia do stanu aktywnego | Mechanizm przejścia |
---|---|---|---|---|---|
Aktywna |
Radio Bluetooth aktywnie komunikuje się ze skojarzonym urządzeniem w imieniu aplikacji w systemie operacyjnym. |
D0 |
Różni się w zależności od scenariusza i skojarzonych urządzeń. |
N/A |
N/A |
Sen (głównie w trybie bezczynności z cyklem pracy o niskim współczynniku) |
Radio Bluetooth jest w trybie oszczędzania energii. System został sparowany ze zdalnym urządzeniem Bluetooth, ale nie ma połączenia między nimi. Oznacza to, że urządzenie zostało odłączone. Kontroler Bluetooth musi mieć możliwość wygenerowania sygnału wznawiania (do SoC, jeśli urządzenie radiowe nie jest zintegrowane) po nadejściu nowych danych ze sparowanego urządzenia. Albo radio Bluetooth nie ma skojarzeń. Lub radio Bluetooth ma aktywne połączenie, które jest bezczynne (bez wysyłania/odbierania danych), a link jest w trybie nasłuchiwania. |
D2 |
< 4 miliwaty |
< 100 milisekund |
Sterownik Bluetooth systemu Windows inicjuje przejście D2 przy użyciu protokołu IRP zasilania D2. Sterownik Bluetooth systemu Windows inicjuje oczekujące żądanie wybudzenia IRP w bazowym sterowniku magistrali transportowej. Jeśli urządzenie Bluetooth jest podłączone za pośrednictwem portu USB, ten stan jest odpowiednikiem selektywnego wstrzymania. (Selektywne wstrzymanie Bluetooth wymaga, aby urządzenie było oznaczone jako zdolne do zdalnego wzbudzania i z własnym zasilaniem w deskryptorze urządzenia USB). |
Wyłączony |
Radio Bluetooth jest całkowicie wyłączone (zero watów) lub w stanie niskiego zasilania, w którym nie jest zachowywany żaden stan radiowy. Radio Bluetooth nie jest w stanie wygenerować sygnału wybudzenia do SoC w tym stanie. Radio Bluetooth nie jest również w stanie emitować ani odbierać żadnych sygnałów radiowych — wszystkie składniki RF są wyłączone. |
D3 |
0 watów |
< 2 sekundy |
Sterownik Bluetooth systemu Windows inicjuje przejście D3 przy użyciu protokołu IRP zasilania D3. Sterownik magistrali transportowej lub systemowe oprogramowanie układowe ACPI może usunąć zasilanie lub przełączać linie GPIO, aby przenieść sprzęt radiowy Bluetooth do stanu Wyłączone (D3). |
Radio Bluetooth obsługuje również tryb skojarzony, w którym nadajnik radiowy może być wyłączony przez oprogramowanie w odpowiedzi na żądanie od użytkownika. Kiedy radio jest włączone dla urządzenia Bluetooth, urządzenie jest w stanie Aktywnym (D0) lub Uśpienia (D2). Gdy użytkownik wyłącza radio urządzenia Bluetooth, system Windows zatrzymuje działanie Bluetooth przez niespodziewane usunięcie sterowników protokołu i ich elementów podrzędnych, a następnie przechodzi z radiowym stosem urządzenia do stanu Wyłączone (D3).
Mechanizmy zarządzania energią oprogramowania
Zarządzanie energią urządzenia radiowego Bluetooth jest sterowane przejściami stanów Dx urządzenia, które inicjuje BthPort jako właściciel polityki zasilania (PPO). PPO decyduje, kiedy urządzenie przechodzi między stanami Aktywne (D0), Tryb uśpienia (D2) i Wyłączone (D3).
Gdy radio nie ma żadnych skojarzonych urządzeń, system Windows przenosi urządzenie do D2 i utrzymuje je w tym stanie, dopóki użytkownik nie rozpocznie procesu parowania. Gdy radio jest skojarzone z co najmniej jednym urządzeniem, sterownik Bluetooth systemu Windows używa limitu czasu bezczynności, aby zdecydować, kiedy przenieść radio Bluetooth z D0 do D2. Ten algorytm używa wzorca użycia połączenia Bluetooth przez system operacyjny i aplikacje, aby określić, kiedy przenieść radio do stanu D2. Na przykład radio przechodzi do D2 kilka sekund po naciśnięciu ostatniego na klawiaturze Bluetooth, jeśli nie ma innej aktywności w radiu Bluetooth.
Sterownik Bluetooth systemu Windows przenosi urządzenie do D0 w odpowiedzi na dowolny z następujących elementów:
- Użytkownik rozpoczyna proces parowania.
- Aplikacja żąda użycia funkcji Bluetooth.
- Urządzenie radiowe Bluetooth wygenerowało żądanie wznawiania na podstawie danych wejściowych ze skojarzonego urządzenia.
W przeciwieństwie do innych urządzeń, radio Bluetooth jest zgodne z tym samym wzorcem zarządzania energią podczas nowoczesnego wstrzymania (system jest wyświetlany), że działa normalnie, a wyświetlacz jest włączony. Wynika to z tego, że radio Bluetooth ma być dostępne, aby wznawiać SoC w przypadku otrzymania danych z powiązanego urządzenia w dowolnym momencie podczas nowoczesnego stanu wstrzymania. Jeśli na przykład użytkownik skojarzył klawiaturę Bluetooth z komputerem z systemem Windows, naciśnięcie dowolnego na klawiaturze powinno wznawiać komputer z nowoczesnego trybu wstrzymania i włączyć wyświetlacz.
Jeśli żadne urządzenia nie są skojarzone z radiem, urządzenie radiowe ma być skonfigurowane do zużywania mniej niż jednego miliwata, gdy jest w stanie Uśpienie (D2).
Gdy radio Bluetooth jest w stanie Wyłączone (D3), oczekuje się, że zużywa prawie zero watów.
Uwagi dotyczące implementacji sterowników
Jeśli urządzenie radiowe Bluetooth jest połączone za pośrednictwem protokołu UART lub zintegrowane z samym SoC, dostawca urządzenia Bluetooth musi zaimplementować i dostarczyć sterownik magistrali transportowej. Kierowca autobusu transportowego jest odpowiedzialny za następujące kwestie:
- Tłumaczenie żądań pakietów Bluetooth HCI ze sterownika Bluetooth systemu Windows (Bthmini.sys) na polecenia wysyłane przez magistralę transportową do radia Bluetooth.
- Przełączanie urządzenia radiowego Bluetooth do różnych trybów zarządzania energią, które odpowiadają stanom zasilania urządzenia: Aktywne (D0), Stan uśpienia (D2), i Wyłączone (D3). Sterownik implementuje również procedury obsługujące zdarzenia zarządzania energią.
- Skonfigurowanie radia Bluetooth, aby obudziło SoC, gdy urządzenie generuje dane wejściowe, oraz zmiana stanu opcjonalnych linii GPIO z SoC na radio Bluetooth, które są używane do zarządzania energią.
- Wyliczanie i zarządzanie energią innych urządzeń (takich jak nadajnik FM lub urządzenie GPS), które korzystają z tej samej magistrali co radio Bluetooth. Jeśli inne urządzenia są fizycznie podłączone do udostępnionej magistrali, ale nie są widoczne dla systemu operacyjnego, sterownik magistrali transportowej musi całkowicie wyłączyć te urządzenia.
Aby uzyskać szczegółowe informacje na temat implementowania sterownika magistrali transportowej, zobacz Transport Bus Driver for Bluetooth Power Control Handling Guidelines (Wytyczne dotyczące obsługi sterowania energią przez bluetooth). Sterowniki autobusów transportowych muszą być napisane przy użyciu struktury Windows Driver Framework (WDF). Przykładowy sterownik jest dostępny w temacie Bluetooth Serial HCI Bus Driver (Sterownik magistrali szeregowej Bluetooth HCI).
Aby włączyć zarządzanie energią radiową Bluetooth, sterownik magistrali transportowej musi wykonać następujące czynności:
- Włącz obsługę zarządzania energią w czasie wykonywania bezczynności i uwidaczniaj obsługę stanów zasilania urządzeń aktywnych (D0), uśpienia (D2) i wyłączonego (D3).
- Pokaż sterownikowi Bluetooth w systemie Windows, że urządzenie radiowe Bluetooth może sygnalizować zdarzenia wybudzania ze stanu D2.
- Obsługa uzbrajania urządzenia radiowego Bluetooth w celu uruchomienia SoC i rozbrojenia sygnału przebudzenia urządzenia Bluetooth do SoC. Ta obsługa może wymagać obsługi co najmniej jednego przerwania GPIO i wykonywania metod wznawiania w ramach WDF.
- Zmień stan wszystkich opcjonalnych linii GPIO z SoC na urządzenie radiowe Bluetooth, gdy urządzenie przechodzi między stanami Aktywny (D0), Uśpienie (D2) i Wyłączone (D3).
Jeśli radio Bluetooth jest zintegrowane z samym SoC, sterownik magistrali transportowej może zarejestrować się w platformie zarządzania energią systemu Windows, aby komunikować stan zasilania radia Bluetooth do modułu zarządzania energią specyficznego dla SoC (PEP). Jest to realizowane przez ustawienie elementu członkowskiego IdleTimeoutType struktury WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS na wartość SystemManagedIdleTimeout.
Jeśli urządzenie radiowe Bluetooth jest podłączone za pośrednictwem portu USB, należy użyć wbudowanego stosu sterowników Bluetooth USB systemu Windows. Stos obsługuje wszystkie operacje zarządzania energią.
Zarządzanie urządzeniami radiowymi
Stan nadajnika radiowego Bluetooth jest powiązany bezpośrednio ze stanem zasilania urządzenia. Oczekuje się, że nadajnik radiowy będzie włączony, gdy radio znajduje się w stanie zasilania Aktywny (D0) lub Uśpienie (D2). Nadajnik radiowy musi być wyłączony, gdy radio przechodzi do stanu Off (D3).
Gdy użytkownik wyłącza radio Bluetooth, system Windows przerywa działanie Bluetooth, anulując oczekujące operacje I/O i zwalniając sterowniki protokołu oraz ich komponenty. Następnie stos sterowników Bluetooth systemu Windows wydaje HCI_Reset kontrolerowi, aby zresetować urządzenie radiowe do jego domyślnego stanu. W stanie domyślnym kontroler nie może przesyłać ani odbierać żadnych sygnałów radiowych. Na koniec kontroler przechodzi do stanu Wyłączone (D3).
W odpowiedzi na przejście na wyłączone (D3) kierowca autobusu transportu musi wyłączyć urządzenie Bluetooth do najniższego stanu zasilania przy użyciu metod specyficznych dla urządzenia. Typową implementacją jest zmiana stanu linii GPIO z SoC na radio Bluetooth, aby wyłączyć zasilanie modułu Bluetooth. Innym sposobem implementacji jest wymaganie, aby oprogramowanie układowe ACPI usuwało zasilanie z modułu Bluetooth za pomocą metod sterowania _PS0 i _PS3.
Gdy użytkownik włącza radio Bluetooth, system Windows przenosi radio do stanu Aktywne (D0), ponownie inicjuje radio, a następnie ponownie wylicza sterowniki protokołu podrzędnego. Gdy radio przechodzi do trybu Aktywnego (D0), jakiekolwiek wymagane linie GPIO muszą być przełączone w ramach normalnej sekwencji D0 dla radia Bluetooth. Jeśli oprogramowanie układowe ACPI zostało użyte do wyłączenia radia, ono musi przywrócić zasilanie przy użyciu metody sterowania _PS0.
W ramach tego normalnego przebiegu kierowca autobusu transportowego musi oznaczyć urządzenie jako urządzenie połączone wewnętrznie, ustawiając identyfikator ContainerId radia Bluetooth na określoną wartość identyfikatora GUID, {00000000-0000-0000-ffff-ffffffffffff}. Dzięki temu elementy interfejsu użytkownika radiowego systemu Windows wykrywają, że radio Bluetooth uwidocznione przez kierowcę magistrali transportowej jest wewnętrzne dla komputera, a nie zewnętrznie dołączone radio, dla którego sterowanie radiowe nie jest odpowiednie.
Obsługiwane konfiguracje zasilania sprzętowego
Konfiguracja sprzętu zarządzania energią dla radia Bluetooth zależy od magistrali komunikacyjnej. Ogólnie rzecz biorąc, oczekuje się, że wszystkie urządzenia radiowe Bluetooth mają następujące funkcje zarządzania energią sprzętową we wspólnym zakresie:
- Obsługa stanu Wyłączone (D3) jako środek wyłączania radia w odpowiedzi na żądanie użytkownika. Wyłączenie radia powoduje, że radio Bluetooth jest w stanie niskiego zasilania, który jest prawie zero watów.
- Mechanizm wprowadzania stanu uśpienia o niskiej mocy (D2), w którym połączenia są utrzymywane z powiązanymi urządzeniami, ale nie ma aktywnych transferów.
- Mechanizm generowania przerwania wybudzającego, gdy skojarzone urządzenie ma dane dla SoC, a SoC jest w stanie niskiego zużycia energii, w którym magistrala, do której dołączone jest urządzenie radiowe Bluetooth, nie jest obecnie aktywna.
Każda z obsługiwanych magistrali (USB, UART i integracja z soC) dla urządzenia radiowego Bluetooth obsługuje wszystkie trzy podstawowe funkcje zarządzania energią sprzętową na powyższej liście. Ponadto każde urządzenie radiowe Bluetooth może mieć funkcje zarządzania energią specyficzną dla dostawcy lub urządzenia, ale znajdują się one poza zakresem tego tematu.
Dostawcy radia Bluetooth są zachęcani do implementowania funkcji zarządzania energią stanowiących wartość dodaną w sposób samodzielny w sprzęcie tak, aby nie wymagało dodatkowego oprogramowania sterowników od dostawcy w systemie Windows. Dostawcy radia Bluetooth są również zachęcani do implementowania sterowników i oprogramowania do zarządzania energią w sposób, który abstrahuje różnice specyficzne dla platformy w systemowym oprogramowaniu układowym ACPI zamiast w kodzie sterownika urządzenia lub pliku inf sterownika. Takie podejście umożliwia ponowne użycie jednego pakietu sterowników dla urządzenia Bluetooth na dodatkowych platformach bez konieczności aktualizowania źródła sterownika, pliku binarnego lub podpisanego pakietu instalacyjnego.
Radio Bluetooth, które jest połączone przez UART poza modułem SoC
Jeśli radio Bluetooth jest podłączone za pośrednictwem UART i znajduje się fizycznie poza SoC, dostawca radia Bluetooth musi zapewnić sterownik magistrali transportowej, który uwidacznia radio Bluetooth i inne funkcje urządzenia (na przykład radio FM), które współużytkuje tę samą ścieżkę komunikacji przez UART. Sterownik magistrali jest również odpowiedzialny za zarządzanie wszelkimi zasobami GPIO, które kontrolują zużycie energii przez radio Bluetooth i jego zdolność do wznawiania działania.
W przeciwieństwie do innych klas urządzeń, linie GPIO kontrolujące zasilanie i wznawianie Bluetooth są zarządzane bezpośrednio przez sterownik magistrali transportowej zamiast być abstrahowane przez metody sterowania ACPI. Ten schemat sterowania jest wynikiem projektowania sterowników magistrali wielofunkcyjnej, który wylicza radio Bluetooth i inne funkcje, które współużytkują ten sam port UART. W tym projekcie sterownik WINDOWS ACPI, Acpi.sys, nie jest ładowany w stosach sterowników dla Bluetooth i radia FM, co uniemożliwia użycie wykonywania metody sterowania ACPI jako sposób reagowania na przejście stanu Dx urządzenia.
Gdy radio Bluetooth jest podłączone do portu UART w SoC, integrator systemu musi użyć pinezki na kontrolerze GPIO na SoC, aby sterować zasilaniem radiowym. W oprogramowaniu układowym ACPI ten pin musi być przypisany jako zasób GPIO I/O do obiektu urządzenia, który reprezentuje urządzenie nadrzędne sterownika magistrali transportowej. Pin GPIO można podłączyć bezpośrednio do radia Bluetooth, jeśli obsługuje wyłączanie urządzenia z wewnętrznym zarządzaniem zasilaniem.
Jeśli radio Bluetooth obsługuje zarządzanie energią, źródło energii dla radia Bluetooth może być podłączone do dowolnej szyny zasilania systemu.
Jeśli radio nie obsługuje wewnętrznego zasilania, które jest kontrolowane przez wyprowadzenie GPIO, integrator systemu musi umieścić radio Bluetooth na szynie zasilającej, która jest przełączana. Wyprowadzenie GPIO z SoC jest następnie podłączane do sprzętu przełączającego zasilanie. W tym projekcie metody sterowania ACPI nie mogą być używane do śledzenia liczby odwołań ani do agregowania stanu zasilania wielu urządzeń współużytkujących tę samą szynę zasilania, więc radio Bluetooth musi być odizolowane na własnej przełączalnej szynie zasilania.
Integrator systemowy musi użyć dodatkowego pinu na kontrolerze GPIO na SoC, aby odbierać przerwania wybudzania z radia Bluetooth. Przerwania na tym pinie muszą być w stanie obudzić SoC z najniższego poziomu zasilania. W niektórych projektach SoC takie wyprowadzenie jest określane jako zawsze włączone wyprowadzenie GPIO, ponieważ kontroler GPIO może wykrywać przerwania w tym wyprowadzeniu przez cały czas, niezależnie od stanu zasilania SoC. Funkcja always-on może być ograniczona w sprzęcie do określonego zestawu wyprowadzeń GPIO na SoC lub może być konfigurowalna w oprogramowaniu układowym. Ważne jest, aby integrator systemu przejrzeł ten projekt z dostawcą SoC, aby upewnić się, że przerwanie wznawiania radia Bluetooth spowoduje, że SoC zakończy swój najgłębszy bezczynny stan zasilania. (Przez cały czas trwania nowoczesnego wstrzymania system pozostaje w stanie S0. Systemy z nowoczesnym wstrzymaniem nie obsługują S3.)
Gdy wszystkie funkcje wyliczane przez sterownik magistrali transportowej zostały wyłączone, a wyliczone urządzenie magistrali transportowej przez ACPI przechodzi do stanu D3, zawsze aktywny pin GPIO można wyłączyć. Dzieje się tak, gdy urządzenia radiowe dla wszystkich funkcji urządzeń wyliczonych przez kierowcę magistrali transportowej zostały wyłączone przez użytkownika.
Bluetooth radio na USB
Jeśli radio Bluetooth jest podłączone do SoC lub rdzenia krzemu przez magistralę USB, radio musi być zasilane ze źródła innego niż magistrala USB. W specyfikacji USB takie radio jest opisywane jako samozasilane, a ta funkcja musi być zgłoszona w deskryptorach USB urządzenia Bluetooth.
Podobnie sprzęt urządzenia USB musi anonsować obsługę zdalnego wznawiania, co jest możliwością dla radia Bluetooth do generowania sygnału USB w pasmie sygnału w celu wybudzenia kontrolera hosta USB. Możliwość zdalnego wznawiania musi być również anonsowana w deskryptorach USB radia Bluetooth.
Radio Bluetooth musi obsługiwać zarówno funkcje z własnym zasilaniem, jak i zdalnego wybudzania, aby mogło wejść w stan uśpienia (D2) i włączyć selektywne zawieszenie.
Jeśli moduł radiowy Bluetooth znajduje się w stanie uśpienia (D2), a dane z powiązanego urządzenia są dostępne dla hosta, moduł radiowy Bluetooth musi wygenerować sygnał zdalnego wybudzenia, aby wznowić działanie hosta. Sygnał wznowienia poza pasmem przy użyciu linii GPIO do rdzenia krzemowego nie jest obsługiwany. Radio Bluetooth, w tym jego obwód połączenia USB, oczekuje się, że zużywa mniej niż jeden miliwat zasilania w stanie Uśpienia (D2).
Budzą obawy
Oczekuje się, że radio Bluetooth będzie w stanie wygenerować przerwanie budzenia w stanie uśpienia (D2). Przerwanie wybudzenia musi spowodować uruchomienie SoC, nawet jeśli SoC jest w najniższym stanie energetycznym. Poniższa tabela zawiera podsumowanie dwóch mechanizmów sygnalizowania Bluetooth.
Magistrala połączeń | Ścieżka sygnału sprzętowego | Komentarze i notatki |
---|---|---|
UART (z dostarczonym przez dostawcę sterownikiem magistrali transportowej) |
GPIO z radia Bluetooth do SoC. |
Urządzenie radiowe musi być podłączone do wyprowadzenia GPIO, które może wybudzić SoC z najniższego stanu zużycia energii. |
USB |
Wznowienie sygnalizacji USB w paśmie po selektywnym wstrzymaniu. |
Funkcja gpIO poza pasmem nie jest obsługiwana. |
Testowanie i walidacja
Dostawcy urządzeń Bluetooth są zachęcani do testowania i weryfikowania operacji zarządzania energią urządzenia radiowego Bluetooth.
Przejścia między stanami Aktywny (D0), Uśpienie (D2) i Wyłączone (D3) można łatwo zaobserwować przy użyciu narzędzia Xperf, zgodnie z opisem w innych sekcjach.
Działania sterowników Bluetooth można monitorować przy użyciu instrumentacji ETW wbudowanej w system Windows. Deweloper sterowników jest zachęcany do używania instrumentacji śledzenia zdarzeń systemu Windows (ETW) w celu uwidocznienia znaczących zmian stanu zarządzania energią w sterowniku i obserwowania ich za pomocą narzędzia Xperf lub wbudowanego Podglądu zdarzeń systemu Windows.
Jeśli urządzenie radiowe Bluetooth jest podłączone za pośrednictwem portu USB, wbudowane narzędzie Powercfg.exe może być używane razem z /energy opcji wiersza polecenia, aby sprawdzić, czy radio wchodzi w stan uśpienia (D2) i jest zawieszone. Aby użyć narzędzia Powercfg.exe:
- Otwórz okno wiersza polecenia jako administrator.
- Przejdź do katalogu głównego dysku (cd \).
- Wprowadź polecenie powercfg.exe /energy.
- Poczekaj domyślnie 60 sekund.
- Narzędzie Powercfg.exe zwróci liczbę błędów i warunków ostrzegawczych w systemie, jak pokazano na poniższym zrzucie ekranu.
- Gdy narzędzie zapisuje informacje podsumowania w oknie wiersza polecenia, generuje plik HTML o nazwie Energy-report.html. Otwórz plik i wyszukaj warunki błędu lub ostrzeżenia z urządzenia Bluetooth USB. Poniższe przykładowe podsumowanie informuje, że urządzenie Bluetooth USB nie wprowadziło stanu uśpienia (D2), gdy jest w stanie bezczynności.
Dostawcy urządzeń Bluetooth, którzy zapewniają dodatkowe sterowniki i aplikacje profilów Bluetooth innych firm, muszą sprawdzić, czy ich oprogramowanie obsługuje niespodziewane usuwanie i umożliwia infrastrukturze zarządzania radiem prawidłowe oraz szybkie wyłączenie radia Bluetooth. Te scenariusze należy zweryfikować, gdy profil lub aplikacja jest używana. Na przykład w przypadku sterowników audio powinno istnieć przesyłanie strumieniowe audio Bluetooth, gdy radio jest wyłączone. Następnie należy włączyć radio i ponownie uruchomić strumień audio, aby sprawdzić, czy nadal działa.
Lista kontrolna zarządzania energią bluetooth
Integratorzy systemów, dostawcy radia Bluetooth i dostawcy SoC powinni użyć następującej listy kontrolnej, aby upewnić się, że ich projekt zarządzania energią systemową jest zgodny z systemami Windows 8 i Windows 8.1:
Określ magistralę komunikacji dla radia Bluetooth w projekcie systemu. Urządzenie radiowe Bluetooth jest podłączone za pośrednictwem protokołu UART lub podłączone za pośrednictwem portu USB.
Upewnij się, że urządzenie radiowe Bluetooth obsługuje tryb uśpienia o niskiej mocy, który zużywa mniej niż jeden miliwat, gdy żadne urządzenia nie są skojarzone.
Zużycie energii przez radio Bluetooth w trybie uśpienia może się różnić w zależności od liczby aktualnie obecnych urządzeń, ale zwykle nie powinno przekraczać pięciu miliwatów w dowolnym momencie.
Upewnij się, że radio Bluetooth obsługuje następujące podstawowe wymagane możliwości zarządzania energią:
- Obsługa stanu Wyłączone (D3) w celu umożliwienia użytkownikowi wyłączenia radia.
- Mechanizm wprowadzenia stanu uśpienia o niskiej mocy (D2), w którym połączenia są utrzymywane z skojarzonymi urządzeniami, ale nie ma aktywnych transferów.
- Mechanizm budzenia SoC, gdy skojarzone urządzenie generuje dane, a SoC jest w stanie niskiego zużycia energii.
Jeśli radio Bluetooth jest podłączone za pośrednictwem magistrali innej niż USB (UART lub zintegrowanej z SoC), dostawca radia Bluetooth musi opracować kierowcę magistrali transportowej. Kierowca autobusu transportowego musi wykonać następujące czynności:
- Obsługa funkcji i wymagań opisanych w temacie Transport Bus Driver for Bluetooth Power Control Handling Guidelines (Wytyczne dotyczące obsługi sterowania energią przez bluetooth).
- Przetłumacz żądania Bluetooth z sterownika Bluetooth systemu Windows (Bthmini.sys) na polecenia do radia Bluetooth przez magistralę UART lub zastrzeżoną wewnętrzną magistralę SoC.
- Przełącz urządzenie radiowe Bluetooth do różnych trybów zarządzania energią odpowiadających stanom Aktywne (D0), Uśpienie (D2) i Wyłączone (D3). Sterownik musi również implementować procedury obsługujące żądania I/O (Dx) zarządzania energią urządzenia.
- Skonfiguruj radio Bluetooth, aby wznawiać soC, gdy urządzenie generuje dane wejściowe, i zmienić stan wszystkich opcjonalnych linii GPIO, które łączą SoC z radiem Bluetooth na potrzeby zarządzania energią.
- Wyliczanie innych urządzeń (na przykład nadajnika FM), które mogą być udostępniane w radiu Bluetooth.
- Użyj struktury sterowników systemu Windows (WDF) do opracowywania sterowników.
- Należy zostać zaimplementowane na podstawie sterownika magistrali szeregowej Bluetooth HCI.
Jeśli urządzenie radiowe Bluetooth jest podłączone za pośrednictwem portu USB, dostawca radia Bluetooth musi:
- Włącz obsługę selektywnego wstrzymania w radiu.
- Upewnij się, że w deskryptorze urządzenia USB radia są włączone funkcje zdalnego wznawiania i samodzielnego zasilania.
- Upewnij się, że radio (w tym składniki USB) zużywa mniej niż jeden miliwat.
Niezależnie od magistrali połączeń, radio Bluetooth musi wykonać następujące czynności dla wewnętrznie podłączonego radia:
- Upewnij się, że wszystkie składniki RF są wyłączone w odpowiedzi na polecenie HCI_Reset wysyłane do radia w ramach przygotowań do wyłączenia radia. Radio nie powinno być w stanie przesyłać ani odbierać żadnych sygnałów radiowych.
- Wprowadź najniższy tryb zasilania po ustawieniu stanu Wyłączone (D3).
Jeśli radio Bluetooth jest podłączone przez UART, integrator systemu musi połączyć sygnał wznawiania z radia Bluetooth z wyprowadzeniem GPIO na SoC, który może obudzić SoC z jego najniższego stanu zasilania.
- SoC może wymagać kierowania sygnałów pobudzenia do ograniczonego zestawu wyprowadzeń GPIO, które są wstępnie skonfigurowane do pozostawania zawsze włączonymi.
- Lub SoC może obsługiwać konfigurację pinu GPIO jako zawsze włączonego pinu w firmware systemu podczas rozruchu.
Integrator systemu musi przetestować i sprawdzić, czy urządzenie radiowe Bluetooth przechodzi w stan uśpienia (D2), gdy nie ma skojarzonych urządzeń.
Integrator systemu musi przetestować i sprawdzić, czy radio Bluetooth przechodzi w stan uśpienia (D2), gdy wszystkie skojarzone urządzenia nie mają żadnych aktywnych transferów.
Integrator systemu musi przetestować i sprawdzić, czy radio Bluetooth może obudzić SoC z najniższego stanu zasilania, gdy radio jest w stanie Uśpienie (D2).
Integrator systemu musi przetestować i sprawdzić, czy radio Bluetooth nie generuje fałszywych sygnałów wznawiania w stanie Uśpienie (D2).
Integrator systemu musi przetestować i zweryfikować, czy oprogramowanie firm trzecich, takie jak sterowniki profilów i aplikacje, działa prawidłowo z zarządzaniem radiem Bluetooth. Urządzenie radiowe powinno być wyłączone i włączone, gdy oprogramowanie innych firm jest aktywnie używane (na przykład odtwarzanie dźwięku lub przesyłanie pliku).