Memoria Program la Microcontrollere

De la Wikipedia, enciclopedia liberă
Microcontrollere

Microcontrollerele sunt calculatoare de dimensiuni reduse ce conține o unitate centrală de prelucrare, memorie și intrări/ieșiri programabile, toate pe aceeași pastilă de siliciu. Microcontrolerele folosesc arhitectura Harvard ce presupune separarea memoriei program de memoria de date. Astfel memoria program la microcontrollere este de tip ROM (Read Only Memory). Această memorie este nonvolatilă (nu își pierde conținutul odată cu întreruperea alimentării), ceea ce o face potrivită pentru reținerea programului unui microcontroller. Memoria ROM poate fi și scrisă (de utilizator), altfel aceasta nu și-ar avea rostul, însă de cele mai multe ori, nu în timpul execuției unui program al sistemului integrat. Procesul de scriere al ROM-ului se numește "programare" și este făcut de cele mai multe ori "off-line", când memoria nu este folosită de sistemul integrat. În funcție de modul în care se face programarea memoriei, aceasta poate fi: Mask ROM, EPROM, EEPROM sau FLASH.

Memorie Mask ROM[modificare | modificare sursă]

Această memorie este programată în momentul creării prin procesul precum fotolitografiere. În urma acestui proces memoria este programată definitiv, de aceea acest tip de memorie este folosit în cazul în care se produce în serie mare. Producția în numere foarte mari scade costul de fabricație. Acest tip de memorie oferă cel mai mic cost per bit, oferind și o viteză de acces bună și o structură compactă deoarece nivelele logice 0 și 1 sunt date de existența/lipsa unor conexiuni cu liniile de date pentru fiecare cuvânt programat. Acest tip de memorie program folosită de microcontrollere conține un firmware. Astfel de microcontrollere sunt găsite în telecomenzi, tastaturi, ecrane TFT și altele.

De cele mai multe ori se folosesc memorii nonvolatile de tipul EPROM sau EEPROM în faza de dezvoltare a unui proiect, urmând ca varianta finală a codului să fie programată pe memorie de tip Mask ROM pentru producția de serie.

Unele microcontrollere folosesc memorii ROM pentru bootloader sau pentru tabele de lookup.

Există și variante de memorie ROM ce poate fi programată după fabricație de către utilizator(Programmable read-only memory). În locul conexiunilor de la memoria ROM găsim elemente fuzibile (interne memoriei) cu rezistența mică ce sunt proiectate sa ardă (opțional) legăturile către liniile de date. Programarea constă în arderea legăturilor nedorite, proces ce realizează practic scrierea de zerouri. Însă microcontrollerele nu folosesc astfel de memorii program datorită dificultății de programare a lor. Pot fi folosite în schimb ca memorii program externe, legate printr-o magistrală externă la un microcontroller.

Memorie EPROM[modificare | modificare sursă]

Această memorie (erasable programmable read only memory = ștergibil și programabil ROM) folosește tranzistoare MOS ca element programabil. Aceste tranzistoare conțin câte o poartă flotantă ceea ce înseamnă că poarta nu este conectată. Programarea are loc prin injectarea de electroni în poarta flotantă folosind o tensiune mai mare decât cea obișnuită (uzual între 12V și 25V). Ștergerea se produce prin scoaterea electronilor din poarta flotantă, proces realizat prin expunerea la raze ultraviolete printr-o fereastră mică în exteriorul microcontrollerului. Expunerea durează în jur de 20 de minute. După efectuarea ștergerii, fereastra trebuie acoperită pentru a proteja microcontrollerul de razele ultraviolete provenite de la soare. Există și variante de microcontrollere ce nu au fereastra, acestea fiind practic programabile o singură dată și poartă denumirea de OTPEPROM(one time programmable EPROM). Motivul pentru eliminarea ferestrei este de a reduce costurile de fabricație. Aceste memorii pot păstra datele programate un timp îndelungat, de la zece la chiar douăzeci de ani, în absența alimentării.

Microcontrollerele ce folosesc astfel de memorii program sunt folositoare deoarece se pot programa pentru diverse aplicații în funcție de cerere. Programele pot fi îmbunătățite, modificate sau pot fi adaptate cerințelor clientului în ultimul moment.

Microcontrollerele cu astfel de memorii program au fost înlocuite de cele cu memorii EEPROM sau FLASH, deoarece costurile de fabricație sunt mai mari iar citirea și scrierea este mai lentă decât la cele din urmă.

Memorie EEPROM[modificare | modificare sursă]

EEPROM (electricaly erasable programmable read only memory) este un tip de memorie ce permite programarea și ștergerea octeților electric. Programare se face similar cu cea de la memoriile EPROM iar ștergerea se face aplicând un curent invers porților flotante, astfel eliminând necesitatea ferestrelor iar ștergerea poate fi făcută în același circuit. Aceste memorii au însă un număr limitat de scrieri/ștergeri, însă în ultimul timp numărul acesta a crescut simțitor. Există o varietate de microcontrollere ce folosesc memorie EEPROM pentru program, acestea putând fi programate pentru diferite aplicații în funcție de necesități. Astfel de microcontrollere sunt de preferat când memoria program contine un firmware la care firma poate aduce îmbunătățiri sau să corecteze erori neidentificate. În cazul în care este nevoie de un firmware mai complex, de dimensiuni mai mari se preferă folosirea de microcontrollere cu memorie FLASH.

Memorie FLASH[modificare | modificare sursă]

Memoria FLASH este un tip de memorie EEPROM la care ștergerea se efectuează la nivel de bloc de date, spre deosebire de EEPROM unde ștergerea este la nivel de octet. Ca urmare ștergerea la FLASH se poate face mult mai rapid, deși poate fi un inconvenient în momentul în care se dorește ștergerea a unui singur octet. Timpii de citire la memoria FLASH sunt mai mari decât la EEPROM însă structura memoriei FLASH este mai densă, oferind capacități de memorare mai mari pe aceeași suprafață de siliciu, lucru dorit în cazul microcontrollerelor unde dimensiunile sunt limitate. În plus, costurile de fabricație pentru memoriile FLASH sunt mai mici în comparație cu cele pentru memoriile EEPROM.

Legături externe[modificare | modificare sursă]