Arduino vs microprocesseur vs microcontrôleur

11

Quelle est la différence entre un Arduino, un microprocesseur et un microcontrôleur? J'essaie de déterminer ce qui est le mieux pour faire fonctionner un écran tactile résistif bon marché.

Martin Marino
la source

Réponses:

21

Un microprocesseur:

se trouve généralement dans un ordinateur de bureau ou un ordinateur portable et contient un processeur et une interface de mémoire externe ainsi que divers bus d'E / S pour se connecter au monde extérieur tels que SPI, I2C, UART, USB, LCD et autres. Un microprocesseur aura également un cristal externe pour fournir une horloge.

La plupart des microprocesseurs n'ont pas de mémoire en lecture seule sur la puce; à la place, il y a une puce externe sur la carte mère où se trouve le code de démarrage initial. Sur les PC à processeur Intel, cela s'appelle le BIOS ( Basic Input / Output System ) et contient également des routines d'E / S en plus du code de démarrage initial. Le code de démarrage commence par effectuer un auto-test de mise sous tension (POST), puis cherche à voir où charger la prochaine étape du code de démarrage - à partir d'un disque dur, d'un CD (ou autrefois) d'une disquette. Ce démarrage de deuxième niveau charge ensuite le système d'exploitation. (Il peut même y avoir trois niveaux de code de démarrage sur certains systèmes.)

Certains microprocesseurs (généralement ceux ciblés pour les téléphones intelligents et les tablettes, qui ont des options de démarrage limitées) ont une petite quantité de mémoire en lecture seule qui contient le code de démarrage initial.

Je fais référence au code de démarrage en lecture seule; en fait sur certains systèmes, il peut être mis à jour. Cependant, cela est assez risqué; en cas de problème, le système peut ne plus démarrer.

Contrairement aux microcontrôleurs, qui exécutent leurs programmes à partir de la mémoire morte, après le démarrage des microprocesseurs, chargez leurs programmes dans la RAM externe et exécutez-les à partir de là.

Un microcontrôleur:

d'autre part, un circuit intégré monopuce autonome qui contient un processeur, une mémoire morte pour stocker le programme, une RAM pour stocker les variables utilisées dans l'exécution du programme et divers bus d'E / S pour se connecter au monde extérieur tels comme SPI, I2C, UART et autres. En soi, il ne peut exécuter aucun programme sans être programmé via une interface externe à un PC. Un microcontrôleur peut également avoir besoin d'un cristal externe pour fournir une horloge, mais certains ont une horloge interne.

Certains microcontrôleurs (comme le PIC32 de Microchip) ont deux sections de mémoire flash; un pour contenir le code d'initialisation (démarrage) et un autre pour stocker l'application. Cela facilite la mise à jour du code d'application sur place.

Pour votre objectif, vous souhaitez utiliser un microcontrôleur, pas un microprocesseur. Pour utiliser un microcontrôleur, vous devrez soit concevoir votre propre carte, soit acheter une sorte de carte de développement.

Un Arduino:

est une telle carte et contient un microcontrôleur, généralement un AVR 8 bits tel que les ATmega8, ATmega168, ATmega328, ATmega1280 et ATmega2560, ainsi que des blocs d'alimentation, des en-têtes cristal et femelles pour s'interfacer avec diverses cartes périphériques.

Ces cartes périphériques sont appelées boucliers et sont conçues pour s'empiler les unes sur les autres (il y a des broches mâles au bas des cartes pour se connecter à l'Arduino lui-même ou à un autre bouclier, et des en-têtes femelles en haut pour accepter les broches mâles de un bouclier empilé dessus).

Des exemples de blindages sont les cartes de commande de moteur, les cartes d'E / S générales, les cartes de relais, les cartes Ethernet et les écrans LCD, généralement avec un écran tactile. Cependant, je ne connais aucun écran tactile résistif qui serait utilisé uniquement pour la détection (sans écran LCD).

En plus du matériel décrit ci-dessus, Arduino est également livré avec un environnement de développement intégré (IDE) multiplateforme écrit en Java. Il a été conçu pour présenter la programmation aux artistes et autres débutants, tout comme le langage BASIC le faisait il y a 50 ans. Un programme pour Arduino est appelé un croquis .

Les programmes Arduino sont écrits en C ou C ++, cependant de nombreux détails sont cachés à l'utilisateur: seules deux fonctions (appelées par le système) doivent être définies pour créer un programme qui boucle continuellement (ce qui est généralement pour les programmes intégrés)

setup(): a function run once at startup that performs initialization
loop(): a function called repeatedly until the board powers off

L'IDE est livré avec une bibliothèque de logiciels appelée "Câblage" qui peut être utilisée pour les opérations d'entrée / sortie courantes.

tcrosley
la source
Je ne conçois plus de matériel, après 25 ans, mais je ne connais aucun processeur pour ordinateur de bureau contenant de la mémoire en lecture seule, encore moins une telle mémoire capable de démarrer un ordinateur.
Rob
@Rob Vous avez raison, tous les PC de bureau que je connais utilisent une puce de démarrage externe. Mais l'architecture OMAP3 de TI est un exemple de microprocesseur avec une ROM de démarrage interne. À partir de la description ici concernant le démarrage de Linux, la première ligne indique: «Au démarrage, un périphérique OMAP3 commence le démarrage à partir de la ROM de démarrage interne. Ce code est corrigé pendant le processus de fabrication et ne peut pas être modifié. La ROM de démarrage lit les broches de configuration de démarrage (SW4 sur l'OMAP3 EVM) qui indiquent à la ROM de démarrage où chercher le premier chargeur de démarrage externe. " J'ai mis à jour ma réponse.
tcrosley
10

Arduino

Un Arduino est un PCB contenant un microcontrôleur AVR Atmel et fournissant généralement un ensemble de connecteurs dans un modèle standard. Le microcontrôleur est généralement préprogrammé avec un programme "bootloader" qui permet de charger un programme (appelé "croquis") dans le microcontrôleur via une connexion série TTY (ou une connexion série virtuelle sur USB) à partir d'un PC.

Microprocesseur

Un microprocesseur est un circuit intégré qui contient uniquement une unité centrale de traitement (CPU). L'IC ne contient pas de RAM, ROM ou autres périphériques. L'IC peut contenir une mémoire cache, mais il n'est pas conçu pour être utilisable sans mémoire externe.

Les microprocesseurs ne peuvent pas stocker de programmes en interne et, par conséquent, chargent généralement les logiciels lorsqu'ils sont allumés, cela implique généralement un processus de «démarrage» à plusieurs étapes complexe où le «micrologiciel» est chargé à partir de la ROM externe et, éventuellement, un système d'exploitation est chargé à partir d'autres supports de stockage (par exemple, un disque dur ).

Il se trouve généralement dans un ordinateur personnel.

Microcontrôleur

Un microcontrôleur est un circuit intégré qui contient un processeur ainsi qu'une certaine quantité de RAM, de ROM et d'autres périphériques. Les microcontrôleurs peuvent fonctionner sans mémoire externe ni stockage.

Normalement, les microcontrôleurs sont soit programmés avant d'être soudés à un PCB, soit programmables à l'aide de connecteurs de programmation en système (ISP ou ICSP) via un dispositif "programmeur" spécial relié à un ordinateur personnel.

Les microcontrôleurs typiques sont beaucoup plus simples et plus lents que les microprocesseurs typiques, mais je crois que la distinction est principalement celle de l'échelle et de l'application.

On le trouve, par exemple, dans des appareils simples tels que les machines à laver de base.

RedGrittyBrick
la source
2

"Arduino" est un environnement de développement logiciel et n'importe laquelle de plusieurs cartes microcontrôleurs pour lesquelles l'environnement logiciel peut développer des programmes. La plupart des cartes utilisent des microcontrôleurs Atmel AVR.

Peter Bennett
la source
2

Arduino est une plate-forme basée sur un microcontrôleur (ATMEGA 328 pour l'UNO). En général, un microcontrôleur est mieux adapté qu'un microprocesseur à tout ce qui nécessite la détection des entrées. En effet, les microcontrôleurs comme l'ATMEGA 328 ont des convertisseurs analogiques-numériques (ADC) pour détecter les tensions et ont également des sorties PWM ainsi que des E / S numériques.

Avec Arduino, vous avez également le système Arduino Dev qui est plus facile à programmer pour les novices et dispose d'une bonne communauté de support et de bibliothèques.

Un écran tactile résistif se comporte comme des potentiomètres; un pour x et un pour y. Vous pouvez donc les mettre dans des entrées analogiques Arduino. Voir ici pour plus de détails .

Une autre option est de convertir en SPI ou I2C avec quelque chose comme ça , et de lire avec Arduino.

Quoi qu'il en soit, je pense que l'Arduino est un bon choix.

akellyirl
la source
@tcrosley ou tout autre membre de longue date .. des conseils à un nouveau contributeur comme moi pour éviter un vote négatif comme celui-ci? Mes réponses sont précises, répondent à la question et fournissent des détails supplémentaires pour l'interface avec un écran tactile résistif. Autre chose qu'il aurait dû inclure?
akellyirl
3
Ne prenez pas le vote négatif trop au sérieux. Je pense cependant que votre première phrase est un peu inexacte. Arduino ressemble plus à une plate-forme composée de matériel et de logiciels. Et une carte Arduino n'est pas un micro contrôleur mais une carte conçue autour d'un micro contrôleur.
Rev1.0
1
Comme le dit Rev1.0: "Arduino est un microcontrôleur" n'est pas vrai. Arduino est un SBC (Single Board Computer).
flup
1

L'Arduino se compose d'un microcontrôleur (l'ATmega328 sur la version UNO). L'Arduino est donc un PCB avec les broches du microcontrôleur bien séparées, une alimentation, un cristal et le FTDI pour la connexion USB avec un firmware intégré afin que vous puissiez facilement le programmer avec son propre IDE. Voici une liste des composants Arduino: http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq

kimliv
la source