Documente Academic
Documente Profesional
Documente Cultură
Sisteme Integrate Lucrari de Laborator
Sisteme Integrate Lucrari de Laborator
FACULTATEA DE
AUTOMATICA
SISTEME INTEGRATE
INDRUMAR DE LABORATOR
| Cosmin Ionete|
Contents
1.
Laboratorul 1 ................................................................................................................................... 3
1.1
1.1.1
Date Tehnice.................................................................................................................... 3
1.1.2
1.2
2.
3.
Laboratorul 2 ................................................................................................................................. 11
2.1
2.2
Laboratorul 3 ................................................................................................................................. 16
3.1
4.
Laboratorul 4 ................................................................................................................................. 17
4.1
4.1.1
5.
Timerul 0........................................................................................................................ 17
4.2
4.3
Laboratorul 5 ................................................................................................................................. 23
5.1
5.2
1. Laboratorul 1
1.1
1.1.1
Date Tehnice
1.1.2
Uart_INT: Defaul ON
Comutatorul Uart_INT stabilete daca UART-ul extern 16550 genereaz o ntrerupere
pe microcontroller. Daca Uart_INT este pe poziia ON ieirea ntreruperii de la 16550 este
conectat pe pinul 2 al portului 3. Dac Uart_INT este pe poziia OFF ieirea ntreruperii de
la 16550 nu este conectat la microcontroller. Acest comutator este folositor atunci cnd se
ext_Uart : Defaul ON
Comutatorul ext_Uart determin dac semnalul de selectare a chip-ului pentru
UART-ul extern 16550 este generat. Dac ext_Uart este pe poziia ON semnalul de selectare
a chip-ului este generat i programul Monitor folosete interfaa serial extern pentru
comunicaie. Viteza comunicaiei este de 57600 BPS. Dac ext_Uart este pe poziia OFF
semnalul de selectare a chip-ului pentru UART nu este generat, iar programul Monitor
folosete interfaa serial intern pentru comunicaie. n acest caz viteza comunicaiei poate fi
19200BPS dac frecvena XTAL-ului este de 12MHz sau 38400BPS daca frecvena XTALului este de 24MHz.
SRC/D2: Default ON
Comutatorul SRC/D2 selecteaz modul SURS sau BINAR pentru CPU-ul 251. Dac
SRC/D2 este pe poziia ON modul surs este selectat. Dac SRC/D2 este pe poziia OFF
modul BINAR este selectat. Atunci cnd un dispozitiv 151 sau 8051 este folosit SRC/D2
trebuie s fie pe poziia OFF. Dac placa MCB251 este folosit cu o aplicaie a utilizatorului
n memoria EEPROM atunci comutatorul SRC/D2 trebuie s fie pe poziia OFF.
Monitor: Default ON
Comunatorul Monitor selecteaz dac Monitorul este folosit pentru debugging sau
dac MCB251 funcioneaz cu o aplicaie a utilizatorului la IC13. Cnd comutatorul Monitor
este pe poziia ON map-area memoriei de ctre Monitor este activat iar placa trebuie folosit
Monitorul EEPROM standard. Cnd comutatorul Monitor este pe poziia OFF map-area
memoriei de ctre utilizator este selectat si poate fi introdus o memorie EEPROM cu o
aplicaie a utilizatorului.
51/151: Default ON
Comutatorul 51/151 selecteaz dac un microcontroller compatibil cu 251 sau
151/8051 este instalat n socket-ul IC1. Dac un dispozitiv compatibil cu 151/8051 este
instalat atunci comutatorul 51/151 trebuie s fie pe poziia ON. Dac un dispozitiv compatibil
cu 251 este instalat atunci 51/151 trebuie s fie pe poziia OFF.
A17: Default ON
Comutatorul A17 selecteaz dac CPU-ul 251 folosete P1.7 ca linia de adres A17
sau dac P1.7 este folosit ca o linie de I/O a portului. Cnd A17 este pe poziia ON linia A17
este folosit i utilizatorul poate adresa pn la 256KB de memorie folosind dispozitivul 251.
Cnd A17 este pe poziia OFF P1.7 poate fi folosit ca o linie de I/O a portului.
LED: Default ON
Comutatorul LED selecteaz dac Portul 1 este conectat la cele 8 LED-uri care se afl
pe plac. Cnd comutatorul este pe poziia ON Portul 1 este conectat la cela 8 LED-uri. Cnd
comutatorul este pe poziia OFF Portul 1 nu este conectat la LED-uri. Dac comutatorul
Monitor este pe poziia ON i comutatorul LED este pe poziia OFF, Monitorul nu modific
liniile portului 1 la pornire.
Configuraia folosit pentru aceast aplicaie este prezentat n figura de mai jos:
NMI: Default ON
Jumper-ul de configurare NMI selecteaz butonul INT este conectat la pinul NMI de
pe microcontrollerul Temic 251G1. Dac NMI este pe pozii OFF, butonul INT este conectat
la pinul NMI de pe Temic 251G1. Dac NMI este pe poziia ON atunci pinul 34 este conectat
la GND.
INT1: Default ON
Jumperul de configurare INT1 selecteaz dac butonul INT este conectat la pinul 3.3
al microcontrollerului. Daca INT1 este pe poziia ON butonul INT este conectat la pinul 3.3.
Dac INT1 este pe poziia OFF butonul INT nu este conectat la pinul 3.3.
PAGE magistrala de adrese/date este configurat pentru modul memorie paginat. Cnd
aceti jumperi sunt pe poziia NONP magistrala este configurat pentru modul memorie
nepaginat.
Configuraia folosit pentru aceast aplicaie este prezentat n figura de mai jos:
1.2
Vision3 - IDE
Figura 3.
n csua Target trebuie fcute urmtoarele configurri: Xtal: 12 sau 24, CPU
Mode: Source(251 native), Memory Model: Tiny, Code Rom Size: Large 64K
program, 4 Byte Interrupt Frame Size, #1 ROM start 0xFF0000 size 0x8000, #2 RAM
start 0x0000 size 0x0400 (Figura 4.);
n csua C251 trebuie adugate cile unde se gsesc header-ele pe hard-disk (Figura
5.);
. Dup ce toate setrilea au fost fcute i aplicaia compilat, dac nu exist nici o eroare,
realizarea conexiunii intre programul Vision si placa MCB251 se face fie prin apsarea
butonului
Figura 4.
Figura 5.
Figura 6.
Figura 7.
Compilatorul C251 permite scrierea rutinelor de tratare a ntreruperilor in C. Declararea
rutinelor se face respectnd sintaxa:
Void function_name (void) interrupt interrupt_number [using register_bank]
n tabelul de mai jos sunt prezentate ntreruperile C:
Numrul ntreruperii
Adresa
Numrul ntreruperii
Adresa
0 (EXTERNAL INT 0)
0003h
16
0083h
1 (TIMER/COUNTER 0)
000Bh
17
008Bh
2 (EXTERNAL INT 1)
0013h
18
0093h
3 (TIMER/COUNTER 1)
001Bh
19
009Bh
4 (SERIAL PORT)
0023h
20
00A3h
5 (TIMER/COUNTER 2)
002Bh
21
00ABh
6 (PCA)
0033h
22
00B3h
003Bh
23
00BBh
0043h
24
00C3h
004Bh
25
00CBh
10
0053h
26
00D3h
11
005Bh
27
00DBh
12
0063h
28
00E3h
13
006Bh
29
00EBh
14
0073h
30
00F3h
15
007Bh
31
00FBh
2. Laboratorul 2
2.1
Tip
Descriere
Port
TXD
P3.1
I/O
P3.0
Descriere
Adres
SBUF
Serial Buffer. Doi regitrii separai formeaz registrul SBUF. Prin scrierea
99h
98h
SADDR
A8h
SADEN
Serial Address Enable. Specific masca folosit pentru a defini adresa dat
B8h
SCON
98H
FE/SM0
Numrul
bitului
SM1
SM2
REN
TB8
Mnemonica
FE
RB8
TI
RI
Funcie
Framing Bit Error:
Pentru a selecta aceast funcie trebuie setat bitul SMOD0 din registrul
PCON. Este setat de hardware pentru a indica un bit de stop invalid. Este
resetat de software.
SM0
SM1
SM0
SM1
Mod
Descriere
Frecven
Shift Register
FOSC/12
UART pe 8 bii
Variabil
UART pe 8 bii
UART pe 8 bii
Variabil
SM2
REN
TB8
n modurile 2 i 3 acest bit este scris software cu al 9-lea bit trimis. Acest
bit nu este folosit in modurile 0 i 1.
Receiver Bit 8:
n modul 0 nu este folosit.
n modul 1 (SM2 resetat) este setat sau resetat de hardware pentru a arta
RB8
TI
Este setat de emitor dup ce ultimul bit de date a fost trimis. Resetat de
software.
Receive Interrupt Flag Bit:
RI
Este setat de receptor dup ce ultimul bit de date a fost primit. Este resetat
de software.
SCON: Registrul de funcii speciale al portului serial
Moduri de funcionare
Portul serial de intrare/ieire poate funciona intr-un mod sincron i trei moduri asincrone.
Modul sincron 0
Modul 0 este un mod sincron half-duplex care este utilizat pentru a-i oferi unui dispozitiv
funcionalitatea unui shift register. Pinul (TXD) d la ieire o serie de 8 tacturi de ceas n timp ce pinul
(RXD) trimite sau primeste un byte de date. Cei 8 bii de date sunt trimii sau primii cu LSB primul.
Shiftarea se face n ultima faz (S6P2) a fiecrui ciclu extern, ce corespunde unei frecvene de FOSC/12.
Transmisia (Modul 0)
Pentru a iniia o transmise trebuie urmai paii de mai jos:
1. Se reseteaz biii SM0, SM1 i REN din registrul SCON.
2. Se scrie byte-ul ce trebuie trimis n registrul SBUF. Aceast scriere pornete transmisia.
Hardware-ul execut scrierea n SBUF n ultima faz (S6P2) a unui ciclu extern. La S6P2 al
ciclului urmtor hardware-ul pune LSB pe pinul RXD. La S3P1 al ciclului urmtor pinul TXD se duce
in 0 pentru tact de ceas. Aceast operaie se repet la fiecare ciclu extern. n al noua-lea ciclu dup
scrierea in SBUF, MSB va fi pe pinul RXD. La nceputul celui de-al zece-lea hardware-ul pune pinul
RXD n 1 pentru a indica terminarea transmisiei.
Recepia (Modul 0)
Pentru a incepe o recepie n modul 0 trebuie resetai biii SM0, SM1 i RI i setat bitul REN din
registrul SCON.
Hardware-ul scrie n registrul SCON n ultima faz (S6P2) a unui ciclu extern. n al doilea ciclu
extern dup ce a fost scris registrul SCON, TXD se duce n 0 la S3P1 pentru primul semnal de ceas i
LSB este pus pe pinul RXD la S5P2. Bitul LSB este apoi pus in shift register. Dup 8 astfel de
operaii, la S6P2 al fiecrui ciclu extern, LSB este pus n shift register iar hardware-ul scrie in RI
pentru a arta ca s-a terminat recepia. Apoi byte=ul primit poate fi citit din SBUF.
2.2
SERIAL
INPUT
C
Cele 4 caractere sunt preluate din bufferul
SBUF si stocate intr-un buffer local, iar
apoi sunt transmise pe interfata seriala
SERIAL
OUTPUT
PC
SERIAL
OUTPUT
SERIAL
INPUT
3. Laboratorul 3
3.1
COMANDA
POZITIE
COMANDA
EROARE
Blocurile folosite sunt cele din libraria Quanser a programului Simulink. Citirea
pozitiei curente a motorului se face cu ajutorul blocului Encoder Input. Pentru o rotaie
complet encoderul de pe motor furnizeaz valoarea 4096. Deoarece referina este dat n
grade este necesar conversia n grade a valorii date de ctre encoder pentru a se calcula
eroarea. Trimiterea comenzii ctre motor se facecu folosind blocul Analog Output. Dat fiind
faptul c blocul Analog Output lucreaz cu date de tip double va fi necesar introducerea
blocului Data Type Conversion ce realizeaz conversia datelor primite, pe interfaa serial, de
la single la double.
Regulatorul implementat este un regulator de tip PID ideal, cu funcia de transfer
1
H R ( s ) = K _ p + K _ i + K _ d s . Prin anularea factorilor de amplificare K_p, K_i sau
s
K_d, se pot obine diferite tipuri de regulatoare, de exemplu un regulator de tip PD se obine
atunci cnd K_i ia valoarea 0, iar un regulator de tip P se obine atunci cnd K_i i K_d sunt
y y k 1
0. Discretizarea funciei de transfer a regulatorului s-a fcut utiliznd formula: y& = k
.
h
4. Laboratorul 4
4.1
4.1.1
Timerul 0
TMOD
7
GATE1
Numrul
bitului
C/T1#
M11
M01
GATE0
Mnemonica
C/T0#
M10
M00
Funcie
Poarta timerului 1:
GATE1
C/T1#
5,4
M11, M01
M11
M01
Poarta timerului 0:
3
GATE0
C/T0#
M01
1,0
M10, M00
Adres : S:88H
TCON
TR1
TF0
TR0
Mnemonica
IE1
IT1
IE0
IT0
Funcie
Flagul de depire al timerului 1:
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
0 a fost implementat
multi *100
multi * DT
100 tickuri
Figura 8.
Pentru testarea acestei funcionaliti se va folosi un model Simulink si blocurile Serial
Initialization si Serial Output din libraria Quanser. Din Simulink se va trimite un numr pe un
byte reprezentnd factorul de umplere al unei perioade. Vizualizarea semnalului dat la ieirea
pinilor 3 i 4 ai portului 1 se face cu ajutorul unui osciloscop. n figurile de mai jos sunt
prezentate dou posibile forme de und.
perioada
Factor de
umplere de 50%
Factor de
umplere de 20%
Figura 9.
4.2
perioada
Figura 10.
Pentru comandarea motorului in ambele direcii s-a construit, din 4 tranzistori BD 337
i 4 rezistene de 1.5 k, o punte H n care vor intra 2 semnale de tip PWM luate de pe pinii
P1.3 i P1.4.
Deoarece cei 4 tranzistori nu pot conduce in acelai timp iar la pornirea plcii att
semnalul de pe pinul P1.3 ct i cel de pe P1.4 sunt n 1 logic nainte de intrarea in puntea H
s-a construit un circuit logic, format dintr-o poart SAU EXCLUSIV i dou pori I,
care scoate la ieire 0 logic atunci cnd ambele intrri sunt 1. Deoarece puntea H este
alimentat la 12 V, pentru a obine o cdere de tensiune pe colector-emitor la tranzistorii BD
337 de 0.2 V, s-a ales alimentarea circuitului logic la 12V.
4.3
5. Laboratorul 5
5.1
Citirea encoderului pe C
semnalul B facndu-se polling pe pinul P3.2. Dac valoarea citit de pe pinul P3.2 este 1
atunci se incrementeaz variabila ce d poziia motorului, altfel aceast variabil se
decrementeaz.
Figura 11.
5.2
REFERINTA
POZITIE