PROGRAMA ANALITICĂ

a disciplinei

MICROPROCESOARE ŞI MICROCONTROLERE

 

 

1. Titularul disciplinei: Prof. dr. Horia-Nicolai Teodorescu, m.c.A.R.

2. Tipul disciplinei: Disciplină de specialitate DO

3. Structura  în planul de învăţământ:

Semestrul

Numărul de ore pe săptămână

Forma de verificare

Numărul total de ore

Total ore pe disciplină

C

S

L

P

C

S

L

P

7

2

 

2

 

Examen

28

 

28

 

56

4. Proceduri folosite la predare şi aplicaţii; cerinţe la examinarea studenţilor:

Expunere, conversaţie, exemplificare, aplicaţii demonstrative, exerciţii, probleme rezolvate, microproiecte.

 

5. Conţinutul disciplinei

(Titularul îşi rezervă dreptul de a face adăugiri sau modificări la materia de mai sus, în funcţie de noutăţile apărute în domeniu şi de receptivitatea şi interesele cursanţilor.)

a) Curs:

§         Introducerea unor cunoştinţe generale despre diverse clase de microsisteme – microprocesoare, microcontrolere, DSP etc.

§         Prezentarea arhitecturilor de procesor: Von Newman, Harvard, Harvard modificată şi a modului de configurare a principalelor blocuri ale procesorului precum memoria, magistralele, interfeţele, ALU - unitatea aritmetico-logică etc. Exemplificări la microcontrolere, pipeline. Comparaţii între diverse familii de microcontrolere

§         Prezentarea tipurilor de seturi de instrucţiuni: CISC, RISC. Exemplificări la microcontrolere

§         Prezentarea arhitecturii microcontrolerelor din seria PIC 16FX....17YXX, prezentarea ALU, a regiştrilor de date ai ALU şi a modului de transfer a datelor dintre aceştia, prezentarea regiştrilor de control (stare) şi a setului de instrucţiuni de deplasare (încărcare) în regiştri, şi a instrucţiunilor aritmetice a instrucţiunilor de ştergere la nivel de byte şi de bit.

§         Comparaţii între arhitecturile diverselor familii de microcontrolere, funcţie de utilizare (industriala, comunicaţii, dedicata) şi funcţie de fabricant.

§         Un microcontroler RISC tipic: familia PIC, exemplificare 16F84. Setul de instrucţiuni pentru familia PIC16XXX.

§         Medii de programare pentru microcontrolere. MPLAB. Introducerea, aprofundarea şi sistematizarea unor elemente de proiectare a unor rutine (proceduri, funcţii) pentru procesarea semnalelor. Prezentarea unor exemple privind filtrele digitale şi a unor tehnici de optimizare a algoritmilor pentru obţinerea unor timpi mici de calcul.

§         Regiştrii principali.

§         I/O. Modul de concepere şi realizare a unor operaţii complexe pentru un procesor de tip RISC, în lipsa unor instrucţiuni specifice operaţiilor respective.

§         Porturile de I/O (a blocurilor de intrare / ieşire) pentru preluarea de semnale externe şi transmiterea de comenzi către dispozitive externe. Exemple.

§         Memoria. Modul de organizare pe bancuri a memoriei, a modurilor de adresare directă, respectiv indirectă a locaţiilor de memorie din diferite bancuri. Exemple: PIC

§         Învăţarea unor circuite anexe pentru microcontrolere

§         Introducerea şi aprofundarea tipurilor de întreruperi, a operaţiilor efectuate de microcontroler pentru realizarea unei întreruperi, prezentarea modului de citire a perifericelor, a regiştrilor de configurare a întreruperilor. Comparaţii între modul de lucru cu întreruperi între diverse procesoare. Optimizarea lucrului în întreruperi.

§         Timere. Tipuri, utilizări. Exemple: PIC.

§         Aplicaţii ale microcontrolerelor. Aplicaţii industriale. Aplicaţii de procesare de semnal şi de măsurare. Aplicaţii „înglobate”.

                                                                                    Total ore curs......................... 28 ore

b) Aplicaţii:

Laborator:

Laborator  1    Instrucţiuni de protecţia muncii pentru studenţi. Măsurile de prevenire a incendiilor în laboratoare. Norme de protecţia muncii specifice laboratorului (specifice primului laborator din cadrul unei discipline). Conversii în diverse baze (din binar în zecimal şi invers, fin hexa în binar etc.). Operaţii de sumare, diferenţă între două cuvinte pe 8 biţi cu observarea bitului de transport. Reprezentarea numerelor în C2- complement faţă de 2.

Laborator  2    Prezentarea mediului de dezvoltare MPLABTM furnizat de firma Microchip Technologies Inc., crearea deprinderilor şi abilităţilor de lucru cu meniurile şi ferestrele acestuia, realizarea unui prim proiect ce include fişiere header *.h, *.inc şi fişiere de cod *.asm, prezentarea liniilor de tip directivă (pre-procesor) şi a modului de comentarea a codului. [Aplicaţie: Compararea a două valori folosind instrucţiunea de scădere SUBWF pe baza informaţiei păstrate în bitul de transport CF]

Laborator  3    Configurarea simulatorului din MPLAB. Crearea deprinderilor şi abilităţilor de lucru cu ALU, cu registrul acumulator şi cu regiştrii de memorie folosind simple instrucţiuni de transfer date şi de adunare [Aplicaţii: Interschimbarea valorilor conţinute de două locaţii de memorie 3 metode: folosind un registru auxiliar, fără registru auxiliar prin operaţii de adunare/scădere, respectiv folosind operaţia de sau exclusiv].

Laborator  4    Vizualizarea listei de dezasamblare, vizualizarea memoriei de program şi de date, vizualizarea conţinutului regiştrilor, rularea pas cu pas a programelor. Elemente de sintaxă a scrierii programelor, directive pentru asamblor, prezentarea modului în care sunt afectate stările (flag C,DC,Z) de către operaţiile aritmetice, de transfer, de ştergere, respectiv de rotire (deplasare circulară prin bitul de transport). [Aplicaţii: sumarea a două valori cu păstrarea rezultatului pe 2 octeţi SumH, SumL. Sumarea cuvinte pe 2 octeţi. Împărţirea, înmulţirea la o putere a lui 2 folosind instrucţiunile de rotire RRF, RLF]

Laborator  5    Prezentarea instrucţiunilor de decizie condiţionată la nivel de bit, a instrucţiunilor de salt la o etichetă, implementarea buclelor, vizualizarea flag-urilor folosite de instrucţiunile de test, depanarea programului, introducerea de breakpoint-uri, calculul timpilor de întârziere în cazul buclelor de temporizare. [Aplicaţii: Generarea unei serii aritmetice şi calculul sumei a n termeni. Generare elemente şir Fibonacci. Realizarea operaţiei de înmulţire între două valori întregi – prin sumări repetate într-o buclă]

Laborator  6    Accesarea directă şi indirectă a bancurilor de memorie. Apelul unei proceduri. Explicarea modului de funcţionare a stivei [Aplicaţii: Accesarea directă a diferite bancuri de memorie: Copierea unor valori din bancul 1 în bancul 0, într-o zonă asociată unei rutine de comparare. Ordonarea valorilor copiate după o metodă simplă de sortare (metoda bulelor). Accesare indirectă a memoriei: Umplerea unei zone de memorie – de dimensiune specificată – cu o valoare constantă sau după valoarea unei variabile contor. Ştergerea unei zone de memorie.]

Laborator  7-8  Implementarea unui filtru digital elementare de mediere ponderată pentru o fereastră de analiză specificată printr-un număr de eşantioane (ordinul filtrului). [Aplicaţii: În primă fază se consideră coeficienţii filtrului FTJ fixaţi şi eşantioanele pe care se aplică filtrul accesate direct. Într-o fază ulterioară accesarea se face indirect, numărul de coeficienţi – ordinul filtrului se specifică printr-un parametru global.]

Laborator  9    Învăţarea modurilor configurare a porturilor / setare a pinilor porturilor ca biţi de intrare, respectiv de ieşire (setarea modului de funcţionare a porturilor prin intermediul regiştrilor TRISA şi TRISB din bank-ul 1 de memorie). [Aplicaţii: Generarea unei forme de undă pe un pin al PORTB. Generarea în paralel a formei de undă complementară pe alt pin de ieşire. Generarea periodică, într-o buclă a unui semnal de ieşire. Se vor folosi bucle de temporizare – cu durate exprimate în microsecunde, milisecunde (dacă se folosesc bucle imbricate)]

Laborator  10    Utilizarea opţiunilor din meniurile mediului de dezvoltare MPLAB, pentru configurarea biţilor microcontroler prin selecţia pinilor la care se aplică stimuli, a tipului de stimul, respectiv a duratei impulsurilor (pentru stimuli impulsionari). [Aplicaţie: Utilizarea porturilor ca porturi de intrare, numărarea impulsurilor unui semnal (treceri din 0 în 1) şi generarea unui eveniment după un număr de impulsuri, Analiza semnalelor generate folosind analizorul logic prin vizualizarea stării unor semnale importante (intrări, ieşiri, intrări de ceas)]

Laborator  11    Folosirea surselor de întreruperi la microcontrolerul 16F84. Întreruperi mascate şi nemascate. Tratarea automată a unei întreruperi. Configurarea registrilor INTCON, OPTION_REG pentru lucrul întreruperi. [Aplicaţii. Generarea folosind contorul TIMER0 a unor întreruperi mascate şi nemascate. Pentru fiecare situaţie se vor fixa modul diferit de abordare a întreruperii prin studiul secvenţelor de cod.]

Laborator   12-13    Prezentarea microproiectelor, pentru aprofundarea şi valorificarea cunoştinţelor asimilate în cadrul disciplinei, încărcarea codului maşină pe microcontrolere şi testarea corectitudinii funcţionării programelor prin intermediul plăcilor de dezvoltare. Prezentarea unor aplicaţii standard cu microcontrolere pe plăcile de dezvoltare Microchip: - utilizarea unor comutatoare, butoane pentru aprinderea stingerea unor leduri, - citirea valorii unui potenţiometru (convertor A/D), controlul mouse prin microcontroler etc

Laborator   14    Evaluarea activităţii la laborator pe parcursul semestrului, recuperare şedinţe de laborator

                                                                                    Total ore aplicaţii.....................   28 ore

 

Micro-proiecte (tema practică)

(Micro-proiectele de mai jos sunt oferite pentru alegere. Fiecare student trebuie să completeze ca temă acasă un proiect. Rezolvarea pico-proiectelor se va face independent, dar se încurajează lucrul în echipă în fazele preliminare ale proiectului).

1. Conceperea şi proiectarea unui stimulator pentru slăbire / antrenament muscular pasiv, care să genereze stimuli pentru patru electrozi, cu patru programe de stimulare. Al cincilea electrod va fi electrodul pasiv (masa). Stimulatorul va fi realizat cu ajutorul unui microcontroler PIC16F84 sau PIC10F220. Parametrii necesari pentru stabilirea programelor de stimulare (durata stimul, durata între aplicarea a doi stimuli succesivi, amplitudine necesară stimulului pentru a obţine o reacţie de la muşchi etc. sunt preluaţi de la disciplina de Electronică Medicală – laboratorul care tratează stimulatorul muscular)

2. Conceperea şi proiectarea unui sistem cu microcontroler care să controleze prin metoda PWM un motor de curent continuu, astfel încât tensiunea echivalentă (efectivă) prin motor să varieze conform unei forme de undă anterior stabilite (triunghiulară, trapezoidală, dreptunghiulară, sinusoidală etc.)

3. Să se implementeze o aplicaţie cu microcontroler care să genereze sunete conform unei secvenţe de note muzicale (sonerie muzicală). Fiecare notă este obţinută ca un şir de impulsuri de lăţime egală cu pauza, astfel încât perioada semnalului să corespundă cu perioada (1/frecvenţa) sunetelor (notelor) dorite. Exemplu: f1=470Hz, f2=530Hz, f3=240Hz etc.

 

 

Club de microcontrolere (realizat în afara normei didactice la cererea studenţilor)

În cadrul clubului studenţii care s-au arătaţi interesaţi (prezenţa nu este facultativă) sunt realizate programe de o complexitate peste nivelul mediu al programelor elaborate în cadrul laboratorului. O parte din studenţi au dezvoltat propriile plăcuţe de dezvoltare pentru a testa programele realizate în cadrul clubului. Printre aplicaţiile realizate menţionăm:

- implementarea unui liste circulare (buffer circular), cu păstrarea valorii curente a eşantionului de prelucrat. (aplicaţie iniţială: problema decimării). Lista circulară poate fi utilă atunci când o procedură încarcă valori (provenite de la un port, convertor A/D) în vârful listei imediat după ultima valoare achiziţionată, iar microcontrolerul urmează a le procesa atunci când va ajunge în dreptul acelor valori.

- conversie A/D folosind un convertor pe 10 biţi. (Aplicaţie: Citirea valorilor de la un potenţiometru, intervalul de variaţie 00h-3FFh fiind obţinut pe parcursul unei curse complete a potenţiometrului.

- controlul PWM a intensităţii luminoase a unor leduri (8 leduri – pentru reprezentarea la un momet de timp a unui digit 0,1,2,...,9, cel de-al 8-lea led fiind asociat virgulei). Iniţial s-a urmărit găsirea valorii pentru care ochiul nu mai era capabil să perceapă „pâlpâirea” ledurilor (refesh), pentru ca apoi prin control PWM să se modifice intensitatea luminoasă (de la una puternică la una slabă şi invers )

- control PWM motoraş curent continuu (s-a utilizat un motoraş de la un cooler)

- generare unei secvenţe de note muzicale pe un difuzor (prin utilizarea unui pin al portului B)

 

 

6. Bibliografie recomandată:

[1].  H.N. Teodorescu - “Elemente de utilizare a Micro-controlerelor”, Partea I Procesarea datelor şi aplicaţii cu Sisteme bazate pe micro-controlere, Tipografia Universităţii Tehnice „Gh. Asachi” Iaşi, 2005

[2].  Hutanu, C., Postolache, M., „Sisteme cu microprocesoare în conducerea automată a proceselor”, Vol. 1, Ediţia a 2-a, Ed. Academică, Iaşi 2001

[3].  Microchip Technology Inc., Manuale PIC. http://www.microchip.com/

[4].  Microchip Technology Inc., Note de aplicaţie, Programming Specifications for PIC16C6/7/9XX OTP MCUs. 2001

 

7. Baza materială:

§         Reţea de 8 calculatoare pentru dezvoltarea programelor în mediul de dezvoltare MPLABTM

§         Osciloscoape pentru verificarea şi măsurarea tensiunilor de alimentare a PIC-urilor, respectiv a semnalelor generate pe pinii de ieşire a porturilor.

§         3 Plăci de dezvoltare ATMEL pentru microcontrolere de tip 8051

§         4 Placi dezvoltare PicKit2 Starter Kit Microchip Inc. (pentru seria PIC 16XXX)

§         1 sistem dezvoltare MPLAB ICD2 In-Circuit Debugger (pentru seria PIC 18XXX)

§         Inscriptor memorie PIC-START_PLUS

 

8. Titular curs

Numele şi prenumele

Vechime în învăţământ

Gradul didactic

Titlul ştiinţific

Teodorescu Horia-Nicolai

32 ani

profesor universitar

Dr. dr. h.c. m.c. A.R.

5 lucrări semnificative, publicate pe tematica disciplinei predate:

[1].  H.N.Teodorescu, Note de curs, Disciplina Microcontrolere, 2003-2006

[2].  H.N. Teodorescu, L. Jain, A. Kandel (Eds.): „Hardware Implementation of Intelligent Systems”, Physica Verlag / Springer Verlag, 2001, ISBN 3-7908-1399-0

[3].  H.N. Teodorescu, and L.C. Jain (Eds.): „Intelligent Technologies in Rehabilitation”. CRC Press, Florida, USA, 520 pp. +  xvi, December 2000  ISBN: 0849301408

[4].  H.N. Teodorescu, D. Mlynek, A. Kandel, H.J. Zimmermann (Eds.): Intelligent Systems and Interfaces”, 480pp., ISBN: 079237763X, Kluwer Academic Press, Boston. 2000

[5].  H.N. Teodorescu, A. Kandel, and L.C. Jain (Eds.): „Fuzzy and Neuro-fuzzy Systems in Medicine”, CRC Press, Florida, USA, 394 pp.+ xxviii,  (ISBN0-8493-9806-1), 1998

 

Observaţii: Toate referinţele, inclusiv cursurile curente sunt protejate copyright – drepturile autorului sau ale editurii respective sunt protejate prin lege. Materialele nu pot fi copiate sau multiplicate sau stocate în vreun fel.

 

9. Titular aplicaţii

Numele şi prenumele

Vechime în învăţământ

Gradul didactic

Titlul ştiinţific

Zbancioc Marius-Dan

8 ani

asistent univ.

ing. drd.

 

 

©copyright H.N. Teodorescu. Copierea acestor materiale fără acceptul scris al autorului poate atrage răspundere civilă şi penală, inclusiv plata de daune.