Kuinka maksimoida akun kesto kaksitilaisissa Wi-Fi/Bluetooth IoT -tuotteissa
Julkaisija DigiKeyn kirjoittajat Pohjois-Amerikassa
2020-09-24
Akkukäyttöisten IoT (Esineiden Internet) -laitteiden ja muiden verkkoyhteyttä käyttävien tuotteiden suunnittelijoita pyydetään täyttämään jatkuvan langattoman yhteyden ja pidemmän akkukeston ristiriitaiset vaatimukset. Jo ennestään vaatimattomia tehorajoja venyttää edelleen kasvava kysyntä sekä Bluetooth 5- että Wi-Fi-yhteydelle samassa laitteessa. Vaikka Wi-Fi- ja Bluetooth-protokollat tarjoavat standardiprotokollat virrankulutuksen vähentämiseksi, suorempi tuki saadaan radioalajärjestelmät yhdistävästä arkkitehtuurista, joka voi antaa verkon prosessointitehtävät pienitehoiselle mikrokontrollerille.
Tässä artikkelissa tarkastellaan kaksitilaisen Wi-Fi/Bluetooth-yhteyden merkitystä ja miten se vaikeuttaa IoT-suunnittelua. Sen jälkeen artikkelissa näytetään kuinka Cypress Semiconductorin kehitysalustaa ja siihen liittyvää ohjelmistoa voidaan käyttää sellaisten kaksitilaisten Wi-Fi/Bluetooth IoT -laitteiden kehittämiseen, jotka tukevat jatkuvaa verkkoyhteyttä ja pidempää akun kestoa.
Kasvava tarve jatkuvalle kaksitilaiselle Wi-Fi/Bluetooth-yhteydelle
Bluetooth-yhteyttä pidetään standardivaatimuksena monille IoT-laitteille, jotka on suunniteltu toimimaan interaktiivisesti käyttäjien kanssa Bluetoothia käyttävien älypuhelimien ja muiden mobiililaitteiden kautta. Monissa IoT-sovelluksissa IoT-laitteet tarvitsevat kuitenkin Wi-Fi-yhteyden, jotta he voivat käyttää langatonta lähiverkkoa (WLAN) ja päästä suoraan Internetiin tai voivat olla interaktiivisessa vuorovaikutuksessa muiden saman verkon vertaislaitteiden ja isäntäjärjestelmien kanssa.
Kehittäjien mahdollisuudet pidentää akun käyttöikää olisivat monessa suhteessa paljon suoraviivaisemmat, jos näiden IoT-laitteiden tarvitsisi muodostaa yhteys WLAN- tai Bluetooth-isäntään vain kun niiden on lähetettävä tietoja tai muita viestejä. Koska monien IoT-laitteiden aktiivinen käyttöjakso on tyypillisesti alhainen, nämä laitteet voisivat pidentää akun kestoa toimimalla pääasiassa vähävirtaisessa lepotilassa, heräämällä tarpeeksi kauan anturimittausten suorittamiseksi, suorittaa niihin liittyvät käsittelytehtävät ja lähettää saati data ennen paluuta virransäästötilaan. Tosiasiassa useimpien IoT-laitteiden on reagoitava nopeasti asynkronisiin saapuviin komentoihin ja vertaislaitteista, isäntäjärjestelmistä ja loppukäyttäjiltä tuleviin tietoihin.
Pystyäkseen reagoimaan IoT-laitteiden on näytettävä siltä kuin niillä olisi jatkuva verkkoyhteys ja niiden on seurattava tulevaa liikennettä voidakseen vastata hyväksyttävän ajan kuluessa. Jos kehittäjät yrittävät täyttää tämän perusvaatimuksen herättämällä laitteen toistuvasti vastaanottamaan saapuvaa liikennettä, laitteen akku tyhjenee nopeasti. Itse asiassa akkukäyttöisten Wi-Fi-laitteiden radiovastaanottimet kuluttavat ajan myötä tyypillisesti enemmän virtaa kuin radiolähettimet yksittäisen lähetyksen suuremmasta virrankulutuksesta huolimatta . Tietysti laitteen isäntäprosessorin kuluttama teho lisää omalta osaltaan jokaisessa vastaanottotoiminnossa oman huomattavan kuormansa tehobudjettiin. Onneksi langattomat standardit määrittelevät protokollia, joiden avulla kehittäjät voivat vähentää virrankulutusta ja säilyttää silti illuusio jatkuvasta verkkoyhteydestä.
Kuinka langattoman yhteyden standardit auttavat laitteita vähentämään virrankulutusta
Normaalissa käytössä Wi-Fi-vastaanottoasemat (STA) säästävät virtaa sammuttamalla suurimman osan Wi-Fi-alijärjestelmästä. Koska tukiasemat (AP) puskuroivat kehyksiä nukkuville STA-asemille, viestejä ei hukata. Osana normaaleja verkonhallintaoperaatioita tukiasemat lähettävät säännöllisesti bittikartan sisältäviä jäljitteitä. Karttaa kutsutaan TIM-kartaksi (Traffic Indication Map), joka ilmoittaa, onko AP:lla odottavaa liikennettä kullekin STA:lle. AP:t lähettävät myös ajoittain jäljitteen, joka sisältää DTIM-kartan (Delivery Traffic Indication Map). Tämä osoittaa että puskurissa on monilähetys- tai yleislähetystietoja. STA-asemien odotetaan heräävän säännöllisesti DTIM-jakson aikana, mikä on jokin monikerta normaalista jäljitteiden välisestä aikavälistä. Pitkää DTIM-aikajaksoa käyttävä IoT-verkko antaisi verkon laitteille mahdollisuuden vähentää virrankulutusta, koska ne voisivat nukkua kauemmin ennen kuin herättävät vastaanottimensa vastaanottamaan jäljitteen, joka osoittaa, että tukiasemalla on sille kehyksiä. Tämä on perusperiaate alla käsitellyn standardin 802.11-virransäästömekanismin takana.
Bluetooth Low Energy (BLE) -toiminnon avulla laitteet voivat vähentää virrankulutusta optimoimalla Bluetooth-mainontataajuuden ja hyötykuorman. Lisäämällä mainontaväliä IoT-laitteet voivat viivästyttää lähettimen toimintaa; pienentämällä hyötykuormaa IoT-laitteet voivat lyhentää lähetystapahtumien kestoa. Jokainen sovellus ei tietenkään voi hyväksyä pitkiä mainosvälejä tai minimaalisia hyötykuormia. Esimerkiksi äänilaitteessa tai reaaliaikaisessa tunnistinlaitteessa pitkät mainontavälit tarkoittavat viivästyneitä yhteyksiä, jotka voivat vaikuttaa haitallisesti koko sovelluksen käyttäytymiseen.
Oheislaitteet voivat käyttää toista BLE-ominaisuutta, jota kutsutaan orjaviiveeksi, jonka avulla oheislaite voi ohittaa yhteystapahtumat. Kuten Wi-Fi DTIM, BLE-orjaviive antaa laitteille mahdollisuuden pysyä virransäästötilassa pidempään. Sen sijaan, että se vain kasvattaisi yhteyksien välistä aikajaksoa, tämä erityistila antaa oheislaitteen ohittaa yhteystapahtumat isännän kanssa, mutta silti herätä ja lähettää dataa tarpeen mukaan aiheuttamatta ylimääräistä viivettä.
Tuki kahden tilan verkkoyhteyksille ja pidennetylle akun kestolle
Nämä menetelmät auttavat lyhentämään aikaa, jona Wi-Fi- ja Bluetooth-laitteet käyttävät täyttä tehoa ja samoin sitä kuinka usein ne käyttävät täyttä tehoa. Kehittäjät voivat tehdä paljon enemmän akun käyttöiän pidentämiseksi käyttämällä Cypress Semiconductorin CY8CKIT-062S2-43012 Wi-Fi BT Pioneer -sarjan esittelemiä laitteisto- ja ohjelmisto-ominaisuuksia. Hyppyjohtojen ja USB-kaapelin ohella Cypress-paketti sisältää PSoC 62S2 Wi-Fi BT Pioneer -kortin, joka tarjoaa kattavan kehitysalustan ja monipuolisen laitteistojärjestelmän vähävirtaisten IoT-tuotteiden toteuttamiseksi. Cypress-ohjelmiston kanssa käytetyn Cypress-paketin avulla kehittäjät voivat arvioida ja ottaa nopeasti käyttöön useita sofistikoituneita virranhallintatoimintoja.
Sarjan sisältää useiden liitäntöjen, painikkeiden ja ledien lisäksi CY8C5868LTI-LP038 PSoC 5LP -laitteen, joka tarjoaa Cypress KitProg3 -ohjelmoinnin ja virheenkorjauksen itse laitteessa. Cypress tarjoaa laitteessa olevaa lisätallennustilaa käyttämällä yrityksen S25FL512S 512 megabitin (Mbit) NOR-sarjamuistilaitetta ja CY15B104 4 Mbit sarjamuotoista FRAM-muistia (Ferroelectric Random Access Memory) (kuva 1).
Kuva 1: Cypress PSoC 62S2 Wi-Fi BT Pioneer -kortti tarjoaa kattavan joukon järjestelmäominaisuuksia, jotka on rakennettu kantomoduulin ympärille. Moduuli käyttää PSoC 6 -mikrokontrolleria ja langatonta Wi-Fi/Bluetooth-yhteysmoduulia. (Kuvalähde: Cypress Semiconductor)
Kortin ytimessä kantajamoduuli integroi Cypress SemiconductorinPSoC 6 -mikrokontrollerin ja Murata Electronics Type 1LVLBEE59B1LV -langattoman yhteysmoduulin passiivisilla komponenteilla. RF-radiotaajuuskytkin ja pienikokoinen kaksikaistainen 2,45 gigahertsin (GHz) / 5 GHz siruantenni täydentävät tukilaitteet.
Suunniteltu erityisesti eliminoimaan tavanomainen kompromissi prosessoinnin suorituskyvyn ja virrankulutuksen välillä, PSoC 6 sisältää 150 megahertsin (MHz)Arm® Cortex®-M4 -prosessorin, joka toimii ensisijaisena sovellusprosessorina, ja 100 MHz:n Arm Cortex-M0+ -prosessorin, joka hoitaa pienitehoista toimintaa. Integroidun flash- ja SRAM-muistin (Static RAM) ohella PSoC6 sisältää salausmoottorin, ohjelmoitavat analogiset ja digitaaliset oheislaitteet, tuen CapSense-kosketustunnistukselle ja useita järjestelmäliittymiä (kuva 2).
Kuva 2: Cypress PSoC 62S2 Wi-Fi BT Pioneer -kortin kantomoduuliin sisältämä PSoC 6 -mikrokontrolleri käyttää monisydämistä arkkitehtuuria täyttääkseen sekä sovellusten käsittelyn että pienitehoisen reaaliaikaisen suorituksen vaatimukset. (Kuvalähde: Cypress Semiconductor)
Murata LBEE59B1LV -moduuli tarjoaa kattavan radioalijärjestelmän 10,0 x 7,2 x 1,4 millimetrin (mm) kokoisessa kotelossa, joka sisältää Cypress CYW43012 WICED (Wireless Internet Connectivity for Embedded Devices) Wi-Fi + Bluetooth-laitteen, referenssikellon sekä suodattimet (kuva 3) .
Kuva 3: Langaton Murata Type 1LV LBEE59B1LV -yhteysmoduuli tarjoaa kattavan esisertifioidun Wi-Fi + Bluetooth-radiojärjestelmän, joka on rakennettu Cypress CYW43012 WICED -laitteen ympärille. (Kuvalähde: Murata Electronics)
Moduuli tukee 2,4 GHz:n ja 5 GHz:n langatonta yhteyttä protokollilla Bluetooth 5.0 ja Wi-Fi 802.11a/b/g/n. Lisäksi moduuli tarjoaa 802.11ac-yhteensopivan tilan, joka tukee 802.11ac:n 256 kvadratuuriamplitudimodulaatiota (QAM) 20 MHz:n kanaville 5 GHz:n kaistalla ja se tarjoaa korkeamman suoritustehon ja vähemmän energiaa bittiä kohti kuin vain 802.11n-protokollaa käyttävät tuotteet. Murata LBEE59B1LV -moduuli on tarkoitettu nopeuttamaan tuotekehitystä ja se on esisertifioitu useilla alueilla, mikä eliminoi vaatimustenmukaisuuden testaukseen ja sertifiointiin liittyvät pitkät viiveet.
Moduulin sisällä Cypress WICED -laitteen Wi-Fi-alijärjestelmä sisältää Arm Cortex-M3 -prosessorin ja Bluetooth-alijärjestelmä Arm Cortex-M4 -prosessorin. Vaikka asiakkaat eivät voi ohjelmoida sitä itse omalla kodillaan, Arm Cortex-M3 -prosessori käyttää Cypress-laiteohjelmistoa, joka tukee Wi-Fi-toimintoja sekä lisätoimintoja, mukaan lukien jäljempänä kuvattu kuormituksen jakotoiminto. Bluetooth-alijärjestelmän Arm Cortex-M4 käyttää Bluetooth-ohjaimen laiteohjelmistoa, Bluetooth-pinoa ja profiileja. Lisäksi tämä ydin voi ajaa asiakaskoodia, joka on ohjelmoitu käyttämällä Cypressin WICED-ohjelmistokehityspakettia (SDK).
Virransäästötapojen käyttäminen langattomissa IoT-tuotteissa
PSoC 6 ja langaton yhteysmoduuli on suunniteltu virrankulutuksen minimoimiseksi ja ne sisältävät kattavan joukon virtatiloja ja virrankulutuksen vähentämistoimintoja. Cypress tukee tätä tehokasta laitteistoalustaa huomattavalla ohjelmistokomponentilla, joka on suunniteltu yksinkertaistamaan virransäästömenetelmien käyttöä langattomissa IoT-tuotteissa. Kehittäjät voivat esimerkiksi helposti toteuttaa aiemmin mainitun pollaavan virransäästömenetelmän käyttämällä itsenäistä upotettuaWi-Fi-isäntäohjaimen (WHD) -kirjastoa.
Kehittäjät yksinkertaisesti kutsuvat WHD-ohjelmointirajapinnan (API) toimintoa whd_wifi_enable_powersave () pollaavan virransäästön ottamiseksi käyttöön ja myöhemmin whd_wifi_disable_powersave () sen poistamiseksi käytöstä. Kun tämä on käytössä, STA ilmoittaa tukiasemalle, että se on mennyt nukkumaan. Kuten aiemmin mainittiin, AP puskuroi kaikki nukkuvalle STA:lle tarkoitetut kehykset ja konfiguroi säännöllisin väliajoin lähetettävän jäljitteen osoittamaan, että STA:lle on kehyksiä. Kun STA herää tarkistamaan jäljitteen, se aloittaa tavallisen prosessin noiden kehysten noutamiseksi.
Vaikka pollaava virransäästömekanismi on tarkoitettu STA-asemille, jolla on matala käyttöjakso, samanlainen menetelmä, jota kutsutaan virransäästöksi ilman pollausta, sopii STA-asemille, joilla on korkeammat tehokkuusvaatimukset. Tässä STA lähettää datakehyksen nollatoiminnolla, mikä aloittaa kehyksen siirron AP:ltä.
Laitteet voivat vähentää vastaanottimen käyttöä pollaavan virransäästön ja pollaamattoman virransäästön ansiosta, mutta eivät eliminoi verkon toimintoihin liittyviä tarpeettomia tapahtumia. Esimerkiksi mikä tahansa verkko, mukaan lukien IoT WLAN, kuljettaa ei-toivottua pakettiliikennettä, kun se on kytketty ulkoiseen verkkoon, erityisesti julkiseen Internetiin. Näiden pakettien suodattaminen tietoliikennealijärjestelmässä ilman IoT-laitteen isäntäprosessoria antaisi isäntäprosessorille mahdollisuuden pysyä vähävirtaisessa lepotilassa.
Ei-toivottujen pakettien lisäksi asianmukainen verkkoliikenne voi saada isäntäprosessorin heräämään tarpeettomasti. Esimerkiksi Wi-Fi:n normaali ARP-protokolla (Address Resolution Protocol) käyttää yleislähetyspaketteja osana laitteeseen liittyvän IP-osoitteen yhdistämiseen laitteen MAC-osoitteeseen. Tämä toimenpide on välttämätön tavallisille WLAN-toiminnoille, joiden avulla laitteet voivat tavoittaa muita verkossa olevia laitteita, havaita päällekkäiset IP-osoitteet ja ilmoittaa muille laitteille, jos IP-osoitetta muutetaan jostain syystä.
ARP-pyyntö- ja vastauspaketit ovat niin tärkeitä verkkotoiminnoille, että IoT-laitteen isäntäprosessori voi kuormittua yksinkertaisesti ARP-pyyntöjen ja vastausten käsittelystä. Jos laitteen WLAN-rajapinta yksinkertaisesti vain välittää pyynnöt ja vastaukset isännän ja verkon välillä, kukin ARP-pyyntö herättää isännän, toisinaan tarpeettomasti.
Sitä vastoin langaton Murata-yhteysmoduuli puuttuu tähän viestinvaihtoon ja suorittaa ARP-pyyntöjen käsittelyn PSoC 6 -mikrokontrollerin puolesta. Kun PSoC 6 on muutoin kiireinen ensisijaisen IoT-sovellustoimintonsa kanssa, tämä ominaisuus käyttää prosessorisyklit sovelluksen suorittamista varten. Jos PSoC 6 on lepotilassa, tämä ominaisuus vähentää IoT-laitteen kokonaisenergiankulutusta. Mahdollistamalla ARP-kuormanvähennyksen vertaisautomaattivastauksella Murata-moduuli herättää PSoC 6:n vain, jos saapuvaan ARP-pyyntöön ei voida vastata Murata-moduulin välimuistissa olevilla tiedoilla (kuva 4, vasemmalla).
Kuva 4: Kun ARP-kuormanvähennys on käytössä, se sieppaa ARP-pyynnöt verkosta (vasemmalta) ja isäntäprosessorilta (oikealta) sekä vastaa niihin automaattisesti, jos pyyntöön voidaan vastata välimuistin avulla (ylhäällä). Prosessori herätetään vain välimuistissa ei ole tarvittavaa tietoa (alhaalla). (Kuvalähde: Cypress Semiconductor)
Tämä sama lähestymistapa voi vähentää myös WLAN-virrankulutusta. Normaalikäytössä Murata-moduuli pystyy seuraamaan (nuuskimaan) verkkoliikennettä ja tallentamaan välimuistiin muista ARP-vastauksista löytyvät IP:MAC-parit. Murata-moduuli voi isännän automaattivastausta käyttämällä vastata PSoC 6:lta saapuviin ARP-pyyntöihin ja kutsua radio-alijärjestelmää vain, jos PSoC 6:n pyyntöön ei voida vastata ARP-välimuistista (kuva 4, oikea).
Yksinkertainen valikkopohjainen virransäästöominaisuuksien toteutus
ARP-kuormanvähennyksen toteuttaminen Pioneer-paketilla on huomattavan yksinkertaista. Cypressin ModusToolBox (MTB) -integroitu kehitysympäristö (IDE) sisältää Cypress Device Configurator -työkalun, jonka avulla kehittäjät voivat ottaa tämän ominaisuuden käyttöön muutamalla valikkovalinnalla. Cypress tarjoaa valmiiksi asennetut konfiguraatiotiedostot, joiden avulla kehittäjät voivat valita nopeasti erilaisia konfiguraatioita, ARP-kuormanvähennys mukaan lukien.
Konfiguraatioiden eksplisiittinen määritteleminen Device Configurator -työkalun avulla on melkein yhtä suoraviivaista. Kehittäjät käyttävät työkalun valikkovaihtoehtoja ottaakseen käyttöön isännän herätysnastan, nimeävät nastan (CYBSP_WIFI_HOST_WAKE) ja asettavat nastan parametrit (kuva 5).
Kuva 5: Kehittäjät voivat Cypress Device Configurator -työkalun avulla käyttää valikkoja Pioneer-kortin tarjoamien virransäästöasetusten määrittämiseen. (Kuvalähde: Cypress Semiconductor)
Kehittäjät ottavat työkalun Wi-Fi-välilehdessä käyttöön isäntäherätyksen ja asettavat keskeytysnastalle aiemmin syötetyn nimen (CYBSP_WIFI_HOST_WAKE). Lisävalikkomerkinnät mahdollistavat ARP-kuormanvähennyksen, asettavat ominaisuuden vertaisautomaattivastaukseen, mahdollistavat verkon seurannan sekä asettavat voimassaoloajan välimuistin merkinnöille (kuva 6).
Kuva 6: Cypress Device Configurator -työkalun lisävalikkovälilehtien avulla kehittäjät voivat ottaa käyttöön ARP-kuormanvähennyksen ja sellaisia erityisominaisuuksia kuten automaattisen vertaisvastauksen. (Kuvan lähde: Cypress Semiconductor)
Konfiguraation tallentamisen jälkeen kehittäjät yksinkertaisesti luovat lähdetiedostot, kääntävät räätälöidyn projektin ja ohjelmoivat Pioneer-kortin. Samankaltaisen menettelyn avulla kehittäjät voivat määrittää Murata-moduulin vähentämään kuormitusta Wi-Fi-pakettisuodatuksessa ja käsittelemään muita yleisiä verkkotoimintoja. Saman lähestymistavan avulla IoT-laite voi noudattaa jopa Wi-Fi-TCP:n hengissäpitoprotokollaa, joka tarvitaan Wi-Fi-yhteyden ylläpitämiseen – kaikki herättämättä IoT-isäntäprosessoria.
Normaalissa WLAN-toiminnassa asiakaslaite ja isäntäpalvelin pitävät TCP-yhteyksiä yllä vaihtamalla hengissäpitopaketteja. Jos jompikumpi tähän viestittelyyn osallistuva osapuoli ei saa vastausta muutaman yrityksen jälkeen, se katkaisee yhteyden. Jopa virtarajoitteisissa IoT-laitteissa isäntäprosessorin on jatkuvasti herättävä osallistuakseen tähän viestittelyyn tai käytettävä vielä enemmän virtaa yhteyden luomiseen kerta toisensa jälkeen.
Kuten ARP-kuormanvähennyksessä, kehittäjät voivat käyttää Device Configurator -työkalua ja sallia kuorman vähennyksen TCP:n hengissäpidon yhteydessä. Kun tämä ominaisuus on otettu käyttöön, Murata-moduuli noudattaa hengissäpitoprotokollaa automaattisesti herättämättä PSoC 6 -piiriä (kuva 7).
Kuva 7: Kun kuorman kevennys TCP:n hengissäpidossa on käytössä, langaton yhteysmoduuli (WLAN-laite) noudattaa automaattisesti hengissäpitoprotokollaa, jolloin isäntäprosessori voi pysyä vähävirtaisessa lepotilassa. (Kuvalähde: Cypress Semiconductor)
Vaikka Cypress suositteleekin Device Configurator -työkalun käyttöä helpoimpana toteutustapana, kehittäjät voivat myös toteuttaa Cypress-alustan virransäästöominaisuudet manuaalisesti, mukaan lukien ARP-kuormanvähennys, pakettien suodatus, kuorman kevennys TCP:n hengissäpidossa ja niin edelleen.
Molempien lähestymistapojen taustalla on Cypressin Low Power Assistant (LPA) -väliohjelmisto, joka tukee näitä virransäästöominaisuuksia Wi-Fi-, Bluetooth- ja PSoC 6 -mikrokontrollerille yhdessä muiden tässä mainitsemattomien ominaisuuksien kanssa.
Sen jälkeen kun kehittäjä on määrittänyt konfiguraatiot valikoiden avulla tai lisäämällä konfiguraatiokoodin manuaalisesti, LPA-laiteohjelmisto toimii sovelluksessa läpinäkyvästi, järjestäen automaattisesti vähän virtaa kuluttavien laitteisto-ominaisuuksien ja ohjelmisto-ominaisuuksien käyttöä.
Yhteenveto
IoT-laitteilta vaaditaan jatkuvaa langatonta verkkoyhteyttä ja pidempää akunkestoa. Nämä ovat suunnittelijoiden näkökannalta ristiriitaisia vaatimuksia ja niitä vain pahentaa tarve tukea sekä Wi-Fiä että Bluetoothia. Kuten artikkelissa on osoitettu, Cypress Semiconductorin CY8CKIT-062S2-43012 Wi-Fi BT Pioneer -sarja yhdistää mikrokontrollerin sekä radion alijärjestelmän, joka pystyy vähentämään verkon prosessointitehtävien kuormitusta, ja jonka avulla kehittäjät voivat täyttää jatkuvaa langatonta verkkoyhteyttä ja vähäistä virrankulutusta koskevat IoT-vaatimukset.

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.