Documente Academic
Documente Profesional
Documente Cultură
=
(1,2,3,5)
)/ smdma cmdma modtm smdma, modtm , dma m c modtm (modtm, 5.
7-35
6. MAG = BUSFN (M;DCD(AM));
/* se rezolv accesul de citire de la unitatea central de prelucrare */
7. M * DCD(AM) MAG
/* se rezolv accesul de scriere de la unitatea central de prelucrare */
END SEQUENCE
END
7.8.5 Proiectarea unitii de comand a modulului de acces direct la memorie (UCDMA)
Schimbul de semnale ntre unitatea central de prelucrare, modulul de acces direct la memorie
i echipamentul periferic a fost descris anterior. Pentru a dezvolta algoritmul de funcionare, trebuie
inut seama de principalele funcii pe care trebuie s le execute unitatea de comand a modulului de
acces direct la memorie, dintre care se amintesc:
citirea/scrierea n orice moment a registrelor de I/E asociate modulului de acces direct la
memorie;
generarea semnalelor de comand pentru citirea/scrierea registrelor de I/E asociate
echipamentulului periferic;
actualizarea permanent a strii modulului de acces direct la memorie;
controlul dialogului ntre echipamentul periferic i memorie ;
efectuarea transferului unui bloc de date, independent de unitatea central de prelucrare
;
interaciunea cu unitatea central de prelucrare la iniierea/terminarea transferului unui
bloc de date .
Organigrama de funcionare a unitatii de comand a modulului de acces direct la memorie
este prezentat n Fig 7.17.
Programul AHPL ce descrie funcionarea unitatii de comand a modulului de acces direct la
memorie este prezentat n cele ce urmeaz:
MODULE: UCDMA -Unitate de comand pentru modulul de acces direct la memorie
MEMORY: AMDMA[16]; RCDMA[16]; CSDMA [16]
1. (2,6)
/* se separ aciunile ce trebuie efectuate n paralel, dialogul cu unitatea central de prelucrare (pas 2)
i dialogul cu echipamentul periferic (pas 6)
cm)/(6,1) , cm (
0; atm
=
; ctie , intex [4]; epoperat ; atmdma ; sie ; cie [8]; AIE [16]; DCM : INPUTS
; rczero sens, ; init ; atie [4]; csie [4]; ccie modtm; ; cerint ; mdma s ; cmdma [16]; DSM : OUTPUTS
sm)/(8,1) , sm (
0; atm . 8
=
7-36
/* se separ aciunile de:
-citire/scriere stri/comenzi echipament periferic (pas 3);
-citirea resurselor modulului de acces direct la memorie (AMDMA; RCDMA; CSDMA) (pas 4) ;
-scrierea n resursele modulului de acces direct la memorie (AMDMA; RCDMA; CSDMA) sau
operaie de iniializare (pas 5)
iar dac nu este nici una dintre ele se ateapt la (pas 2) */
3. (ccie ! csie) * (cie, sie) = DCD
0:3
(AIE
5:7
) ;
MAG * cie = DSM ;
/* n funcie de adresa portului i tipul de operaie (citire/scriere) se lanseaz spre echipamentul
periferic o comand de citire (ccie) sau o comand de scriere (csie), iar dac a fost o operaie de citire
de la un port de intrare se conecteaz datele DSM (date de echipamentul periferic) la magistrala MAG
*/
4. MAG = (CSDMA ! AMDMA ! RCDMA) * DCD
4:6
(AIE
5:7
);
/* se conecteaz, pentru citire, pe magistrala MAG coninutul resurselor modulului de acces direct la
memorie ( CSDMA; AMDMA; RCDMA) n funcie de adresa portului de intrare.
5. (CSDMA ! AMDMA ! RCDMA) * DCD
4
(AIE
5:7
) MAG ;
init = DCD
7
(AIE
5:7
) ;
CSDMA
6:7,10
* DCD
7
(AIE
5:7
) 0,1,1 ;
/* se ncarc resursa modulului de acces direct la memorie specificat de adresa din AIE cu coninutul
magistralei MAG sau se iniializeaz registrul de comenzi stri */
/* dac nu a fost lansat o cerere de transfer de I/E din partea echipamentulului periferic se ateapt, iar
dac s-a cerut un transfer, se analizeaz dac transferul de date este dezactivat sau este n curs de
efectuare.
n cazul n care transferul de date este dezactivat sau operaia cu modulul de acces direct la
memorie s-a terminat (transferul blocului de date s-a terminat i a mai venit o cerere din partea
echipamentulului periferic), cererea de transfer se rezolv conform dialogului stabilit, far a transfera
date (pas 7).
) 2 , 5 , 4 , 3 /( ))) (AIE DCD baza (cie ) baza sie cie ( )), (AIE /DCD ( baza sie
)), (AIE /DCD ( baza cie )), (AIE /DCD ( baza sie) ((cie 2.
7 : 5 7 7 : 5 7 : 4
7 : 5 6 : 4 7 : 5 3 : 0
)/(3,2) sie cie sie, (cie
)/(4,2) cie (cie,
)/(5,2) sie (sie,
) 7 , 8 , 6 /( )) CSDMA (CSDMA ctie ), CSDMA (CSDMA ctie , ctie ( . 6 15
7
15
7
7-37
n cazul n care transferul de date este activat i operaia cu modulul de acces direct la memorie
este n curs de rezolvare se efectueaz transferul efectiv de date (pas 8) */
/* se achit transferul de I/E i se menine att timp ct comanda de citire este activ */
cmdma = sens;
atie = atmdma;
/* se activeaz comanda de lucru cu memoria n funcie de sensul transferului. Pentru a nu aprea o
decalare (de maxim o perioada de tact) ntre achitarea cererii de acces de la memorie i achitarea cererii
de transfer ctre echipamentul periferic, ceea ce ar putea duce la un transfer eronat, se face conexiunea
atie = atmdma */
(ctie ) / (9)
/* se achit cererea de transfer I/E */
10. AMDMA *( /RCDMA) INC (AMDMA) ;
RCDMA * ( /RCDMA) DEC(RCDMA) ;
(6)
/* dac contorul de cuvinte nu a ajuns la zero, se actualizeaz adresa i contorul. n caz contrar se
indic terminarea transferului */
END SEQUENCE
sens = CSDMA
14
;
CSDMA
0:3
= epoperat
0:3
)/(7,6) ctie (ctie,
0; atie . 7
=
; sens smdma 8. =
)/(8) atmdma (
0; atie 9. =
0; )) /RCDMA ( (CSDMA * CSDMA
/RCDMA; rezero
6 7
=
index; ) /RCDMA ( CSDMA modtm
13
=
; 0 ) CSDMA )) epoperat /SEP (
rczero) (CSDMA ) CSDMA CSDMA ( (((intex * cerint
11
3 : 0 3 : 0
6
6
10
+
7-38
END
/* modul de transfer cu memoria este poziionat n "mod rafal" (modtm=0) dac n cuvntul de
comand al modulului de acces direct la memorie s-a specificat CSDMA
13
=0. Rmne n acest mod,
att timp ct mai sunt cuvinte de transferat i nu s-a facut o cerere de ntrerupere extern de la
echipamentul periferic (intex=0).
Indiferent de modul de transfer programat, modul de lucru va fi trecut n "mod furt de ciclu" la
sfritul transferului de bloc s-au dac s-a cerut o ntrerupere extern.
Cererea de ntrerupere cerint este activat dac:
s-a specificat lucrul n ntreruperi (CSDMA
11
=0) i a venit o cerere de ntrerupere
extern intex, sau
modulul de acces direct la memorie nu este ocupat cu un transfer de date i s-a cerut o
ntrerupere programabil (CSDMA
10
=0 i CSDMA
6
=0), sau
modulul de acces direct la memorie este n curs de transfer bloc i contorul de cuvinte
transferate a ajuns la zero, sau
unul dintre echipamente periferice conectate prin modulul de acces direct la memorie
i-a schimbat starea din operaional n neoperaional */
7-41
cmdma
______
atmdma=0
DCM=BUSFN (M; DCD ( AMDMA )
cmdma
nu
nu
nu
da da
da
nu nu nu da
smdma
___
atm=0
______
atmdma=0
MAG=BUSFN(M;DCD(AM))
M*DCD( AMDMA ) <--DSM
smdma
nu
da
da
modtm
cmdma smdma
mod 1
furt de ciclu
mod rafala
3.
7. 6.
8.
4.
2.
1.
da
da
cm
cm
nu
nu
___
atm=0
M*DCD(AM)<--MAG
6.
da
da
sm
sm
Figura 7.17
Organigrama de funcionare a UCM
7-42
da
da
da
da
nu
nu
1
1
0
0
nu
nu
_______
CSMA
7
CSDMA
15
ctie
ctie
___
atie = 0
___
atie = 0
_____
smdma = sens
_____ ___
cmdma = sens
atie = atmdama
atmdma
ctie
/ RCDMA
_____
rczero = 0
CSDMA
7
*CSDMA
6
=0
AMDMA<--INC(AMDMA)
RCDMA<-DCR(RCDMA)
dialog cu UCP
secventa paralela
dialog cu EP
MAG = (CSDMA ! AMDMA ! RCDMA)
* DCD
4:6
(AIE
5:7
)
(CSDMA ! AMDMA ! RCDMA) *
(DCD
4:6
(AIE
5:7
) <-- MAG
INIT = DCD
7
(AIE
5:7
)
CSDMA
6,7,10
* DCD
7
(AIE
5:7
)
<-- 0,1,1
(ccie ! csie) * (cie,sie) = DCD
0:3
(AIE
5:7
)
MAG * cie = DSM
__________________
CSDMA
7
= terminare transfer bloc
_______
CSDMA
15
= activare / dezactivare transfer
_______
CSDMA
6
= DMA liber
(cie sie) BAZA+0:3
nu
nu
nu
nu
nu
da
da
cie sie
cie
BAZA+4:6
cie
BAZA+4:6
cie
nu
sie
2.
10.
9.
8.
2.
2.
7.
5.
4.
3.
1.
Figura 7.2
7-43
7.9 Interfaa serial standard
La sistemele de calcul se cupleaz o mare varietate de echipamente periferice. Aceste
echipamente, fiind produse de diverse firme, nu sunt complet compatibile ntre ele ca mod de dialog i
transfer informaie, dei din punct de vedere logic realizeaz aceleai funciuni. Avnd n vedere
incompatibilitatea existent a aprut necesitatea unei standardizri i unificri a echipamentelor de
transmisie a datelor. Au fost create organizaii internaionale c de exemplu: CCITT (Comitetul
Consultativ Internaional pentru Telefonie i Telegrafie), ISO (Organizaia Internaional de
Standardizare), etc... , care fac recomandri referitoare la unificarea echipamentelor. Transferul de date
ntre echipamentul periferic i calculator se poate face fie paralel (echipamentele periferice descrise
anterior), fie serial. Transferul serial asigur o fiabilitate mare transferului (n special la distan) dar
are dezavantajul c necesit interfee mai complexe i limiteaz viteza de transfer. n cele ce urmeaz
se va prezenta proiectarea unei interfee seriale standard.
7.9.1 Norme de transmisie serial a informaiei
ntre dou dispozitive cuplate printr-o legtur serial asincron care lucreaz n "full duplex"
(recepioneaz i transmite date simultan) ar fi suficiente trei linii i anume:
- linie de transmisie date;
- linie de recepie date;
- linie de referin (mas electric).
Pentru a asigura ns un dialog privind comunicaia n ceea ce privete transmiterea de comenzi
i stri mai sunt necesare i alte linii de interconectare. Dialogul pentru realizarea transmisiei seriale
asincrone s-a impus pn la nivel de conector (conector de 25 pini) fiind adoptat de standardele
ISO2110, EIA RS-232-C, CCITT V.24. Principalele semnale ale interfeei EIA i CCITT V.24 sunt
prezentate n tabelul 7.2.
Semnalele ce se transmit pe liniile de date sunt sub forma unor nivele de tensiune n logic
negativ.
Astfel: "1" logic este considerat ntre 6V i 12V, iar
"0" logic este considerat ntre +6V i +12V.
Avantajele unei astfel de alegeri a tensiunilor fa de logic TTL sunt:
tensiunea de referin este 0V
un defect de alimentare se deosebete de oricare din cele dou nivele de tensiune
pentru "0" i "1"
asigur imunitatea la zgomot
Transmiterea datelor poate avea loc i sub form de nivele de curent continuu, aceast opiune
fiind cunoscut sub numele de transmisie cu "bucl de curent".
Modul de interconectare a dou dispozitive prevzute cu interfaa serial este prezentat n Fig 7.20.
7-44
DISP 2 DISP 1
DSR(107) 6
6 DSR(107)
20 DTR(108)
DTR(108) 20
4 RTS(105)
5 CTS(106)
CTS(106) 5
RTS(105) 4
2 TxD(103)
3 RxD(104)
RxD(104) 3
TxD(103) 2
1,7 GND(101,102) GND(101,102) 1,7
Semnale de
comanda/stare
Semnale
transmisie/receptie
date
Figura 7.20
Interconectarea a dou dispozitive seriale asincrone
De notat faptul c semnalele de comand/stare servesc numai pentru stabilirea legturii ntre
dispozitive. Transmiterea datelor se face serial, bit cu bit, ncepnd cu bitul cel mai puin semnificativ.
Un bit de date, din cuvntul ce se transmite, se conecteaz la linia de transmisie TxD pentru un timp
determinat de rata de transfer. Rata de transfer se msoar n bii/secund sau bauds. S-au standardizat
urmtoarele rate de transfer: 75; 110; 150; 300; 600; 1200; 2400; 4800; 9600; 19200; 38400 bauds, .
Datorit faptului c datele se transfer serial asincron, pentru sincronizare este necesar ca informaia de
date s fie precedat de un bit de start = "0" i urmat de un bit, sau doi, de stop = "1". Structura logic
a unui cuvnt ce se transmite ntre dou dispozitive seriale este prezentat n Fig 7.21.
Tabelul 7.2 Principalele semnale ale interfeei EIA RS-232-C/CCITT V.24
Nr.
pin
Semnale
EIA RS-
232-C
Semnale
CCITT
V.24
Descriere
1 AA 101 GND-Nul (mpmntare)
7 AB 102 GND-Semnal referin/Retur comun (mas electric)
2 BA 103 TxD(Transmiter Data)-Transmisie date
3 BB 104 RxD(Receiver Data)-Recepionare date
4 CA 105 RTS(Request To Send) - Cerere pentru emisie
5 CB 106 CTS(Clear To Send) - Gata de emisie
6 CC 107 DSR(Data Set Ready) - Conectat la linie
20 CD 108 DTR(Data Terminal Ready) -Conecteaz la alinie
22 CE 125 RI(Ring Indicator)
8 CF 109 RLSD(Receive Line Signal Detector)
21 CG 110 SQD(Signal Quality Detector)
23 CH 111 DSRS-DTE(Data Signal Rate Selector)
25 CI 112 DSRS-DCE(Data Signal Rate Selector)
24 DA 113 DTE transmiterea semnalului de timing (DTE)
15 DB 114 DTE transmiterea semnalului de timing (DCE)
17 DD 115 DTE recepionarea semnalului de timing (DTE)
14 SBA 118 STD Secondary Transmitted Data
16 SBB 119 SRD Secondary Received Data
19 SCA 120 RTSS (pe calea secundar)
13 SCB 121 CTSS
12 SCF 122 RLSDS
7-45
STOP STOP BITP BIT8 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2
8 biti
7 biti
6 biti
5 biti
START BIT1
Figura 7.3
Structur logic a unui cuvnt de date
Lungimea cuvntului poate fi de 5, 6, 7 sau 8 bii.
Adaptarea nivelelor de la semnal TTL - semnal CCITT V.24 se poate realiza prin utilizarea unor
circuite integrate MC1488, respectiv MC1489 ca n Fig 7.22.
linie de tansmisie
MC1488
-12V
+12V
7404
7404
MC1489
RxD(TTL) TxD(TTL)
Figura 7.4
Adaptarea de nivel TTL -standard CCITT V.24
Pentru a asigura o funcionare fiabil a automatului de recepie n cadrul interfeei seriale, biii de
informaie se vor prelua la un moment de timp ct mai aproape de mijlocul bitului, Fig 7.23.
START BIT1
preluare bit 1
preluare bit start
Figura 7.5
Momentele de preluare a biilor
Pentru a stabili momentul de timp cnd se vor prelua biii se va aplica, pentru automatul de recepie, o
frecven de 16 ori mai mare. Prin contorizarea perioadelor de tact se poate ajunge aproape de mijlocul
biilor.
7.9.2 Proiectarea unei interfee seriale pentru calculatorul didactic
Caracteristicile interfeei seriale
Transmisia/recepia cuvintelor prin intermediul interfeei seriale se face utiliznd
modalitatea de transfer programat;
Rata de transfer este funcie de semnalul de tact aplicat interfeei. Frecvena semnalului
de tact va fi de 16 ori mai mare dect frecvena de transfer, pentru a asigura o bun
funcionare a automatului de recepie;
Interfaa lucreaz n mod "full duplex" (poate primi i transmite cuvinte simultan);
7-46
Genereaz semnalele de dialog conform standardului de transmisie serial CCITT V.24;
Transfer cuvinte de lungime egal cu 5, 6, 7, 8 bii;
Analizeaz/genereaz unul sau doi bii de stop;
Analizeaz/genereaz paritate par sau impar;
Interfaa detecteaz erorile de paritate, depire de ritm i bii de stop incoreci;
Bazndu-ne pe caracteristicile prezentate se poate stabili o schem bloc, ca n Fig 7.24.
RDT
RTRS
CSSIN
AIE
Unitate
Comanda
SIN
RDR
RRS
MAG[16]
TxD
RTS CTS DTR DSR
RxD
Figura 7.6 Schema bloc a interfeei seriale
Primitivele funcionale ale interfeei seriale SIN sunt:
RRS - registrul de recepie serial. Are dimensiunea de 9 bii i este utilizat pentru recepionarea
serial a biilor de date bit1-bit8 i a bitului start .
RDR - registrul de date recepionate. Pstreaz ultimul cuvnt recepionat pn la formarea unui
nou cuvnt n registrul RRS.
RTRS - registrul de transmisie serial. Are dimensiunea 10 bii i este utilizat pentru transmiterea
serial a biilor de start, date i paritate.
RDT - registrul de date pentru transmisie. Primete informaia paralel de la unitatea central de
prelucrare i o transfer n registrul RTRS pentru transmisie. Este utilizat pentru a mri
disponibilitatea unitii centrale de prelucrare .
CSSIN - registrul de comenzi/stri al interfeei seriale SIN.
Structura cuvntului de comand/stare este prezentat n Fig 7.25.
DTR- (Data terminal ready) - conecteaz la linie : scris/citit de unitatea central de prelucrare
= 0 deconecteaz echipamentul (interfaa) de la linia de transmsie
= 1 conecteaz echipamentul de transmisie la linie, indiferent de strile celorlalte
semnale de legtur.
RTS - (Request to send) - cerere pentru emisie: scris/citit de unitatea central de prelucrare
= 0 trece echipamentul de transmisie n stare de ne-emisie
= 1 comand echipamentul de transmisie date, i l menine, n stare de emisie date.
L2,L1 - lungimea cuvntului : scris/citit de unitatea central de prelucrare
= 00 - lungimea cuvntului este de 5 bii
= 01 - " " " de 6 bii
7-47
= 10 - " " " de 7 bii
= 11 - " " " de 8 bii.
= 0 permite lansarea unei cereri ntreruperi spre unitatea central de prelucrare la
termirea recepionrii/transmiterii unui cuvnt sau schimbarea strii de operaional
(conectat la linie)
= 1 nu permite lansarea unei cereri de ntrerupere spre unitatea central de
prelucrare .
resintsin - reset ntrerupere de la interfaa serial (ieire): scris de unitatea central de prelucrare
= 0 nu terge, eventual cererea de ntrerupere de la sin
= 1 terge (se anuleaz) cererea de ntrerupere de la seciunea de transmisie a
interfeei seriale.
reseror - reset eroare este scris de unitatea central de prelucrare
= 0 nu are nici o aciune
= 1 sterge erorile aprute n procesul de recepie/transmisie datorate: paritii (PE),
depirii ritmului de recepie (OE) sau a bitului de stop (FE).
TxRDY - transmitter ready - transmisie gata este nscris de UCSI i citit de unitatea central de
prelucrare
= 0 interfaa are un cuvnt ce trebuie transmis i nu mai poate primi un nou cuvnt
de la unitatea central de prelucrare
= 1 interfaa poate primi, pentru transmisie, un nou cuvnt de la unitatea central de
prelucrare .
RxRDY - receiver ready - recepie gata este nscris de UCSI de recepie al interfeei i citit de
unitatea central de prelucrare
= 0 interfaa nu a recepionat un cuvnt, sau este n curs de receptionare, unitatea
central de prelucrare nu poate prelua un cuvnt de date de la interfa deoarece acesta
nu este disponibil.
= 1 interfaa a recepionat un cuvnt de date i unitatea central de prelucrare poate
s-l preia. Preluarea se face cu ajutorul unei instruciuni n port. Odat cu preluarea
datelor se dezactiveaz (terge), implicit, i indicatorul RxRDY.
EP - even/odd parity - tip paritate scris/citit de unitatea central de prelucrare
= 0 paritate impar
= 1 paritate par.
PE - parity error - eroare de paritate scris de interfa (paritatea de recepie) i citit de
unitatea central de prelucrare
= 0 nu a existat eroare de paritate
= 1 indic faptul c a fost detectat o eroare de paritate n procesul de recepie date.
OE - overrun error - eroare de ritm scris de interfaa (partea de recepie) i citit de unitatea
central de prelucrare
= 0 nu a existat o eroare de ritm ntre unitatea central de prelucrare i dispozitivul
de recepie
____
actint - activare / dezactivare ntrerupere: scris/citit de unitatea central de prelucrare
7-48
= 1 a fost detectat o eroare de ritm. Unitatea central de prelucrre nu a preluat
cuvntul recepionat i ntre timp s-a mai recepionat un nou cuvnt.
FE - Framing error - eroare datorat bitului de stop nscris de interfa (partea de recepie) i
citit de unitatea central de prelucrare
= 0 nu a fost o eroare de bit de stop
= 1 a fost detectat o eroare n cursul operaiei de recepie datorat absenei bitului
sau biilor de stop.
STP - bit de stop : scris/citit de unitatea central de prelucrare
= 0 se lucreaz cu un singur bit de stop
= 1 se lucreaz cu doi bii de stop.
DSR - data set ready - echipament conectat la linie, citit de unitatea central de prelucrare i
nscris de terminalul serial cu care este interconectat interfaa
= 0 indic faptul c echipamentul de transmisie/recepie cu care este interconectat
interfaa nu este gata de funcionare
= 1 echipamentul cu care este interconectat interfaa este gata de funcionare
(conectat la linie).
EP
PE
OE
FL
STP
DSR
CSSIN
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
resint
actint
L1
L2
RTS
DTR
RxRDY
TxRDY
reser
Figura 7.7
Structura cuvntului de date este prezentat n fig. 7.26.
7 8 15 0
Figura 7.8
Presupunnd c interfeei seriale i sunt asociate porturile de I/E:
0F6H - adresa porturilor de intrare/ieire date
0F7H - adresa porturilor de intrare/ieire stri respectiv comenzi se pot elabora rutinele CI pentru
recepionarea unui cuvnt i CO pentru transmisia unui cuvnt.
DATSIN EQU 0F6H ; adresa porturilor de I/E date
STSIN EQU 0F7H ; adresa porturilor de intrare stri
COMSIN EQU 0F7H ; adresa portului de ieire comenzi
CDINIT EQU 447FH ; comand de iniializare interfa
; DTR-Bit
15
=1 - conecteaz la linie
; RTS-Bit
14
=1 - cerere pentru emisie
7-49
; L2,L1-Bit
12:13
=11 - lungime cuvnt 8 biti
; reseror-Bit
9
=1 -terge eventualele erori
; PE,OE,FE
; EP-Bit
5
=1 -paritate par
; STP-Bit
1
=1 -se lucreaz cu 2 bii de SMP
MOV RA,CDINIT ; se iniializeaz interfaa
OUT COMSIN ;
Obs: Comanda de iniializare se execut o singur dat n programul utilizatorului i este plasat n
afara rutinelor de recepie/transmisie.
;Rutina de citire caracter de la consol cuplat pe interfa serial standard CI-CONSOLE INPUT
;Intrri: -
;Ieiri: n registrul RA cuvntul citit
;Afecteaz: registrul RA i indicatorii de condiii
;Funcie: citete un cuvnt de la interfaa serial standard n modul transfer programat cu citirea
ciclic a strii.
CI:
IN STSIN ;citete starea interfa
TEST RA,8000H ;analizeaz DSR (data set ready)
JE ERRCI ;dispozitiv neconectat la linie eroare
TEST RA,200H ;analizeaz RxRDY
JE CI ;nu a recepionat caracter ateapt
TEST RA,3800H ;a recepionat caracter i se analizeaz
;dac este corect (FE,OE,PE=0?)
JNE ERRCI
IN DATSIN ;preia caracterul
RET
ERRCI: ;trateaz eventuala eroare
;Rutina de transmisie cuvnt la interfaa serial standard
;CO-CONSOLE OUTPUT
;Intrri: registrul RB conine cuvntul ce trebuie transmis
;Ieiri: -
;Afecteaz: registrul RA i indicatorii de condiii
;Funcie: transmite cuvntul din registrul RB la interfa standard n modul de lucru transfer
programat cu citirea ciclic a strii
CO:
IN STSIN ; citete starea
TEST RA,8000H ; se analizeaz DSR (data set ready)
JE ERRCO ; dispozitiv neconectat la linie, eroare
TEST RA,100H ; se analizeaz TxRDY
JE CO ; dac are cuvnt de transmis, ateapt
MOV RA,RB ;
OUT DATSIN ; transmite cuvntul spre interfa
RET
ERRCO: . ; trateaz eventuala eroare
Schimbul de informaii ntre unitatea central de prelucrare, interfaa serial i echipamentul periferic
este prezentat n Fig 7.27.
_____
; actint-Bit
11
=1 - dezactivare ntrerupere
7-50
Pe baza caracteristicilor interfeei seriale, a cuvntului de comenzi/stri precum i schimbului
de informaie ntre unitatea central de prelucrare, interfaa imprimentei i echipamentul periferic se
poate descrie funcionarea interfeei seriale. Organigrama general se prezint n Fig 7.28.
Unitatea
central de
prelucrare a
calculatorului
didactic
MAG[16]
AIE[8]
Echipamentul
periferic
Interfata
seriala
standard
SIN
CTS 5
RTS 4
DSR 6
DTR 20
RxD 3
TxD 2
GND 17
____
cerint
__
sie
__
cie
5 CTS
4 RTS
6 DSR
20 DTR
3 RxD
2 TxD
17 GND
Figura 7.9 Semnalele de dialog ntre unitatea central de prelucrare, interfaa serial i
echipamentul periferic
17. 5.
4. 3.
2.
1.
__
sie(F6F7)
da
nu
da
nu
TxRDY0
CSSINMAG RDTMAG
1(date)
transmisie receptie
0(comenzi)
F6
__
sie
__
cie(F6F7)
da
nu
da
nu
RxRDY0
MAG=CSSIN MAG= RDR
1(date)
0(stare)
F6
__
sie
Figura 7.10
Organigrama de descriere a funcionrii interfeei seriale
7-51
7.
6.
5.
0
1
receptie
____
RRS9T0
____
FERxD
____
FERxD
stabileste indicator PE
deplaseaza RRS
NRM164T0
OE RxRDY
RxRDY 1
RDR RRS
RxRDY0
RxD
0
Da
Nu
NRM16=7
1
RxD
16.
15.
14.
13.
12.
11.
10.
9.
8.
0
0
Da
Nu
NRM16=7
1 bit 5 sau 6
sau 7 sau 8 =0
Da
Nu
NRM16=7
(2 biti stop) 1
__
STPFE
Da
Nu
NRM16=7
Figura 7.11 continuare
Organigrama de descriere a funcionrii interfeei seriale
(17. TxRDY 1)
7-52
19.
18.
17.
0
1
transmisie
transfera RDT in RTS
atasand
bit start si bit paritate
NRBITINC(NRBIT)
deplaseaza RTRS
NRM164T0
NRBIT4T0
TxRDY1
TxRDY0
RTRS
9
1
___
TxRDYCTS
22.
9.
21.
20.
0
Da
Da
Nu
NRM16=15
Nu NRBIT=
8,9,10.11
1
__
STPFE
Da
Nu
NRM16=7
Figura 7.12 continuare
Organigrama de descriere a funcionrii interfeei seriale
7-53
Programul AHPL de descriere a interfeei seriale:
MODULE: UCSIN
MEMORY: RDR[8];RRS[9];RDT[8];RTRS[10];NRM16[4];NTM16[4];
NRBIT[4];CSSIN[16]
INPUTS: ADR[8]; sie ;cie; RxD; DSR; CTS; TxC; RxC
OUTPUTS: cerint; TxD; DTR; RTS
COMBUS: MAG[16]
1. (2,5,17)
/* se activeaz cele trei secvene paralele ale UCSIN*/
/* la pas 2 se trateaz activitatea cu unitatea central de prelucrare */
/* la pas 5 se trateaz seciunea de recepie */
/* la pas 17 se trateaz activitatea de transmisie */
/*se ateapt o aciune din partea unitii centrale de prelucrare (pas 2) sau */
/*se rezolv cererea de scriere date/comenzi din partea unitii centrale de prelucrare (pas 3)*/
/*sau se trateaz cererea de citire date/stri din partea unitii centrale de prelucrare (pas 4) */
3. (RDT ! CSSIN) * (F6,F7) MAG;
TxRDY * F6 0
3.1
/* se ncarc RDT sau CSSIN cu coninutul magistralei MAG n funcie de adresa portului de
ieire. Dac a fost transfer de date se poziioneaz indicatorul TxRDY = 0 specificnd astfel
ncrcarea registrului RDT i se ateapt terminarea comenzii de scriere */
4. MAG=(RDR ! CSSIN) * (F6,F7);
RxRDY*F6 0;
/* se conecteaz la magistrala MAG datele din registrul RDR i cuvntul de stare n funcie de
adresa portului de intrare. Dac a fost citire date se indic preluarea datelor din RDR prin
poziionarea indicatorului RxRDY=0 */
/* se ateapt terminarea comenzii de citire */
/* Seciunea de recepie cuvnt */
/* De menionat c seciunea de recepie pas5 - pas17 lucreaz cu generatorul de tact RxC care
este de 16 ori mai rapid dect rata de transfer a datelor */
5. RxRDY 0
/* se iniializeaz indicatorul gata recepie.
; de notat faptul c prin acest pas se trece o singur dat la punere sub tensiune sau la reset
general */
6. NRM16 4T0;
)/(3,4,2) F7 F6 ( cie sie F7), (F6 cie F7), (F6 sie ( 2.
2) sie)/(3.1, , sie (
cie)/(4,2) , cie (
; 9T0 RRS
7-54
(RxD) / (6)
/* se iniializeaz numrtorul modulo 16 utilizat la poziionarea pe mijlocul biilor n
momentul prelurii bitului curent.
Pentru a evita utilizarea unui registru contor de bii se utilizeaz un artificiu ce const n
ncrcarea n registrul RRS a valorii 111...111B. Terminarea recepionrii cuvntului se
realizeaz prin analiza propagrii bitului de start n poziia 6,7,8,9 corespunztor lungimii
cuvntului de date de 5,6,7,8 bii.
Se ateapt bitul de start (RxD = 0) */
/* se ateapt mijlocul bitului de start i se face o verificare dac nu a fost un bit de start fals */
8. RRS RxD,RRS
0:7
/* se preia bitul curent de pe linia de recepie */
/* se ateapt poziionarea pe mijlocul bitului urmtor i se verific dac este ultimul bit de
date. Dac da, se continu iar dac nu se merge la pas 8 pentru preluare bit curent */
10. PE EP ( /(RxD,((RRS
0:4
! RRS
0:5
! RRS
0:6
! RRS
0:7
)*DCD(L2,L1))))
/* se poziioneaz indicatorul de eroare paritate n funcie de :
-paritatea biilor din RRS
-bitul de paritate recepionat
-tipul de paritate cu care se lucreaz */
11. (/(NRM16 4T7))/(11)
/* se ateapt mijlocul bitului de stop */
/* dac bitul de stop nu este prezent pe linia de recepie se indic eroare de bit de stop (framing
error FE) i se analizeaz cu ci bii de stop se lucreaz (STP=0 cu 1 bit iar STP=1 cu 2 bii )*/
13. (v / (NRM16 4T7)) / (13)
/* se ateapt mijlocul celui de al doilea bit de stop */
/* se poziioneaz bitul de FE n mod corespunztor */
15. OE RxRDY;
)/(7,6,8) RxD ( 4T7) /(NRM16 (RxD), 4T7) /(NRM16 4T7), /(NRM16 ( . 7
L1)/(9,8) DCD(L2, * )) RRS ! RRS ! RRS ! (RRS 4T7) /(NRM16 4T7), /(NRM16 ( . 9
8 7 6 5
RxD FE 12.
FE)/(15) STP (
RxD FE 14
7-55
RDR RRS
/* dac nu s-a preluat de ctre unitatea central de prelucrare cuvntul anterior se indic eroare
de ritm (OE ); */
/* se transfer registrul recepionat n registrul de date de recepie */
16. RxRDY 1;
(6)
/* se indic recepionarea unui cuvnt prin poziionarea indicatorului gata recepie i se merge
la ateptarea unui nou bit de start */
/* Seciunea de transmisie
/* Seciunea de transmisie date pas 17- pas 22 lucreaz cu generatorul de tact TxC , care este de
16 ori mai rapid dect rata de transfer date */
17. TxRDY 1 ;
RTRS
9
1
/* se face iniializarea seciunii de transmisie i anume: indicatorul de transmisie gata TxRDY
i ultimul bit din RTRS pentru a indica "linie n ateptare " */
18. NTM16 4T0;
NRBIT 4T0
/* dac unitatea central de prelucrare nu a iniiat o transmisie sau dispozitivul cu care este
cuplat nu e gata de emisie se ateapt; de asemenea se iniializeaz NTM16 i NRBIT */
19. RTRS ((1,1,1,EP( /RDT
0:4
),RDT
0:4
) ! (1,1,EP(/RDT
0:5
),RDT
0:5
) !
(1,EP(/RDT
0:6
),RDT
0:6
) ! (EP(/RDT
0:7
),RDT
0:7
)*DCD(L2,L1)),0;
TxRDY 1
/* se transfer RDT n registrul RTRS , atand bitul de start, biii de date (5, 6, 7, 8), bitul de
paritate */
/* se face o aliniere la dreapta cu introducere de " 1 " n biii neutilizai */
/* se indic eliberarea registrului RDT ( TxRDY <- 1 ), ceea ce nseamn c unitatea central
de prelucrare poate trimite un nou caracter */
20. ( / (NTM16 4T15 ) / (20)
/* se ateapt terminarea cuantei de timp ct bitul curent este conectat la linia de transmisie */
21. RTRS 1, RTRS
0:8
NRBIT INC(NRBIT);
((v/(NRBIT4T8)!/(NRBIT4T9)!/(NRBIT4T10)!/(NRBIT4T11))*DCD(L1,L2))/ (20)
/* se conecteaz la linie urmtorul bit, se incrementeaz contorul de bii i se analizeaz dac
s-a terminat transmisia */
/* dac da, se analizeaz dac trebuie s se transmit i al doilea bit de stop */
)/(18) CTS (TxRDY
7-56
/* se transmite i al doilea bit de stop dup care se revine la nceputul seciunii de transmisie */
END SEQUENCE
END
2,18) STP)/(18,2 4T15) /(NRM16 STP, 4T15) /(NTM16 , STP ( . 22
0 RxRDY) TxRDY ) DSR ((DSR actint * cerint
CCSIN D
7-43