microcontrollore vs. Sistema su chip


24

Sto iniziando a programmare i microcontroller e stavo leggendo alcuni documenti e manuali. Sono un po 'confuso su quale sia la differenza tra un micro-controller e un sistema su chip?

Alcuni documenti usano questi due termini in modo intercambiabile. Tuttavia la maggior parte dei libri di testo sottolinea che l'uso intercambiabile dei due termini NON è corretto, quindi ci deve essere una notevole differenza ...

Grazie!


4
Grazie per aver accettato la mia risposta, ma ti consiglio vivamente di aspettare più a lungo la prossima volta prima di accettare. Altri probabilmente hanno opinioni e intuizioni diverse, ma spesso possono passare una domanda che ha già una risposta accettata, lo so. Vuoi lasciare un po 'di tempo per raccogliere un consenso, soprattutto per una domanda che affronta un'area grigia.
Olin Lathrop,

@Olin Cool, lo terrò a mente la prossima volta!
rrazd,

Risposte:


27

Un microcontrollore è un processore che ha il suo programma e la memoria dati incorporati. Questi chip sono destinati a piccole applicazioni di controllo integrate, quindi è molto utile lasciare i pin per I / O e non richiedere un bus di memoria esterno. Alcuni microcontrollori hanno un minimo di 6 pin e possono fare cose utili. Confrontalo con un processore di elaborazione generico destinato a un PC. Queste cose hanno centinaia di pin in un array e richiedono circuiti esterni estesi.

Per quanto riguarda il sistema su un chip, questo è un termine meno ben definito. Cipro chiama alcune delle sue parti PSOC (Sistema programmabile su chip). Questi sono fondamentalmente un microcontrollore con piccolo FPGA sullo stesso chip. Invece di avere delle periferiche integrate, puoi realizzare tutto ciò che vuoi nelle risorse disponibili dell'FPGA.

In generale, penso che un sistema su un chip sia un microcontrollore con una logica apparentemente a livello di sistema integrata con esso. Ovviamente più si tenta di entrare nel sistema, meno è probabile che una serie di hardware aggiuntivo sia utile, quindi è molto utile un qualche tipo di configurabilità. Tuttavia, per ora "sistema su chip" è più un termine di marketing che qualsiasi cosa reale.


20

System On a Chip (o SoC) è una frase onnicomprensiva che le persone di marketing usano e non significa molto. Ci sono anche molte varianti come:

PSoC: sistema programmabile su chip, di Cypress Semiconductor.

SOPC: Sistema su un chip programmabile, di Altera

In sostanza, un SOC è un singolo chip che fa tutto ciò che era utilizzato per occupare più chip. Non c'è nulla che dice che deve includere una CPU o RAM. Quindi, grazie al fatto che possiamo ottenere più transistor su un chip e stiamo ottenendo sempre più funzionalità sui nostri chip - praticamente tutto può essere chiamato un SoC rispetto a quello che stavamo facendo 10 o 20 anni fa !

A peggiorare le cose: ci sono molti esempi di cose che vengono chiamate SoC che richiedono ancora più chip per essere utili. Spesso avrai una qualche forma di CPU + Periferiche che richiedono ancora Flash, RAM e alimentatore esterni. Quindi anche il nome SoC è fuorviante.

Un MCU è probabilmente l'esempio più conciso di ciò che dovrebbe essere un SoC, ma è un esempio molto limitato.


@ David-kesner +1 per SoC come frase di marketing.
Frank,

12

In generale, un microcontrollore è considerato un dispositivo incorporato programmato internamente per eseguire un compito specifico. L'interazione dell'utente è minima e la flessibilità è scarsa o nulla. Un microcontrollore è in genere a bassa potenza con solo piccole quantità di memoria e ROM (flash).

Al contrario, un System-on-Chip è l'altra estremità dello spettro. È più orientato alla completa flessibilità e all'interazione dell'utente. Comprende spesso cose come driver IO per hardware più grande (come dischi rigidi, ecc.), E talvolta anche un adattatore grafico. Un sistema su chip è più simile a un sistema informatico completo, sì, su un chip.

C'è un bel po 'di crossover tra i due: quando smette di essere un microcontrollore e inizia a essere un System-on-Chip? È da qui che nasce molta confusione.

Fondamentalmente, se può fare ciò che un computer può fare, allora è un System-on-Chip. Se è orientato, ad esempio, all'interno di un telefono fisso che gestisce l'elenco dei contatti o in un sistema di immissione da tastiera o che esegue i motori su una macchina CNC, allora è un microcontrollore.

ps, non citarmi su questo - come ho detto c'è un sacco di crossover tra i due.


5

La distinzione è in qualche modo più legata al marketing che alla tecnica, ma suggerirei che in generale la parte "programmabile" di un microcontrollore è limitata a un singolo "flusso di coscienza" relativamente ristretto. In sostanza, in qualsiasi momento, la successiva operazione relativamente piccola del microcontrollore sarà determinata da come è programmata, ma tutte le altre logiche nel sistema sono cablate e funzioneranno man mano che vengono costruite. Alcune cose come i timer possono fornire alcune opzioni di configurazione (ad es. Il conteggio a velocità fissa rispetto al conteggio degli impulsi su un ingresso) ma in generale il cablaggio del sistema sarà fisso. Se si desidera modificare il segnale di uscita in risposta a un segnale di ingresso e non esiste un hardware esplicito per farlo, il programma dovrà controllare periodicamente il segnale di ingresso e, se è cambiato, cambiare il segnale di uscita. Se si desidera avere una variazione della tensione analogica di uscita in risposta a una tensione analogica di ingresso, il processore potrebbe campionare la tensione di ingresso, calcolare la risposta desiderata e richiedere la tensione di uscita desiderata. Praticamente il tipo di stimolo / risposta desiderato potrebbe essere prodotto facendo in modo che il processore guardasse gli ingressi e calcolasse le uscite, ma i tempi di risposta sarebbero in generale ordini di grandezza più lenti di quelli che potrebbero essere prodotti con hardware dedicato.

L'idea generale con un sistema su chip è quella di consentire ai circuiti di disporre di sufficienti multiplexer e altre strutture di instradamento in modo tale che i segnali possano essere instradati attraverso i circuiti per produrre molti tipi utili di schemi di stimolo / risposta senza l'intervento del processore. Tali circuiti non possono produrre schemi di stimolo / risposta che sono vicini vicino a quanto un processore potrebbe produrre, ma in molti casi possono essere ordini di grandezza più veloci di qualsiasi cosa un processore possa fare.


2

Secondo me, SoC è il termine con molte definizioni, che in effetti continuerà a cambiare con il tempo. D'altra parte, il microcontrollore verrà definito allo stesso modo dopo un decennio come è adesso. Quando dici un microcontrollore, viene fornito con alcune cose di base su un singolo chip, come memoria, porte IO, timer e contatori e così via ... Ma quando dici un SoC, non ha uno standard specifico su cosa tipo di circuito che dovrebbe contenere. Ad esempio, l'applicazione principale in cui stanno provando a introdurre SoC è Smartphone. Allo scenario attuale, uno smartphone dovrebbe contenere alcune cose di base a bordo come

  1. NFC
  2. GPS
  3. Accelerometro e giroscopio
  4. Wi-Fi
  5. Una CPU e una GPU

Nella situazione attuale se voglio fabbricare uno smartphone, devo prendere una CPU e una GPU e interfacciarci tutto. Ma il SoC si basa sul concetto di singolo chip che avrà tutto quanto sopra e avrà una capacità di evolversi (anche se in modo molto semplice). Inoltre, ho detto che il SoC ha una definizione in continua evoluzione perché i requisiti di base per uno smartphone, un computer o qualsiasi dispositivo elettronico aumenteranno di giorno in giorno e la definizione di SoC cambierà con tali requisiti.


0

Sì, SoC è fondamentalmente un termine di marketing usato più spesso. Esistono dispositivi e terminologia host. Sono i grandi produttori di PC come Dell, HP, IBM, ecc. Hanno usato la CPU al loro interno generalmente prodotta da Intel, AMD, ecc. fondamentalmente fornisce CPU o SoC sulla scheda madre (chiamata CPU), alcuni forniscono anche CPU + SoC (per uno scopo particolare di scaricare l'attività delle periferiche - come sensori o dispositivi GPS, che altrimenti sarebbero stati molto affamati di energia sono stati collegati direttamente alla CPU) .SoC a volte è anche chiamato un coprocessore il cui lavoro è lo stesso di quello che ho scritto in precedenza. Ora alle schede madri sono collegate varie periferiche (che sono collegate essenzialmente a CPU o SoC), queste periferiche sono sostanzialmente collegate direttamente a loro (SOC o CPU) tramite bus di somma - i2c, SPI, USB o sono generalmente collegate ai microcontrollori . produttori di controller) così come i produttori di PC che stanno ottenendo i dispositivi migliori (periferico + microcontroller). Quindi il punto è il termine del microcontrollore che vedrai più spesso sul lato del dispositivo (quello che viene interfacciato con il SoC (ora sai cos'è un SOC ?? Non te) e SoC sul lato Host (il lato PC ) .Puoi dire che CPU è il padre che delega il Soem del suo lavoro al SoC per una migliore capacità di alimentazione dei dispositivi (Micro + periferiche). I documenti hanno sostanzialmente più memorie per ospitare un sistema operativo diverso dai microcontroller che possono al massimo supportare gli RTO.


1
WOW ! Assomiglia davvero al downvote quando le persone lo fanno senza dichiarare molti commenti necessari!
Raulp,

3
Non è molto chiaro. Non riesco ad approfondire questo flusso di coscienza.
Ivan_pozdeev,

0

Riassumi quanto sopra, mi sembra:

Una MCU fornisce molta memoria, interfacce come VGA e funzionalità come GPU utilizzando diversi chip diversi che forniscono elementi diversi.

Un MCU si adatta a tutto su un singolo chip fornendo solo memoria minima, interfacce, ecc.

Un SoC si adatta a tutto su un singolo chip spingendo i limiti di ciò che può essere fatto su un chip.

Gli MCU forniscono valore minimizzando i costi, i SoC forniscono valore massimizzando la funzionalità, sia su un singolo chip. Se compete con la logica TLL, è probabilmente un MCU. Se compete con i microprocessori (AMD, Intel), è probabilmente un SoC.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.