Nouvelles
Loading...
lundi 18 novembre 2013

Comment choisir un Microcontrôleur ?

11/18/2013
                                                         

Il était que le nombre de jetons différents microcontrôleurs disponibles à l'amateur a été assez limité. Tu dois utiliser tout ce que vous arrivaient à acheter chez le marchand de puce de correspondance, et qui réduit le choix à un petit nombre de puces.

Mais les temps ont changé. Digikey répertorie plus de 16000 postes différents dans une recherche de « microcontrôleur ». Que l'on choisisse un amateur sans expérience préalable particulière ?

Voici quelques conseils. Celles-ci visent notamment à quelqu'un qui essaie de récupérer un microcontrôleur à utiliser pour la première fois au moins en partie comme une expérience d'apprentissage, plutôt que quelqu'un qui veut accomplir une tâche particulière.

Étape 1: Ce qui est un « microcontrôleur » ?

Si vous n’avez jamais pris un cours d'informatique très liminaire, vous avez appris probablement sur les principaux composants de l'ordinateur :

Une unité centrale de traitement ou de la CPU. La partie qui assure effectivement la logique et les mathématiques
Mémoire. Où l'ordinateur stocke les données et instructions
Input et Output ou i/o. Comment l'ordinateur déplace les données entre le monde réel et de ses autres composantes.

Un microprocesseur utilise des techniques de fabrication microélectronique pour réduire le CPU à une taille très petite ; habituellement, un seul « puce ».

Un microcontrôleur utilise les mêmes techniques pour rétrécir la totalité de l'ordinateur à une seule puce (ou très petit module.) CPU, mémoire et e/s tout dans un petit paquet aussi petit qu'un grain de riz. Il suffit de connecter le pouvoir et il commence à faire sa chose ; calcul et parler au monde. Habituellement les e/s sur un microcontrôleur sont destiné au matériel de « bas niveau » comme parler à LED et commutateurs individuels au lieu de claviers, internet et affiche (comme votre ordinateur de bureau). Un microcontrôleur est juste la chose que vous voulez, si vous voulez parler à LED et commutateurs individuels...

Il y a un numéro considérations de conception qui pourraient réduire immédiatement votre nombre de choix, beaucoup de choses.

Programmable et Reprogrammation :

À ce stade, je dirais qu'un amateur doit se contenter des microcontrôleurs qui ont la mémoire de programme flash ou eeprom interne et peut être effacé et reprogrammé un nombre considérable de fois. Il y a aussi des micros qui peuvent être utilisés avec la mémoire externe (ajoute la complexité et les dépenses), micros effaçables de UV (généralement assez chers à cause de l'emballage spécial), des puces programmables ponctuels (potentiellement utilisable après que vous avez une conception du travail, mais perdre leur avantage de prix de toute façon) et de puces programmées par masque (essentiellement inutiles).


Périphériques :

Si vous souhaitez que votre microcontrôleur pour avoir construit en Ethernet, CAN, USB ou même plusieurs ports série, beaucoup de choix communs vont être éliminés. Certains périphériques peuvent être utiles d'avoir : UART, SPI ou I2C contrôleurs et contrôleurs PWM mémoire EEPROM sont de bons exemples, même si une fonctionnalité similaire peut fréquemment être implémente dans le logiciel ou les parties externes.

Il est commode si les broches de sortie peuvent fournir des quantités raisonnables de courant pour la conduite des LEDs ou des transistors directement ; certaines puces ont 5 ma ou moins capacité d'entraînement.

Conditionnement physique :

Les amateurs sont quelque peu limitée est les paquets, ils sont en mesure de traiter, d'un prototypage, fabrication de PCB, et/ou souder. Cette 256 balle BGA confire CPU peut être doux, mais c'est effectivement inutilisable par simples mortels. Microcontrôleurs disponibles en paquets de 0,1 en DIP sont beaucoup plus faciles à traiter. Probablement n'importe quoi avec un espacement d'axe inférieur à 0,05 po doit être considérée avec un certain scepticisme.

Mémoire :

La taille de la mémoire peut être une considération importante. Certains micros ont aussi peu que 256 innstructions et 16 octets de RAM. Vous pouvez faire beaucoup dans cette sorte d'espace (croyez-le ou non), mais pas tout. En outre, bien que fréquemment, vous pouvez passer à une « plus grande puce », certaines familles de puce ont mémoire relativement petite limites imposées par leur architecture, de sorte que même que le plus gros morceau, vous pouvez obtenir aura seulement 8 instructions de k (par exemple). RAM (mémoire de données) est généralement rare dans les microcontrôleurs ; certains algorithmes nécessitent une RAM importante à mettre en œuvre d'une manière simple, et il peut être utile à la recherche d'un micro avec beaucoup de RAM (ou des capacités d'extension RAM externes) si c'est le genre de chose que vous aviez en tête. (Par exemple, mise en œuvre de protocoles réseau TCP/IP dans un micro dont l'espace RAM total est moins utilisé par un paquet ethernet typique est susceptible d'être... intéressant.)


Étape 2: Réflexions sur les Architectures


« L'architecture » d'un microcontrôleur fait référence à la philosophie de l'implémentation interne, sorte de. Elle comprend les détails comme combien « registres » y sont, et comment « généraliste » ces registres sont, que ce soit code peut s'exécuter de mémoire de données, si les périphériques sont traités comme mémoire, registres, ou encore autre chose, s'il y a une pile et son fonctionnement et ainsi de suite.

Vous entendrez les gens parler de comment certaines architectures sont meilleures que d'autres. Je suppose que c'est vrai. Mais je ne veux pas prétendre qu'il est en grande partie non pertinente pour l'amateur de typique. Si vous souhaitez éviter les bizarreries architecturales d'une famille particulière de microcontrôleurs, vous pouvez utiliser un langage de haut niveau. Si vous êtes prêt à programmer dans l'assembleur, vous êtes à un niveau d'intérêt où apprentissage et surmonter les bizarreries sont parti de l'étoffe que vous devriez apprendre. En outre, nous parlons pas ici d'évaluant une nouvelle architecture que certaine compagnie propose. Tous les jetons je mentionner dans ce inscrutable ont été assez longtemps qu'ils ont prouvé que leurs architectures sont assez bonnes pour de nombreuses applications réelles.

Voici quelques « caractéristiques » architecturales, vous pouvez lire sur et des explications sur ce qu'ils signifient.

CDIC/RISC. Complexe Instruction Set Computer. Redescend Instruction Set Computer.

Dans l'ancien temps, les concepteurs de CPU devenaient intelligents et voulaient leur CPU pour soutenir les fonctionnalités de langage de haut niveau au niveau matériel, conduisant à des instructions de manipulation cobol-comme chaîne qui accepte des arguments dans des blocs de 8 registres. IIRC, c'était à Berkeley et IBM qui a remarqué que rédacteurs de compilateur ne savaient pas vraiment comment utiliser ces instructions compliquées un compilateur, la quantité de silicium biens immobiliers utilisés par ces instructions devenait grande, et en fait, la mise en œuvre du matériel parfois n'était pas aussi rapide que de faire la même chose dans le logiciel de toute façon. Alors ils ont dit "Je parie que nous pouvons faire le CPU aller beaucoup plus vite si nous laissons ces instructions complexes et consacrer le silicium à des registres plus ou la mémoire cache ou quelque chose" et a ainsi inventé le processeur RISC. Aujourd'hui « RISC » est largement utilisé par les départements de marketing pour signifier « nous n'avons pas très beaucoup d'instructions », même si le reste de l'architecture n'est pas tout à fait comme les chercheurs RISC originales avaient imaginé.

Architecture de Harvard.

Dans une architecture de Harvard, la mémoire de l'instruction et la mémoire sont séparés, contrôlée par des autobus différents et parfois ont des tailles différentes. Pour les microcontrôleurs, les instructions sont généralement stockées dans la mémoire de « lecture seule », et les données sont en RAM ou registres. Un exemple est la
Microcontrôleur PIC, où les instructions sont en 12, 14 ou 16 bits de large flash, et les données sont en 8 bits
RAM large.

Architecture de von Neuman.

Dans un von Neuman Architecture, les données et les instructions part l'espace mémoire, alors vous pourriez faire des choses comme la compilation dynamique pour générer des instructions dans la RAM et l'exécuter ensuite. Le TI MSP430 est un exemple d'une architecture de von Neuman.

Accumulateur basé

Dans une architecture « accumulateur basé », il n'y a généralement un registre « spécial » où se produit la plupart du calcul réel (mathématiques, logique, etc.). Quelques efforts doit être dépensée pour entrer des opérandes dans l'accumulateur et les résultats retour à où vous en avez besoin. Le contraire est un processeur avec des registres « généraliste », où un de plusieurs registres peut être utilisé pour math/etc.

Load/Store

Une architecture de load/store signifie généralement que les opérandes pour opérations ALU doivent dans les registres, afin que vous ayez à les charger au préalable, de la mémoire et les stocker à l'époque où les opérations sont terminées. L'inverse permet généralement des opérations entre un registre ou
accumulateur et un emplacement de mémoire directement. Architectures RISC tendent à être charge/magasin, puisque beaucoup ou les processeurs CISCness du CDCI apparaît dans l'application complexes « modes d'adressage » pour accéder à des opérandes de mémoire. Dans une architecture RISC, toute cette complexité ne doit être mis en œuvre dans la charge et stocker des instructions (voire pas du tout.)