Hur man väljer en mikrokontroller (3 / 23 steg)
Steg 3: Tankar om arkitekturer
Du kommer att höra talas om hur vissa arkitekturer är bättre än andra. Jag antar att detta är sant. Men jag kommer att påstå att det är i stort sett irrelevant för typiska hobby. Om du vill undvika arkitektoniska påhitt av en särskild familj av mikrokontroller, kan du använda en hög nivå språk. Om du är villig att programmet i assembler, är du på en nivå av intresse där lärande och övervinna egenheter är partiet av de saker som du bör lärande. Dessutom, vi pratar inte här om utvärdering av några nya arkitektur som vissa företag föreslår. Alla marker jag nämner i detta instructable har funnits länge nog att de har bevisat att deras arkitekturer är bra nog för många verkliga applikationer.
Här är några arkitektoniska "funktioner" kan du läsa om och viss förklaring vad de betyder.
CISC/RISC. Complex Instruction Set Computer. Reduced Instruction Set Computer.
I gamla dagar, CPU designers var att få smart och ville ha deras processorer att stödja högnivåspråk funktioner i hårdvara, vilket leder till cobol-liknande string manipulation instruktioner som accepterade argument i block 8 register. Jag minns, det var Berkeley och IBM som märkte att kompilatorn författare visste inte riktigt hur man använder sådana komplicerade instruktioner från en kompilator, mängden kisel fastigheter används av dessa instruktioner var att få stora och faktiskt hårdvara genomförandet ibland inte var lika snabb som gör samma sak i programvara i alla fall. Så de sa "jag vad vi kan göra CPU gå mycket snabbare om vi lämnar ut dessa komplexa instruktioner och ägna kisel till fler register eller cache-minne eller något", och därmed uppfann RISC processor. Numera används ofta "RISC" av marknadsavdelningar för att betyda "vi inte har många instruktioner", även om resten av arkitekturen är inte så mycket som de ursprungliga RISC forskarna hade tänkt.
Harvard arkitektur.
I en Harvard arkitektur, den instruktion och dataminne är separata, kontrolleras av olika bussar, och ibland har olika storlekar. För microcontrollers, instruktionerna lagras vanligtvis i "read only" minne, och data är i RAM eller register. Ett exempel är den
PIC mikrokontroller, där instruktioner finns i 12, 14 eller 16 bitar bred flash, och data är i 8 bitar
bred RAM.
Von Neuman arkitektur.
I en von Neuman arkitektur, data och instruktioner andel minnesutrymme, så du kunde göra saker som dynamiska sammanställning att generera instruktioner i RAM och sedan köra dem. TI MSP430 är ett exempel på en von Neuman arkitektur.
Ackumulator baserat
I en "ackumulator baserade" arkitektur finns det vanligt en "särskilt" register där de flesta av faktiska uträkningen (matematik, logik, etc) uppstår. Vissa ansträngningar har spenderas för att få operander i ackumulatorn och resultat tillbaka ut till där du behöver dem. Motsatsen är en processor med "general purpose" register, där någon av flera register kan användas för matematik/etc.
Belastning/butik
En belastning/store arkitektur innebär vanligtvis att operanderna till ALU operationer måste vara i register, så att du måste ladda dem ur minnet förväg och lagra dem tillbaka när verksamheten är komplett. Motsatsen gör vanligtvis åtgärder mellan ett register eller
ackumulator och en minnesplats direkt. RISC-arkitekturer tenderar att vara belastning/butik, eftersom många eller CISCness av CISC-processorer visar upp vid genomförandet av komplexa "adressering lägen" för att komma åt minnet operanderna. I en RISC-arkitekturen har all den komplexiteten bara genomföras i belastning och lagra instruktioner (om alls.)
Registrerar
Minnesmappade I/O