Doorlopende Wi-Fi-connectiviteit toevoegen zonder dat dit ten koste gaat van de levensduur van de batterij

Door Stephen Evanczuk

Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey

Met een hoge bandbreedte en alomtegenwoordigheid blijft Wi-Fi een primaire connectiviteitsvereiste voor veel Internet of Things (IoT)-apparaten. Voor wearables en andere IoT-apparaten die op batterijen werken, hebben de stroomvereisten van conventionele Wi-Fi-oplossingen doorlopende Wi-Fi-connectiviteit onpraktisch gemaakt, waardoor ontwikkelaars doorgaans een bepaald aspect van de apparaatfunctionaliteit, prestaties of levensduur van de batterij in gevaar moeten brengen.

Terwijl het ontwerpen van een aangepaste Wi-Fi-oplossing om te optimaliseren voor laag vermogen een optie kan zijn voor sommige teams, kan dit een dure en tijdrovende onderneming zijn, vooral gezien de schaarste van gekwalificeerde RF-ontwerpers. Er is een meer complete oplossing nodig die ook de doorlopende Wi-Fi praktisch maakt voor energiezuinige IoT-apparaten.

Dit artikel laat zien hoe ontwikkelaars continue Wi-Fi-connectiviteit kunnen implementeren met behulp van laagvermogensfuncties die zijn ingebouwd in een draadloos systeem-op-chip (SoC) apparaat van Dialog Semiconductor.

De uitdagingen van de ondersteuning van Wi-Fi-connectiviteit voor mobiele apparaten

Wi-Fi biedt doorgaans de combinatie van alomtegenwoordige aanwezigheid en prestatiekenmerken die nodig zijn in een breed scala van ivd-toepassingen die zijn opgebouwd rond persoonlijke mobiele producten, slimme huishoudelijke apparaten en gebouwautomatiseringssystemen, om er maar een paar te noemen. In het verleden heeft het relatief hoge stroomverbruik van Wi-Fi-subsystemen de ontwikkelaars echter gedwongen om de levensduur van de batterij of de signaalsterkte van door batterijen aangedreven IoT-apparaten in gevaar te brengen.

De hoge stroomvereisten van traditionele Wi-Fi-oplossingen brengen extra uitdagingen met zich mee voor IoT-ontwikkelaars. Zo kunnen bijvoorbeeld de vereisten voor zowel de Wi-Fi-connectiviteit als de verlengde levensduur van de batterij de ontwerpgrootte en -complexiteit vergroten om grotere batterijen te kunnen gebruiken. Voor wearables of veel IoT-apparaten waar grotere batterijen geen optie zijn, zijn pogingen om de levensduur van de batterij te verlengen door de sterkte van het wifi-signaal (en het bijbehorende stroomverbruik) te verminderen, wellicht niet haalbaar.

Samen met deze zorgen worden ioT-ontwikkelaars geconfronteerd met praktische beperkingen van de typische Wi-Fi-signaalomgeving waar de signaalsterkte aanzienlijk kan variëren als gevolg van multipad-interferentie en andere radiofrequente (RF) signaalkenmerken. In toepassingen zoals laptops kan een consument eenvoudigweg een laptop verplaatsen naar een andere locatie met een beter Wi-Fi-signaal. Een slim slot of huishoudapparaat moet daarentegen een betrouwbare connectiviteit en robuuste prestaties behouden, ongeacht waar het is geïnstalleerd.

Om zowel de verlengde levensduur van de batterij als de robuuste Wi-Fi-signaalsterkte te ondersteunen, maken ontwikkelaars doorgaans optimaal gebruik van de slaapmodi met laag vermogen die beschikbaar zijn in de meeste geavanceerde processors, radio's en andere complexe hardwarecomponenten. Door het maximaliseren van de hoeveelheid tijd die energieverslindende apparaten in hun respectievelijke energiezuinige modi doorbrengen, kunnen ontwikkelaars ontwerpen implementeren die de levensduur van de accu's van hun systeemontwerpen verlengen, meestal met weinig impact op de functionaliteit van het systeem. Bij deze ontwerpen kan een timer met een laag vermogen het systeem periodiek wakker maken om sensors uit te lezen en draadloos sensorgegevens te verzenden alvorens terug te keren naar de slaapstand.

Voor sommige IoT-toepassingen moet het IoT-apparaat echter een continue verbinding met het Wi-Fi-netwerk onderhouden om snel te kunnen reageren op opdrachten van gebruikers via mobiele apps, desktopsoftware of zelfs andere apparaten. Slimme sloten, verlichting en schakelaars in slimme huizen moeten bijvoorbeeld verbonden blijven om direct te kunnen reageren op de commando's van de gebruiker. Wachten op een op een timer gebaseerd apparaat om uiteindelijk wakker te worden, het commando te detecteren en uiteindelijk een deur te ontgrendelen of een licht aan te doen, zou gewoonweg onacceptabel zijn voor gebruikers.

Dialog Semiconductor's DA16200 SoC en bijbehorende modules bieden een effectieve, energiezuinige oplossing die in staat is om de vereisten voor zowel doorlopende Wi-Fi-connectiviteit als een verlengde levensduur van de batterij te ondersteunen.

Implementeren van Wi-Fi-connectiviteit met een draadloze SoC

De DA16200 SoC is speciaal ontworpen voor batterijgevoede IoT-ontwerpen en combineert een Arm® Cortex®-M4F met een compleet Wi-Fi-radiosubsysteem met een volledige netwerkstapel, waardoor er geen externe netwerkprocessor of hostprocessor nodig is om stack-functionaliteit te bieden. Samen met het radiosubsysteem integreert het apparaat een volledige set functionele blokken en interfaces die doorgaans vereist zijn in IoT-ontwerpen (Afbeelding 1).

Diagram van Dialog Semiconductor DA16200 SoCAfbeelding 1: De Dialog Semiconductor DA16200 SoC biedt een complete Wi-Fi oplossing die in staat is om continue Wi-Fi-connectiviteit te leveren en tegelijkertijd minimale stroom te verbruiken. (Bron afbeelding: Dialog Semiconductor)

Samen met meerdere standaardinterfaces bevat het apparaat een 4-kanaals 12-bits sequentiële benadering register (SAR) analoog-naar-digitaal convertor (ADC) om analoog signaal acquisitie te ondersteunen.

Voor de uitvoering van de applicatie bevat de DA16200 meerdere interne geheugens, waaronder:

  • Alleen-lezen geheugen voor een bootloader, systeemkernel, netwerkstack en stuurprogramma's.
  • Statisch random access geheugen (SRAM) voor programmagegevens. De programmacode wordt uitgevoerd (XIP) op het seriële flashgeheugen dat toegankelijk is via de externe flashgeheugeninterface van het apparaat.
  • Eenmalig programmeerbaar (OTP) geheugen dat wordt gebruikt om apparaatinformatie op te slaan, evenals cryptografische sleutels en een beveiligde opstartlader. OTP-gegevens blijven veilig omdat ze alleen toegankelijk zijn via de OTP-controller en anders onzichtbaar blijven voor normale gegevenstoegang via de systeembus.

Om ontwikkelaars te helpen voldoen aan de groeiende vraag naar beveiliging van aangesloten apparaten, integreert de DA16200 SoC een brede set beveiligingsmechanismen, waaronder een cryptografie-engine voor Advanced Encryption Standard (AES), Secure Hash Algorithms (SHA) en andere cijfers, evenals ondersteuning voor het Transport Layer Security (TLS)-protocol. Het apparaat bevat ook de Arm TrustZone CryptoCell-312 (CC312) beveiliging intellectueel eigendom (IP). De CC312 is ontworpen voor apparaten met een laag stroomverbruik en ondersteunt een veilige start en maakt een basis van vertrouwen voor veilige toepassingen mogelijk.

Het apparaat vereenvoudigt de Wi-Fi-connectiviteit dankzij een uitgebreid RF-blok. Samen met de ingebouwde 802.11 media toegangscontrole (MAC) en 802.11b/g/n fysieke (PHY) lagen, bevat het radiosubsysteem een on-chip zendontvanger met geïntegreerde vermogensversterkers (PAs) en ruisarme versterkers (LNA's) die de noodzaak van externe actieve componenten elimineren. In bedrijf voert de Arm Cortex-M4F-processor van de DA16200 een geïntegreerde transmissiecontroleprotocol/internetprotocol (TCP/IP) stack uit om connectiviteitsbewerkingen te ontladen van de hostprocessor van een systeem.

Om de verschillende blokken, waaronder het RF-blok, van stroom te voorzien, integreert de DA16200 SoC een DC-DC-converter, low dropout (LDO) regelaars en voedingsschakelaars. De converter en LDO's worden beheerd door het realtime klokblok (RTC) van het apparaat en genereren alle benodigde voedingsrails uit een enkele VBAT-batterijvoeding. Terwijl de DC-DC-converter 1,4 volt genereert voor het RF-blok en digitale LDO van VBAT, genereert de I/O LDO de 1,8 volt die nodig is voor de externe flitser en de algemene I/O (GPIO) van het apparaat (Afbeelding 2).

Diagram van de DA16200 SoC-energiebeheereenheid van Dialog SemiconductorAfbeelding 2: De DA16200 SoC-energiebeheereenheid bestuurt de geïntegreerde voedingscomponenten van het apparaat die spanning leveren aan de afzonderlijke voedingsdomeinen. (Bron afbeelding: Dialog Semiconductor)

De DA16200 SoC-energiebeheereenheid regelt de toevoer naar deze afzonderlijke voedingsdomeinen als onderdeel van zijn functie in het beheer van de drie low-power (slaap) modi van het apparaat:

  • Slaap 1 biedt de laagste vermogenswerking bij 0,2 microampère (μA): In deze modus wordt het apparaat grotendeels uitgeschakeld, maar wordt het binnen 150 milliseconden (ms) wakker als reactie op een externe trigger die wordt geleverd aan de twee wekpinnen van de SoC of aan een van de verschillende digitale I/O's, of wanneer een analoog ingangssignaal een vooraf gedefinieerde drempelwaarde overschrijdt.
  • Slaap 2 verbruikt slechts 1,8 μA met behoud van de RTC-functionaliteit: In deze modus ontwaakt de SoC in minder dan 100 ms als reactie op externe ontwaakte gebeurtenissen of bij het voltooien van een geprogrammeerde interne timer.
  • Sleep 3 biedt een unieke continu verbonden Wi-Fi-modus die minimale stroom kan verbruiken en in minder dan 2 ms wakker wordt bij detectie van inkomende Wi-Fi-datapakketten: Zoals hieronder beschreven, biedt het gebruik van Sleep 3 met conventionele TCP keepalive-functionaliteit de basis voor het implementeren van een doorlopende Wi-Fi-connectiviteit die minder dan 50 μA gemiddelde stroom verbruikt.

Dynamische energiebeheertechnologie maakt doorlopende Wi-Fi-connectiviteit mogelijk

Aan de basis van deze spaarstanden ligt Dialog Semiconductor's eigen Dynamic Power Management (DPM) technologie, die ongebruikte micro-elementen op de chip uitschakelt, wat resulteert in een minimaal stroomverbruik wanneer het apparaat geen gegevens uitzendt of ontvangt. Tijdens Wi-Fi-bewerkingen minimaliseert DPM het stroomverbruik tijdens het verzenden en ontvangen van radiobewerkingen met behulp van geavanceerde algoritmen om de benodigde micro-elementen te wekken op het moment dat ze nodig zijn.

Dialog Semiconductor's DA16200 software-ontwikkelingskit (SDK) abstraheert de details van energiebeheer en DPM-bewerking met zijn DPM Manager applicatie programmeerinterface (API). Voor de ontwikkeling van aangepaste software biedt de SDK toegang tot de DA16200-softwarestack van applicatie- en systeemservices (Afbeelding 3).

Afbeelding van de DA16200 SoC-software-architectuur van Dialog SemiconductorAfbeelding 3: De software-architectuur van de DA16200 SoC biedt een volledige set van systeem- en applicatiediensten die nodig zijn voor de ondersteuning van standaard Wi-Fi-connectiviteit in IoT-apparaten. (Bron afbeelding: Dialog Semiconductor)

De implementatie van continue Wi-Fi-connectiviteit combineert het gebruik van de DPM Manager en de NetX Duo TCP/IP-bibliotheek. De NetX Duo-bibliotheek biedt een TCP keepalive-functie die een TCP-pakket zonder gegevens naar een Wi-Fi-router stuurt, zodat de router de Wi-Fi-verbinding actief houdt. Ontwikkelaars beroepen zich op deze functie door eenvoudigweg de huidige TCP socket optie, keepalive_enabled, in te stellen op true, en het aantal seconden, keepalive_timeout, op te geven tussen keepalive pakketten. NetX Duo stuurt de keepalive frames automatisch door als dat nodig is.

Terwijl de keepalive pakketten de netwerkverbinding met een router of andere host onderhouden, is de mogelijkheid van de DA16200 om te ontwaken uit de slaapstand 3 afhankelijk van de detectie van standaard TIM (Traffic Indication Map) of DTIM (Delivery Traffic Indication Map) informatie-elementen die zijn ingebed in 802.11 beheersframes, en wordt gebruikt om netwerkstations, zoals een DA16200-gebaseerd systeem, ervan op de hoogte te stellen dat er netwerkverkeer beschikbaar is voor het. Wanneer de DA16200 in de slaapstand 3 wordt geplaatst, zorgt de DPM-technologie van de DA16200 ervoor dat het radiosubsysteem een minimaal vermogen gebruikt op zoek naar TIM/DTIM-elementen. Wanneer het DA16200 radiosubsysteem TIM/DTIM-elementen detecteert, maakt het de SoC wakker om te beginnen met het verwerken van normaal Wi-Fi-verkeer, zoals elk netwerkstation.

Met behulp van de DA16200 DPM Manager API hoeven ontwikkelaars slechts een paar intuïtieve telefoontjes te plegen om deze functionaliteit te implementeren. Na het definiëren van de vereiste DPM-configuratie, inclusief parameters en callbacks, gebruiken ontwikkelaars DPM Manager API-functieaanroepen om de DPM Manager aan te roepen en op andere wijze te communiceren. Het in- en uitstappen van slaap 3 wordt transparant behandeld door de technologie van de DA16200 DPM.

De voorbeeldtoepassingen die in de SDK zijn opgenomen, illustreren de basisontwerppatronen die nodig zijn om deze opeenvolging van bewerkingen uit te voeren (Lijst 1).

Copy
#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 ;
}

Lijst 1: Met behulp van de DA16200 SoC kunnen ontwikkelaars doorlopende Wi-Fi-connectiviteit implementeren met behulp van configuraties en een paar DPM API-functieaanroepen. (Bron code: Dialog Semiconductor)

Zoals weergegeven in Lijst 1, implementeren ontwikkelaars deze mogelijkheid grotendeels met alleen een initialisatiefunctie (tcp_client_ka_dpm_sample_init_user_config()) die verschillende configuratieparameters instelt, inclusief het keepalive interval (TCP_CLIENT_KA_DPM_SAMPLE_DEF_KEEPALIVE_TIMEOUT), en voorziet in verschillende callbacks, waaronder die voor DMP wakeup (tcp_client_ka_dpm_sample_wakeup_callback()) en voor het verwerken van inkomende gegevenspakketten (tcp_client_ka_dpm_sample_recv_callback()). Om de TCP keepalive en DPM wakeup sequentie te beginnen, roept een aparte functie (tcp_client_ka_dpm_sample()) eenvoudigweg een configuratieroutine op (dpm_mng_regist_config_cb(tcp_client_ka_dpm_sample_init_user_config)) en de DMP Manager (dpm_mng_start()).

Zoals eerder vermeld, resulteert deze hele reeks, inclusief standaard TCP keepalive pakketten en DA16200 DPM-compatibele Wi-Fi monitoring, in een doorlopende Wi-Fi-connectiviteitsmogelijkheid die doorgaans minder dan 50 μA gemiddelde stroom verbruikt.

Dit zelfde ontwerppatroon kan worden gebruikt om de SoC uit zijn slaapstand te wekken om andere bewerkingen uit te voeren. Een voorbeeldtoepassing toont bijvoorbeeld het gebruik van de DA16200's RTC om de SoC te wekken voor het verwerken van gegevens (Lijst 2).

Copy
#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);
    }
}

Lijst 2: Ontwikkelaars kunnen low-power timer-gebaseerde functionaliteit implementeren met de DA16200 met behulp van een paar DPM API-functie-aanroepen om te zorgen voor een minimaal stroomverbruik tijdens de DA16200-slaapperiodes. (Bron code: Dialog Semiconductor)

Zoals weergegeven in Lijst 2, roept de ontwikkelaar een DPM Manager API functie aan (dpm_timer_create()) om een timer (SAMPLE_RTC_TIMER) en een andere DPM Manager API functie (dpm_app_sleep_ready_set()) aan te roepen om aan te geven dat het systeem klaar is om terug te gaan naar de slaapstand. De DPM-motor zal dan bepalen hoe snel het systeem kan terugkeren naar de slaapstand met laag vermogen op basis van de huidige activiteit. Later, wanneer de timer afloopt, voert het systeem de callback-functie van de ontwikkelaar uit, rtc_timer_dpm_periodic_cb(), die de vereiste bewerkingen uitvoert, in dit geval gewoon een melding aan de console. Wanneer de operatie voltooid is, voert dezelfde callback functie de dpm_app_sleep_ready_set() uit om de DPM-motor te laten weten dat het systeem klaar is om terug te gaan naar de slaapstand. Net als voorheen voltooit de DPM-motor de overgang naar de slaapstand wanneer dat nodig is.

Drop-in modules vereenvoudigen het Wi-Fi-ontwerp

Terwijl de DA16200 SDK het softwareontwerp vereenvoudigt, vertaalt de uitgebreide on-chip functionaliteit van het apparaat zich in een relatief eenvoudig ontwerp van de hardware-interface. Met behulp van de DA16200 SoC samen met een extern flash-apparaat, zoals Winbond Electronics" W25Q16JVSNIQ 16 megabit (Mbit) NOR-geheugen IC en slechts enkele extra componenten, kunnen ontwikkelaars een veilig IoT-ontwerp met Wi-Fi implementeren (Afbeelding 4).

Diagram van Dialog Semiconductor DA16200 SoC (klik om te vergroten)Afbeelding 4: Met zijn uitgebreide geïntegreerde functionaliteit heeft de Dialog Semiconductor DA16200 SoC alleen een externe seriële flash nodig en minimale extra componenten om een compleet Wi-Fi systeem te implementeren. (Bron afbeelding: Dialog Semiconductor)

Ontwikkelaars die de ontwikkeling van hun eigen ontwerpen op basis van de DA16200 SoC willen versnellen, kunnen een beroep doen op Dialog Semiconductor modules die de noodzaak om de hardware-interface van de SoC te implementeren overbodig maken. Samen met de DA16200 SoC bevatten de modules 4 megabyte (Mbytes) aan flash, RF-componenten en keuze uit een onboard chipantenne (DA16200MOD-AAC4WA32) of u.FL-connector voor een externe antenne (DA16200MOD-AAE4WA32). De 13,8 x 22,1 x 3,3 millimeter (mm) modules zijn volledig gecertificeerd door de FCC, IC, CE en andere regelgevende instanties en bieden een drop-in hardware oplossing voor het implementeren van low-power doorlopende Wi-Fi-connectiviteit.

Ontwikkelaars die op zoek zijn naar doorlopende Wi-Fi-connectiviteit en snel prototype IoT-ontwerpen op basis van de DA16200 SoC kunnen direct profiteren van de Dialog Semiconductor DA16200MOD-DEVKT-ontwikkelkit. Deze kit combineert een DA16200MOD-module met een USB-interface, sleutels en aansluitingen om de ontwikkeling en het debuggen van op DA16200 gebaseerde ontwerpen te versnellen.

Conclusie

De mogelijkheid om doorlopende Wi-Fi-connectiviteit te behouden is een routinefunctie van laptops en andere aangesloten producten. Voor wearables en andere batterij-aangedreven IoT-apparaten hebben de stroomvereisten van conventionele Wi-Fi-oplossingen echter een continue Wi-Fi-connectiviteit onpraktisch gemaakt, waardoor ontwikkelaars doorgaans een bepaald aspect van de functionaliteit, prestaties of de levensduur van de batterij in gevaar moeten brengen.

Een SoC van Dialog Semiconductor biedt een complete Wi-Fi-oplossing die in staat is om doorlopende Wi-Fi-connectiviteit te leveren en tegelijkertijd een minimale hoeveelheid stroom te verbruiken. Zoals blijkt, kunnen ontwikkelaars met behulp van de SoC of de bijbehorende modules snel veilige, op batterijen werkende apparaten implementeren die gebruikers kunnen voorzien van de voordelen van doorlopende Wi-Fi-connectiviteit en tegelijkertijd voldoen aan hun verwachtingen voor een langere levensduur van de batterij.

DigiKey logo

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.

Achtergrondinformatie over deze auteur

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk heeft meer dan 20 jaar ervaring in het schrijven voor en over de elektronicasector met betrekking tot heel wat onderwerpen, waaronder hardware, software, systemen en toepassingen zoals het IoT. Hij behaalde zijn filosofiediplomain neurowetenschappen over neuronale netwerken en werkte in de ruimtevaartsector op massaal verspreide veilige systemen en algoritmeversnellingsmethoden. Wanneer hij geen artikels over technologie en techniek schrijft, werkt hij aan toepassingen voor “deep learning” voor herkennings- en aanbevelingssystemen.

Over deze uitgever

De Noord-Amerikaanse redacteurs van DigiKey