IoT:
Utvikling av kantnoder – gjort enkelt
PIC og AVR MCUer gjør utvikling av kantnoder enkelt, forklarer applikasjonsingeniør Ross Satchell fra Microchip i denne artikkelen.
Ved utvikling av robuste kantnoder har designeren av det innvevde systemet gjerne fire spesielle hensyn i tankene:
· Sensorgrensesnitt
· Lav effekt
· Fysisk størrelse
· Sikkerhet
Microchip Technology tilbyr mikrokontrollere (MCUer) med et bredt inngangsspenningsområde fra 1,8 til 5,5V, noe som gjør dem uvurderlige i støyende miljøer da alle signaler kan løftes ut av bakgrunnsstøyen, mulighet til å kilde eller synke opp til 50mA på individuelle GPIO-pinner, samt industrielle (-40°C til 85°C) og utvidede (-40°C til 125°C) temperaturområder.
La oss se nærmere på disse fire hensynene i rekkefølge.
Sensorgrensesnitt:
Sensorgrensesnitt kommer i flere vanlige varianter. Vanligvis bruker systemdesigneren: Analoge sensorer som sender ut en kontinuerlig varierende spenning eller strøm, Digitale sensorer som kan bruke logiske nivåer eller datastrømmer som seriell kommunikasjon, Variable Pulse Width Modulation (PWM), som gassposisjonssensorer, eller Time of Flight-sensorer brukt i avstandsmåling. La oss se på noen av disse mer detaljert.
Analoge sensorgrensesnitt
Å ha muligheten til å velge mellom diskret analog eller integrert analog på brikken betyr at brukeren kan velge det riktige analoge verktøyet for jobben. Ved å bruke en større prosessteknologi på silisiumskivene våre, betyr dette at den analoge periferien på brikken er langt mindre utsatt for krysstale samt induktiv eller kapasitiv støy, som typisk øker etter hvert som produsenter går over til mye mindre prosessteknologier. Microchips integrerte analoge periferkretser på brikken kan konfigureres akkurat som brukeren ville konfigurert alle andre perifere komponenter. Ved å ha periferkretser integrert kan brukeren også lese dem som innganger, for eksempel kan brukeren ønske å vite hva inngangene til komparatoren er i løpet av en bestemt fase av programmet.
La oss se litt på noen av disse analoge periferikretsene, og vi kan starte med op-amper.
Integrerte op-amper:
Microchips integrerte op-amper har også de tilhørende passive kretsene på brikken, slik som den interne motstandsstigen som lar programmerbar forsterkning stilles inn og til og med endres under kjøretid. Videre kan op-amp-konfigurasjonen også endres under kjøretid, noe som betyr at brukeren kan bytte mellom inverterende, ikke-inverterende, enhetsforsterkning (spenningsfølger), og tilpassede diskrete konfigurasjoner under kjøretid, noe som gir langt større fleksibilitet enn å bruke diskret maskinvare alene, og minimerer kostnadene forbundet med diskret maskinvare.
Vanligvis når man bruker diskret maskinvare, blir designeren tvunget til å designe sin mikset-signalapplikasjon med tanke på å håndtere verst-mulig-scenarier, og derfor må noe ytelse ofres. Ved å bruke integrerte analoge periferikretser kan brukeren imidlertid bygge litt intelligens inn i applikasjonen sin, der det innvevde systemet kan endre op-amp-forsterkningen, konfigurasjonen eller til og med overlappe dem i farten. Dette betyr at brukeren kan designe applikasjonen sin for å håndtere hvert enkelt scenario optimalt, samtidig som de drar fordel av det lavere strømforbruket til periferikretsene, sammenlignet med programvaresentriske løsninger.
Det må sies at den integrerte op-ampen ikke er en "magisk boks", og som sådan vil den ikke alltid være best egnet for alle mulige applikasjoner. For eksempel, hvis brukeren finner seg selv i å utvikle en applikasjon der de trenger overlegen analog ytelse, dobbel strømforsyningskonfigurasjon eller en spesialitetsvariant, bør de se på Microchips brede utvalg av diskrete op-amper. Dette er et perfekt tilfelle for å velge rett verktøy for den aktuelle jobben.
Analog-til-Digitalomformer (ADC) med utvidede egenskaper:
Microchips forbedrede ADC periferifunksjoner inkluderer maskinvarefunksjoner som tradisjonelt bare var tilgjengelige ved bruk av programvaresentriske drivere, for eksempel akkumulering, burst-moduser, gjennomsnitt, vindussammenligning og filtrering. Som alltid kan disse ADC-periferiene bruke eksterne referansespenninger, men de kan også bruke flere forskjellige interne referansespenninger sammen med trigging av automatisk konvertering. Dette resulterer i at brukeren har tilgang til maskinvarefunksjonene som kan benyttes mens CPUen er i laveffektmodus. For eksempel kan brukeren konfigurere en ADC-vindussammenligning som bare vekker CPUen når inngangssignalet er utenfor det vinduet, slik at CPUen kan behandle det aktuelle inngangssignalet på riktig måte. Dette betyr at CPUen våkner langt sjeldnere og resulterer i betydelige strømbesparelser, noe som er avgjørende i laveffektapplikasjoner. Dette gir en ekstra fordel i form av redusert system- og dermed sensorstøy, siden digitale komponenter som klokker og PWM kan deaktiveres når de ikke er i bruk.
Digitale Sensorgrensesnitt
Vanligvis, når en designer av innvevde systemer begynner å utvikle en applikasjon, vil man forsøke, så mye som rimelig mulig, å samle sensorene og komponentene rundt et enkelt spenningsdomene. Dette er for å redusere den ekstra kompleksiteten, økte utbredelsesforsinkelsen og tilhørende stykklister (BOM) samt kretskortplass forbundet med bruk av nivåskiftende kretser.
Multi-Spennings I/O:
Multi-spennings I/O (MVIO) lar brukeren sette opp én full I/O-port ved å bruke et ekstra spenningsdomene mellom 1,62 V og 5,5 V. Periferikretsene for MVIO bruker bare 500nA når de er i bruk, noe som gjør det ideelt for laveffektapplikasjoner. Heldigital oppførsel i serielle protokoller (I2C, SPI, USART), PWM og GPIO fungerer alle kun på det andre spenningsdomenet, med Schmitt Trigger-nivåer på inngangen som skaleres i henhold til det andre spenningsdomenet. I tillegg kan den andre spenningsskinnen deles ned for å være tilgjengelig for inngang til ADC som en spenningsreferanse.
Konfigurerbare logiske celler (CLC):
Brukeren kan konfigurere disse periferikretsene som en av flere forskjellige logiske konfigurasjoner, som avhengig av enheten inkluderer følgende portkonfigurasjoner: OG, NAND, OG-ELLER, OG-ELLER-INVERTER, ELLER-XOR, ELLER-XNOR. Brukeren kan også velge mellom følgende låser og flip-flops: S-R-lås, J-K-flip-flop med tilbakestilling, Klokket D-lås med set og reset, transparent D-lås med set og reset. Brukeren kan utnytte Microchips grafiske konfigurasjonsverktøy for å lettere lage tilpassede periferikretser for deres applikasjonskrav.
Dette kan være noe så enkelt som en taste-debouncer, eller mer involvert som for eksempel en maskinvaredriver for WS2812B Individuelt adresserbare RGB-lysdioder som kombinerer SPI, PWM og CLC for å lage en tilpasset driverperiferi. Tradisjonelt er driverne for disse individuelt adresserbare LED-ene, som bruker en tilpasset kommunikasjonsprotokoll, programvaredrevet, noe som krever en høyhastighets systemklokke, og som resulterer i en stor CPU-belastning. Ved å bruke Core Independent Peripherals (CIP-er), kan imidlertid systemklokken reduseres, CPUen kan bruke mer tid i moduser med lav effekt eller til og med brukes til å kjøre andre oppgaver samtidig.
Bruk av CIPer gir også brukeren økt respons sammenlignet med å bruke en CPU. Dette er fordi forplantningsforsinkelse i periferikretsene har en tendens til å være i nanosekunder, mens avbrudd eller annen latens på grunn av programvaresentrisk prosessering har en tendens til å være langt større.
Laveffekt:
Microchip 8-bits MCUer tilbyr tre moduser med lavere effekt (hvilemodus): Idle, Standby, Power-Down, samt en konfigurerbar ventemodus der eksterne enheter kan konfigureres som på eller av. Med alle periferikretser av og i Power-Down-modus bruker AVR-DB bare 700nA, noe som gjør den ideell for å sikre lang batterilevetid i laveffekt kantnodeapplikasjoner for fjernmåling.
Brukeren kan bruke AVR Event System til å sende signaler mellom eksterne enheter uten å vekke CPU. Dette resulterer i forutsigbare responstider mellom perifere enheter, som gir mulighet for autonom perifer kontroll og interaksjon, og synkronisert timing av perifere handlinger.
De integrerte CIPene er også svært integrert, slik at signaler kan rutes direkte mellom periferiutstyr – noe som gjør overføringen av data mellom periferiutstyr mye enklere å oppnå, samtidig som det bruker mindre strøm enn i en programvaresentrisk design.
Fysisk størrelse:
Microchips utvalg av 8-bits PIC- og AVR MCUer kommer i en rekke pakker for dine designbehov, inkludert PDIP, SOIC, SSOP, VQFN og TQFP. Dette gir deg fleksibilitet når du utvikler ditt endelige kretskort-design. Vær imidlertid oppmerksom på at den maksimale strømstyrken til MCU kan være begrenset av komponentpakkens effekttap.
Sikkerhet:
De siste årene har det vært et skifte bort fra sensornoder som gjør all sin prosessering i skyen, og mot kantnoder som gjør det meste eller hele sin prosessering lokalt før resultatene sendes til skyen. Dette reduserer de løpende kostnadene forbundet med skytjenester ved å redusere hyppige toveis dataoverføringer og dataprosessering, samt økt strømforbruk for sensornoden ved å ha hyppige større dataoverføringer på grunn av sending av rå ubehandlet data til skyen.
Designere av innvevde systemer kan koble sammen en laveffekt 8-bits MCU som brukes til direkte grensesnitt med sensorer, med en kraftigere 16- eller 32-bits komponent som kan brukes for den tyngre prosesseringsbelastningen og økte minnekrav forbundet med mer komplekse og sikre kommunikasjonsstakker. Ved å redusere det totale antallet dataoverføringer mellom kantnoden og skytjenesten, kan både de løpende skykostnadene og batteribruken reduseres betydelig. I tillegg, ved å utnytte en ekstra, kraftigere MCU i designet, kan ingeniører til og med utføre maskinlæring (ML) i kanten, noe som gjør systemdesignet deres langt kraftigere for å avdekke mønstre i data og gi nyttig innsikt.
Designere kan også dra nytte av Microchips sikre elementer, inkludert ATEC608B som bruker ECDSA (Elliptic Curve Digital Signature Algorithm) sign-verify autentisering for IoT-markedet, noe som gjør den ideell for robuste sensor-kantnoder.
Brukervennlig programvare bidrar til å redusere utviklingskostnader
Ved å bruke integrerte periferikretser på brikken, kan brukeren redusere designkompleksiteten på kretskortet, og spare verdifull kortplass samtidig som man reduserer det totale antallet komponenter i stykklisten.
Dette forenkles ytterligere ved å bruke grafiske programvareverktøy som MCC/Melody og Harmony for å konfigurere periferikretsene og systemet. Disse kan brukes til å komme raskt i gang, da de tilbyr en høynivåvisning av MCU og perifere funksjoner. Dette betyr at brukeren kan redusere tiden de bruker på å studere MCU-dataarket betydelig. Dette er ideelt for designere når de skal evaluere nye eller kanskje ukjente periferifunksjoner og generere brukbar kode som kan brukes i produksjon, eller som en praktisk referanse for folk som ønsker å utvikle sine egne drivere.
Alle MCU- og MPU-produkter som tilbys av Microchip kan programmeres gjennom MPLABX IDE som kjører på Windows, MacOS og Linux ved å bruke vårt utvalg av kompilatorer inkludert XC8, XC16 og XC32. Designeren kan feilsøke applikasjonen sin uten å forlate IDE og kan bruke Data Visualizer til å koble til Data Gateway Interface (DGI), serielle porter, samt sende ut informasjon i en terminal, eller grafisk plotte dataverdier over tid. Data Visualizer kan også brukes med Microchip Power Debugger som har to uavhengige målekanaler, kan levere opptil 100 mA ved 1,6 V til 5,5 V for å drive målenheten, og kan måle ned til 100 nA i den høyoppløselige kanalen. Dette gjør Power Debugger ideell for å optimalisere laveffektapplikasjoner som forventes å kunne kjøre på et batteri i årevis.
Dataarket for komponenten og annen nyttig dokumentasjon kan nås gjennom MPLABX under Kit-vinduet. Hvert komponentdataark dekker en familie av komponenter, slik at seeren kan sammenligne komponenter innenfor en familie for å identifisere komponentene som best oppfyller designkravene deres. Slike krav inkluderer minne, RAM, type og antall forekomster av periferikretser, inkludert støttede serielle protokoller og konfigurerbare logiske celler (CLC). Hvis man bruker et PIC- eller AVR Curiosity Nano-utviklingskort, kan brukeren også få tilgang til Curiosity Nano Hardware User Guide, GitHub-kodeeksempler, skjemaer og Altium prosjektfiler fra Kit-vinduet.
Brukervennlige maskinvareverktøy for programmering og debugging:
Microchip tilbyr en rekke maskinvareverktøy for å evaluere en MCU, for eksempel Curiosity Nano-utviklingskortene, som kan brukes med Curiosity Nano Base-kortet for å tillate enkel bruk av alle datterkort som bruker MikroBUS-kontakter. Dette gjør det mye enklere å utvikle en prototype eller proof of concept. Så når designeren begynner å utvikle et kundespesifisert kretskort for applikasjonen deres, kan de programmere og feilsøke applikasjonen ved hjelp av PICKit programmeringsfeilsøkeren.
Konklusjon:
Ved å benytte Microchips utvalg av 8-biters PIC og AVR MCUer, kan designere av innvevde systemer enklere og raskere utvikle robuste sensorkantnoder med lav effekt enn noen gang før, samtidig som de inngår færre kompromisser. Designere kan utnytte en kraftig pakke med Core Independent Peripherals (CIPs), inkludert å lage tilpassede periferikretser, mens de bruker maskinvarefunksjoner som tradisjonelt krevde strømkrevende CPU-intervensjon, alt mens de forblir i en lavere effektmodus (hvilemodus). Med PIC og AVR MCUer gjør Microchip utvikling av fjernmålings-, skytilkoblede- og ML-noder enklere enn noen gang!