microcontroler (MCU)
Un microcontroler este un circuit integrat compact conceput pentru a guverna o anumită operațiune într-un sistem încorporat. Un microcontroler tipic include un procesor, memorie și periferice de intrare/ieșire (I/O) pe un singur cip.
Denumit uneori controler încorporat sau unitate microcontroler (MCU), microcontrolerele se găsesc în vehicule, roboți, mașini de birou, dispozitive medicale, transmițătoare radio mobile, automate de vânzare și aparate electrocasnice, printre alte dispozitive. În esență, acestea sunt calculatoare personale (PC) miniaturale simple, concepute pentru a controla caracteristici mici ale unei componente mai mari, fără un sistem de operare (OS) frontal complex.
Cum funcționează microcontrolerele?
Un microcontroler este încorporat în interiorul unui sistem pentru a controla o funcție singulară într-un dispozitiv. Acesta face acest lucru prin interpretarea datelor pe care le primește de la perifericele sale de intrare/ieșire cu ajutorul procesorului său central. Informațiile temporare pe care microcontrolerul le primește sunt stocate în memoria sa de date, de unde procesorul le accesează și utilizează instrucțiunile stocate în memoria sa de program pentru a descifra și aplica datele primite. Apoi utilizează perifericele sale de intrare/ieșire pentru a comunica și a pune în aplicare acțiunea corespunzătoare.
Microcontrolerele sunt utilizate într-o gamă largă de sisteme și dispozitive. Dispozitivele utilizează adesea mai multe microcontrolere care lucrează împreună în cadrul dispozitivului pentru a se ocupa de sarcinile lor respective.
De exemplu, o mașină poate avea mai multe microcontrolere care controlează diferite sisteme individuale din interior, cum ar fi sistemul de frânare antiblocare, controlul tracțiunii, injecția de combustibil sau controlul suspensiei. Toate microcontrolerele comunică între ele pentru a informa acțiunile corecte. Unele ar putea comunica cu un computer central mai complex din interiorul mașinii, iar altele ar putea comunica doar cu alte microcontrolere. Acestea trimit și primesc date folosind perifericele lor de intrare/ieșire (I/O) și procesează acele date pentru a-și îndeplini sarcinile desemnate.
Care sunt elementele unui microcontroler?
Elementele de bază ale unui microcontroler sunt:
- Procesorul (CPU) — Un procesor poate fi considerat creierul dispozitivului. Acesta procesează și răspunde la diverse instrucțiuni care direcționează funcția microcontrolerului. Aceasta implică efectuarea unor operații aritmetice, logice și de I/O de bază. De asemenea, efectuează operațiuni de transfer de date, care comunică comenzi către alte componente din sistemul încorporat mai mare.
- Memorie — Memoria unui microcontroler este utilizată pentru a stoca datele pe care procesorul le primește și le utilizează pentru a răspunde la instrucțiunile pe care a fost programat să le execute. Un microcontroler are două tipuri principale de memorie:
- Memoria de program, care stochează informații pe termen lung despre instrucțiunile pe care le execută procesorul. Memoria de program este o memorie nevolatilă, ceea ce înseamnă că păstrează informațiile în timp, fără a avea nevoie de o sursă de alimentare.
- Memoria de date, care este necesară pentru stocarea temporară a datelor în timp ce instrucțiunile sunt executate. Memoria de date este volatilă, ceea ce înseamnă că datele pe care le deține sunt temporare și sunt menținute doar dacă dispozitivul este conectat la o sursă de alimentare.
- Perifericele de intrare/ieșire — Dispozitivele de intrare și ieșire reprezintă interfața procesorului cu lumea exterioară. Porturile de intrare primesc informații și le trimit către procesor sub formă de date binare. Procesorul primește aceste date și trimite instrucțiunile necesare dispozitivelor de ieșire care execută sarcini externe microcontrolerului.
În timp ce procesorul, memoria și perifericele I/O sunt elementele definitorii ale microprocesorului, există și alte elemente care sunt frecvent incluse. Termenul de periferice I/O în sine se referă pur și simplu la componentele de suport care fac interfață cu memoria și procesorul. Există multe componente de sprijin care pot fi clasificate ca periferice. A avea o anumită manifestare a unui periferic I/O este elementar pentru un microprocesor, deoarece acestea sunt mecanismul prin care se aplică procesorul.
Alte elemente de suport ale unui microcontroler includ:
- Curent analogic-digital (ADC) — Un ADC este un circuit care convertește semnalele analogice în semnale digitale. Acesta permite procesorului din centrul microcontrolerului să se interfațeze cu dispozitive analogice externe, cum ar fi senzorii.
- Curent digital-analogic (DAC) — Un DAC îndeplinește funcția inversă a unui ADC și permite procesorului din centrul microcontrolerului să comunice semnalele sale de ieșire către componente analogice externe.
- Bus de sistem — Busul de sistem este firul de legătură care leagă între ele toate componentele microcontrolerului.
- Portul serial — Portul serial este un exemplu de port I/O care permite microcontrolerului să se conecteze la componente externe. Are o funcție similară cu cea a unui port USB sau a unui port paralel, dar diferă prin modul în care schimbă biți.
Caracteristicile microcontrolerului
Procesorul unui microcontroler va varia în funcție de aplicație. Opțiunile variază de la procesoarele simple pe 4, 8 sau 16 biți până la procesoarele mai complexe pe 32 sau 64 de biți. Microcontrolerele pot utiliza tipuri de memorie volatilă, cum ar fi memoria cu acces aleatoriu (RAM) și tipuri de memorie nevolatilă – aceasta include memoria flash, memoria numai de citire programabilă și șterse (EPROM) și memoria numai de citire programabilă și șterse electric (EEPROM).
În general, microcontrolerele sunt concepute pentru a fi ușor de utilizat fără componente de calcul suplimentare, deoarece sunt proiectate cu suficientă memorie la bord, precum și pentru a oferi pini pentru operații generale de I/O, astfel încât să se poată interfața direct cu senzori și alte componente.
Arhitectura microcontrolerului se poate baza pe arhitectura Harvard sau pe arhitectura von Neumann, ambele oferind diferite metode de schimb de date între procesor și memorie. Cu o arhitectură Harvard, magistrala de date și cea de instrucțiuni sunt separate, permițând transferuri simultane. Cu o arhitectură Von Neumann, un singur autobuz este utilizat atât pentru date, cât și pentru instrucțiuni.
Procesoarele microcontrolerului se pot baza pe un set complex de instrucțiuni de calcul (CISC) sau pe un set redus de instrucțiuni de calcul (RISC). CISC are, în general, în jur de 80 de instrucțiuni, în timp ce RISC are aproximativ 30, precum și mai multe moduri de adresare, 12-24 comparativ cu cele 3-5 ale RISC. Deși CISC poate fi mai ușor de implementat și are o utilizare mai eficientă a memoriei, poate avea o degradare a performanței din cauza numărului mai mare de cicluri de ceas necesare pentru a executa instrucțiunile. RISC, care pune mai mult accent pe software, oferă adesea performanțe mai bune decât procesoarele CISC, care pun mai mult accent pe hardware, datorită setului său de instrucțiuni simplificat și, prin urmare, unei simplificări sporite a proiectării, dar, din cauza accentului pe care îl pune pe software, acesta poate fi mai complex. Ce ISC este utilizat variază în funcție de aplicație.
Când au devenit disponibile pentru prima dată, microcontrolerele foloseau exclusiv limbajul de asamblare. Astăzi, limbajul de programare C este o opțiune populară. Alte limbaje comune pentru microprocesoare includ Python și JavaScript.
MCU dispun de pini de intrare și ieșire pentru a implementa funcții periferice. Astfel de funcții includ convertoare analog-digitale, controlere de afișaj cu cristale lichide (LCD), ceas în timp real (RTC), emițător receptor universal sincron/asincron (USART), temporizatoare, emițător receptor universal asincron (UART) și conectivitate prin bus serial universal (USB). Senzorii care colectează date legate de umiditate și temperatură, printre altele, sunt, de asemenea, adesea atașați la microcontrolere.
Tipuri de microcontrolere
MCU-urile comune includ microcontrolerul Intel MCS-51, denumit adesea microcontroler 8051, care a fost dezvoltat pentru prima dată în 1985; microcontrolerul AVR dezvoltat de Atmel în 1996; controlerul de interfață programabilă (PIC) de la Microchip Technology; și diverse microcontrolere licențiate Advanced RISC Machines (ARM).
O serie de companii produc și vând microcontrolere, printre care NXP Semiconductors, Renesas Electronics, Silicon Labs și Texas Instruments.
Aplicații ale microcontrolerelor
Microcontrolerele sunt utilizate în mai multe industrii și aplicații, inclusiv în locuințe și întreprinderi, automatizarea clădirilor, producție, robotică, automobile, iluminat, energie inteligentă, automatizare industrială, comunicații și implementări ale internetului lucrurilor (IoT).
O aplicație foarte specifică a unui microcontroler este utilizarea sa ca procesor de semnal digital. În mod frecvent, semnalele analogice primite vin cu un anumit nivel de zgomot. În acest context, zgomotul înseamnă valori ambigue care nu pot fi traduse cu ușurință în valori digitale standard. Un microcontroler își poate folosi ADC și DAC pentru a converti semnalul analogic zgomotos de intrare într-un semnal digital de ieșire uniform.
Cele mai simple microcontrolere facilitează funcționarea sistemelor electromecanice care se găsesc în obiectele de uz cotidian, cum ar fi cuptoarele, frigiderele, prăjitoarele de pâine, dispozitivele mobile, brelocurile de chei, sistemele de jocuri video, televizoarele și sistemele de udare a gazonului. Acestea sunt, de asemenea, comune în mașinile de birou, cum ar fi fotocopiatoarele, scannerele, faxurile și imprimantele, precum și în contoarele inteligente, bancomatele și sistemele de securitate.
Microcontrolerele mai sofisticate îndeplinesc funcții critice în aeronave, nave spațiale, nave oceanice, vehicule, sisteme medicale și de susținere a vieții, precum și în roboți. În scenariile medicale, microcontrolerele pot regla funcționarea unei inimi artificiale, a unui rinichi sau a altor organe. De asemenea, acestea pot avea un rol esențial în funcționarea dispozitivelor protetice.
Microcontrolere vs. microprocesoare
Distincția dintre microcontrolere și microprocesoare a devenit mai puțin clară pe măsură ce densitatea și complexitatea cipurilor a devenit relativ ieftin de fabricat, iar microcontrolerele au integrat astfel mai multe funcționalități de tip „calculator generalist”. În general, totuși, se poate spune că microcontrolerele funcționează în mod util pe cont propriu, cu o conexiune directă la senzori și actuatori, în timp ce microprocesoarele sunt concepute pentru a maximiza puterea de calcul pe cip, cu conexiuni de bus intern (mai degrabă decât I/O directe) la hardware de suport, cum ar fi RAM și porturi seriale. Pe scurt, cafetierele folosesc microcontrolere; computerele de birou folosesc microprocesoare.