Wereldwijde high-mix volume hoge snelheid PCBA fabrikant
9:00 -18:00 uur, ma. - Vr. (GMT+8)
9:00 - 12:00 uur, za. (GMT+8)
(Behalve Chinese feestdagen)
Startpagina > Blog > Kennisbank > FPGA versus microcontroller: de belangrijkste verschillen
Microcontrollers en field programmable gate arrays (FPGA's) worden beide vaak gebruikt in het ontwerp van digitale systemen. Microcontrollergebaseerde systemen worden steeds populairder. Enerzijds maken hun lage kosten, lage stroomverbruik en geschiktheid voor eenvoudige besturingstaken ze een voor de hand liggende keuze. Anderzijds maken de snel groeiende populariteit van FPGA's, de beschikbaarheid van robuuste ontwikkeltools en hun toegenomen parallelle verwerkingscapaciteit en -dichtheid FPGA-gebaseerde systemen een aantrekkelijke optie.
Er zijn momenteel verschillende microcontrollercores beschikbaar voor de embedded markt, variërend van conventionele ontwerpen zoals de 8051 tot RISC- of DSP-machines. De keuze tussen verschillende ontwerpen wordt bepaald door criteria zoals snelheid, vermogen, geïnstalleerde basis, hergebruikpotentieel en andere technische overwegingen. Embedded toepassingen vormen een steeds groter wordend onderwerp van studie in computersystemen. Het grote aantal communicatiepoorten, Pulse Width Modulation (PWM)-units en analoog-naar-digitaal converters (ADC's) van de MCU, verpakt in één chip, maakt hem ideaal voor industriële toepassingen.
In diverse sectoren van de elektrotechniek worden MCU's doorgaans gebruikt voor eenvoudige besturings-, communicatie- en laagcomplexe taken, terwijl Field Programmable Gate Arrays (FPGA's) worden ingezet voor snelle, tijdkritische verwerkingstaken. Toepassingen gebaseerd op apparaten die in consumentenelektronica zijn geïntegreerd, kennen echter diverse ontwerpbeperkingen. In dit geval kunnen stroomverbruik, codedichtheid en perifere integratie voorrang krijgen boven prestatievereisten. Aan de andere kant maken de toenemende dichtheid van FPGA's en de prijsdaling als gevolg van de hoge productievolumes vanuit technologisch oogpunt de integratie van embedded systemen in één FPGA-chip mogelijk.
Een microcontroller is een elektronisch apparaat dat behoort tot de microcomputerfamilie. De componenten van de microcontroller worden met behulp van Very Large Scale Integration (VLSI) gefabriceerd tot één enkele chip. Ze staan ook bekend als Computer-on-Chip. Een microcontroller heeft een bepaalde hoeveelheid RAM en ROM (EEPROM, EPROM, enz.) of flashgeheugen voor het opslaan van programmacodes. Extra functies zijn timers, parallelle poorten, seriële poorten, interruptpoorten, ADC, PWM en DAC. Een microcontroller is een microprocessor met geheugen- en I/O-functionaliteit. Microcontrollers worden veel gebruikt in embedded systemen vanwege de integratie van CPU, geheugen en I/O-randapparatuur in één chip.
Een pc of laptop is een apparaat voor algemeen gebruik (gebruikt voor diverse taken zoals gamen, internetten, muziek luisteren, tekstverwerken, enz.). Embedded systemen daarentegen zijn doorgaans apparaten met één functie, ontworpen voor specifieke taken. Een belangrijk kenmerk van microcontrollersystemen is dat ze vaak specifieke taken uitvoeren zonder dat een volledig besturingssysteem (bijvoorbeeld Windows, Linux, macOS, iOS) nodig is. Horloges, mp3-spelers, verkoopautomaten en andere elektronische apparaten bevatten embedded systemen. Een complete computer zou soms de functionaliteit van het apparaat verstoren. Stel je voor dat je Windows moet opstarten om een vaatwasser te bedienen. Figuur 2 toont de architectuur van een microcontroller.
Compilers controleren of code in hogere programmeertalen geldig is, zowel wat betreft grammatica als geheugentoewijzing. In deze gevallen worden vaak fouten of waarschuwingen weergegeven en worden codes met fouten niet op de microcontroller opgeslagen. Zodra de code correct is, zet de compiler deze om in machinecode en genereert een HEX-bestand dat in het geheugen van de microcontroller wordt geladen.
Veldprogrammeerbare poortarrays (FPGAs) zijn digitale geïntegreerde schakelingen (IC's) met veranderlijke (programmeerbare) logische blokken en interconnects. Ontwerpers kunnen dergelijke gadgets programmeren om een breed scala aan functies uit te voeren. Afhankelijk van hun constructie kunnen bepaalde FPGA's slechts één keer geprogrammeerd worden, terwijl andere herhaaldelijk geprogrammeerd kunnen worden. Het is dan ook niet verwonderlijk dat een apparaat dat slechts één keer geprogrammeerd kan worden, een eenmalig programmeerbaar apparaat wordt genoemd.
Het "field-programmable" deel van de naam van de FPGA verwijst naar het feit dat programmeren "in het veld" plaatsvindt (in tegenstelling tot apparaten waarvan de kernfunctionaliteit door de fabrikant is vastgelegd). Dit kan van toepassing zijn op het configureren van FPGA's in het lab of het wijzigen van de werking van een apparaat in een elektronisch systeem dat al in de praktijk is geïmplementeerd. Als een apparaat kan worden geprogrammeerd terwijl het zich in een hoger systeem bevindt, wordt het in-system programmeerbaar genoemd. Figuur 3 toont het ontwikkelbord voor de FPGA.
FPGA's worden vaak gebruikt als coprocessors voor bestaande processoren, om tijdkritische taken te versnellen of om de functionaliteit van typische ALU's uit te breiden. Bij microcontrollers vereist het berekenen van vergelijkingen met meer dan twee termen bijvoorbeeld een reeks rekenkundige en/of logische bewerkingen, en in veel gevallen moet er een tijdelijke variabele worden toegewezen. FPGA's kunnen de prestaties van dergelijke systemen verbeteren door dergelijke berekeningen parallel uit te voeren met behulp van een aanzienlijke hoeveelheid combinatorische logica.
Ze worden ook vaak gebruikt in computersystemen op maat, waarbij een compleet computerapparaat wordt gecreëerd en geïmplementeerd in een FPGA. Single-chip microcontrollers worden vaak gebruikt en zijn voldoende voor bepaalde toepassingsbehoeften. In dit geval hoeft alleen de software voor de gewenste toepassing te worden geschreven. De hardware-interface is essentieel voor het ontwerp van dergelijke systemen en wordt vaak geïmplementeerd met behulp van standaard gespecialiseerde chips. Dit resulteert in een vast systeem dat niet kan worden gewijzigd zonder een hardware-aanpassing. FPGA's bieden aanzienlijke flexibiliteit in deze toepassingen, waardoor hardware-aanpassing en parallelle verwerking mogelijk zijn. Afbeelding 4 toont het interne blokschema van een FPGA-ontwikkelbord.
Prestaties
Omdat microcontrollers afhankelijk zijn van de kloksnelheid, presteren ze meestal lager dan FPGA's, omdat hun frequentie afhankelijk is van het ontwerp. De meeste van deze toepassingen zijn beeld- en videoverwerking.
Energieverbruik
Microcontrollers (MCU's) verbruiken minder stroom dan FPGA's vanwege hun compacte formaat. Microcontrollers zijn ideaal voor het aandrijven van batterijen, omvormers en converters. Aan de andere kant zijn FPGA's beter in digitale beeld- en videoverwerking.
Flexibiliteit en maatwerk
De hardwareconfiguratie is flexibel tijdens gebruik in FPGA's, terwijl bij microcontrollers alle aanpassingen via softwareontwikkeling worden gedaan. Dit maakte microcontrollers minder flexibel dan FPGA's. Softwarematige aanpassing is gunstig in MCU's, terwijl hardwarematige aanpassing eenvoudiger is in FPGA's.
Ontwikkelingstijd en complexiteit
MCU's en FPGA's verschillen in geheugenarchitectuur en prestatiekenmerken. Een microcontroller heeft niet-vluchtig geheugen, wat betekent dat MCU's hun geheugen behouden na uitschakeling. FPGA's hebben deze functie echter niet vanwege het Random Access Memory (RMA) in FPGA's. Microcontrollers worden meestal geprogrammeerd met behulp van hogere programmeertalen zoals C/C++, terwijl FPGA-ontwikkeling hardwarebeschrijvingstalen zoals Verilog of VHDL vereist. Verilog en FPGA's worden door de hardware ondersteund, terwijl C/C++ door de software wordt ondersteund.
Basis componenten
Een microcontroller is niets als hij geïntegreerd is met geïntegreerde schakelingen (IC's), terwijl FPGA's meestal IC's en andere geïntegreerde schakelingen bevatten. Kortom, beide technologieën zijn een mix van zowel geïntegreerde schakelingen als hogere programmeertalen.
Maatwerk
Na de productie zijn zowel FPGA's als microcontrollers herprogrammeerbaar en kunnen hun functies worden aangepast nadat de infrastructuur is gebouwd. FPGA's zijn echter vooral geschikt voor veeleisende toepassingen, terwijl MCU's zoals Arduino ook zeer geschikt zijn voor eenvoudigere toepassingen.
Microcontrollers zijn breed verkrijgbaar tegen lage kosten en bieden een breed scala aan functies voor vermogens- en elektronicatoepassingen. Het gebruik van MCU's vereist echter expertise in hogere programmeertalen zoals C/C++. FPGA's daarentegen zijn duurder, maar veel gebruiksvriendelijker. Microcontrollers werken efficiënt bij een laag stroomverbruik, wat de energiebehoefte vermindert. FPGA's daarentegen vereisen een hoog stroomverbruik, wat meer energie vereist voor de werking. Softwarematige oplossingen worden niet direct op maat gemaakt, terwijl hardwarematige oplossingen wel direct op maat worden gemaakt. Omvormers, UPS'en en converters zijn ideale toepassingen voor MCU's, terwijl video- en beeldverwerking meer geschikt zijn voor FPGA's vanwege hun parallelle verwerkingsmogelijkheden.
Hoewel beide afhankelijk zijn van de toepassing. Ontwerpers en ingenieurs vonden MCU's geavanceerder in embedded systemen vanwege hun compacte formaat, en de meeste toepassingen hebben beperkingen wat betreft de grootte, zoals DC-DC-converters en vele andere toepassingen in vermogenselektronica. Aan de andere kant zijn FPGA's duurzaam en efficiënt in kunstmatige intelligentie, beeldverwerking en videoverwerking. FPGA's zijn gebruiksvriendelijk en kunnen zware berekeningen veel sneller verwerken dan MCU's. Er is minder expertise van de gebruiker vereist om FPGA's te gebruiken dan MCU's.
In dit gedeelte worden de verschillen tussen FPGA, CPLD en MCU's beschreven.
FPGA versus CPLD
|
Vergelijkend aspect |
FPGA |
CPLD |
|
Interne structuur |
Hals opzoektabellen |
Has lagere complexiteit en kleinere logische blokken |
|
Inschakeltijd |
Tneemt geen tijd |
Ttijd vrijmaken |
|
Energieverbruik |
Vereisten voor hoog stroomverbruik |
Vereisten voor laag stroomverbruik |
FPGA versus microprocessor
|
Vergelijkend aspect |
FPGA |
Microprocessor |
|
Functionaliteit en flexibiliteit |
Een programmaeen logische array die meerdere taken kan uitvoeren, waaronder verwerking, codering en netwerken, en die een hoge flexibiliteit biedt |
Voert instructies uit voor algemene taken, ontworpen voor specifieke functies en mist flexibiliteit |
|
Taak uitvoering |
Voert taken parallel uit en verwerkt grote datasets efficiënt |
Voert taken sequentieel uit |
|
Type geheugen |
Gebruikt vluchtig geheugen en moet na stroomuitval opnieuw worden geprogrammeerd |
Maakt gebruik van niet-vluchtig geheugen, waardoor gegevens behouden blijven na uitschakeling |
|
Gebruikers verhalen |
Geschikt voor snelle berekeningen, gegevensstroomverwerking en aangepaste hardwaretaken |
Wordt gebruikt voor algemeen computergebruik, zoals OS-besturing en I/O-beheer |
MCU's en FPGA's zijn beide nuttig voor veel digitale, elektrische en energietoepassingen. Microcontrollers zijn zuinig, verbruiken weinig stroom en zijn softwarematig gunstig, terwijl FPGA's duur zijn, veel stroom verbruiken en hardwarevriendelijk zijn, maar hoge prestaties en eenvoudige parallelle verwerking bieden. MCU's behouden hun functies ondanks dat de stroom is uitgeschakeld vanwege het RAM-geheugen, terwijl deze functie bij FPGA's ontbreekt vanwege hun vluchtige geheugen. Hoewel beide van toepassing zijn op ontwerpgebaseerde technologieën, kan een gebruiker rekening houden met stroomverbruik, ontwikkeltijd, parallelle verwerking en flexibiliteit voor een toepassing waarbij MCU's en FPGA's beide kunnen worden gebruikt.
Assemblage-onderzoek
Onmiddellijk citaat
Telefonisch contact
+ 86-755-27218592
Bovendien hebben we een Helpcentrum. Wij raden u aan dit te controleren voordat u contact met ons opneemt, omdat uw vraag en het antwoord daar mogelijk al duidelijk worden uitgelegd.
WeChat-ondersteuning
Bovendien hebben we een Helpcentrum. Wij raden u aan dit te controleren voordat u contact met ons opneemt, omdat uw vraag en het antwoord daar mogelijk al duidelijk worden uitgelegd.
WhatsApp Support
Bovendien hebben we een Helpcentrum. Wij raden u aan dit te controleren voordat u contact met ons opneemt, omdat uw vraag en het antwoord daar mogelijk al duidelijk worden uitgelegd.