Le 8051 et les autres microcontrôleurs à faible bit sont-ils toujours utilisés aujourd'hui?
Oui, presque partout. Ils sont petits et faciles, il y a beaucoup de cœurs flottants que vous pouvez mettre dans votre silicium personnalisé à faible coût ou sans frais, il y a des compilateurs matures. Tout cela fait du 8051 l'une des architectures principales les plus populaires parmi les fabricants de silicium. Les cœurs ARM peuvent être disponibles dans des produits plus différents, mais là encore, lorsque vous parlez à quelqu'un qui construit de nombreux appareils à une contrainte de prix très stricte, il est probable qu'il va préférer un cœur 8051 moins cher / gratuit s'il fait le travail. . Juste pour opposer @ Nitro2k01 réclamation d'utilisation de niche uniquement: Mouser compte près de 800 modèles de 8051 micro - contrôleurs en stock ¹. Et le fait que ceux-ci commencent, même chez Mouser, à des prix inférieurs à 40 ct pourrait être une indication de leur utilisation:
microcontrôleurs grand public, bas rendement et haut volume
Donc:
... évidemment, il ne sera utilisé par aucune industrie pour développer un produit en raison de sa simplicité ...
est un non-sens absolu de haute qualité. Surtout que vous livrez vous-même un contre-exemple
Mon patron, qui est dans la mi-cinquantaine, a dit qu'il utilisait 8051 dérivés et qu'ils faisaient le travail.
Exactement! Ils sont utilisés partout, ils sont bien éprouvés et bon marché, et ils sont suffisants ; ne sous-estimez jamais l'avantage d'avoir une solution à un problème commun dans un tiroir quelque part!
Bien sûr, il arrive souvent que vous ayez besoin d'une solution avec, disons, deux bus automobiles typiques, une interface haut débit vers un ADC, des temporisateurs de surveillance fiables, trois unités PWM ... et ensuite vous commencez à reconstituer quelque chose consistant en quatre dérivés 8051 et 8080 .. euh. C'est une mauvaise situation, et pourrait très probablement être résolu beaucoup plus rapidement et plus fiable en utilisant un MCU unique, plus polyvalent et plus puissant (par exemple un ARM). Mais que "nous avons des connaissances sur la façon dont quelque chose fonctionne avec une ancienne technologie" vs "nous sommes à l'épreuve du temps en ayant la possibilité de fonctionner sur du matériel moderne" est un compromis classique en matière de sécurité des investissements. Si vous rencontrez l'un de ces projets, j'essaierais de parler au patron dans ce contexte. Pour les petits travaux faciles, oui, 8051.
Dois-je prendre la peine d'en savoir plus sur les architectures MCU en général?
Oui! Je pense que @jfkowes l' explique très bien. Mais honnêtement: c'est un peu comme demander "devrais-je apprendre comment fonctionne le moteur à combustion interne si je veux devenir mécanicien automobile"; la réponse est "vous pourriez bien vivre si vous pouvez simplement exécuter les manuels de réparation assez bien, mais vous serez probablement un bien meilleur technicien (laissez l'ingénieur seul) si vous comprenez ce que fait votre matériel.
Dès que vous rencontrez un problème qui ne peut pas être recherché par Google, vous serez à peu près une tortue sur le dos si vous ne comprenez pas à peu près comment fonctionne votre processeur.
Dois-je prendre la peine d'apprendre l'architecture 8051?
Probablement pas. Dans le sens où, oui, tant que le coût n'est pas votre objectif principal, vous pouvez très probablement simplement utiliser des MCU beaucoup plus puissants et polyvalents basés sur des cœurs ARM ou d'autres architectures plus modernes.
Là encore, le cœur 8051 est si facile que je recommanderais réellement de comprendre ce que sont ses unités avant d'essayer de s'attaquer à un cœur MCU plus moderne et complexe. C'est un bel exemple.
Donc, si 8051 n'est pas le cœur que je recherche dans une application à faible volume, qu'est - ce que je recherche?
Donc, personnellement: optez pour un ARM Cortex-M0, -M3, -M4F; ceux-ci sont abondants dans toutes sortes de microcontrôleurs abordables, faciles à programmer (oui, prise en charge GCC mature, bibliothèques standard CMSIS, beaucoup de systèmes d'exploitation intégrés fonctionnant sur ceux-ci), et viennent généralement avec des interfaces de débogage standard (ce qui est un grand plus).
De l'extérieur, les ARM sont généralement relativement faciles à comprendre, car vous mappez généralement chaque périphérique dans l'espace mémoire, et c'est tout. En interne, ils ont différents degrés de sophistication et optimisations de vitesse / robustesse / taille, ce qui ne les rend pas parfaitement faciles à comprendre en détail, mais je suppose que cela pourrait être un peu trop demander à moins que vous ne soyez dans la conception du processeur.
Si vous êtes dans la conception de CPU, je pense (c'est vraiment une croyance personnelle basée sur mon observation des activités de recherche et des investissements "promis" de l'industrie) que nous observons actuellement la montée d'une nouvelle ISA importante - le RISC-V. Il existe différentes implémentations de cette architecture pour les FPGA ou le silicium, et des gens comme Nvidia semblent également jouer avec l'idée de remplacer leurs multiprocesseurs de flux par ce type de cœurs.
¹: Il est très probable que je manque plus de la moitié des 8051 réels que possède Mouser (parce que, hé, je viens de sélectionner tous les MCU dont le nom de base était * 80 * 5 *). Il y a de fortes chances que si vous choisissez un microcontrôleur 8 bits aléatoire, il est probable que son cœur soit au moins partiellement dérivé du 8051. Je veux dire, regardez simplement
la "liste des fournisseurs de dérivés [8051]" de wikipedia .