Documente Academic
Documente Profesional
Documente Cultură
Circuite - Pentru - Sisteme Incorporate PDF
Circuite - Pentru - Sisteme Incorporate PDF
Curs
Sisteme Incorporate
1. Notiuni Introductive
Sistemele incorporate sunt sisteme de calcul care sunt parti componente a unor
dizpozitive speciale. Functie de caracteristicile in ansamblu a echipamentului sistemele
incorporate au un inalt grad de optimizare funtie de particularitatile ansamblului in care
sunt integrate. In mod traditional sistemele incorporate sunt utilizate in cadrul sistemelor
de masura si control al proceselor. Ca efect al marii dezvoltari ale circuitelor integrate in
momentul de fata conducerea a numeroase aplicatii complexe isi gasesc solutiile (pot fi
rezolvate) prin utilizarea sistemelor incorporate. Pentru a fi capabile sa sustina rezolvarea
problemelor de conducere sistemele incorporate sunt echipate cu diferite tipuri de cicuite.
______________________________________________________________________________________
2
Sisteme Incorporate
1.2. Exemple de SI
______________________________________________________________________________________
3
Sisteme Incorporate
SI utilizate in telecomunicatii
______________________________________________________________________________________
4
Sisteme Incorporate
1.3. Caracteristicile SI
______________________________________________________________________________________
5
Sisteme Incorporate
Arhitectura tipica a unui SI este construita pornind de la cerintele de baza ale unui
SI. Astfel, un SI contine:
Microprocesoare/Microcontrolere reprezinta unitatea centrala a sistemului,
modelul ales pentru implementare depinzand de cerintele impuse sistemului. De
exemplu: in cazul unui SI care necesita putere de calcul foarte mare se utilizeaza
un microprocesor (standardul pentru SI care utilizeaza microprocesoare este PC-
104 si va fi prezentat ulterior); in cazul sistemelor care nu necesita conditii
speciale ca putere de calcul sau viteza mare de operare se vor utiliza
microcontrolere iar in cazul sistemelor care trebuie sa opereze cu viteza mare
(prelucrari de semnale in timp real) se vor utiliza DSP-uri. Functie de unitatea
centrala aleasa sunt necesare sau nu utilizarea de circuite perifece specializate,
memorii cache sau alte elemente specifice.
Software-ul reprezentat prin: programele aplicatei (cod aplicatie), drivere
corespunzatoare care pot fi implementate de proiectant (cod) sau se afla in BIOS-
ul sistemului, sistemul de operare in timp-real selectat (in cazul utilizarii lui PC-
104), interfete utilizator, protocoalele de comunicatie etc.
Blocul de memorie nevolatila implementat cu circuite de tip EPROM,
EEPROM, FLASH, hard-discuri etc, care contin software-ul aplicatie.
Blocul de memorie volatila implementat cu circuite de tip DRAM, SRAM etc.,
care vor fi utilizate pentru stocarea datelor.
______________________________________________________________________________________
6
Sisteme Incorporate
______________________________________________________________________________________
7
Sisteme Incorporate
1.5. Proiectarea SI
Cerinte
Schemele bloc Functionale Schemele bloc
generice ale generice ale
componentei componentei
hardware Formalizarea software
comportamentala
Selectie Selectie
Platforma Module
Stabilirea Hardware Defalcarea Software
platformei hardware/
hardware software
Sistemul de Operare
HW/SW
Simularea
Co-simulare Simularea de
Functionalitatii
nivel scazut a
sistemului
softwareului
hardware
Proiectare Dezvoltarea
fizica a softwareului
hardwareului aplicatie
Realizare Testare
Verificarea HW/SW pe prototip
Prototip Software
Fabicatie de
Serie
______________________________________________________________________________________
8
Sisteme Incorporate
2. Microcontrolere
2.1. Introducere
______________________________________________________________________________________
9
Sisteme Incorporate
Una din cele mai raspandite si cunoscute familii de microcontrolere este cea a
firmei INTEL MCS51 care contine o multime de tipuri de microcontrolere ce se
deosebesc intre ele prin:
a) tehnologia de realizare HMOS sau CHMOS;
b) volumul (fara, 4Koct, 8 Koct, 16 Koct) si tipul (ROM, EPROM, OTP ROM)
memoriei nevolatile;
c) volumul memoriei RAM;
d) viteza (frecventa de tact) 12, 16, 20, 24 MHz;
e) numar de pini pentru intrari/iesiri 24, 32, 40, 48, 56;
f) numarul circuitelor de temporizare contorizare 2,3;
g) numarul surselor de intreruperi 5,6,7,10,11,15.
______________________________________________________________________________________
10
Sisteme Incorporate
spatiul maxim adresabil de 64 Koct externi chip-ului si 128 octeti interni. Pe langa acesti
octeti interni mai exista in interiorul chip-ului un numar de registrii denumiti Registrii cu
Functii Speciale SFR (Special Function Registers). Acesti registrii sunt:
- acumulatorul pe 8 biti ACC;
- registrul B folosit in timpul operatiilor de inmultire si impartire;
- program counter PC;
- program status word PSW registrul PSW contine informatii de stare
(registru de fanioane), iar structura lui este prezentata in figura 2.2;
______________________________________________________________________________________
11
Sisteme Incorporate
Fiecarui registru descris ii este alocata o adresa in cadrul zonei din memoria
interna rezervata.
Microcontrolerul 8051, la nivel de capsula este prezentat in figura 2.3.
Semnificatiile pinilor sunt:
- /EA-VPP intrare; cand valoarea logica aplicata la acest pin este 0 logic se
realizeaza validarea memoriei program externe iar memoria program interna este
invalidata si in acest caz intreg spatiul de 64 Koct ai memoriei program este
extern chip-ului. Daca valoarea logica aplicata este 1 logic se valideaza
memoria program interna.
- /PSEN Program Strobe Enable iesire 0 activa; reprezinta strobul de
citire din memoria program externa. /PSEN este activ in fiecare ciclu masina de
extragere a codului operatiei din memoria de date externa. /PSEN nu este activat
la accesarea memoriei de date externa el ramanand pe 1 logic.
- ALE-/P Address Latch Enable iesire 1 activa; semnal folosit pentru
memorarea octetului mai putin semnificativ al adresei intr-un latch extern, pentru
memorarea adresei locatiei de memorie externa vizata;
- RST intrare 1 activa; un 1 logic aplicat la acest pin are ca efect
initializarea circuitului;
- Port 0 este un port de I/O pe 8 biti bidirectionali cu iesirile de tip open
drain. In timpul accesarii memoriei externe liniile portului au functii de
magistrala de adrese/date multiplexata in timp. In timpul cat pe linii se gaseste
adresa aceasta constituie partea mai ptuin semnificativa a adresei;
- Port 1 este un port de I/O pe 8 biti bidirectionali cu iesiri de tip pullups.
Liniile portului pot fi folosite ca intrari/iesiri generale;
- Port 2 este un port de I/O pe 8 biti bidirectionali cu iesiri de tip pullups. In
timpul accesarii memoriei externe liniile portului au functii de magistrala de
adrese continand octetul mai semnificativ al adresei;
- Port 3 este un port de I/O pe 8 biti bidirectionali cu iesiri de tip pullups.
Liniile portului servesc ca semnale de control pentru sistemul realizat cu
microcontrolerul 8051.
______________________________________________________________________________________
13
Sisteme Incorporate
______________________________________________________________________________________
14
Sisteme Incorporate
Semnalul de strobare pentru citire din MP externa este /PSEN (Program Strobe
Enable). Semnalul /PSEN nu se activeaza la apelarile la MP interna si la apelarile la MD.
In cazul MD si ea este impartita in doua: interna si externa. Memoria de date externa
poate fi de maxim 64 Koct. Accesarea memoriei de date externa se face numai prin
intermediul instructiunilor de tip MOVX prin activarea semnalelor /RD si /WR,
vehiculate prin pinii portului P3 si anume P3.7 respectiv P3.6; ca semnale de strobare (de
comanda a citirii respectiv a scrierii). In cazul accesarii MD interne aceste semnale nu se
activeaza.
In figura 2.5 se prezinta structura de principiu a MD.
______________________________________________________________________________________
15
Sisteme Incorporate
2) zona de adrese 80h FFh contine tot 128 de locatii care este rezervata pentru
registrele cu functii speciale SFR (Special Function Register) si poate fi
accesata numai direct. In figura 2.7 se prezinta structura de baza a acestei zone de
MD interna.
Cuvantul de adresa pentru MD interna este de 8 biti si rezulta astfel o capacitate
maxima de adresare de 256 de locatii.
In cazul MD zonele interna si externa nu se exclud astfel incat zona MD externa
este de capacitate maxima de 64 Koct de la adresa 0000h pana la FFFFh.
______________________________________________________________________________________
16
Sisteme Incorporate
Adresarea directa
Adresarea registrelor
Adresarea imediata
Adresarea indexata
Numai MP poate fi adresata indexat, si aceasta poate fi doar citita. Acest mod de
adresare este folosit pentru citirea tabelelor de cautare in MP. Un registru de baza pe 16
biti (DPTR sau PC) indica baza tabelei, iar in acumulator se pune numarul intrarii din
tabela. Adresa intrarii in tabela din MP se formeaza adunand continutul registrului
acumulator la registrul de baza specificat.
In tabelul 2.1 se prezinta sumar posibilitatile de utilizare a modurilor de adresare
si accesarea spatiilor de memorie.
______________________________________________________________________________________
18
Sisteme Incorporate
Transferuri de uz general
- MOV permite transferul unui bit sau a unui octet de la un operand sursa la un operand
destinatie;
- PUSH incrementeaza continutul registrului SP si transfera octetul operandului sursa
in stiva la adresa continuta in SP;
- POP transfera un octet din stiva de la locatia adresata de SP la operandul destinatie si
decrementeaza continutul lui SP.
Transferuri de adresa
Instructiuni aritmetice
______________________________________________________________________________________
19
Sisteme Incorporate
binari fara semn, cat si cu semn. Sunt posibile de asemenea si operatii aritmetice cu
numere reprezentate in cod BCD impachetat.
Adunare
Scadere
- SUBB scadere cu imprumut scade al doilea operand sursa din primul operand, aflat
in acumulator, scade 1 daca CY=1 si depune rezultatul in acumulator;
- DEC decrementare scade o unitate din operandul sursa si depune rezultatul in locul
operandului.
Inmultire
Impartire
- DIV executa impartirea unui intreg fara semn pe 8 biti, aflat in acumulator, la un
intreg fara semn pe 8 biti aflat in registrul B. Dupa impartire in acumulator se va gasii
catul iar in registrul B restul.
Instructiuni logice
8051 poate executa operatii logice atat la nivel de octet cat si la nivel de bit. De
asemenea operatiile logice pot fi impartite in doua mari grupe: operatii logice cu un
singur operand respectiv operatii logice cu doi operanzi.
- CLR pune continutul acumulatorului sau orice bit direct adresabil la zero;
- SETB seteaza orice bit direct adresabil pe 1 logic;
______________________________________________________________________________________
20
Sisteme Incorporate
- ANL executa un SI logic la nivel de bit intre doi operanzi (atat pentru operanzi de tip
octet cat si pentru operanzi de tip bit) si depune rezultatul in locul primului operand;
- ORL executa un SAU logic la nivel de bit intre doi operanzi (atat pentru operanzi de
tip octet cat si pentru operanzi de tip bit) si depune rezultatul in locul primului operand;
- XRL - executa un SAU-EXCLUSIV la nivel de bit intre doi operanzi (atat pentru
operanzi de tip octet cat si pentru operanzi de tip bit) si depune rezultatul in locul
primului operand.
Transferul controlului
Salturi conditionate
______________________________________________________________________________________
21
Sisteme Incorporate
Salturi neconditionate
Astfel, un ciclu masina este constituit din 12 perioade de tact. In cazul in care
frecventa semnalului de tact este 12 MHz perioada unui ciclu masina este de o
microsecunda. Numarul de ciclii masina necesari pentru executia instructiunilor depind
de tipul instructiunilor care se executa. Astfel, instructiunile se pot impartii, tinand cont
de numarul de ciclii masina in:
1) instructiuni care se executa intr-un singur ciclu masina (majoritatea
instructiunilor) Exemple: instructiuni de tip: ADD A,Rn; INC A; DEC A; ANL
A,Rn; MOV A,#data
2) instructiuni care se executa in doi ciclii masina;
Exemple: INC DPTR; ANL direct,#data, MOV Rn,direct; MOV DPTR,#data16;
ACALL adr11; LJMP adr16; MOVX A,@DPTR; MOVX @DPTR,A
3) instructii care dureaza mai mult de doi ciclii masina;
Exemple: MUL AB; DIV AB.
In mod normal intr-un ciclu masina sunt generate doua operatii de extragere de
cod de operatie (fetch), chiar daca instructiunea aflata in curs de executie nu necesita mai
mult de un octet pentru codul operatiei, unitatea centrala de prelucrare va ignora pur si
simplu cel de al doilea ciclu (extrafetch) si continutul registrului PC nu va fi incrementat.
Executia instructiunilor care necesita un singur ciclu masina este prezentata in figura
2.12. Dupa cum se observa ciclul de fetch incepe in starea S1 a ciclului masina, cand
codul operatiei este incarcat in Registrul Instructie. Primul ciclu de fetch se incheie in
starea S4. Al doilea ciclu de fetch extrafech incepe in starea S4 a aceluiasi ciclu
masina. Executia instructiunii este incheiata in starea S1 a ciclului masina urmator.
______________________________________________________________________________________
23
Sisteme Incorporate
Instructiunile care se executa in doi ciclii maisna se impart in: instructiuni diferite
de MOVX si instructiuni de tip MOVX.
______________________________________________________________________________________
24
Sisteme Incorporate
______________________________________________________________________________________
25
Sisteme Incorporate
Figura 2.16. Ciclii de magistrala pentru instructiuni de tip MOVX de citire din MD
externa
______________________________________________________________________________________
26
Sisteme Incorporate
Dupa cum se observa secventa de citire a codului operatiei (fetch) din primul
ciclu masina este identic cu cel prezentat pentru instructiunile diferite de MOVX. Din
starea S4 se demareaza insa ciclul de magistrala pentru accesarea MD externa indiferent
de faptul ca se executa citire sau scriere. Astfel, la inceputul starii S4P2 se activeaza
semnalul ALE care in acest caz va stroba informatia de pe liniile portului P0 care vor
contine partea mai putin semnificativa a adresei locatiei de memorie din MD externa care
se doreste a fi selectata. Pe liniile portului P0 se va plasa continutul registrului DPL sau a
unuia din registrele R0 sau R1 (aceasta din ultima situatie se refera la instructiunile
MOVX A,@R0; MOVX A,@R1 pentru citire respectiv MOVX @R0,A si MOVX
@R1,A pentru scriere). Pe liniile portului P2 se va plasa continutul registrului DPH in
cazul instructiunilor MOVX A,@DPTR pentru citire respectiv MOVX @DPTR,A pentru
scriere. In cazul accesarii MD externe prin intermediul registrilor R0 sau R1, pe durata
accesarii portul P2 poate fi folosit ca iesire de uz general. Semnalele /RD respectiv /WR
se activeaza la sfarsitul starii S6P2 a primului ciclu masina si sunt active pana la sfarsitul
starii S3P2 a celui de al doilea ciclu masina. Pe liniile portului P0, de la sfarsitul starii
S5P2 a primului ciclu masina pana la sfarsitul starii S4P1 a celui de al doilea ciclu masina
se vor vehicula date scrise/citite la/de la memorie. In cazul citirii datele vor fi active de la
sfarsitul starii S2P1 a celui de al doilea ciclu masina pana la sfarsitul starii S3P2 a
aceluiasi ciclu masina. Pe durata accesarii MD externe semnalul /PSEN este inactiv.
Ciclul de accesare a MD externe se incheie la sfarsitul starii S4P1 din al doilea ciclu
masina cand este demarat un ciclu normal de extrafetch.
______________________________________________________________________________________
27
Sisteme Incorporate
Intreruperile externe /INT0 si /INT1 pot fi active pe frontul cazator sau pe nivel.
Selectarea variantei dorite se face cu ajutorul bitilor IT0 si respectiv IT1 ai registrului
TCON. Acest registru este adresabil si la nivel de bit.
Structura registrului TCON este:
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IE1 - Fanionul intreruperii externe INT1 active pe frontul cazator. Se seteaza hard
cand este detectat frontul sau nivelul corespunzator intreruperii externe. Se
reseteaza hard cand intreruperea este servita.
TR0 - Bit de control pentru pornirea timerului T0. Setat/resetat soft pentru
pornirea/oprirea timerului T0
TF0 - Fanion de depasire pentru timerul T0. Setat hard cand capacitatea timerului
este depasita. Resetat hard la citirea vectorului de intrerupere pentru servirea
intreruperii
TR1 - Bit de control pentru pornirea timerului T1. Setat/resetat soft pentru
pornirea/oprirea timerului T1
TF1 - Fanion de depasire pentru timerul T1. Setat hard cand capacitatea timerului
este depasita. Resetat hard la citirea vectorului de intrerupere pentru servirea
intreruperii
Fanioanele IE0 si IE1 sunt setate hard cand pe canalul corespunzator a sosit o
cerere de intrerupere. Daca intreruperea este activa pe front, dupa apelul subrutinei de
tratare a intreruperii fanionul se reseteaza. Daca intreruperea este activa pe nivel, atunci
sursa de intrerupere este testata asupra mentinerii conditiei care a generat setarea
fanionului.
Intreruperile generate de activitatea timerelor sunt prezentate prin starea
fanioanelor TF0 si TF1 din registrul TCON.
Intreruperea aferenta sistemului de comunicatie seriala este generata printr-un
SAU asupra a doua fanioane RI (care se seteaza in urma aparitiei unui eveniment la
receptie) si TI (care se seteaza in urma aparitiei unui eveniment la emisie), fanioane care
fac parte din registrul SCON. Ambele fanioane sunt setate hard dar resetarea lor se face
numai soft.
Toti bitii care genereaza intreruperi (IE0,IE1,TF0,TF1,RI,TI) se pot seta/reseta
prin soft cu acelasi efect ca in situatiile prezentate mai sus.
Fiecare cerere de intrerupere poate fi validata sau invalidata individual precum si
global prin bitii registrului validare intreruperi IE (registru adresabil pe bit). Structura
acestui registru este:
D7 D6 D5 D4 D3 D2 D1 D0
EA * * ES ET1 EX1 ET0 EX0
EX0 - - daca este egal cu 0 cererea de intreruperea externa /INT0 este invalidata
- daca este egal cu 1 cererea de intrerupere externa /INT0 este validata
ET0 - - daca este egal cu 0 cererea de intrerupere provenita de la timerul T0 este
invalidata
- daca este egal cu 1 cererea de intrerupere provenita de la timerul T0 este
validata
EX1 - - daca este egal cu 0 cererea de intreruperea externa /INT1 este invalidata
- daca este egal cu 1 cererea de intrerupere externa /INT1 este validata
ET1 - - daca este egal cu 0 cererea de intrerupere provenita de la timerul T1 este
invalidata
______________________________________________________________________________________
29
Sisteme Incorporate
D7 D6 D5 D4 D3 D2 D1 D0
Rezervat Rezervat Rezervat PS PT1 PX1 PT0 PX0
PX0 - - daca este egal cu 0 cererea de intreruperea externa /INT0 are nivel de
prioritate redusa
- daca este egal cu 1 cererea de intrerupere externa /INT0 are nivel de
prioritate ridicata
PT0 - - daca este egal cu 0 cererea de intrerupere provenita de la timerul T0 are
nivel de prioritate redusa
- daca este egal cu 1 cererea de intrerupere provenita de la timerul T0 are
nivel de prioritate ridicata
PX1 - - daca este egal cu 0 cererea de intreruperea externa /INT1 are nivel de
prioritate redusa
- daca este egal cu 1 cererea de intrerupere externa /INT1 are nivel de
prioritate ridicata
PT1 - - daca este egal cu 0 cererea de intrerupere provenita de la timerul T1 are
nivel de prioritate redusa
- daca este egal cu 1 cererea de intrerupere provenita de la timerul T1 are
nivel de prioritate ridicata
PS - - daca este egal cu 0 cererea de intrerupere provenita de la sistemul de
comunicatie seriala are nivel de prioritate redusa
- daca este egal cu 1 cererea de intrerupere provenita de la sistemul de
comunicatie seriala are nivel de prioritate ridicata
______________________________________________________________________________________
31
Sisteme Incorporate
tratare a intreruperii este lansata in executie la al treilea ciclu masina dupa acceptarea
intreruperii.
In figura 2.19 este prezentat raspunsul in timp la o cerere de intrerupere externa.
______________________________________________________________________________________
32
Sisteme Incorporate
Rezulta deci ca frecventa maxima a semnalului aplicat la intrare (pinul T0 sau T1)
are valoarea: fmax=fclk/24 .
Programarea timerelor T0 si T1 se face cu ajutorul unui cuvant de comanda a
modului de lucru - registrul TMOD (nu este adresabil pe bit).
Structura registrului TMOD este:
D7 D6 D5 D4 D3 D2 D1 D0
GATE C/-T M1 M0 GATE C/-T M1 M0
GATE - Bit de control. Cand bitul TRx din registrul TCON este 1 logic si
GATE=1, numararea nu va incepe decat daca la pinul /INTx avem un
semnal 1 logic (modul de control hard); cand GATE=0 numararea
nu va incepe decat atunci cand bitul TRx este setat pe 1 (modul de
control soft)
C/-T - Selectie counter sau timer. Daca valoarea bitului este 0 s-a selectat
modul de lucru timer (temporizator) iar daca este 1 s-a selectat modul
de lucru counter (contor)
M1 M0 - Selectie mod de lucru
0 0 - Mod 0 - Timer/Counter pe 13 biti
0 1 - Mod 1 - Timer/Counter pe 16 biti
1 0 - Mod 2 - Timer/Counter pe 8 biti cu autoancarcare
1 1 - Mod 3 - Numai pentru T0
In acest mod de lucru registrul corespunzator timerului utilizat (T0 sau T1) este
configurat ca un registru pe 13 biti astfel: THx complet (8 biti) si cei mai putini
semnificativi 5 biti din TLx.
In figura 2.21 se prezinta schema de principiu a modului 0 de functionare.
______________________________________________________________________________________
33
Sisteme Incorporate
In acest mod de lucru registrul corespunzator timerului utilizat (T0 sau T1) este
configurat ca un registru pe 16 biti astfel: THx complet (8 biti) si TLx complet (8
biti).
Cand continutul celor doua registre ajunge la 11111111.11111111 la urmatorul
impuls noua valoare din registre va fi 00000000.00000000 si in acelasi timp fanionul
TFx din registrul TCON este setat. Daca intreruperea corespunzatoare este validata,
efectul setarii lui TFx se manifesta printr-o cerere de intrerupere.
______________________________________________________________________________________
34
Sisteme Incorporate
Pentru comanda lui TL0 se folosesc bitii de control ai timerului T0: C-/T, GATE,
TR0, /INT0 si TF0. TL0 poate fi folosit fie ca si counter fie ca si timer.
In cazul registrului TH0 acesta poate fi folosit numai in mod timer (temporizator) si
foloseste bitii TR1 si TF1 de la timerul T1.
In modul de lucru 3, timerul T1 poate fi blocat pur si simplu (ca si cand TR1=0)
sau poate fi folosit in modurile 0,1,2 dar cu observatia ca nu va genera cerere de
intrerupere (nu va opera asupra lui TF1).
Realizeaza o comunicatie duplex adica poate realiza simultan atat emisie cat si
receptie. Sistemul de comunicatie seriala este realizat in jurul a doua registre cu functii
speciale: (o parte pentru emisie si alta pentru receptie) desemnate prin aceeasi adresa 99h
(unul poate fi numai citit iar celalalt numai scris) si acelasi mnemonic SBUF. Pentru
comanda si controlul sistemului de comunicatie seriala exista un registru de comanda
SCON.
Structura registrului SCON (adresabil pe bit) este:
D7 D6 D5 D4 D3 D2 D1 D0
SM0 SM1 SM2 REN TB8 RB8 TI RI
______________________________________________________________________________________
35
Sisteme Incorporate
______________________________________________________________________________________
36
Sisteme Incorporate
comanda a emisiei. Desi octetul care trebuie transmis serie este prezent in SBUF emisia
propriuzisa incepe la activarea semnalului SEND si se incheie odata cu dezactivarea
acestui semnal.
pinul P3.0 (RxD) cu atributie alternativa. Semnalul SEND valideaza legatura de la iesirea
registrului de deplasare la pinul P3.0 (RxD) si cea a generatorului SHIFT-CLOCK (tact
de deplasare) la pinul P3.1 (TxD).
Pe timpul cat SEND este activ, in fiecare stare S6P2 se genereaza un impuls
SHIFT pentru comanda deplasarii cu o pozitie a continutului registrului SBUF.
Deplasarea are loc dinspre rangurile mai semnificative spre cele mai putin
semnificative (D7 -> D6 -> ...->D0).
Pe masura ce pe la un capat sunt emisi bitii data pe la celalalt capat al registrului
se introduce zero. Cand cel mai semnificativ bit al octetului data este in pozitia de
iesirelanga el se afla "1" incarcat initial in bistabilul celei de a 9-a pozitii iar toate
celelalte pozitii contin zero. Aceasta situatie este sesizata de detectorul de zero. Din acest
moment logica de control emisie va genera, cu o intarziere de un ciclu masina, un ultim
impuls SHIFT , va dezactiva SEND si va seta fanionul TI. Aceste ultime doua actiuni au
loc la inceputul celui de al 10-lea ciclu masina dupa comanda scrie in SBUF.
Receptia: Receptia este initiata de conditia REN=1 si RI=0. In starea S6P2 al
urmatorului ciclu masina, logica de control receptie serie va inscrie bitii 1111.1110 in
registrul de intrare cu deplasare de receptie iar in urmatoarea faza activeaza RECEIVE.
Prin acesta se valideaza legatura logica de generare a lui SHIFT-CLOCK la pinul P3.1
(TxD) pentru functia alternativa de iesire. In fiecare stare S6P2 pe durata cat RECEIVE
este activ se genereaza tactul SHIFT care provoaca deplasarea la stanga cu o pozitie a
registrului de intrare. Valoarea care se incarca la dreapta este cea care a fost esantionata
in starea S5P2. Pe masura ce pe la dreapta se introduc bitii datei pe la stanga ies bitii 1
incarcati initial. Cand 0-ul de la initializare ajunge la pozitia limita stanga este sesizat
de logica de control receptie serie care va mai genera un ultim impuls SHIFT si va
incarca continutul registrului cu deplasare in SBUF, va anula RECEIVE si va seta bitul
RI.
______________________________________________________________________________________
38
Sisteme Incorporate
______________________________________________________________________________________
39
Sisteme Incorporate
SMOD
f 2
f TxCLOCK
= OSC
SMOD este un bit (D7) al registrului de control al puterii PCON. Uneori 2SMOD este notat
printr-un coeficient K ale carui valori sunt: K=1 cand SMOD=0 si K=2 cand SMOD=1.
Daca se cunoaste rata de transfer dorita (baud_rate ) si fOSC se poate determina valoarea
(TH1) de preancarcare:
SMOD
2 f OSC
(TH 1) = 256
384 baud _ rate
Uneori cand se doreste o rata de transfer foarte mica se poate folosii timerul T1 in
modul 1 (divizor pe 16 biti) iar reancarcarea sa se faca prin subrutina de tratare a
intreruperii declansate (deci prin soft). In acest caz factorul de divizare variabil va fi
1/[65536-(T1)] unde continutul lui T1 (T1) poate fi intre 0 si 65535. Daca in modul 0
bitii octetului data erau emisi sau receptionati fara vreun bit auxiliar cu rol in transmisie,
in modul 1 octetului de transmis ii este atasat un bit de start si unul de stop.
______________________________________________________________________________________
41
Sisteme Incorporate
Daca oricare din cele doua conditii nu sunt indeplinite receptia cadrului este
iremediabil pierduta iar in acest moment, indiferent daca sunt sau nu indeplinite conditiile
unitatea trece la supraveghere pentru o noua tranzitie din 1 in 0 la pinul RxD.
In cazul emisiei, bitului TB8 i se poate asocia o valoare 0 sau 1 prin soft. La
receptie al 9-lea bit se incarca in bitul RB8 al registrului SCON.
In modul 2 frecventa de tact fTxCLOCK si fRxCLOCK are valori fixe fOSC/32
sau fOSC/64 functie de valoarea bitului SMOD din registrul PCON.
In modul 3 frecventa de tact fTxCLOCK si fRxCLOCK se obtine cu ajutorul
timerului T1 programat in modul 2 de functionare. Generarea semnalelor de tact se face
in mod similar ca la modul 1 al sistemului de comunicatie seriala.
Procesul de emisie-receptie pentru modurile 2 si 3 este similar cu cel prezentat
pentru modul 1 cu observatia ca intre bitii de START si STOP se insereaza un al 9-lea bit
notat TB8 la emisie si RB8 la receptie.
Logica hard prin intermediul careia se executa modul 2 de functionare este
prezentata in figura 2.29.
Cronogramele aferente modului 2 sunt prezentate in figura 2.30.
Logica hard prin intermediul careia se executa modul 3 de functionare este
prezentata in figura 2.31.
Cronogramele aferente modului 3 sunt prezentate in figura 2.32.
Emisia: Este initiata de orice instructiune care scrie date in SBUF. Semnalul de
comanda scrie in SBUF incarca octetul data transmis de unitatea centrala de prelucrare
iar in bitul D, care reprezinta a 9-a pozitie, valoarea bitului TB8 din registrul SCON
incarcata anterior, si se da comanda de start pentru logica de control emisie serie.
Emisia propriuzisa incepe sincronizat pe semnalul de tact TxCLOCK (deci dupa
primul impuls TxCLOCK care urmeaza lui scrie in SBUF) prin activarea semnalului
SEND care determina trecerea terminalului TxD in starea 0 corespunzator bitului de
START. Dupa o perioada TxCLOCK se activeaza si semnalul DATA care valideaza
legatura intre rangul D0 al registrului SBUF si pinul TxD si este emis spre exterior bitul
cel mai putin semnificativ D0.
Dupa o alta perioada TxCLOCK se da primul impuls SHIFT de deplasare la
dreapta al continutului registrului SBUF astfel in pozitia de iesire ajunge bitul D1 iar in
______________________________________________________________________________________
42
Sisteme Incorporate
pozitia mai semnificativa al lui SBUF va fi bitul TB8 iar in bistabilul celei de a 9-a pozitii
se va incarca 1 corespunzator valorii bitului de STOP.
______________________________________________________________________________________
44
Sisteme Incorporate
______________________________________________________________________________________
45
Sisteme Incorporate
______________________________________________________________________________________
46
Sisteme Incorporate
Comunicatii multimicrocontroler
D7 D6 D5 D4 D3 D2 D1 D0
SMOD * * * GF1 GF0 PD IDL
______________________________________________________________________________________
47
Sisteme Incorporate
______________________________________________________________________________________
48
Sisteme Incorporate
3. CIRCUITE PERIFERICE
Circuitul 8255 este un circuit port general de intrare/iesire paralel. Schema bloc
interna a circuitului este prezentata in figura 3.1.
Descriere generala
Circuitul 8255 contine 4 porturi, doua de 8 biti si doua de 4 biti. Fiecare port
poate fi programat prin intermediul unui registru de control, sa fie port de intrare sau port
de II iesire. Fiecare port de 4 biti este folosit si pentru manevrarea unor semnale de
comanda si stare in conjunctie cu porturile A si B. Comunicarea cu magistrala de date a
unitatii centrale de prelucrare (microprocesor/microcontroler) se face prin intermediul
bufferului magistralei de date pe liniile D0 D7. Prin acestea se transmit atat date cat si
cuvinte de control sau stare.
A0,A1 - intrari de selectie pentru resursele interne ale circuitului (porturi; registre de
control) 8255.
RESET - Semnal de intrare 1 activ. In cazul in care este activ are ca efect stergerea
informatiei din toate registrele interne inclusiv registrul cuvintelor de
comanda si pune porturile A; B si C in modul de intrare.
______________________________________________________________________________________
50
Sisteme Incorporate
D7 obligatoriu pe 1
D7 D6 D5 D4 D3 D2 D1 D0
0 * * * DPBC2 DPBC1 DPBC0 SP
In acest mod data este scrisa sau citita simplu la/de la portul specificat. Oricare
port poate fi intrare sau iesire. In acest mod sunt posibile 16 configuratii de intrari/iesiri.
PA PB PC-H PC-L D7 D6 D5 D4 D3 D2 D1 D0
I I I I 1 0 0 1 1 0 1 1
I I I E 1 0 0 1 1 0 1 0
I I E I 1 0 0 1 0 0 1 1
I I E E 1 0 0 1 0 0 1 0
I E I I 1 0 0 1 1 0 0 1
..........
E E E E 1 0 0 0 0 0 0 0
Atunci cand PC-L si PC-H sunt definite (programate) diferit (unul intrare si
celalalt iesire) operatia de citire din port va transfera valorile intrarilor de la partea
definita ca port de intrare si imaginea iesirilor de la partea definita ca iesire.
Deci pe durata unui ciclu de citire sunt accesibile toate liniile indiferent daca au
fost programate ca intrari sau iesiri.
______________________________________________________________________________________
51
Sisteme Incorporate
Pentru partea programata ca iesire, toate liniile sunt accesibile individual, folosind
al doilea cuvant de comanda.
Cronogramele semnalelor aferente acestui mod este prezentata in figura 3.2.
______________________________________________________________________________________
52
Sisteme Incorporate
Portul A Portul B
/STB_A PC-4 /STB_B PC-2
IBF_A PC-5 IBF_B PC-1
INTR_A PC-3 INTR_B PC-0
D7 D6 D5 D4 D3 D2 D1 D0
1 0 1 1 1/0 1 1 1/0
______________________________________________________________________________________
53
Sisteme Incorporate
Portul A Portul B
/OBF_A PC-7 /OBF_B PC-1
/ACK_A PC-6 /ACK_B PC-2
INTR_A PC-3 INTR_B PC-0
D7 D6 D5 D4 D3 D2 D1 D0
1 0 1 0 1/0 1 0 1/0
______________________________________________________________________________________
54
Sisteme Incorporate
In acest mod de lucru portul B poate fi programat fie in mod 0 fie in mod 1.
Cuvantul de comanda va avea structura:
D7 D6 D5 D4 D3 D2 D1 D0
1 1 1 * 1/0 1/0 1/0 1/0
______________________________________________________________________________________
55
Sisteme Incorporate
Dupa cum se observa din figura 1 in structura interna a circuitului i8253 intra:
- un buffer al magistralei de date;
- o logica de comanda citire/scriere;
- un registru a cuvintelor de comanda;
- 3 canale de lucru.
______________________________________________________________________________________
56
Sisteme Incorporate
Cele 3 canale sunt complet independente unul fata de altul. Fiecare are modul sau
de functionare si de numarare, fiecare trebuind sa fie programat individual. Capacitatea
canalelor este de 16 biti iar continutul lor poate fi un numar binar sau un numar codificat
BCD. Valoarea maxima cu care pot fi ele preancarcate este 65535 in binar sau 9999 in
BCD.
Canalele sunt incarcate initial prin program de catre UCP, continutul lor fiind, in
principiu decrementat de impulsurile primite la intrarea CLK conditionat de modul de
functionare si de starea liniei de intrare GATE. Pe linia de iesire OUT se va obtine un
semnal a carui forma depinde de modul de programare ales pentru canalul in cauza.
Fiecare canal poate functiona in unul din urmatoarele moduri:
Mod 0 numarator de evenimente;
Mod 1 monostabil redeclansabil;
Mod 2 generator de impulsuri;
Mod 3 generator de semnale dreptunghiulare;
Mod 4 monostabil declansabil prin program (soft);
Mod 5 monostabil declansabil prin semnal (hard).
______________________________________________________________________________________
57
Sisteme Incorporate
D7 D6 D5 D4 D3 D2 D1 D0
SC1 SC0 RL1 RL0 M2 M1 M0 BCD
______________________________________________________________________________________
58
Sisteme Incorporate
1) normal citirea se face pe D0-D7 prin selectia canalului dorit folosind liniile
A1A0. Singura cerinta a acestei metode este de a asigura un numar stabil la citire.
In acest scop operatia in curs (de numarare) trebuie inhibata la numaratorul
selectat pentru citire fie prin intrarea GATE fie prin logica externa care sa inhibe
impulsurile CLK cand se face citirea;
2) prin memorare in acest mod citirea se face prin trimiterea mai intai a unui
cuvant de comanda de memorare (cuvant cu RL1 si RL0 PE 0) care determina
inscrierea informatiei din numarator intr-un registru intern cu aceeasi adresare ca
si numaratorul.
In cazul transmiterii unei comenzi de memorare, bitii D3-D0 isi pierd semnificatia.
D7 D6 D5 D4 D3 D2 D1 D0
1 1 /COUNT /STATUS CNT2 CNT1 CNT0 0
______________________________________________________________________________________
59
Sisteme Incorporate
D7 D6 D5 D4 D3 D2 D1 D0
OUTPUT NULL RL1 RL0 M2 M1 M0 BCD
COUNT
NULL COUNT = Indica prin valoarea sa daca continutul numaratorului este 0 sau nu
0 continutul numaratorului nu este zero
1 continutul numaratorului este zero
Dupa inscrierea modului de lucru iesirea OUT este trecuta in 1 logic. OUT
devine 0 logic la numarrea urmatorului impuls dupa frontul crescator al intrarii GATE.
OUT redevine 1 la terminarea numararii. Daca o noua valoare de numarat este
incarcata in timp ce OUT = 0 aceasta nu va afecta durata impulsului pana la urmatoarea
comanda GATE de declansare (urmatoarea tranzitie din 0 in 1). Numarul curent
poate fi citit la orice moment fara a afecta impulsul monostabilului. Monostabilul este
redeclansabil, deci OUT va ramane pe 0 pentru intregul numar, dupa orice ultim front
crescator al intrarii GATE.
Iesirea OUT este 1 logic pe durata a N-1 impulsuri aplicate la intrarea CLK si
0 logic pe durata celui de al N-lea impuls unde N este numarul cu care s-a incarcat
numaratorul. Acest lucru are loc daca GATE este pe 1 logic. Cand GATE devine 0
logic se forteaza OUT pe 1 logic si decrementarea inceteaza iar tranzitia din 0 in 1
a lui GATE reinitializeaza numararea de la valoarea inscrisa prin program ceea ce
echivaleaza cu resincronizarea hard a numaratorului. Cand este inscris acest mod OUT va
ramane pe 1 logic pana cand numaratorul este incarcat. Astfel se poate asigura
sincronizarea prin soft.
Daca numaratorul este reincarcat intre impulsurile de iesire perioada prezentata nu va fi
afectata, dar perioada urmatoare va reflecta noua valoare.
______________________________________________________________________________________
61
Sisteme Incorporate
______________________________________________________________________________________
62
Sisteme Incorporate
______________________________________________________________________________________
63
Sisteme Incorporate
Semnale
4 - 20 mA cc
Impulsuri cu frecventa
Discontinue In amplitudine
modulata
In durata
Impulsuri cu amplitudine
Quasinumerice si durata constante dar In frecventa unui tren de impulsuri
cu informatia continuta
In numarul de impulsuri
dintr-o secventa
In forma BCD
Semnale de comanda
4 - 20 mA cc
Cu doua stari
Numerice
(pornit - oprit)
Propriu-zise
(marimi de referinta)
______________________________________________________________________________________
64
Sisteme Incorporate
In oricare din aceste sisteme, una din problemele de baza este aceea ca semnalul
sa ajunga curat (neafectat de perturbatii) si fara erori la utilizator, si pe cat posibil sa se
asigure o decuplare intre circuitele de forta (curenti tari) si cele de prelucrare a
informatiei (de curenti slabi, de comanda). Solutiile tehnice pentru rezolvarea acestor
probleme sunt specifice caracteristicilor semnalelor.
Subansamble
Tampon
specializate
Logica
CPU administrarii Proces
schimburilor
Subansamble
Tampon
specializate
______________________________________________________________________________________
65
Sisteme Incorporate
pot fi selectate de adresele de control, incarcate (scrierea de date de catre CPU) sau citite
(citire de date executata de CPU).
Functie de tipul CPU utilizat adresarea porturilor de intrare/iesire se poate realiza in
doua moduri distincte:
- memory mapped in cazul in care CPU nu detine spatiu distinct de adrese
pentru operatiile de intrare/iesire fata de zona alocata memoriei. De ex.
Microcontrolerele din familiile MCS51 si Motorola HC11 (vezi figura 4.3)
- memory mapped I/O mapped in cazul in care CPU detine spatiu separat de
adrese pentru memorii si porturile de intrare/iesire. De ex. Microprocesoarele din
familiile INTEL 8086 si Motorola 68000 (vezi figura 4.4).
Magistrala de Adrese
Port
Memorie Intrare/
Iesire
CPU
Magistrala de Date
/MEM_RD
/MEM_WR
Magistrala de Adrese
Port
Memorie Intrare/
Iesire
CPU
Magistrala de Date
/MEM_RD
/MEM_WR
/IO_RD
/IO_WR
Figura 4.4. Structura de principiu al unui sistem memory mapped I/O mapped
diferite de cele specifice accesarii memoriei. In acest caz spatiile de adresare pentru
memorii, respectiv PIE sunt complet separate utilizandu-se decodificatoare de adrese
separate pentru obtinerea semnalelor de selectie pentru memorii, respectiv PIE.
MI si ME pot fi, la randul lor, grupate in doua mari categorii, dupa cum datele sunt
numerice sau analogice.
Limitare Separare
Adaptare Filtrare Formare
si Filtrare Galvanica
Uext
Figura 4.5. Schema de principiu al BPSI
______________________________________________________________________________________
67
Sisteme Incorporate
VCC
R5
D1
R1 R4 1 2
1 2
5
R2 R3 D2 ISO1
C1 C2
4
Uext
S1
BPSI 1
S2
BPSI 2 RT
MUX CPU
Sn
BPSI n
BC
Uext
Figura 4.7. Structura de principiu a MIN
Semnalele numerice primite din proces sunt aduse la nivel TTL prin intermediul
BPSI. Prin intermediul multiplexorului MUX se asigura memorarea in registrul tampon
RT a informatiei continute pe canalul indicat de adresa trimisa de CPU si interpretata de
blocul logic de comanda BC.
Structura din figura 4.5 poate fi adaptata si pentru cazul cand pe canale se
transmit combainatii de cod (cuvinte de mai multi biti); in acest caz informatia poate fi
transmisa fie serial, fie paralel.
______________________________________________________________________________________
68
Sisteme Incorporate
BPSE 1
BPSE n
BC
RL1
Iesire tip
contact
4 (Spre
3
D1 1 proces)
2
VCC
RELAY SPST
1
ISO1
U1A
R1
2
Comanda 1 2
74LS07
a)
Ue
R3
Q1A
D2 Xs
R2
VCC
R4
1
ISO1 Q2A
U1A
R1 R5
2
Comanda 1 2
74LS07
b)
Figura 4.9. Schemele de principiu ale modulelor de tip ON/OFF:
a) cu iesire pe releu; b) cu iesire pe tranzistor
______________________________________________________________________________________
69
Sisteme Incorporate
MUX
BC
Intrari de comanda
Figura 4.10. Structura generala a MIA
______________________________________________________________________________________
70
Sisteme Incorporate
MA1
CNA
MUX Proces
De la MAn
CPU
O a doua varianta utilizeaza cate un CNA pentru fiecare canal in parte, permitand
o demultiplexare numerica si memorarea numerica intr-un registru ce precede CNA, dupa
care semnalul este adus in gama de semnal unificat prin adaptoarele de gama (AG)
(figura 4.12).
RT CNA AG
De la RT CNA AG
CPU MUX
(numeric) Proces
RT CNA AG
BC
______________________________________________________________________________________
71