Hur man väljer en mikrokontroller för applikationer för digital signalbehandling

Hur man väljer en mikrokontroller för applikationer för digital signalbehandling

Den här artikeln beskriver de funktioner du bör leta efter när du behöver en MCU för att fungera som både systemkontroll och digital signalprocessor.

Digital signalbehandling kan ge värdefull funktionalitet till ett stort antal produkter och applikationer. Även design som begränsas av kostnad, formfaktor eller timing kan enkelt kombinera fördelarna med DSP eftersom ingenjörer idag har tillgång till ett stort antal bibliotekskod, exempelprojekt och högpresterande processorer. billigt och relativt lätt att använda. .

En äkta digital signalprocessor, som en del av Texas Instruments C5000-familj eller Analog Devices ‘SHARC-familj, kan vara en skrämmande enhet. Jag arbetade främst med DSP från Texas Instruments och totalt sett var upplevelsen produktiv och givande. Men i det här fallet behövde jag inte designa kretskortet och jag gillade inte att försöka fixa konstiga systemfel och förstå detaljerna i operativsystemet.

Det råder ingen tvekan om att vissa beräkningsintensiva DSP-uppgifter kräver en äkta digital signalprocessor eller till och med en FPGA. Men det är också sant att en väl vald mikrokontroller räcker i många applikationer. Den här artikeln tittar på de funktioner och funktioner du bör fokusera på när du vill se till att din MCU har tillräcklig DSP-effekt.

8 bitar, 16 bitar eller 32 bitar?

Detta problem är enklare än du tror. Generellt är 16-bitars och 32-bitars enheter mer lämpliga för DSP-applikationer. Digital signalbehandling involverar matematiska procedurer som ofta leder till stort antal, och du vill ha en processor som direkt kan bearbeta de stora siffrorna.

8-bitars bearbetning är dock inte dålig till sin natur, och om du vet att du kommer att hantera ett begränsat spektrum av digitala värden kan en 8-bitars mikrokontroller vara ett bra val.

Dessutom har ingenjörer ofta inte tid eller lust att studera detaljerna på en lågnivå hos en processor, och det kan därför vara svårt att skapa en tydlig koppling mellan den angivna bitbredden och den faktiska datoreffektiviteten. Finns det till exempel 32-bitarsregister i en “32-bitars mikrokontroller”? Är det en 32-bitars ALU? 32-bitars adressbuss? 32-bitars kommunikationsgränssnitt? Vad betyder “32 bitar” exakt? Dessa detaljer kan påverka ditt beslut, särskilt om du förväntar dig att hantera små nummer som inte behöver alla dessa extra bitar.

Denna moderniserade 8-bitars arkitektur har utvecklats av Silicon Labs (diagram hämtat från detta dokument). De varnar mot antagandet att en 16-bitars eller 32-bitars enhet konsekvent kommer att överträffa en 8-bitars enhet.

Klockfrekvens

Den maximala klockfrekvensen för en mikrokontroller är definitivt en bra indikator på dess fördelar som en digital signalprocessor. Det är dock viktigt att förstå skillnaden mellan klocka per sekund och instruktioner per sekund. Processorn utför DSP-uppgifter genom att följa instruktionerna, och som ett resultat påverkas dess prestanda av både klockfrekvensen och antalet klockcykler som krävs för att utföra instruktionerna.

Tyvärr blir detta problem snabbt ganska komplext. Antalet klockcykler som krävs för en instruktion varierar från en instruktion till en annan, och genomsnitt Antalet klockcykler per kommando kan minskas med hjälp av en segmenterad arkitektur. Därefter måste du överväga mängden “funktionalitet per kommando”, dvs mikrokontroller A behöver bara ett kommando för att göra något som kräver flera kommandon i mikrokontroller B.

Detta diagram förmedlar konceptet för en segmenterad processor. Se den här artikeln för mer information. Colin ML Burnett [CC-BY-SA-3.0].

Här är mitt förkortade tips: Om du jämför enheter från samma familj, gå till en högre klockhastighet. Om du jämför enheter med betydande arkitektoniska skillnader, försök hitta en pålitlig funktion som visar kommandokörningshastigheten (MIPS uttryckt i miljoner kommandon per sekund) eller det genomsnittliga antalet klockcykler per kommando.

Fast punkt etc. flytpunkt

Termen “flytpunkt” hänvisar till en numerisk representation där baspunkten kan “flyta” eftersom siffran består av en del av ett heltal (mantis) och en exponent. Alternativet (“fast punkt”) hänvisar till hur vi normalt bearbetar och uppfattar data i en vanlig mikrokontroller. En noggrann jämförelse mellan flytande aritmetik och fixpunkt aritmetik är inte alls en enkel uppgift, men det verkar finnas enighet om att flytande punktbearbetning kan vara överlägsen i matteintensiva applikationer.

Jag tror att det är säkert att säga att alla mikrokontroller är fastpunktsenheter, för jag tror att om det verkligen är en flytpunktsprocessor är det inte längre en mikrokontroller. Men om du verkligen är fast besluten att maximera din matteprestanda medan du stannar inom mikrokontrollers domän, bör du överväga en flyttalsenhet. makeprocessor.

LPC3180FEL320, en 16/32-bitars ARM-baserad mikrokontroller från NXP, har en flytpunktsprocessor och kan nå upp till 220 MIPS. STMicroelectronics har också STM32-mikrokontroller som inkluderar en flytande punktenhet (FPU).

Jag använde lite flytande matte i mitt cirkulära beröringssensorprojekt. I de flesta fall krävs inte en separat FPU – kompilatorer är bra på att implementera variabla variabla punkter i typiska mikrokontroller.

Sammanfattning

I den här artikeln utforskar vi CPU-funktionerna som gör en mikrokontroller mer eller mindre lämplig för DSP-applikationer. Jag tycker att det är vettigt att fokusera på bitbredd och MIPS i de flesta fall, såvida du inte planerar att göra seriösa beräkningar med din MCU, bör du inte oroa dig för mycket för flytpunkt snarare än fast punkt. Vi fortsätter med detta i nästa artikel som diskuterar miljöaspekter av DSP.

Introduktion till mikrokontroller-serien

Denna artikel är en del av en större serie. Du hittar andra artiklar nedan: