Lägg till ständig Wi-Fi-uppkoppling utan att kompromissa med batteritiden
Bidraget med av DigiKeys nordamerikanska redaktörer
2020-09-24
Med sin hög bandbredd och stora samhällsspridning är Wi-Fi fortfarande ett primärt anslutningskrav för många IoT-enheter (Internet of Things). För bärbara enheter och andra batteridrivna IoT-enheter har effektbehovet hos konventionella Wi-Fi-lösningar gjort ständig Wi-Fi-uppkoppling opraktiskt, vilket vanligtvis kräver att utvecklarna kompromissar med någon aspekt av produktens funktionalitet, prestanda eller batteritid.
Att utveckla en egen Wi-Fi-lösning för att optimera för låg effekt kan vara ett alternativ för vissa team, kan detta vara ett dyrt och tidskrävande åtagande, särskilt med tanke på bristen på kvalificerade RF-konstruktörer. En mer komplett lösning krävs, som också gör kontinuerlig Wi-Fi praktisk för IoT-enheter med låg effekt.
Denna artikel visar hur utvecklare kan implementera kontinuerlig Wi-Fi-uppkoppling med strömsnåla funktioner, inbyggda i en trådlös systemkretsenhet (SoC, system-on-chip) frånDialog Semiconductor.
Utmaningarna med att stödja Wi-Fi-uppkoppling för mobila enheter
Wi-Fi erbjuder vanligtvis en kombination av stor spridning av teknologin och de prestandaegenskaper som krävs i ett brett spektrum av IoT-applikationer som är byggda kring personliga mobila produkter, smarta hem-enheter och byggnadsautomationssystem, för att nämna några. Tidigare tvingade dock den relativt höga strömförbrukningen hos Wi-Fi-subsystem utvecklare att kompromissa med batteriets livslängd eller signalstyrkan i batteridrivna IoT-enheter.
De höga effektkraven för traditionella Wi-Fi-lösningar ger ytterligare utmaningar för IoT-utvecklare. Till exempel kan krav på både Wi-Fi-uppkoppling och förlängd batteritid öka storleken och komplexiteten för att rymma större batterier. För bärbara apparater och många IoT-enheter där större batterier kanske inte är ett alternativ, kanske det inte är möjligt att förlänga batteriets livslängd genom att minska Wi-Fi-signalstyrkan (och tillhörande energiförbrukning).
Utöver dessa problem står IoT-utvecklare inför praktiska begränsningar för den typiska Wi-Fi-signalmiljön där signalstyrkan kan variera avsevärt till följd av flervägsstörning och annan karakteristik hos radiofrekvenssignaler. I tillämpningar som bärbara datorer, kan en konsument helt enkelt flytta en bärbar dator till en annan plats med en bättre Wi-Fi-signal. Däremot måste ett smart lås eller en hemelektronikprodukt bibehålla en tillförlitlig anslutning och robust prestanda, oavsett var den är installerad.
För att stödja både förlängd batteritid och robust Wi-Fi-signalstyrka drar utvecklare ofta full nytta av strömsnåla vilolägen som finns i de flesta avancerade processorer, radioenheter och andra komplexa hårdvarukomponenter. Genom att maximera den tid som energikrävande enheter spenderar i sina respektive lågeffektslägen, kan utvecklare implementera konstruktioner som förlänger batteriets livslängd i sina system, och ofta med ringa inverkan på systemfunktionaliteten. I dessa konstruktioner skulle en strömsnål timer kunna väcka systemet regelbundet för att läsa av sensorer och trådlöst överföra sensordata innan det återgår till viloläge.
För vissa IoT-tillämpningar måste dock IoT-enheten upprätthålla en kontinuerlig anslutning till Wi-Fi-nätverket för att säkerställa ett snabbt svar på användarkommandon som ges via mobilappar, datorprogram eller till och med helt andra enheter. Exempelvis måste smarta lås, lampor och strömbrytare som finns i smarta hem behålla en uppkoppling för att ge ett omedelbart svar på användarkommandon. Att vänta på att en timerbaserad enhet så småningom vaknar, upptäcker kommandot och slutligen låser upp en dörr eller tänder en lampa är helt enkelt oacceptabelt för användarna.
Dialog Semiconductors SoC DA16200 och tillhörande moduler ger en effektiv strömsnål lösning som kan uppfylla krav på både kontinuerlig Wi-Fi-uppkoppling och längre batteritid.
Implementering av Wi-Fi-uppkoppling med en trådlös systemkrets
Systemkretsen DA16200 är konstruerad speciellt för batteridrivna IoT-konstruktioner och kombinerar enArm® Cortex®-M4F med ett komplett Wi-Fi-radiosubsystem som kör en fullständig nätverksstack, vilket eliminerar behovet av en extern nätverksprocessor eller en värdprocessor för att ge stackfunktionalitet. Tillsammans med radiosubsystemet integrerar enheten en fullständig uppsättning funktionsblock och gränssnitt som vanligtvis krävs i IoT-konstruktioner (figur 1).
Figur 1: Dialog Semiconductors systemkrets DA16200 erbjuder en komplett Wi-Fi-lösning som kan ge en kontinuerlig Wi-Fi-uppkoppling samtidigt som den förbrukar minimalt med ström. (Bildkälla: Dialog Semiconductor)
Tillsammans med flera standardgränssnitt inkluderar enheten en A/D-omvandlare med ett 4-kanalers 12-bitars successivt approximationsregister (SAR) för att stödja analog signalregistrering.
För applikationskörning innehåller DA16200 flera interna minnen, inklusive:
- Read-only memory för boot-laddare, systemkärna, nätverksstack och drivrutiner.
- Statiskt RAM (SRAM) för programdata. Programkoden körs på plats (XIP) på seriellt flashminne som nås via enhetens externa, seriella flashminnesgränssnitt.
- Engångsprogrammerbart (OTP) minne som används för att lagra enhetsinformation samt kryptografiska nycklar och en säker bootladdare. OTP-data förblir säker eftersom den endast kan nås via OTP-styrenheten och annars förblir osynlig för normal dataåtkomst via systembussen.
För att hjälpa utvecklare att uppfylla den växande efterfrågan på säkerhet för uppkopplade enheter, har systemkretsen DA16200 en mängd säkerhetsmekanismer integrerade, inklusive en kryptografimotor för Advanced Encryption Standard (AES), Secure Hash Algorithms (SHA) och andra krypton samt stöd för protokollet Transport Layer Security (TLS). Enheten innehåller även immaterialrättsligt skyddad Arm TrustZone CryptoCell-312-säkerhet (CC312). CC312 är utvecklat för enheter med låg effekt och stödjer säker uppstart och möjliggör en trust-rot för säkra applikationer.
Enheten förenklar Wi-Fi-uppkoppling tack vare ett omfattande RF-block. Tillsammans med inbyggd 802.11 Media Access Control (MAC) och 802.11b/g/n fysiska (PHY) skikt, innehåller radiosubsystemet en chiptransceiver med integrerade effektförstärkare (PA) och lågbrusförstärkare (LNA) som eliminerar behovet av externa aktiva komponenter. I drift exekverar DA16200 Arm Cortex-M4F-processorn en inbäddad TCP/IP-stack för att avlasta systemets värdprocessor från uppkopplingsoperationer.
För att driva de olika blocken, inklusive RF-blocket, har systemkretsen DA16200 en integrerad DC/DC-omvandlare, low dropout-regulatorer (LDO) och strömbrytare. Omvandlaren och LDO:erna, som styr enhetens realtidsklockblock (RTC), genererar alla nödvändiga spänningsmatningsnivåer från en enda VBAT-batteriförsörjning. Medan DC-DC-omvandlaren genererar 1,4 volt för RF-blocket och digital LDO från VBAT, genererar I / O LDO de 1,8 volt som krävs för extern blixt och enhetens allmänna I / O (GPIO) (figur 2).
Figur 2: strömhanteringsenheten till Dialog Semiconductors systemkrets DA16200 styr enhetens integrerade strömkomponenter som matar spänning till dess separata strömsektioner. (Bildkälla: Dialog Semiconductor)
Strömhanteringsenheten på DA16200-chippet styr försörjningen till dessa separata effektdomäner som en del av funktionen som hanterar komponentens tre lågeffektlägen (sleep-lägen):
- Sleep 1 är det strömsnålaste effektläget på 0,2 μA: I detta läge är enheten till stor del avstängd men vaknar inom 150 ms som svar på en extern trigger som skickas till systemkretsens två väckningspinnar eller till en av flera digitala I/O, eller när en analog insignal överstiger ett fördefinierat tröskelvärde.
- Sleep 2 förbrukar endast 1,8 μA samtidigt som RTC-funktionen bibehålls: I detta läge vaknar systemkretsen på mindre än 100 ms som svar på externa väckningshändelser eller när en programmerad intern timer har löpt ut.
- Sleep 3 ger ett unikt kontinuerligt anslutet Wi-Fi-läge som kan förbruka minimal ström och vaknar på mindre än 2 ms vid upptäckt av inkommande Wi-Fi-datapaket: Som beskrivs nedan ger användning av Sleep 3 med konventionell TCP keepalive-funktion grunden för implementera en kontinuerlig Wi-Fi-uppkopplingsmöjlighet som förbrukar mindre än 50 μA i genomsnitt.
Dynamisk strömhanteringsteknologi möjliggör kontinuerlig Wi-Fi-uppkoppling
Till grund för dessa lågspänningslägen ligger Dialog Semiconductors egenutvecklade Dynamic Power Management (DPM)-teknologi som stänger av oanvända mikroelement på chip, vilket resulterar i minimal strömförbrukning när enheten inte sänder eller tar emot data. Under Wi-Fi-operationer minimerar DPM strömförbrukningen under sändnings- och mottagningsoperationer med avancerade algoritmer för att väcka de nödvändiga mikroelementen precis när de behövs.
Dialog Semiconductors mjukvaruutvecklingssats DA16200 (SDK) abstraherar detaljerna i energihanteringen och DPM-driften med sitt DPM Manager-API. För anpassad mjukvaruutveckling ger SDK åtkomst till programvarustacken DA16200 med applikations- och systemtjänster (Figur 3).
Figur 3: mjukvaruarkitekturen för systemkretsen DA16200 ger en fullständig uppsättning system- och applikationstjänster som krävs för att stödja normal Wi-Fi-uppkoppling i IoT-enheter. (Bildkälla: Dialog Semiconductor)
Implementering av kontinuerlig Wi-Fi-uppkoppling kombinerar användning av DPM Manager och NetX Duo TCP/IP-biblioteket. NetX Duo-biblioteket tillhandahåller en TCP keepalive-funktion som skickar ett TCP-paket utan data till en Wi-Fi-router, vilket säkerställer att routern håller Wi-Fi-uppkopplingen aktiv. Utvecklare åberopar denna funktion helt enkelt genom att aktivera aktuell TCP-socket, keepalive_enabled, to true och anger antalet sekunder, keepalive_timeout, mellan keepalive-paket. NetX Duo sänkder automatiskt ut keepalive-ramarna efter behov.
Medan keepalive-paketen upprätthåller nätverksanslutningen med en router eller annan värd, bygger DA16200:s förmåga att vakna från viloläge 3 på detektering av standardinformationselement för Traffic Indication Map (TIM) eller Delivery Traffic Indication Map (DTIM) inbäddade i 802.11-hanteringsramar. Detta används för att meddela nätstationer som ett DA16200-baserat system att nätverkstrafik är tillgängligt för det. När DA16200 är i viloläge 3, säkerställer DA16200:s DPM-teknik att radiosubsystemet förbrukar minimalt med ström och söker efter TIM/DTIM-element. När radiosubsystemet DA16200 upptäcker TIM/DTIM-element, väcker det systemkretsen för att börja bearbeta normal Wi-Fi-trafik, som alla nätverksstationer.
Med hjälp av DA16200 DPM Manager API behöver utvecklare bara göra några intuitiva anrop för att implementera denna funktionalitet. Efter att ha definierat den nödvändiga DPM-konfigurationen, inklusive parametrar och återanrop, använder utvecklare DPM Manager API-funktionsanrop för att ge kommandon och på andra sätt interagera med DPM Manager. In- och utträde från Sleep 3 hanteras transparent av DA16200 DPM:s teknik.
Exempelapplikationer som ingår i SDK:t illustrerar de grundläggande konstruktionsmönster som krävs för att genomföra denna sekvens av operationer (utdrag 1).
Kopiera
#define TCP_CLIENT_KA_DPM_SAMPLE_DEF_KEEPALIVE_TIMEOUT 55
[lines deleted]
void tcp_client_ka_dpm_sample_wakeup_callback()
{
PRINTF(GREEN_COLOR " [%s] DPM Wakeup\n" CLEAR_COLOR, __func__);
dpm_mng_job_done(); //Done operation
}
[lines deleted]
void tcp_client_ka_dpm_sample_recv_callback(void *sock, UCHAR *rx_buf, UINT rx_len,
ULONG rx_ip, ULONG rx_port)
{
int status = NX_SUCCESS;
//Display received packet
PRINTF(" =====> Received Packet(%ld) \n", rx_len);
tcp_client_ka_dpm_sample_hex_dump("Received Packet", rx_buf, rx_len);
[lines deleted]
dpm_mng_job_done(); //Done operation
}
[lines deleted]
void tcp_client_ka_dpm_sample_init_user_config(dpm_user_config_t *user_config)
{
[lines deleted]
//Set DPM wakeup init callback
user_config->wakeupInitCallback = tcp_client_ka_dpm_sample_wakeup_callback;
[lines deleted]
//Set Recv callback
user_config->sessionConfig[session_idx].session_recvCallback =
tcp_client_ka_dpm_sample_recv_callback;
[lines deleted]
//Set KeepAlive timeout
user_config->sessionConfig[session_idx].session_ka_interval =
TCP_CLIENT_KA_DPM_SAMPLE_DEF_KEEPALIVE_TIMEOUT;
[lines deleted]
}
[lines deleted]
void tcp_client_ka_dpm_sample(ULONG arg)
{
[lines deleted]
//Register user configuration
dpm_mng_regist_config_cb(tcp_client_ka_dpm_sample_init_user_config);
//Start TCP Client Sample
dpm_mng_start();
return ;
}
Utdrag 1: Med hjälp av DA16200-kretsen kan utvecklare implementera kontinuerlig Wi-Fi-uppkoppling genom att göra konfigurationer och några DPM API-funktionsanrop. (Kodkälla: Dialog Semiconductor)
Som visas i utdrag 1 implementerar utvecklare denna funktion till stor del endast genom en initialiseringsfunktion (tcp_client_ka_dpm_sample_init_user_config ()) som ställer in olika konfigurationsparametrar inklusive keepalive-intervallet (TCP_CLIENT_KA_DPM_SAMPLE_DEF_KEEPALIVE_TIMEOUT), och skickar olika återanrop inklusive sådana för DMP-väckning (tcp_client_ka_dpm_sample_wakeup_callback()) och för att processa inkommande datapaket (tcp_client_ka_dpm_sample_recv_callback ()). För att börja TCP-keepalive- och DPM-väckningssekvensen anropar en separat funktion (tcp_client_ka_dpm_sample ()) en konfigurationsrutin (dpm_mng_regist_config_cb (tcp_client_ka_dpm_sample_init_user_config)) och DMP Manager (dpm_mng_start).
Som tidigare nämnts resulterar hela denna sekvens, inklusive vanliga TCP keepalive-paket och DA16200 DPM-aktiverad Wi-Fi-övervakning, i en kontinuerlig Wi-Fi-uppkopplingsmöjlighet som vanligtvis förbrukar mindre än 50 μA i genomsnitt.
Samma konstruktionsmönster kan användas för att väcka systemkretsen från vilolägena för att hantera andra operationer. Exempelvis visar ett exempelprogram användning av DA16200-kretsens RTC för att väcka systemkretsen för att bearbeta data (utdrag 2).
Kopiera
#define SAMPLE_FOR_DPM_SLEEP_3 // Sleep Mode 3
#define MICROSEC_FOR_ONE_SEC 1000000
#define RTC_TIMER_WAKEUP_ONCE 5 // seconds
#define RTC_TIMER_WAKEUP_PERIOD 10 // seconds
static void rtc_timer_dpm_once_cb(char *timer_name)
{
[lines deleted]
static void rtc_timer_dpm_periodic_cb(char *timer_name)
{
/*
*Caution : Don't spend a lot of time in the calback function called by timer.
*/
dpm_app_sleep_ready_clear(SAMPLE_RTC_TIMER);
PRINTF("\nWakeup due to Periodic RTC timer!!!\n");
tx_thread_sleep(10);
dpm_app_sleep_ready_set(SAMPLE_RTC_TIMER);
}
[lines deleted]
void rtc_timer_sample(ULONG arg)
{
[lines deleted]
/* Periodic timer */
status = dpm_timer_create(SAMPLE_RTC_TIMER,
"timer2",
rtc_timer_dpm_periodic_cb,
RTC_TIMER_WAKEUP_PERIOD,
RTC_TIMER_WAKEUP_PERIOD);
[lines deleted]
dpm_app_sleep_ready_set(SAMPLE_RTC_TIMER);
[lines deleted]
}
while (1)
{
/* Nothing to do... */
tx_thread_sleep(100);
}
}
Utdrag 2: Utvecklare kan implementera en strömsnål timerbaserad funktionalitet med DA16200 med hjälp av några DPM API-funktionsanrop för att uppnå minimal energiförbrukning under DA16200-viloperioderna. (Kodkälla: Dialog Semiconductor)
Som visas i utdrag 2, anropar utvecklaren en DPM Manager API-funktion (dpm_timer_create ()) för att skapa en timer (SAMPLE_RTC_TIMER) och en annan DPM Manager API-funktion (dpm_app_sleep_ready_set ()) för att indikera att systemet är redo att gå tillbaka till viloläge. DPM-motorn bestämmer sedan hur snabbt systemet kan återgå till strömsnålt viloläge baserat på aktuell aktivitet. Senare, när timern löpt ut, kör systemet utvecklarens återanropsfunktion, rtc_timer_dpm_periodic_cb (), som utför de nödvändiga åtgärderna — i det här fallet bara att skriva ut ett meddelande till konsolen. När åtgärden är klar, utförs samma återanropsfunktion dpm_app_sleep_ready_set () för att meddela DPM-motorn att systemet är redo att återgå till viloläge. Som tidigare utför DPM-motorn övergången till viloläge när det är lämpligt.
Drop-in-moduler förenklar Wi-Fi-utveckling
Samtidigt som DA16200 SDK:n förenklar mjukvaruutvecklingen, kan kretsens omfattande on-chip-funktionalitet översättas till en relativt enkel konstruktion av ett hårdvarugränssnitt. Om DA16200-kretsen används tillsammans med ett externt flash-minne, t.ex.Winbond Electronics W25Q16JVSNIQ 16 Mbit NOR-minneskrets och bara några ytterligare komponenter, kan utvecklare implementera en Wi-Fi-aktiverad säker IoT-konstruktion (figur 4).
Figur 4: Med sin omfattande integrerade funktionalitet kräver Dialog Semiconductors systemkrets DA16200 endast ett externt seriellt flash-minne och minimalt med ytterligare komponenter för att implementera ett komplett Wi-Fi-system. (Bildkälla: Dialog Semiconductor)
Utvecklare som vill påskynda utvecklingen av sina egna konstruktioner baserade på systemkretsen DA16200 kan vända sig till Dialog Semiconductor-moduler som eliminerar behovet att implementera systemkretsens hårdvarugränssnitt. Tillsammans med DA16200-systemkretsen inkluderar modulerna 4 Mbyte flash, RF-komponenter och val av endera inbyggd chipantenn (DA16200MOD-AAC4WA32 ) eller u.FL-kontakt för extern antenn (DA16200MOD-AAE4WA32). Fullständigt certifierade av FCC, IC, CE och andra tillsynsorgan ger modulerna på 13,8 x 22,1 x 3,3 mm en drop-in-hårdvarulösning för implementering av kontinuerlig Wi-Fi-uppkoppling med låg effekt.
Utvecklare som vill utforska kontinuerlig Wi-Fi-uppkoppling och snabbt prototyputveckla IoT-konstruktioner baserade på DA16200-systemkretsen kan omedelbart dra nytta av Dialog Semiconductors utvecklingspaket DA16200MOD-DEVKT. Denna sats kombinerar en DA16200MOD-modul med ett USB-gränssnitt, nycklar och anslutningar för att påskynda utveckling och felsökning av DA16200-baserade konstruktioner.
Sammanfattning
Möjligheten att upprätthålla kontinuerlig Wi-Fi-uppkoppling är en rutinfunktion hos bärbara datorer och andra anslutna produkter. För bärbara enheter och andra batteridrivna IoT-enheter har dock kraftbehovet för konventionella Wi-Fi-lösningar gjort kontinuerlig Wi-Fi-uppkoppling opraktiskt, vilket vanligtvis kräver att utvecklare kompromissar med någon aspekt av enhetens funktionalitet, prestanda eller batteritid.
En systemkrets från Dialog Semiconductor ger en komplett Wi-Fi-lösning som kan leverera kontinuerlig Wi-Fi-uppkoppling samtidigt som den förbrukar minimalt med ström. Som vi visat, kan utvecklare med hjälp av systemkretsen eller tillhörande moduler snabbt implementera säkra batteridrivna enheter som kan ge användare fördelarna med kontinuerlig Wi-Fi-uppkoppling samtidigt som de uppfyller förväntningar på lång batteritid.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

