Quelle est la différence entre un processeur (par exemple, d'Intel) et un processeur dans un système embarqué (comme dans le Raspberry Pi) ou des microcontrôleurs?


Réponse 1:

Même les processeurs Intel peuvent être intégrés dans des systèmes. C'est rare maintenant pour les processeurs Intel ou compatibles. La différence entre les microcontrôleurs / systèmes embarqués et les processeurs ordinaires / ordinateurs [de bureau] traditionnels est davantage liée aux utilisations, «à usage unique fixe» et «à usage général (pouvoir exécuter des applications [lications]». Le processeur et le jeu d'instructions peuvent être la même chose, bien que ce ne soit souvent pas le cas. Le Raspberry Pi et le processeur qu'il utilise sont une sorte de cas particulier intermédiaire que j'essaie d'expliquer ci-dessous.

Tous les processeurs sont désormais des microprocesseurs (le mauvais terme de la question d'origine avant que je ne le modifie) depuis Intel 4 bits 4004 (le premier microprocesseur), et leur 8 bits 8008 (ancêtre indirect de x86), pas seulement dans les microcontrôleurs.

Le microprocesseur ARM a commencé dans un ordinateur de bureau, le Acorn Archimedes. Ce n'est pas intrinsèquement pour l'embarqué (ou les smartphones, ce que vous pourriez appeler un système embarqué).

ARM est devenu populaire pour les systèmes intégrés, par exemple les disques durs, et les téléphones et les smartphones ultérieurs tels que l'iPhone (et tous les autres, par exemple Android).

À l'heure actuelle, il ne s'agit pas seulement d'un microprocesseur, mais d'un système embarqué (SoC), vraiment le même concept avec un système plus intégré, par exemple un GPU (et éventuellement des trucs pour GPS ou communications sans fil / cellulaires; je peux me tromper à ce sujet, et ces une ou deux fonctions dans des puces distinctes [généralement [, mais elles pourraient l'être par nature, seraient simplement plus d'intégration de puces).

Dans les microcontrôleurs, ils sont moins définis par la puissance du processeur et plus par les E / S, ce que vous pouvez en faire, pour contrôler les choses. Non seulement pour entrer des données (qui peuvent être analogiques et / ou numériques) mais aussi pour sortir des signaux afin de contrôler des éléments réels dans le monde réel.

Un microcontrôleur typique pourrait être PIC (ou un processeur qui a toujours été conçu comme MCU, et jamais pour un ordinateur de bureau; je ne sais pas avec certitude pour le PIC). Mais il pourrait bien s'agir d'un ARM conçu à l'origine pour un ordinateur de bureau. Ou basé sur disons 68HC11, Z80 etc. à l'époque où il était conçu pour les ordinateurs personnels. Que vous avez peut-être réellement mis sur votre bureau (notez, pas la définition habituellement utilisée pour un «ordinateur de bureau», qui vient de la «métaphore du bureau»).

Les lignes sont désormais assez floues. Même les CPU de bureau peuvent même avoir en eux les mêmes entrées analogiques (convertisseurs analogique-numérique, ADC et / ou opposés, DAC), que les CPU / ordinateurs n'avaient pas ou n'avaient pas besoin par le passé.

Les ordinateurs numériques ont toujours eu besoin d'entrées / sorties (E / S) numériques pour les périphériques. Historiquement (mais pas au début), une carte son a été ajoutée pour la sortie analogique (pour le son, c'est-à-dire là où elle est convertie en courant:; finit finalement par des ondes sonores; pas tant pour «contrôler» quoi que ce soit dans le monde réel, sauf si vous voulez un humain…).

Je sais que la «carte son» a été intégrée dans le CPU (au moins certains d'entre eux); Les processeurs AMD (standard x86 compatible avec Intel) l'ont, alors qu'ils ont en fait un processeur ARM intégré pour faire le travail. Vous pourriez dire qu'ils ont un MCU ARM (et / ou DSP) à l'intérieur d'eux. Ce ne devrait pas être un ARM. Il peut s'agir de n'importe quel MCU, même basé sur x86.

L'Arduino est un système embarqué basé sur MCU typique avec des E / S analogiques (et numériques). Alors que l'original utilise un MCU AVR moins puissant non ARM plus ancien, mais la variante Arduino Due plus puissante utilise ARM.

Les systèmes embarqués, tels que n'importe quel Arduino, n'utilisent le plus souvent aucun système d'exploitation (ou un système d'exploitation en temps réel, RTOS, lorsqu'ils le font, pas un comme Windows standard). C'est typique des MCU (même si dans d'autres applications plus anciennes des CPU dans les MCU un système d'exploitation peut avoir été utilisé).

Vous pouvez également dire que les Raspberry Pis sont des systèmes embarqués (similaires à ceux que vous pouvez dire de même pour les smartphones). Alors qu'ils étaient à l'origine destinés à l'enseignement, ils sont souvent utilisés comme tels. Mais ils n'ont que des E / S numériques, pas d'analogue, et exécutent généralement un Linux (ou un autre système d'exploitation). Ils ne sont pas moins "à usage général" qu'un PC ordinaire, juste selon la norme actuelle, un ordinateur de faible puissance avec un GPU intégré de faible puissance (le SoC et son GPU ont été initialement conçus pour les smartphones).

Historiquement, le Macintosh, les ordinateurs de bureau d'origine à succès commercial, n'avait aucune compatibilité avec les PC à processeur Intel. Notez que ces PC et Mac (et Acorn Archimedes et plus) sont des PC au sens d'ordinateurs personnels. Les smartphones aussi. Mais pas les MCU ou Arduino. Bien que vous, en tant que créateur, puissiez faire beaucoup avec eux, leur utilisateur cible n'aura pas plus un ordinateur «à usage général» qu'un utilisateur d'une calculatrice (même s'il contient un processeur).