Microcontroler

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Microcontroler PIC 18F8720 în pachet TQFP cu 80 de pini.

Un microcontroler (în engleză microcontroller în acronim MCU sau MicroController Unit ), în electronică digitală , este un dispozitiv electronic integrat pe un singur circuit electronic , născut ca o evoluție alternativă la microprocesor și utilizat în general în sisteme încorporate sau pentru aplicații specifice de control digital .

Istorie

Primele modele

Primul microcontroler

Primul computer on-chip optimizat pentru aplicații de control a fost TMS1000 pe 4 biți din 1974 , cu RAM și ROM pe același cip lansat de Texas Instruments, deși compania la 17 septembrie 1971 a anunțat că TMS1802NC a intrat în familia TMS 0100 din care familia TMS1000 s-a născut după optimizare

Notă: primul Intel 4004 datează din 15 noiembrie 1971 și, prin urmare, titularul titlului de prim procesor ar merge la TMS1802NC

Prima componentă pe 8 biți a fost Intel 8048 , lansată în 1975 . Această componentă a fost utilizată în mai mult de un miliard de tastaturi pentru PC și în numeroase alte aplicații.

În primii ani de dezvoltare a microcontrolerelor, majoritatea modelelor au fost comercializate în două variante: cea mai ieftină a fost echipată cu memorie de program (ROM) programată din fabrică specifică clientului sau programabilă de o singură dată ( OTP , One Time Programming ); al doilea, mai scump, avea memoria programului ștergător EPROM prin expunerea cipului la lumina ultravioletă prin fereastra transparentă de deasupra acestuia. Programarea firmware-ului a fost făcută direct în limbajul mașinii .

Evoluția tehnologiei CMOS

Dezvoltarea CMOS și ulterior a HCMOS , în prima jumătate a anilor optzeci, a oferit un impuls decisiv difuziei microcontrolerelor, permițând o reducere semnificativă a consumului și disiparea cipurilor .

De mulți ani Motorola a fost liderul mondial în microcontrolere: 68HC11-ul său s-a dovedit a fi o piatră de hotar atunci când a fost introdus pe piață în 1985 ; pe lângă RAM și ROM, a integrat convertoare A / D , porturi I / O , SPI ( Serial Peripheral Interface ), SCI ( Serial Communication Interface ), cronometru multifuncțional, EEPROM , întrerupere și multe altele, inclusiv inclusiv firmware - ul unui monitor ( Buffalo ) care a permis încărcarea programelor în RAM și depanarea pe cip, prin interfața serială. Cu un ciclu de mașină de 333 ns ( ceas de 3 MHz ), este capabil să execute jumătate de milion de instrucțiuni pe secundă, consumând câteva zeci de mA; proiectul său s-a dovedit atât de inovator încât este încă produs și utilizat după mai mult de un sfert de secol.

În 1993, Microchip a introdus modelul MCU PIC16C84, caracterizat prin memoria de program în EEPROM, și anume ștergerea electrică, care a permis atât dezvoltarea rapidă a prototipului produsului finit, cât și modificarea circuitului instalat Firmware ( In-System Programming ). Simplificarea pachetului , fără fereastră de cuarț, a contribuit la reducerea costului final al componentei.

În același an, Atmel a prezentat primul MCU care a folosit o memorie de tip flash , chiar mai simplă și mai rapidă de programat / modificat, mai compactă și cu un ciclu de viață (ștergere) mult mai ridicat.

Interfețele JTAG și ONCE

În același timp, au fost dezvoltate interfețe precum JTAG și On Chip Emulator (ONCE) din familia Freescale Coldfire , care permiteau atât depanarea pe cip, cât și încărcarea și programarea blițului intern. Aceste interfețe ar putea fi controlate de aplicații software de pe un PC , ceea ce a făcut mult mai ușoară depanarea programelor în limbaje de nivel înalt (de obicei C ++ ) în fundal și, prin urmare, mai puțin costisitoare pentru dezvoltarea firmware-ului, limitând necesitatea emulatorilor interni circuit .

Descriere

Este conceput pentru a interacționa direct cu lumea exterioară printr-un program care se află în memoria sa internă și prin utilizarea unor pini specializați sau configurabili de către programator . Sunt disponibile în 3 game de capacități de procesare (lățimea magistralei de date): 8 biți, 16 biți și 32 biți.

În general, acestea sunt echipate cu CPU CISC cu arhitectură von Neumann , deși mai recent au apărut microcontrolere cu CPU de arhitectură RISC , cum ar fi Texas Instruments MSP430 , mai bine pregătite pentru utilizarea compilatoarelor moderne, mai degrabă decât pentru Assembly . Unele microcontrolere complexe (cum ar fi Freescale 68302) au un procesor RISC separat de nucleul procesorului.

Gama largă de funcții de comandă și control disponibile, atât analogice, cât și digitale, integrate pe același cip, permite utilizarea MCU-urilor pentru a înlocui plăcile electronice tradiționale cu fir mult mai complexe și mai scumpe.

Pentru microcontrolere, sistemele de amatori și de dezvoltare profesională sunt, de asemenea, publicate în modul open source .

Diferențe cu microprocesorul

Când în aprilie 1972 Intel a introdus pe piață primul procesor pe 8 biți - 8008 - acesta consta dintr-o ALU (Aritmetic and Logical Unit, ALU) pentru a efectua operații matematice și logice și o unitate de procesare elementară (Control Processing Unit , CPU) pentru a controla fluxul de date și adrese între ALU și circuitele externe de susținere.

Ulterior, arhitectura internă a microprocesorului (denumită ulterior pur și simplu simplu CPU) a evoluat rapid odată cu dezvoltarea unor blocuri interne din ce în ce mai complexe (număr mai mare de biți prelucrați și mutați) și cu o creștere exponențială a capacității și vitezei de calcul.

Deși puternic, microprocesorul integrează doar logica de procesare pe cip, în timp ce necesită întotdeauna unități externe - memorii, administratori de semnal și dispozitive periferice pentru a face schimb de informații și a interacționa cu lumea exterioară.

Microcontrolerul, pe de altă parte, este un sistem complet, care integrează în același cip procesorul, memoria permanentă, memoria volatilă și canalele I / O (pini), precum și orice alte blocuri specializate.

Spre deosebire de microprocesoarele tradiționale, potrivite pentru uz general ( scop general ), microcontrolerul este, de asemenea, conceput pentru a obține autosuficiența funcțională maximă și pentru a optimiza raportul preț-performanță într-o gamă specifică de aplicații.

Executarea programelor de aplicație se bazează, de asemenea, pe o arhitectură hardware diferită de cea utilizată de obicei pentru microprocesoare. În timp ce acesta din urmă, mai ales atunci când este utilizat pentru computere și computere personale, execută programe de aplicație bazându-se pe memorie de masă sau dispozitive de memorie volatile, pentru microcontrolere, programul de aplicație este de obicei stocat pe un dispozitiv de memorie ROM (cum ar fi o EPROM ) și, prin urmare, este de fapt un firmware .

În general, fiind concepute pentru aplicații specifice și pentru utilizare în special în condiții de mediu care impun limitări atât în ​​ceea ce privește consumul, cât și în ceea ce privește disiparea puterii, microcontrolerele au caracteristici mai puțin solicitante decât microprocesoarele, dar sunt mai ieftine decât acestea din urmă. cip dintr-o serie de componente și pentru factori de economie de scară legați de volume de producție mult mai mari.

Tabelul 1: Compararea microprocesorului vs. microcontroler [1]
Caracteristică Microcontroler Microprocesor
Viteza maximă a ceasului 200 MHz 4 GHz
Capacitate maximă de procesare în MegaFLOPS 200 5 000
Disiparea minimă a puterii în wați (în stare de procesare [2] ) 0,001 50
Prețul minim pe unitate în USD 0,5 50
Numărul de piese vândute anual (în milioane) 11 000 1 000

DSP

În paralel cu microcontrolerul și în continuă evoluție a puterii și a pieței, există DSP-uri ( procesoare digitale de semnal ) care încorporează module specializate în procesarea digitală a semnalelor analogice. Domeniile tipice de utilizare sunt în controlul unităților (cum ar fi motoarele), componentele pentru mașini și avionică , prelucrarea semnalelor multimedia (codare / decodare audio și video, streaming ) și telefonia mobilă.

DSP are de obicei o structură pe 32 de biți și în curând va fi pe 64 de biți; CPU-ul său are o arhitectură numai RISC .

Componente

Microcontroler STMicroelectronics STM32F103 R6T6

Arhitectura microcontrolerului include un set de module fixe, comune tuturor modelelor și o serie de extensii posibile în funcție de producător, preț și gama de aplicații:

Motive pentru succes

Succesul și creșterea uriașă a pieței pentru aceste componente se datorează acestor factori:

  • Cost redus (vă permite să înlocuiți unul sau mai multe circuite integrate tradiționale la un cost mai mic).
  • Scalabilitate extinsă în ceea ce privește performanța, complexitatea (8 pini la 144 pini) și viteza (1 MHz până la 200 MHz).
  • O gamă largă de echipamente în periferice și module specializate.
  • Număr redus (la limită = 0) de componente externe sau simplitatea realizării.
  • Ușurința de programare datorită numeroaselor instrumente de dezvoltare disponibile.
  • Disponibilitate largă (și adesea gratuită) a bibliotecilor, exemple de coduri și documentație
  • Posibilitatea și ușurința reprogramării ( în teren și în sistem ).
  • Flexibilitate mare a aplicațiilor.
  • Timp scurt pentru comercializarea produsului finit.

Piaţă

Microcontrolerul ocupă o poziție semnificativă pe piața generală a semiconductoarelor , cu un venit estimat la aproximativ 14 miliarde de dolari SUA și 10,8 miliarde de bucăți vândute în 2008. Estimarea creșterii prevede o creștere de 10% până în 2014, în timp ce piesele vândute vor fi de 14 miliarde până la sfârșitul anului 2010. [4]

Cu toate acestea, este o piață foarte fragmentată, cu peste 40 de producători și peste 50 de arhitecturi, dintre care niciunul nu deține mai mult de 5% din piață. Segmentul MCU pe 32 de biți este cel mai rapid segment în creștere, cu venituri anuale curente (2009) de aproximativ 25% din total. [5]

Principalele (în ordine descrescătoare după volume de piață) sunt: [6]

Aplicații de utilizare

Electronică de masă

Volumul imens de piese produse provine din utilizarea masivă a acestei componente în dispozitivele electronice de larg consum și în produsele industriale de masă.

Aceste dispozitive sunt adesea folosite în sisteme de plată precum cardurile de credit, dar și în cardurile inteligente sau felicitări muzicale.

Comunicații și transport

Un segment bun de piață îl reprezintă sectorul auto (mașini și alte mijloace de transport), care folosește zeci, în unele cazuri chiar sute, de componente pentru fiecare unitate industrială vândută.

Urmează segmentul de telefonie mobilă și telecomunicații în general, urmat de produse medicale, consumatori și electrocasnice.

Sisteme de dezvoltare

Implementarea într-un sistem de dezvoltare constă în scrierea programului în limbaj de asamblare sau de nivel înalt (de obicei C ), folosind un editor de text generic sau specific pentru limba respectivă. Odată scris, dacă este în limbaj de asamblare, programul trebuie asamblat , adică tradus în codul numeric real al mașinii (în general hexazecimal ). Conversia se face de un asamblor specific pentru procesor sau pentru o familie de procesoare. Dacă este codificat la un nivel înalt, programul trebuie să fie compilat , prin intermediul unui compilator care îl convertește mai întâi în limbajul de asamblare , apoi în codul mașinii propriu-zise, ​​în doi pași succesivi. Compilatorul trebuie să fie, de asemenea, specific procesorului sau familiei de procesoare.

În majoritatea cazurilor, complexitatea funcțiilor unui program de microprocesor necesită împărțirea în module funcționale (sau subrutine). Fiecare modul este apoi asamblat în mod relocabil (la adrese nedeterminate ). Incorporarea tuturor modulelor asamblate la adresele definitive este realizată, într-un pas suplimentar, de către un Linker , care generează codul definitiv al mașinii ( cod executabil ), într-un format adecvat pentru a fi transferat în memoria procesorului și executat.

Faza de depanare constă în lăsarea procesorului să ruleze software-ul, în condiții cât mai apropiate de condițiile reale de operare ( emulare ), verificarea (în timp real ) a faptului că comportamentul său la fiecare eveniment prevăzut respectă specificațiile proiectului. În caz de erori sau anomalii, software-ul este corectat, un nou cod executabil generat și transferat în memorie, pentru a fi verificat din nou. Acest proces continuă până când programul a fost testat complet. Fazele ulterioare de validare și verificare pot necesita intervenții suplimentare asupra software-ului de către dezvoltator .

Practic, un depanator trebuie să permită:

  • Încărcarea codului executabil în memorie
  • Pornirea și oprirea codului executabil
  • Inserarea punctelor de întrerupere , posibil condiționată de evenimente specifice
  • Inspecția și modificarea variabilelor, datelor și registrelor
  • Inspecția părților programului

Există două moduri de depanare: prin emulator în circuit ( ICE ) sau prin interfața de depanare integrată în microprocesor. Pentru ambele moduri, mediile integrate de dezvoltare ( IDE ) sunt disponibile pentru computerele care gestionează toate fazele descrise, de la editare la depanare la nivel înalt.

Notă

  1. ^ Valorile din tabel sunt orientative, doar pentru comparație aproximativă și se referă la momentul scrierii (începutul anului 2010)
  2. ^ În starea de somn , consumul poate fi redus cu un factor de 1000.
  3. ^ Nu este prezent în toate modelele
  4. ^ sursă: Databeans
  5. ^ sursă: Luminary Micro , pe luminarymicro.com . Adus la 11 iulie 2020 (Arhivat din original la 22 februarie 2015) .
  6. ^ sursă: Databeans Arhivat 8 martie 2014 la Internet Archive .

Elemente conexe

Alte proiecte

linkuri externe

Controlul autorității Tesauro BNCF 5170 · LCCN (EN) sh2008020006 · GND (DE) 4127438-6 · BNF (FR) cb13319620r (dată)