Microcontroler
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 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.
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
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:
- Unitate de procesare: CPU
- Memorie de program: ROM , EPROM , FLASH
- Memorie de date: RAM și EEPROM
- Oscilator intern sau extern
- Porturi I / O și / sau GPIO configurabile
- Managementul întreruperii [3]
- Controler DMA
- Module suplimentare
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]
- Renesas Technology (Japonia)
- Freescale Semiconductor (SUA)
- Atmel (SUA)
- Microchip Technology (SUA)
- Infineon Technologies (Germania)
- Texas Instruments Incorporated (SUA)
- Fujitsu (Japonia)
- NXP Semiconductors (Olanda)
- STMicroelectronics (Franța, Italia)
- Samsung Electronics (Coreea de Sud)
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ă
- ^ Valorile din tabel sunt orientative, doar pentru comparație aproximativă și se referă la momentul scrierii (începutul anului 2010)
- ^ În starea de somn , consumul poate fi redus cu un factor de 1000.
- ^ Nu este prezent în toate modelele
- ^ sursă: Databeans
- ^ sursă: Luminary Micro , pe luminarymicro.com . Adus la 11 iulie 2020 (Arhivat din original la 22 februarie 2015) .
- ^ sursă: Databeans Arhivat 8 martie 2014 la Internet Archive .
Elemente conexe
Alte proiecte
- Wikționarul conține dicționarul lema « microcontroler »
- Wikimedia Commons conține imagini sau alte fișiere pe microcontroler
linkuri externe
- Microcontroler , pe Treccani.it - Enciclopedii online , Institutul Enciclopediei Italiene .
- ( RO ) Lucrări referitoare la microcontroler , pe Open Library , Internet Archive .
- Baza de date a proiectului PIC Microcontroller , pe picguide.org . Adus la 25 aprilie 2019 (arhivat din original la 6 octombrie 2018) .
- Pagina principală SDCC , la sdcc.sourceforge.net . Adus la 31 mai 2008 (arhivat din original la 30 aprilie 2019) .
- SDCC Open Knowledge Resource , la sdccokr.dl9sec.de . Adus la 31 mai 2008 (arhivat din original la 19 februarie 2007) .
- Un port al FreeRTOS pentru 8051 , la freertos.org .
- Folosind SDCC pe AT89C52 (derivat 8051) , pe 8052.com . Adus la 31 mai 2008 (arhivat din original la 28 septembrie 2007) .
- Sistem automat de raportare a pachetelor (APRS) cu BeRTOS pentru Arduino
- Microcontroler , în Treccani.it - Enciclopedii online , Institutul Enciclopediei Italiene.
Controlul autorității | Tesauro BNCF 5170 · LCCN (EN) sh2008020006 · GND (DE) 4127438-6 · BNF (FR) cb13319620r (dată) |
---|