curssm

81
1

Upload: alipetya

Post on 10-Nov-2015

12 views

Category:

Documents


0 download

DESCRIPTION

curs sm

TRANSCRIPT

ARHITECTURA O structur electronic destinat controlului unui proces sau, mai general, unei interaciuni caracteristice cu mediul exterior, fr s fie necesar intervenia operatorului uman o numim controler.Ce este un microprocesor?.O structura electronica complexa care de cele mai multe ori ne testeaza inteligenta capacitatea de a intelege ,si care ne aduce necazuri la examene.Resursele integrate la nivelul microcircuitului ar trebui s includ, cel puin, urmtoarele componente:

1. o unitate central (CPU), cu un oscilator intern pentru ceasul de sistem

2. o memorie local tip ROM/PROM/EPROM/FLASH i eventual una de tip RAM

3. un sistem de ntreruperi

4. I/O - intrri/ieiri numerice

5. un port serial de tip asincron i/sau sincron, programabil

6. un sistem de timere-temporizatoare/numrtoare programabile Structura comuna pentru ambele circuite cu o observatie memoria program este externa pentru microprocesoare.Cursul prezinta structuri cu microcontrolere.Este posibil ca la acestea s fie adugate, la un pre de cost avantajos, caracteristici specifice sarcinii de control care trebuie ndeplinite:

7. un sistem de conversie analog numeric(una sau mai multe intrari analogice)

8. un sistem de conversie numeric analogic i/sau ieiri PWM (cu modulare n durat)

9. un comparator analogic

10. o memorie de date nevolatil de tip EEPROM

11. faciliti suplimentare pentru sistemul de temporizare/numrare (captare i

comparare)

12. un ceas de gard (timer de tip watchdog)

13. un RTC(Real Time Clock ceas,data,calendar)

14. alte protocoale de transmisie seriala sau paralela (I2C , SPI , 1WIRE , CAN...)

15. faciliti pentru optimizarea consumului propriu

Un microcontroler tipic mai are, la nivelul unitii centrale, faciliti de prelucrare a informaiei la nivel de bit, de acces direct i uor la intrri/ieiri i un mecanism de prelucrare a intreruperilor rapid si eficient.

Utilizarea unui microcontroler constituie o soluie prin care se poate reduce dramatic numrul componentelor electronice precum i costul proiectrii i al dezvoltrii unui produs.

OBSERVAIE Utilizarea unui microcontroler, orict de evoluat, nu elimin unele componente ale interfeei cu mediul exterior (atunci cnd ele sunt chiar necesare): subsisteme de prelucrare analogic (amplificare, redresare, filtrare, protecie-limitare), elemente pentru realizarea izolrii galvanice (optocuploare, transformatoare), elemente de comutaie de putere (tranzistoare de putere, relee electromecanice sau statice).Exist la ora actual un numr extrem de mare de tipuri constructive de microcontrolere. Un criteriu de clasificare care se poate aplica ntotdeauna este lungimea (dimensiunea) cuvntului de date. Funcie de puterea de calcul dorit i de alte caracteristici se pot alege variante avnd dimensiunea cuvntului de date de 4, 8,16 sau 32 de bii (exist chiar i variante de 64 de bii!). Nu este obligatoriu ca dimensiunea cuvntului de date s fie egal cu dimensiunea unui cuvnt main (cuvnt program). Exist i multe variante zise dedicate, neprogramabile de utilizator la nivel de cod main, strict specializate pe o anumit aplicaie, prin intermediul codului preprogramat i al resurselor hardware, utilizate pentru comunicaii, controlul tastaturilor, controlul aparaturii audio/video, prelucrarea numeric a semnalului, etc.

Practic, toate microcontrolerele se realizeaz la ora actual n tehnologie CMOS. Se pot realiza astfel structuri cu o mare densitate de integrare, cu un consum redus (care va depinde de frecvena de lucru).Logica intern este static (total sau n cea mai mare parte) permind astfel, n anumite condiii, micorarea frecvenei de ceas sau chiar oprirea ceasului n ideea optimizrii consumului. Tehnologia este caracterizat i de o imunitate mai mare la perturbaii, esenial ntr-un mare numr de aplicaii specifice. Se realizeaz variante pentru domeniu extins al temperaturii de funcionare (de ex.- 40 la +135 C).Exist foarte multe variante de ncapsulare (capsule de plastic i mai rar de ceramic),multe din ele destinate montrii pe suprafa (SMD): SOIC, PLCC, PQFP, TQFP (x100pini), etc., dar i variante clasice cu pini tip DIP/DIL (tipic de la 8 la 68 pini).Arhitecturi de tip " von Neumann "

Cele mai multe microcontrolere sunt realizate pe baza acestei arhitecturi de sistem.Microcontrolerele bazate pe aceast arhitectur au o unitate central (CPU) caracterizat de existena unui singur spaiu de memorie utilizat pentru memorarea att a codului instruciunilor ct i a datelor ce fac obiectul prelucrrii. Exist deci o singur magistral intern (bus) care este folosit pentru preluarea a instruciunilor (fetch opcod) i a datelor;efectuarea celor dou operaii separate, n mod secvenial, are ca efect, cel puin principial,ncetinirea operaiilor. Este arhitectura standard (cea mai des ntlnit) i pentru microprocesoarele de uz general.

Fig.1 Arhitectura von Neumann

Arhitecturi de tip " Harvard "

La aceast arhitectur exist spaii de memorie separate pentru program i date. n

consecin ar trebui s existe i magistrale separate (de adrese i date) pentru codul instruciunilor i respectiv pentru date. Principial exist astfel posibilitatea execuiei cvasiparalele (suprapunerii) a celor dou operaii menionate anterior. Codul unei instruciuni poate fi preluat din memorie n timp ce se execut operaiile cu datele aferente instruciunii anterioare. Este posibil (cel puin teoretic) o execuie mai rapid, pe seama unei complexiti sporite a microcircuitului, mai ales atunci cnd exist i un pipeline. Este arhitectura standard pentru procesoarele numerice de semnal (DSP). Datorit costului mare al implementrii unei astfel de arhitecturi, n cazul microcontrolerelor se ntlnete mai ales o arhitectur Harvard modificat, cu spaii de memorie separate pentru program i date, dar cu magistrale comune pentru adrese i date.

CISC

Aproape toate microcontrolerele au la baza realizrii CPU conceptul CISC (ComplexInstruction Set Computer). Aceasta nseamn un set uzual de peste 80 instruciuni, multe din ele foarte puternice i specializate. De obicei multe din aceste instruciuni sunt foarte diferite ntre ele: unele opereaz numai cu anumite spaii de adrese sau registre, altele permit numai anumite moduri de adresare, etc. Pentru programatorul n limbaj de asamblare exist unele avantaje prin utilizarea unei singure instruciuni complexe n locul mai multor instruciuni simple (analog macroinstruciunilor clasice dintr-un limbaj de asamblare) .RISC

RISC (Reduced Instruction Set Computer) este un concept de realizare a CPU care a

nceput s fie utilizat cu succes de ceva timp i la realizarea microcontrolerelor. Prin implementarea unui set redus de instruciuni care se pot executa foarte rapid i eficient, se

obine o reducere a complexitii microcircuitului, suprafaa disponibilizat putnd fi utilizat n alte scopuri. Printre caracteristicile asociate de obicei unui CPU RISC se pot meniona:

- arhitectur Harvard modificat sau von Neumann

- vitez sporit de execuie prin implementarea unui pipeline pentru instruciuni

- set de instruciuni ortogonal (simetric): orice instruciune opereaz cu orice spaiu de adrese (de memorie) sau orice registru, instruciunile nu prezint combinaii speciale, excepii, restricii sau efecte colaterale.

ASPECTE LEGATE DE MEMORIA MICROCONTROLERELORn afar de memoria local de tip RAM, de dimensiuni relativ reduse (de la x10 octei la x1k), implementat ca atare sau existent sub forma unui set de registre i destinat memorrii datelor (variabilelor), mai exist o serie de aspecte specifice, marea majoritate a acestora fiind legat de implementarea fizic a memoriei de program (i eventual a unei pri a memoriei de date) cu ajutorul unor memorii nevolatile. Clasic, memoria de program era implementat ntr-o variant de tip ROM : EPROM pentru dezvoltare i producie pe scar mic/medie sau mask-ROM pentru producia de mas.

Principalele concepte noi aprute de a lungul timpului n legtur cu implementarea memoriei de program sau date sunt enumerate n continuare.

a. OTP - majoritatea productorilor ofer variante de microcontrolere la care memoria local de program este de tip OTP (One Time Programmable), practic o memorie PROM identic intern cu varianta EPROM, dar fr fereastra de cuar pentru tergere (deci i mai ieftine); aceste variante pot fi utilizate ca o alternativ pentru o producie limitat, pn n momentul testrii i validrii finale a codului, moment n care pot fi comandate variantele (mask) ROM propriu-zise, cele mai economice pentru o producie de mas b. FLASH EPROM - este o soluie mai bun dect EPROM-ul propriu-zis atunci cnd este necesar un volum mare de memorie program (nevolatil); mai rapid i cu un numr garantat suficient de mare (x10000) de cicluri de programare (de tergere/scriere), este caracterizat i prin modaliti mai flexibile de programare; este utilizat numai ca memorie de program.

c. EEPROM - multe microcontrolere au i o memorie de acest tip, de dimensiune limitat (de la x10 octei la x K octei), destinat memorrii unui numr limitat de parametrii (memorie de date) care eventual trebuie modificai din timp n timp; este o memorie relativ lent (la scriere), dar cu un numr de cicluri de tergere/scriere mai mare ca FLASH-uld. NOVRAM (RAM nevolatil) - realizat prin alimentarea local (baterie, acumulator) a unui masiv RAM CMOS atunci cnd este necesar un volum mare de memorie de program i date nevolatil; mult mai rapid dect toate celelalte tipuri i fr limitri ca numr de cicluri.e. Memoria extern de program sau date.Marea majoritate a familiilor de microcontrolere permit si utilizarea de memorie extern de program (tipic ROM) sau date (tipic RAM). Aceasta presupune existenta si utilizarea unor magistrale externe de adrese si date. Conexiunile externe necesare pentru acestea sunt disponibile ca funcii alternative ale pinilor. Din pcate, in aceast situaie numrul de conexiuni exterioare disponibile pentru interfaa cu exteriorul se reduce dramatic, reducnd mult din versatilitatea microcontrolerului. Mai mult la variantele constructive cu un numr mic de pini (conexiuni externe) nu este posibil utilizarea de memorie extern, dect, eventual, intr-o variant cu interfa serial (memorie RAM, FLASH sau EEPROM cu interfa I2C, SPI, etc.) si numai ca memorie de date.LIMBAJE DE PROGRAMARE

Limbajul main i de cel de asamblare

Limbajul main (instruciunile main) este singura form de reprezentare a informaiei pe care un microcontroler o "nelege".Din pcate aceast form de reprezentare a informaiei este total nepractic pentru un programator, care va utiliza cel puin un limbaj de asamblare, n care o instruciune are drept corespondent o instruciune n limbaj main.

Un program n limbaj de asamblare este rapid i compact. Aceasta nu nseamn c un

astfel de program, prost scris, nu poate fi lent i de mari dimensiuni, programatorul avnd

ontrolul total pentru execuia programului i gestiunea resurselor. Utilizarea numai a limbajului de asamblare pentru dezvoltarea unei aplicaii complexe este neproductiv de multe ori, deoarece exist i familii de microcontrolere cu CPU de tip CISC care au un numr foarte mare de instruciuni (x100) combinate cu moduri de adresare numeroase i complicate.

Totui, nu trebuie uitat c la ora actual muli din productorii mari de microcontrolere ofer medii de dezvoltare software gratuite care includ programe asambloare gratuite. De asemenea, comunitatea utilizatorilor diverselor familii de microcontrolere a dezvoltat i ea, n timp, multe astfel de asambloare, care sunt disponibile ca freeware.Un compilator este o implementare a unui limbaj de nivel nalt, mai apropiat de limbajul natural. Caracteristic pentru execuia unui program interpretat, este citirea i executarea secvenial a instruciunilor (instruciune cu instruciune). De fapt fiecare instruciune de nivel nalt este interpretat ntr-o secven de instruciuni main care se execut imediat.

Cele mai rspndite compilatoare sunt cele pentru limbajele C++,BASIC i JAVA .

Marele avantaj al utilizrii unui interpreter este dezvoltarea interactiv i incremental a aplicaiei: se scrie o poriune de cod care poate fi testat imediat, instruciune cu instruciune; dac rezultatele sunt satisfctoare se poate continua cu adugarea de astfel de poriuni pn la finalizarea aplicaiei.Un compilator combin uurina n programare oferit de un interpreter (de fapt de

limbajul de nivel nalt) cu o vitez mai mare de execuie a codului. Pentru aceasta programul, n limbaj de nivel nalt, este translatat (tradus) direct n limbaj main sau n limbaj de asamblare . Codul main rezultat are dimensiuni relativ mari (dar mai mici dect cel interpretat) i este executat direct, ca un tot, de microcontroler. De regul codul generat poate fi optimizat fie ca dimensiune, fie ca timp de execuie.Cele mai populare i utilizate sunt cele pentru limbajul C.

Deci codul este obinut cu ajutorul unui mediu integrat de dezvoltare a programelor (IDE-Integrated Development Environment) care conine n mod tipic urmtoarele componente software:

un editor specializat (orientat pe codul surs),

un asamblor/compilator,

un editor de legturi/locator ("link-editor/locator"),

programe de gestiune a unor biblioteci de cod ("librarians"),

programe de conversie a formatelor de reprezentare a codului (de exemplu din binar n format Intel HEX )

un simulator i/sau depanator ("debugger")

posibilitatea de atasare a unui programator ICSP

DEZVOLTAREA I TESTAREA APLICAIILOR

Cele mai rspndite mijloace hardware/software utilizate n dezvoltarea i testarea

aplicaiilor sunt enumerate n continuare.

a. Simulatoarele .

Un simulator este un program care ruleaz programul microcontrolerului -

implementeaz un microcontroler virtual - folosind un sistem de calcul gazd un PC. Programul se poate executa pas cu pas, coninutul variabilelor i registrelor poate fi vizualizat i modificat. Reprezint un punct de plecare atunci cnd se abordeaz un microcontroler, pentru familiarizarea cu resursele lui i cu limbajul de asamblare. Nu permite simularea n timp real a ntreruperilor i, de regul, programul ruleaz mai ncet dect pe maina real. De regul exist mijloace pentru evaluarea vitezei de execuie a codului simulat (ca numr de cicluri main sau de stri). Ideal, un simulator ar trebui s permit i simularea complet a interaciunii, cel putin din punct de vedere logic, cu toate perifericele disponibile.

b. Programele de depanare ("debbugers").

Sunt programe "monitor" care pe maina int (microcontrolerul) oferind faciliti de depanare similare simulatorului. Interfaa cu utilizatorul este realizat prin intermediul unui sistem gazd (PC) i/sau a unui terminal alfanumeric, conectate prin intermediul unui port serial. Utilizeaz o parte din resursele microcontrolerului : memorie de program pentru el nsui (de tip ROM) i memorie de date (RAM) pentru variabile proprii, memorie pentru programul ce se depaneaz, un port serial pentru comunicaia cu sistemul gazd, eventual ntreruperi, etc. Se utilizeaz de regul mpreun cu un sistem de dezvoltare (sau evaluare), care este un sistem minimal realizat n jurul microcontrolerului pe care ruleaz depanatorul, dar avnd resurse suficiente pentru a permite testarea i depanarea aplicaiilor uzuale.

b. Emulatoarele In Circuit (ICE-In Circuit Emulators).

Sunt cele mai eficiente mijloace de testare i dezvoltare i au fost mult timp cele mai complexe i mai costisitoare. Presupun existena unui hardware dedicat care nlocuiete practic microcontrolerul (se conecteaz n locul acestuia n sistemul pentru care se dezvolt aplicaia), n acelai timp fiind disponibile toate facilitile descrise anterior i altele suplimentare. Permit un control total al mainii int (n timp real), fr a folosi nimic din resursele. Ele sunt realizate de cele mai multe ori ca un mijloc de testare i depanare de sine stttor, conectat la un PC prin intermediul unui port paralel, serial sau USB. Nu este necesar nlocuirea microcontrolerului de pe sistemul int, conectarea cu acesta fcndu-se printr-un numr minim de interconexiuni. Exemple de astfel de interfee ar fi: JTAG/ICE In Circuit Emulation - la multe familii de microcontrolere, BDM (Background Debug Monitor) pentru Freescale/Motorola. Existena acestui tip de interfee face posibil realizarea de emulatoare cu un pre de cost mult mai mic dect cele clasice.d. Simulatoarele de sistem

Reprezint o categorie aparte de simulatoare destinate simulrii cat mai complete a

sistemului i a aplicaiei n ansamblu, cu alte cuvinte a microcontrolerului mpreuna cu o dispozitivele hardware externe. Ele integreaz de regula i un simulator SPICE. Cele mai cunoscute sunt Proteus VSM (Virtual System Modelling) al firmei Labcenter Electronics . Un astfel de simulator permite rularea aplicaiei (codului), n mod continuu sau pas cu pas i evaluarea n detaliu a modului cum aceasta (si microcontrolerul) interacioneaz cu hardware-ul extern. El permite ceea ce se numete co-simularea (Co-simulation): interaciunea dintre software-ul microcontrolerului i dispozitivele electronice analogice sau

numerice conectate cu acesta. Sunt bazate pe utilizarea unor modele avansate ale unor familii de microcontrolere precum i pe modelele SPICE ale dispozitivelor electronice. Pentru fiecare model de microcontroler exist un asamblor i un editor de legturi integrat astfel c se poate face, n anumite limite, i dezvoltarea codului n asamblare. Pe lng aceasta ele au asigurate i interfee corespunztoare pentru a se putea dezvolta codul cu medii de programare consacrate pentru familia respectiv de microcontrolere, folosind de exemplu un compilator C. Facilitile de simulare a codului sunt similare celor ntlnite la simulatoarele deja menionate. Pe lng numeroasele dispozitive electronice discrete, circuite integrate analogice sau numerice, circuite de memorie sau periferice,n categoria dispozitivelor externe se mai pot meniona i sisteme de afiare (LED, LCD),tastaturi matriciale sau butoane, relee, etc.e. Nucleele (sistemele de operare) de timp real (Real Time kernel, Real Time

Operating System-RTOS)

Pe piaa de software pentru microcontrolere exista i componente numite nuclee de

timp real sau sisteme de operare n timp real (RTOS). Un astfel program de sistem de nivel

profesional este o componenta software scump sau foarte scump, funcie de complexitatea

lui, de accesibilitatea surselor programului, de familia de microprocesoare creia ii este adresat, de modul in care va fi distribuit mpreuna cu aplicaia. Exist ins i variante de RTOS, de mai mic complexitate, din categoria freeware sau shareware, care pot fi utilizate cu performante mulumitoare.

Un sistem de operare n timp real faciliteaz crearea aplicaiilor aa zise de timp real,dar nu garanteaz i faptul ca ele chiar se vor executa n timp real, aceasta depinznd de modul n care este utilizat acest software la nivel de sistem.

Spre deosebire de un calculator cum este PC-ul, un sistem integrat (embedded system) este proiectat ntotdeauna ntr-un anumit scop i are un cod care se execut aproape ntotdeauna dintr-o memorie ROM, fiind de presupus c nu se modific pe parcursul execuiei aplicaiei. Astfel lucrurile sunt uurate deoarece comportarea sistemului poate specificat complet nc din faza de proiectare. Din aceasta cauza, n cazul multora din aplicaii, multe probleme se pot rezolva n timp real i fr s se utilizeze un RTOS. Esenial este pan la urm calitatea i competena celui care programeaz aplicaia !CRITERII DE ALEGERE A UNUI MICROCONTROLER

n momentul n care se dorete alegerea unui microcontroler (sau mai bine zis a unei familii de microcontrolere) pentru dezvoltarea unei aplicaii de tip embedded system exist mai multe criterii care trebuie luate n considerare, innd cont de implicaiile multiple ale acestei alegeri. Vom ncerca s grupm aceste criterii dup cerinele impuse aplicaiei i s prezentm cteva din ntrebrile rezultate, la care trebuie dat un rspuns.

a. Costurile aplicaiei

Care va fi scara de producie: prototip, producie mic/medie sau de mas?

Care sunt costurile permise pentru microcontroler?

Care sunt costurile permise pentru mediul de programare i dezvoltare?

b. Timpul de dezvoltare al aplicaiei

Ce limbaj de programare s aleg?

Ce limbaje de programare cunosc bine i ce medii de dezvoltare am utilizat?

Ce modalitate de testare i depanare folosesc: simulator, sistem de dezvoltare, emulator?c. Caracteristicile fizice

Care este viteza de prelucrare (de calcul) necesar?

De ct memorie am nevoie pentru program i respectiv date?

Va fi necesar si o memorie extern?

Ce fel de alimentare este disponibil i care sunt limitrile acesteia?

De cte intrri i/sau ieiri am nevoie?

Ce fel de intrri i/sau ieiri sunt necesare: intrri/ieiri analogice, ieiri numerice de curent mai mare?

Care sunt resursele necesare n materie de temporizare/numrare si care ar fi caracteristicile lor cele mai importante (rezoluie, frecventa maxima de numrare) ?

Ce tip de capsul, ce dimensiuni fizice i numr de pini ar trebui s aib?

Care este gama temperaturilor de lucru necesare?

Aplicaia va funciona ntr-un mediu cu caracteristici speciale, de exemplu n care exist

perturbaii electromagnetice puternice?

d. Conectivitatea

Care sunt resursele de comunicaie necesare: cte porturi seriale asincrone i cu ce

caracteristici, ce tipuri de magistrale seriale sincrone sunt disponibile?

Este necesar o conectivitate Ethernet (o stiv TCP/IP), USB sau wireless (stive Bluetooth,

Zigbee, etc.)?e. Compatibilitate, scalabilitate i dezvoltarea ulterioar

Cu ce tipuri de circuite se poate interfaa ct mai simplu: sisteme de afiare, senzori, elemente de comand i execuie (relee, motoare de cc, motoare pas cu pas, etc.)?

Cum se poate realiza extinderea ulterioar, atunci cnd este necesar?

Exist mai multe variante n familia respectiv de microcontrolere, care s acopere eventualele cerine suplimentare n materie de vitez de lucru, resurse periferice sau de memorie?f. Alte aspecte

Ce distribuitori exist i ct sunt de accesibili pentru mine?

Care este suportul oferit de fabricant sau distribuitor icare este baza de cunostine existent:site-uri web, documentaie on-line sau pe CD-uri, note de aplicaii, exemple de proiectare (reference designs), software din categoria freeware/shareware si, nu n ultimul rnd, forumuri de discuii pentru utilizatori?

Din pcate rspunsurile la multe din aceste ntrebri sunt corelate ntre ele. Un

exemplu este legtura care exist ntre criteriile de cost i cele de timp de dezvoltare.

Principial, utilizarea unui limbaj de nivel nalt mpreun cu un emulator pentru testare i depanare poate duce la scurtarea consistent a timpului de dezvoltare. Dar preul unui compilator este ntotdeauna mai mare dect cel al unui asamblor, iar preul unui emulator este i el mai mare dect cel al unor mijloace mai simple de testare i depanare.

n practic, de cele mai multe ori, alegerea unui microcontroler pentru a anumit aplicaie este i trebuie s fie rezultatul unui compromis.CU CE SI CUM SE POATE PROGRAMA UN MICROCONTROLER?

a.Programator specializat extern.(ex.STK200)- este un circuit electronic care conecteaza un port al PC-ul ( serial,paralel sau USB ) cu pinii de programare ai microcontrolerului. Programatoarele acestea au de obicei un soclu ZIP in care se pot conecta mai multe tipuri de microcontrolere in diferite pozitii,pentru ca pinii de programare difera ca pozitie de la familie la familie . Unele programatoare pot programa chiar si diferite familii de microcontrolere.b. Programarea "In System" (ISP-In System Programming) - folosirea unor memorii nevolatile de tip FLASH face posibil i "programarea" unui astfel de microcontroler fr a-l scoate din sistemul n care este ncorporat (programare on-line, In System Programming) ; programarea se face de regul prin intermediul unei interfee seriale dedicate de tip ISP (poate avea nume diferite) sau a unei interfee standard JTAG. c. Bootloader multe din microcontrolerele recente la care memoria de program este de tip FLASH au i facilitatea (au de fapt instruciuni dedicate acestui scop) de a putea i scrie n aceast memorie de program fr a utiliza un circuit de programare extern. Astfel n microcontroler poate exista permanent (rezident) un cod de mici dimensiuni (denumit i bootloader) care pur i simplu va ncrca prin intermediul portului serial (este doar un exemplu) codul utilizator sau constantele pe care acesta vrea eventual s le actualizeze. Bootloader-ul este i cel care lanseaz n execuie programul utilizator dup ncrcarea acestuia.ATENTIE !!! Protejarea codului - protejarea codului program dintr-o memorie local nevolatil mpotriva accesului neautorizat (la citire deoarece pirateria soft exist i aici) este oferit ca o opiune (ea mai trebuie i folosit!) la variantele FLASH, EPROM sau OTP. Codul poate protejat att la citire cat i la scriere (practic circuitul trebuie ters, nainte de a se mai putea scrie ceva n el). Este eliminat astfel posibilitatea de a se realiza, n acest caz, de patch-uri (alterri cu un anumit scop) ale codului original. La variantele mask-ROM propriu-zis protecia este de cele mai multe ori implicit.

Fig.2 Progamator universalReprezentari numerice

Rezumat notiuni elementare

Multiplexorul

PLA

PROM

FPLA

FPGA

Proces industrial controlat de microcalculator

Structuri microprocesoare

Structura de principiu a unei memorii cu acces aleator (RAM)

O prima varianta pentru un circuit de memorie cu acces aleator (random acces memory - RAM) este data in figura 3, unde la structura de latch adresabil a fost adaugat un MUX ce permite selectarea oricarui bit memorat folosind aceeasi adresa ca cea care este utilizata pentru scriere. Memoria are 2n+ locatii (latch-uri).

(Termenul de memorie cu acces aleator s-a impus din considerente ce tin de istoria sistemelor de memorie. Primele structuri fizice folosite la stocarea unui numar mare de biti s-au bazat pe procese magnetice si ofereau posibilitatea stocarii, pe banda, tambur sau disc, intr-o maniera seriala, in sensul ca pentru a se accesa bitul al n-lea trebuia parcursa inregistrarea bit cu bit pina in dreptul acestuia. Bitul n nu putea fi accesat decit dupa ce a fost accesat bitul n-1. In momentul in care s-au putut concepe memorii la care ordinea de accesare a bitilor sa fie oarecare s-a realizat un pas foarte mare inainte. Accesul intr-o ordine aleatoare ofera facilitati de utilizare deosebite. Acest fapt a consacrat denumirea de memorie cu acces aleator, RAM.)

DMUX-ul estc folosit numai la scriere iar MUX-ul numai la citirea din memoria RAM structurata rudimentar in aceasta prima varianta. Corelatiilc esentialc intre semnalele de la bornele acestei memorii sint prezentate in diagramele din figura 4. In momentul tj incepe un ciclu de citire prin setarea adresei la valoarca dorita (unii biti se stabilizeaza pe zero iar altii pe unu). Semnalul OS' (output select) se poate activa inainte sau dupa momentul t1, determinand activarea iesirii dc tip tristatc ce trece in unu sau zero, in functie de continutul locatiei selectate. Prin deselectie (OS' = 1) iesirea Dout trece iarasi in starea de mare impedanta (Hi-Z). Adresa se schimba in momentul t2, cind incepe un ciclu de scriere. Dupa un interval de timp, tAW, minim, poale fi activata si comanda de scriere WE (write enable) care are o durata, tw, minima, impusa prin datele de catalog, conditionata de structura interna a memoriei. Intrarea de date,Din trebuie sa fie stabila un interval de timp, tSu, inainte de tranzitia pozitiva a semnalului WE'; de asemenea trebuie mentinuta un timp, tH, dupa disparitia acestui semnal, pentru ca scrierea sa fie sigura. Cind un circuit de memorie este folosit in proiectarea unui sistem trebuic consultata cu atentie foaia de catalog ce-i descrie functionarea si-i da "timing'-ul critic. Fiecare tip de memorie si fiecare firma poseda caracteristici ce trebuiesc luate in considerare in definirea unei structuri concrete.

Complexitatea RAM-ului realizat ca o structura liniara de celule este data, in principal, dc circuitele de acces, DMUX-ul si MUX-ul.daca numarul de locatii depaseste o anumita dimensiune.

Demonstratia este imediata daca se calculeaza complexitatea RAM-ului

OS'Fig.3 fig.4

Ar fi utila gasirea unei structuri la care efortul structural major sa fie realizat pentru implementarea latch-urilor, ele fund cele ce dau efectiv functia circuitului. Vom cauta o solutie de acelasi tip ca in cazul ROM- urilor . Problema suplimentara ce se cere rezolvata este cea a accesului bidirectional la celula de memorie, in care trebuie sa scriem si pe care trebuie sa o citim. MUX-ul bidirectional este structura ce va permite realizarea RAM-ului ca o matrice bidimensionala la care circuitele de acces vor fi nesemnificative in determinarea complexitatii.Pentru inceput vom restructura un MUX sub forma circuitului din figura 5. Un DMUX, cu iesirile active in unu, asigura deschiderea cite unui NAND cu fan-in = 2. Cele 2" AND-mi vor fi sumate intr-un OR a carui iesire va fi W. AND-urile vor putea fi tehnologic realizate sub forma unor porti de transmisie cu ajutorul unui tranzistor MOS. Se obtine astfel, circuitul in care, daca O, este activata tranzistorul corespunzator va fi deschis si intre Ii si W va fi realizata o cale bidiretionala in sensul ca va putea circula curentul in ambele sensuri pentru ca tranzistorul se comporta ca o rezistenta ohmica de mica valoare. Acest circuit se va putea comporta ca un MUX cu intrarile Ii- si iesirea W, sau ca un DMUX cu intrarea W si iesirile li. Vom denumi acest circuit multiplexor -demultiplexer, MDX. Celula elementara a unei memorii RAM porneste de la latch-ul elementar la care se adauga circuitele ce permit comutarea starii. In figura 6 este prezentata o celula realizata cu 6 tranzistoare MOS. Tranzistoarele Qi, Q3 i Q2, Q4 formeaza cite un circuit inversor. lesirea Qjj a inversorului format din Qi i Q3 este conectata la intrarea celuilalt, a carui iesire, Qif, este legata la intrarea primului. Este format astfel cel mai simplu latch imaginabil. Q5 i Qt formeaza cite o poarta bidirectionala de acces la Qt] i, respectiv, la Qij'. Portile de acces sint deschise de semnalul selectie de linie i, LSi (line select). Liniile verticale permit accesul la celula pentru citire sau scriere. CSjl (selectia coloanei; pentru i) permite accesul la sau de la Qtj iar CSjO (selectia coloanei j pentru 0) permite accesul la sau de la Qij'.fig .5

Fig.6Pentru a inscrie 1 in celula ij se activeaza linia LSi iar pee coloana CSjO se formeaza semnalul 0 care comuta latch-ul astfel incit Qij = 1. Inscrierea lui 0 in aceeasi celula se face formand 0 pe coloana CSjl.

Organizarea memoriei

Spaii de adres separate pentru memoria de program i date. Memoria de program este o memorie nevolatil avnd o lungime de pn la 64K*8. Dac pinul EA\ este inut din exterior n starea logic 1, primele 4K locaii de memorie sunt accesate din memoria intern a microcontrollerului restul fiind accesate din memoria extern. Dac pinul EA\ este inut din exterior n starea logic 0, toate cele 64K locaii de memorie sunt accesate din memoria extern.

Acceseaza att de memorie de date intern ct i extern. Memoria de date intern este de 128*8 RAM plus un numr de Regitri cu Funciuni Speciale (Special Function Registers SFRs). Cele mai mici 128*8 adrese RAM pot fi accesate prin adresare direct sau indirect. Regitrii cu funciuni speciale pot fi accesai doar prin adresare direct. Memoria de date extern poate avea o lungime de pn la 64K*8, fiind o memorie de tip RAM.

Cele mai mici 128*8 adrese pot fi imprite n 3 segmente:

Register Banks 0-3: adresele de la 00H pn la 1FH (32 octei). Microcontrollerul dup reset pointeaz la register bank 0. Selecia bancului de regitri se face prin software. Fiecare register bank conine 8 regitri de un octet, 0 pn la 7.

Bit Addressable Area: adresele de la 20H pn la 2FH (16 octei). Fiecare dintre cei 128 bii pot fi adresai direct (00H pn la 7FH). Fiecare dintre cei 16 octei pot fi adresai ca i octet.

Scratch Pad Area: adresele de la 30H pn la 7FH (80 octei). Folosii

pentru RAM de date.

PAGE 1

_1465024544.ppt

Circuitele integrate n microcontroller comunica prin intermediul unor magistrale interne pe care se pot vehicula adrese, date sau semnale de control .Arhitectura 8051

_1465629515.ppt

Sa se proiecteze un sistem cu microcontroller 80C51 avand urmatoarele blocuri:oscilator cu quartz avand frecventa de 12MHzcircuit de reset8k*8 memorie de program externa avand adresa de baza 0000H8k*8 memorie de date si program externa avand adresa de baza 2000H8k*8 memorie de date externa avand adresa de baza 4000H

_1465629733.ppt

Sa se proiecteze un sistem cu microcontroller 80C51 avand urmatoarele blocuri:oscilator cu quartz avand frecventa de 12MHzcircuit de reset8k*8 memorie de program externa avand adresa de baza 0000Hport de iesire la adresa 011XXXXXXXXXXXXXb port de intrare la adresa 111XXXXXXXXXXXXXb la care sunt conectate 2 taste

_1300275806.doc

SISTEME CU MICROPROCESOARE

Note de curs

- CONSTANA 2008 -

INSTRUCTOR

Dr.ing. Nicolae BDR

SCOALA DE CONDUCATORI DE

AMBARCATIUNI DE AGREMENT

NAUTICAL BLUE