Microprocesoare

73
Studiul special "ELEMENTELE AUTOMATIZATE A SISTEMELOR DE ALIMENTARE CU ENERGIE ELECTRICA PE BAZA DE MICROPROCESOARE" este o disciplina obligatorie ce completează disciplina "Protecţia prin relee şi automatizarea SAEE" Disciplina este bazata pe însuşirea premărgătoare de către studiu a disciplinilor "Bazele electronicii", "Tehnica de calcul şi programarea", "Modele matematice ale SAEE" şi constă din cinci părţi, legate logic intre ele: - Elemente logico-digitale ale sistemelor de automatizare; - Microprocesoarele; - Programarea microprocesoarelor; - Interfeţele şi mijloacele de conexiune in automatizarea SAEE - Scheme şi algoritme de automatizare a SAEE asistata de microprocesor. Cursul constă din 48 de ore in total, din care 32 - lecţii, 16 – lucrări de laborator. Forma de control la sfârşitul cursului – colocviu diferenţat. In rezultatul însuşirii cursului respectiv studenţii trebuie sa aibă o închipuire vaga despre microprocesoare, sa cunoască programarea şi posibilităţile de utilizare a microprocesoarelor în sistemele de protecţie şi automatizare a AEE. I N T R O D U C E R E Pentru a alimenta cu energie calitativa şi in cantităţi necesare consumatorii SAEE sunt înzestrate cu diferite sisteme si instalaţii de automatica auxiliară. Din aceste sisteme de automatica un rol principal îl au sistemele de telemecanica, sistemele de automatizare şi sistemele de protecţia prin relee. Sistemele telemecanice sunt menite de a informa sau dirija la distanta prin fire sau prin unde instalaţii concrete sau SAEE in general. Cele mai răspândite sisteme de telemecanica sunt telemăsura si telecontrol (TM-TC), teledirijare (TM-TD), telesemnalizare (TM-TS). Din sistemele de automatica in SAEE cele mai răspândite sunt RAR (reanclanşarea automata rapida)/АПВ (автоматическое повторное включение) şi AAR (anclanşarea automată a rezervei)/АВР (автоматическое включение резерва). В СЭСн АПВ, как правило, устанавливают на отходящих фидерах ЛЭП и предназначены для осуществления повторного включения выключателя при самоустраняемых повреждениях, что позволяет обеспечивать дальнейшее бесперебойное ЭСн потребителей. Устройства АВР в СЭСн используются, в основном, для включения резервного источника питания при выходе из строя основного источника питания и им снабжаются все потребители I и частично II категорий. Menirea protecţiei prin relee este de a preintâmpina şi localiza defectele si accidentele care deregleaza funcţionarea normala a SAEE. Din protecţia prin relee cele mai răspândite sisteme ale SAEE a întreprinderilor industriale sunt - Protecţia maximala de curent, care întrerupe alimentarea cu energie electrica in caz, daca curentul depăşeşte curentul nominal; - Protecţia diferenţiala, care reacţionează la deteriorare înnuntru elementului, comparând curenţii la intrare şi ieşire. La primul etap o mare parte din sisteme de automatică o constituia circuitele pe baza releelor electrice. Releul este un dispozitiv care reacţionează la modificarea parametrilor unui proces fizic (temperatura, presiune, curent etc.). Atunci, când parametrul atinge valoarea prestabilita, releul efectuează o acţionare prin salt a mecanizmului de execuţie, aceasta schimbare a stării mecanizmului fiind reversibila. Dacă pentru funcţionarea releului se utilizează electricitatea, el este numit releu electric.

description

ELEMENTELE AUTOMATIZATE A SISTEMELOR DE ALIMENTARE CU ENERGIE ELECTRICA PE BAZA DE MICROPROCESOARE

Transcript of Microprocesoare

Page 1: Microprocesoare

Studiul special "ELEMENTELE AUTOMATIZATE A SISTEMELOR DE ALIMENTARE CU ENERGIE ELECTRICA PE BAZA DE MICROPROCESOARE" este o disciplina obligatorie ce completează disciplina

"Protecţia prin relee şi automatizarea SAEE" Disciplina este bazata pe însuşirea premărgătoare de către studiu a disciplinilor "Bazele electronicii", "Tehnica de calcul şi programarea", "Modele matematice ale SAEE" şi constă din cinci părţi, legate logic intre ele:

- Elemente logico-digitale ale sistemelor de automatizare;- Microprocesoarele;- Programarea microprocesoarelor;- Interfeţele şi mijloacele de conexiune in automatizarea SAEE- Scheme şi algoritme de automatizare a SAEE asistata de microprocesor.Cursul constă din 48 de ore in total, din care 32 - lecţii, 16 – lucrări de laborator. Forma de control la

sfârşitul cursului – colocviu diferenţat. In rezultatul însuşirii cursului respectiv studenţii trebuie sa aibă o închipuire vaga despre microprocesoare, sa cunoască programarea şi posibilităţile de utilizare a microprocesoarelor în sistemele de protecţie şi automatizare a AEE.

I N T R O D U C E R EPentru a alimenta cu energie calitativa şi in cantităţi necesare consumatorii SAEE sunt înzestrate cu diferite

sisteme si instalaţii de automatica auxiliară. Din aceste sisteme de automatica un rol principal îl au sistemele de telemecanica, sistemele de automatizare şi sistemele de protecţia prin relee.

Sistemele telemecanice sunt menite de a informa sau dirija la distanta prin fire sau prin unde instalaţii concrete sau SAEE in general. Cele mai răspândite sisteme de telemecanica sunt telemăsura si telecontrol (TM-TC), teledirijare (TM-TD), telesemnalizare (TM-TS).

Din sistemele de automatica in SAEE cele mai răspândite sunt RAR (reanclanşarea automata rapida)/АПВ (автоматическое повторное включение) şi AAR (anclanşarea automată a rezervei)/АВР (автоматическое включение резерва).

В СЭСн АПВ, как правило, устанавливают на отходящих фидерах ЛЭП и предназначены для осуществления повторного включения выключателя при самоустраняемых повреждениях, что позволяет обеспечивать дальнейшее бесперебойное ЭСн потребителей.

Устройства АВР в СЭСн используются, в основном, для включения резервного источника питания при выходе из строя основного источника питания и им снабжаются все потребители I и частично II категорий.

Menirea protecţiei prin relee este de a preintâmpina şi localiza defectele si accidentele care deregleaza funcţionarea normala a SAEE. Din protecţia prin relee cele mai răspândite sisteme ale SAEE a întreprinderilor industriale sunt

- Protecţia maximala de curent, care întrerupe alimentarea cu energie electrica in caz, daca curentul depăşeşte curentul nominal;

- Protecţia diferenţiala, care reacţionează la deteriorare înnuntru elementului, comparând curenţii la intrare şi ieşire.

La primul etap o mare parte din sisteme de automatică o constituia circuitele pe baza releelor electrice. Releul este un dispozitiv care reacţionează la modificarea parametrilor unui proces fizic (temperatura, presiune, curent etc.). Atunci, când parametrul atinge valoarea prestabilita, releul efectuează o acţionare prin salt a mecanizmului de execuţie, aceasta schimbare a stării mecanizmului fiind reversibila. Dacă pentru funcţionarea releului se utilizează electricitatea, el este numit releu electric.

Denumirea de releu a fost utilizata pentru prima data in comunicaţie telegrafice, in care se folosea un electromagnet cu contacte electrice fixate pe armatura lui (fig.1.).

Releul este un dispozitiv cu prag, adică el acţionează la depăşirea de către semnalul de comanda a unui anumit nivel, numit prag de acţionare. Caracteristica generala a releului este prezentata in fig.1a, unde X este parametrul de intrare, iar Y - parametrul de ieşire. După cum se vede din desen, releul acţionează la un anumit nivel al semnalului de comanda Xact.

X

X

Y

Y

Xacţ

Fres

Fem

Page 2: Microprocesoare

a) b)

Fig.1. Releul electromagnetic. a) caracteristica tip a releului; b) schema releului

Cu dezvoltarea bazei elementare a electronicii sau ivit instalaţii şi sisteme de automatizare cu tranzistori şi semiconductori (fig.2)

a) b) c)

Fig.2. Elemente semiconductoare: (a) - dioda; (b) - tranzistor de tip n-p-n; (c) - tranzistor de tip p-n-p

Cu ivirea tranzistorelor SA AEE au devenit mai compacte după gabarit, cu mult sau micşorat cheltuielile de alimentare, sa mărit fiabilitatea, termenul de funcţionare şi viteza de acţionare.

In ultimii ani o revoluţie au produso microcircuitele integrate. Microcircuitul integrat consta dintr-un şir de elemente de tip semiconductoare unite intre ele după anumite scheme într-un singur corp rigid.

Cu dezvoltarea SAEE şi cerinţele majorate fata de SA pe lor au început să se folosească in automatizarea AEE microcomputatoarele şi microprocesoare.

Schema structurala a dirijării automata cu ajutorul microprocesorului e prezentata pe fig.3. Traductor transforma parametrii fizici controlaţi după care se efectuează dirijarea (presiunea, viteza etc.) in semnalele electrice analogice (neîntrerupte in timp). Convertor analogic-numeric (CAN) transforma semnalele analogice electrice in semnalele electrice discrete (numerice) capabile de a fi recepţionaţi de MP. Informaţia discreta primita se analizează şi se prelucrează in MP după algoritmul de dirijare dat (programa) si la ieşirea MP se elaborează semnalele discrete de dirijare. Convertor numerico analogic (CNA) transforma informaţia de la MP in informaţie analogice ante de a fi recepţionaţi de sistemul automat de dirijare (SAD) care acţionează asupra obiectului de dirijare.

Page 3: Microprocesoare

Fig.3. Schema structurala a dirijarei automata cu ajutorul microprocesorului (SAD - sistemul automat de dirijare; CNA – convertor numerico-analogic; CAN - convertor analogic-numeric)

Folosirea MP şi computatorilor permite:

SAD

Programa

CNA

MicroprocesorObiect de dirijare

CANTraductor

Page 4: Microprocesoare

- de a avea o structură mobila a sistemului de dirijare care poate realiza fără modificarea schemei orice legea de dirijarea automata (dirijarea liniara, conţinând derivate etc.);

- de a efectua dirijarea după varianta optimala cu o viteza in timp egala cu viteza de schimbare a parametrilor controlaţi, adică de a efectua dirijarea in timp real;

- de a avea un sistem de dirijare compacte, blocurile componente a căruia pot fi unificate;- de a micşora cheltuielile de alimentare, de a mari fiabilitatea

Часть I. Основные логико-цифровые элементы систем автоматики энергетических систем.

Tema I. Sistemele numerice binar şi hexazecimal. Legile principale ale algebrei lui Bool

1.1. Sistemul numeric binarOrice numărul zecimal poate fi prezentată în următorul mod: А = а * 10n + b * 10n-1 + ... + p * 101 + q * 100 = ab...pqNumărul 10 se numeşte baza sistemei numerice, care în acest caz este numit sistemul ZECIMAL. În sistemul

ZECIMAL sunt folosite ZECE cifre de la 0 până la 9. Valoarea fiecărei cifre depinde de poziţia, care cifra ocupă. De exemplu,

în numărul 34210 = 3 * 10 2 + 4 * 101 + 2 * 100 cifra 2 – are valoarea de 2 unităţi,dar în numărul 24310 = 2 * 10 2 + 4 * 101 + 3 * 100 acelaşi cifră 2 – are valoarea de 2 sute.

Система счисления, в которой величина цифры определяется ее местоположением (позицией), называется ПОЗИЦИОННОЙ. Таким образом, десятичная система счисления является позиционной. (Римская система счисления не является позиционной, так как положение цифр не меняет ее значения. Например, число 6 запишется как VI, а число 4 - как IV. При этом в обоих случаях знак I имеет одно и то же значение - 1 (единица), только в одном случае она прибавляется к пятерке, а в другом случае - вычитается.)

Использовать привычную для нас десятичную систему счисления в логико-цифровых элементах систем автоматики неудобно, так как сконструировать надежную электрическую систему, способную четко идентифицировать любой из 10 уровней напряжения, используемых для представления десятичных чисел достаточно сложно. В действительности же основой любой ЭВМ являются ТРИГГЕРЫ - полупроводниковые элементы имеющие 2 устойчивых состояния (релейная характеристика) в зависимости от входных сигналов. При этом микропроцессор оперирует дискретными сигналами, которые могут быть представлены "0" и "1".

Например, для ТТЛ - элементов при Uвых < 0.45 В сигнал считается равным "0"; при Uвых > 2.4 В сигнал считается равным "1".

Таким образом, более удобной для использования в ЭВМ оказывается ДВОИЧНАЯ система счисления. В этом случае для записи чисел используется всего две цифры: 0 и 1. В двоичной системе счисления основанием является число 2, при этом соответствующий степенной ряд имеет вид:

... 28 27 26 25 24 23 22 21 20

... 256 128 64 32 16 8 4 2 1и двоичное число с его помощью легко может быть приведено к десятичной системе счисления.

Например, 11012 = 8*1+4*1+2*0+1*1 =1310

Перевод числа из десятичной системы счисления в двоичную производится методом последовательного деления числа на 2 до тех пор, пока частное от деления не станет равным 1. Число в двоичной системе счисления записывается в виде остатков от деления, начиная с последнего частного, слева направо.

Пример перевода числа 132 в двоичный код: 132 | 2 --------остаток--------> 0 66 | 2 -------остаток-------> 0 33 | 2 ------остаток------> 1 16 | 2 -----остаток-----> 0 8 | 2 ----остаток----> 0 4 | 2 ---остаток---> 0 2 | 2 --остаток--> 0 1 | 2 -остаток-> 1 Итак, 13210 = 100001002 . Проверка: 100001002 = 1*128 +0*64+0*32+0*16+0*8 + 1*4+0*2+0*1 = 13210

По рассмотренному правилу числа можно переводить и в другие широко распространенные системы счисления: шестнадцатеричную, восьмеричную. Во всех случаях деление переводимых чисел производится на основание новой системы счисления.

Page 5: Microprocesoare

1.2. Sistemul hexazecimalNecătând la aceia, că microprocesorul foloseşte semnalele codului binar 1 şi 0 pentru a înlesni şi micşora

volumul programei, programarea se efectuează în codul hexazecimal. Pentru reprezentarea cifrelor hexazecimale sunt folosite zece cifre: 0 – 9 şi şase litere A, B, C, D, E, F.

Tabela echivalenţei între codurile zecimal, binar şi hexazecimal: Tabelul 1

Codul zecimal Codul hexazecimal Codul binar0123456789101112131415

0123456789ABCDEF

0000000100100011010001010110011110001001101010111100110111101111

Page 6: Microprocesoare

Trecerea de la sistemul binar la sistemul hexazecimal se efectuează în următorul mod: împărţim codul binar în grupe câte 4 biţi de la dreaptă spre stângă, în caz de necesitate grupa superioară se completează până la tetrada cu zerourile. Fiecare tetradă se înlocuieşte cu cifră hexazecimală respectivă. De exemplu: 1100 01002 = C416

Transferul din sistemul hexazecimal în sistemul binar se efectuează în mod invers: fiecare cifră hexazecimală se înlocuim cu tetradă binară respectivă. De exemplu: E716 =1110 01112

1.3. Algebra logicăCircuitele logice (digitale) sunt circuite capabile să realizeze operaţii logice. Semnalul de ieşire reprezintă

rezultatul unei operaţii logice, aplicată semnalelor de intrare.Mărimile, aplicate acestor circuite, pot avea doar două valori distincte, reprezentate simbolic prin cifrele "0"

şi "l" (respectiv: nivel de tensiune aproape de zero şi nivel înalt de tensiune), numite mărimi binare.Pentru descrierea operaţiilor logice este folosit aparatul matematic, denumit algebră logică sau algebră

booleana (în cinstea matematicianului irlandez George Boole, care a elaborat-o).Algebra logică studiază relaţiile între expresiile simple, din care sunt formate expresiile sofisticate. Algebra

booleana presupune, că expresia simplă poate conţine numai două valori: adevărat sau fals ( true, falls), respectiv "0" sau "1", prin urmare, expresia simplă este o funcţie binară.

Funcţiile logice pot fi reprezentate în diverse moduri, din care vom menţiona: tabel de adevăr; forme analitice (forma canonică disjunctivă, forma canonică conjunctivă); diagrame Karnaugh; logigrame (circuite cu porţi logice); diagrame de timp, etc.

1.3.1. Tabel de adevărTotalitatea combinaţiilor posibile se poate urmări într-un tabel numit tabel de adevăr. Tabelul de adevăr este

un tabel al cărui număr de coloane coincide cu numărul de variabile (mărimi de intrare) plus numărul de funcţii (mărimi de ieşire), iar numărul de linii este determinat de numărul de combinaţii posibile ale mărimilor de intrare, în tabelul de adevăr pentru fiecare combinaţie a variabilelor este prezentată valoarea funcţiei. Prin urmare, tabelul de adevăr este cel mai detaliat şi complet mod de prezentare a funcţiei logice şi prezintă algoritmul funcţionării circuitului logic respectiv.

1.3.2. Forme analiticeFuncţiile logice pot fi redate, de asemenea, printr-o expresie analitică. Funcţia logică poate fi reprezentată

analitic prin diverse combinaţii ale operaţiilor de adunare şi înmulţire logică a variabilelor. Din punct de vedere practic (pentru implementarea ulterioară a funcţiei logice într-un circuit logic) se acceptă în primul rând formele analitice canonice în care funcţia logică este reprezentată sau prin suma produselor logice ale variabilelor sau prin produsul sumelor logice ale variabilelor.

În continuare vor fi prezentate formele canonice care operează cu termeni canonici. Un termen este canonic dacă în termenul respectiv sunt prezentate toate variabilele independente sub formă directă sau negată. Se cunosc două asemenea forme canonice:

Forma canonică disjunctivă (FCD) exprimă funcţia logică ca o sumă logică (disjuncţie) de termeni canonici conjunctivi (TCC). Forma canonică conjunctivă (FCC) exprimă funcţia logică ca un produs logic (conjuncţie) de termeni canonici disjunctivi (TCD).

1.3.3. Diagrame KarnaughDiagrama Karnaugh este o reprezentare tabelară mai compactă datorită dispunerii bidirecţionale a valorilor

argumentelor. In cazul general, al unei funcţii logice de n argumente, diagrama Karnaugh conţine 2p coloane şi 2q linii, astfel încât p+q=n (dacă n este par, p=q, iar dacă n este impar q=p+l).

Page 7: Microprocesoare

Diagrama Karnaugh are 2p·2q =2n câmpuri în care se trec valorile funcţiei pentru combinaţiile corespunzătoare ale valorilor argumentelor. Valorile argumentelor sunt indicate la capetele liniilor şi coloanelor diagramei. Dispunerea combinaţiilor argumentelor se face conform codului Gray (binar reflectat) care, fiind un cod continuu şi ciclic, asigură adiacenta între câmpurile

1.3.4. LogigrameSchema logică (logigrama) este o reprezentare grafică a funcţiei logice obţinută prin adoptarea unor semne

convenţionale pentru operaţiile logice. Logigrama indică de fapt topologia unui circuit logic care materializează funcţia logică dată. Logigrama reprezintă schema conform cărei funcţia logică este realizată ca o combinaţie a funcţiilor logice elementare. Prin urmare, simbolurile grafice adoptate pentru operaţiile logice constituie o reprezentare a circuitelor logice, care materializează funcţiile logice elementare. Aceste simboluri vor fi studiate în tema următoare.

1.3.5. Diagrame de timpDiagrama de timp reprezintă grafic o funcţie logică prin forma semnalelor sincronizate corespunzătoare

argumentelor şi funcţiei. Cifrelor binare O şi l li se ataşează semnale de nivel coborât şi, respectiv, ridicat, astfel încât să existe o diferenţiere clară a acestora. Reprezentarea prin diagrame temporale este deosebit de utilă pentru studiul sistemelor secvenţiale în a căror evoluţie intervine timpul. De asemenea, folosind această reprezentare, se pot studia fenomenele tranzitorii de comutare şi fenomenele de hazard datorate funcţionării reale a elementelor, care materializează variabile sau funcţii booleene.

1.3.6. Operaţiile algebrei Booleana Noţiunile principale cu care se operează algebra Booleana sunt „ADEVĂRUL” („TRUE”, „ИСТИНА”) şi

„FALS” („FALSE”, „ЛОЖЬ”). În algebra Booleana „ADEVĂRUL” se notează prin „1” iar „FALS” prin „0”.Din operaţiuni logice cel mai mare interes prezint următoarele:

Operaţia inversia logică NU (NOT, HET) transformă expresia adevărată în falsă şi invers. Operaţia inversia

se notează în următorul mod: Y = . Pe logigrama inversia se prezintă prin circuleţ la întrare sau ieşire elementului logic (fig.4).

Tabel de adevăr a inversiei logice:

Fig.4. Funcţia inversia (NU). Tabelul de adevăr şi logigrama conform standardelor CSI şi SUA

Operaţia suma logică SAU (OR, ИЛИ) (disjuncţia) este folosită pentru formarea expresiilor sofisticate din expresii simple. In acest caz rezultatul va fi adevărat, dacă cel puţin o expresie simplă este adevărată. În algebra Booleana disjuncţia se notează în următorul mod: Y = X1 + X2 sau Y = X1 \/ X2. Pe logigrama disjuncţia se prezintă în următorul mod (fig.5).

Fig.5. Funcţia disjuncţia (SAU). Tabelul de adevăr şi logigrama conform standardelor CSI şi SUA

Operaţia produsul logic ŞI (AND) (conjuncţia) de asemenea este folosită pentru formarea expresiilor sofisticate din expresii simple, în acest caz rezultatul va fi adevărat numai în cazul când toate expresiile simple sunt adevărate. Conjuncţia logică să notează în următorul mod: Y = X1 * X2 sau Y = X1 /\ X2 sau Y = Х1&X2. Pe logigrama conjuncţia se prezintă în următorul mod (fig.6).

Fig.6. Funcţia conjuncţia (ŞI). Tabelul de adevăr şi logigrama conform standardelor CSI şi SUA

In teme următoare adăugător vor fi folosite funcţiile

XY011

0

1

X1 X2 Y0011

0101

0111

X1

X2

1 YX1

X2

Y

X1X2Y00110101000

1

&X1

X2

YX1

X2

Y

Page 8: Microprocesoare

SAU-NU (NOR, funcţia Pierce) ŞI-NU (NAND, funcţia Şefferd) SAU EXLUSIV (XOR, anticoincidenţa)

X1 X2 Y X1 X2 Y X1 X2 Y0011

0101

1000

0011

0101

1110

0011

0101

1001

1.4. Legile algebrei booleeneCa oricare alt aparat matematic algebra booleana are la bază câteva axiome. Axiomele, саге stau la baza algebrei logice, sunt următoarele:

pentru suma logică : X + 0 = X, X + 1 = 1, X + X =X, X + X =1.

pentru produsul logic : X * 0 = 0, X * 1 = X, X * X =X, X * X = 0.

pentru inversie:

X = X,

Legile algebrei booleene:asociativitatea pentru suma logică:

(Х1+Х2) + Х3 = Х1 + (Х2+Х3) = Х1 + Х2 + Х3; asociativitatea pentru produsul logic:

(Х1*Х2) * Х3 = Х1 * (Х2*Х3) = Х1 * Х2 * Х3; comutativitatea pentru produsul logic:

Х1 * Х2 = Х2 * Х1comutativitatea pentru suma logică:

Х1 + Х2 = Х2 + Х1distributivitatea:

Х1 * (Х2+Х3) = Х1*Х2 + Х1*Х3Foarte frecvent pentru transformări algebrice sunt utile următoarele identităţi:

- legea a lui de Morgan

- -//-Х1 + Х1*Х2 = Х1 - legea de absorbţieХ1 * (Х1+Х2) = Х1 - -//-Х1*Х2 + Х1*X2 = Х1; - legea de lipire(Х1+Х2) * (Х1+X2) = Х1 - -//-

Demonstrăm legea a lui de Morgan = * comparând tabelele de adevăr pentru partea stângă şi pentru partea dreaptă a ecuaţiei

Partea stângă Partea dreaptăХ1 Х2 Х1+Х2 Х1 Х2 *0011

0101

0111

1000

0011

0101

1100

1010

1000

Page 9: Microprocesoare

Egalitatea tabelelor de adevăr pentru partea stângă şi partea dreaptă a ecuaţiei demonstrează legea a lui de Morgan

Page 10: Microprocesoare

Demonstrăm legea de absorbţie Х1 + Х1*Х2 = Х1 folosind axiome şi legile demonstrate.X1 + X1*X2 = (axioma pentru produsul) = X1*1 + X1*X2 = (distributivitatea) = X1*(1+X2) == (axioma pentru suma) = X1*1 =(axioma pentru produsul) = X1

Tema II. Realizarea funcţiilor logice

Realizarea tuturor funcţiilor logice se face în prezent cu ajutorul circuitelor integrate. Circuitele logice integrate se împart în două grupe mari în funcţie de tehnologia fabricării: circuite bipolare şi circuite unipolare (MOS).Tehnica circuitelor logice integrate bipolare a evoluat rapid de la familia:

RTL (Rezistor Tranzistor Logic - logica prin rezistenţe şi tranzistoare), la actualele tipuri:

DTL (Diode Tranzistor Logic - logica cu diode şi tranzistoare),TTL (Tranzistor Tranzistor Logic - logica cu tranzistoare cuplate),STTL (Schottky Tranzistor Tranzistor Logic - logica cu tranzistoare cuplate),ECL (Emitter Coupled Logic - logica cuplată prin emitor), I2L (logica integrată de injecţie).Circuitele logice integrate unipolare sunt formate în baza tranzistoarelor cu efect de câmp şi în comparaţie cu

cele bipolare sunt caracterizate prin grad mai înalt de integrare şi consum redus. Principalele familii sunt: PMOS (MOS canal P), NMOS (MOS canal N), CMOS (MOS complementar - logică cu tranzistoare cu efect de câmp cu grilă izolată canal indus cu canale de ambele tipuri).

2.1. Circuite logice integrate bipolare.

2.1.1. Poarta SAU (OR)X1

X2

1 Y+E

X1

X2

Y

-E

YX1

X2

-E

R

Page 11: Microprocesoare

Logigrama Schema electrică pe baza releelor Schema electrică pe baza DTLLa aplicarea semnalului de intrare pe oricare din diode, dioda conduce, determinând o cădere de tensiune pe

rezistenţa R egală cu amplitudinea semnalului de intrare, ceea ce reprezintă nivelul logic "1", în cazul absenţei oricărui semnal, aplicat la intrările X1 şi X2 la ieşire nu se obţine tensiune, deci se obţine nivelul logic "0", în practică sunt posibile cazuri, când numărul de intrări a circuitului logic SAU este mai mare ca numărul de semnale de intrare. Intrările neutilizate sunt puse la pământ, în aşa mod este exclusă posibilitatea propagării perturbaţiilor prin intrările neutilizate.

2.1.2. Poarta NU

Logigrama Schema electrică pe baza releelor Schema electrică pe baza DTL

Circuitul logic corespunzător trebuie să nege semnalul aplicat la intrare, deci să-i schimbe faza. Cel mai frecvent el se realizează cu ajutorul unui tranzistor în montaj EC, căruia i se aplică semnalul de intrare pe bază, iar semnalul de ieşire se culege de pe colector. La aplicarea nivelului înalt ("l" ) la intrare tranzistorul este în conducţie (saturat).

Tensiunea E cade preponderent pe rezistenţa din circuitul colectorului şi la ieşire va fi nivel mic ("0"). La aplicarea nivelului mic ("1") la intrare tranzistorul este blocat şi tensiunea E preponderent cade pe tranzistor şi la ieşire este nivel înalt ("l").

2.1.3. Poarta ŞI

Logigrama Schema electrică pe baza releelor Schema electrică pe baza DTL

X 1 Y Y

X

-EX1

Y

-E

+E

X1

X2

& Y YX1 X2 -E X1

1

X22

Y

-E

+E

Page 12: Microprocesoare

2.2. Circuite logice integrate unipolare. Tehnologie MOS - metal - oxid (izolator) -semiconductor.

Spre deosebire de tranzistoarele bipolare, la cele unipolare (cu efect de câmp - FET) conducţia curentului electric este asigurată de un singur tip de purtători de sarcină, în tranzistoarele FET (Field Effect Tranzistor) curentul este controlat de un câmp electric, care modulează conducţia canalului. Canalul poate fi cu conducţie de tip p (PMOS) sau cu conducţie de tip n (NMOS). Conducţia prin dispozitiv (mai concret prin canal) începe la o anumită valoare numită tensiune de prag. În circuitele integrate logice, de regulă, sunt formate tranzistoare cu efect de câmp cu grilă izolată, care au structura MOS - metal - oxid (izolator) - semiconductor.

а) b)Fig.7. NMOS tranzistor cu canal indus

а – schema de funcţionare; b - logigrama

Tranzistoarele FET prezintă faţă de tranzistoarele bipolare următoarele avantaje:

- Tranzistoarele unipolare au impedanţa de intrare foarte mare şi ele sunt dispozitive comandate în tensiune;

- În cazul porţilor electronice cu tranzistoare FET lipseşte dezavantajul acumulării şi disipării purtătorilor minoritari şi, prin urmare, timpii de comutare sunt determinaţi numai de încărcarea şi descărcarea capacităţilor tranzistorului;

- Deoarece în tranzistoarele unipolare circuitul este realizat de un singur tip de purtători de sarcină, probabilitatea proceselor de generare-recombinare este mult mai mică ca în tranzistoarele bipolare. Prin urmare, lipseşte zgomotul de generare-recombinare, fapt, care explică nivelul foarte mic de zgomot propriu în comparaţie cu tranzistoarele bipolare.

- Tranzistoarele FET prezintă o integrabilitate superioară faţă de tranzistoarele bipolare. Aria ocupată de un MOS FET în circuitul integrat este cu câteva ordine mai mic ca cea ocupată de un tranzistor bipolar.

G

D

SDRENASURSA

GRILA +OXID

Semiconductor

Page 13: Microprocesoare

- Tranzistoarele MOS FET se prestează foarte bine pentru utilizare ca element cu acţiune directă, deoarece semnalul logic "0" este chiar 0 V.

3. Circuite basculante bistabile

Circuitul, care are două stări stabile distincte, iar trecerea dintr-o stare în alta are loc rapid prin procese basculante amorsate de semnale de comandă, aplicate din exterior, se numeşte circuit basculant bistabil (CBB sau bistabil). Intr-un proces de basculare se produce o variaţie rapidă a mărimilor electrice (tensiune sau curent), datorită unei bucle de reacţie pozitivă. Procesul de basculare este un proces cumulativ care, odată amorsat, se dezvoltă în avalanşă. Prin urmare, semnalul de comandă determină intervalele de timp între treptele tensiunii de ieşire. Celor două nivele de tensiune la ieşirea bistabilului pot fi atribuite codurile „0" şi „l". Caracteristica principală este că bistabilul poate folosit ca celulă de memorie.

După criteriul posibilităţilor funcţionale deosebesc bistabile: RS, D, T, JK, (R - reset - restabilirea; S - set - stabilirea; D - delay – reţinere; J - jerk – brusc instala; К - kill – brusc deconecta; Т - toggle - bascula), iar în funcţie de modul de comandă: asincrone şi sincrone. Bistabilele asincrone au numai intrări informaţionale şi pot fi folosite ca comutatoare, numărătoare de impulsuri, divizoare de frecvenţă. Bistabilele sincrone au şi intrare de comandă (de tact) Clock (C), iar informaţia la intrări este analizată numai în prezenţa impulsului de comandă la intrarea de tact C. Bistabilele sincrone pot avea şi intrări informaţionale asincrone pentru stabilirea bistabilului în starea iniţială. În tehnica de calcul, de regulă, sunt folosite CBB sincrone.

Bistabilele pot fi comandate, atât prin aplicarea unui anumit nivel de tensiune la intrare, cât şi prin aplicarea unei anumite trepte de tensiune, în primul caz avem bistabil cu comandă statică, iar în cazul doi — bistabil cu comandă dinamică.

Pe simbolul bistabilului intrările informaţionale sunt indicate prin litera respectivă, iar ieşirea inversă , spre deosebire de cea directă Q, este simbolizată printr-un inel (de negaţie). Starea bistabilului este apreciată după starea ieşirii directe. Intrarea dinamică directă, care provoacă bascularea bistabilului la treaptă pozitivă (semnalul de intrare se schimbă de la „0" la „l") este simbolizată printr-un triunghi orientat spre înăuntru, iar intrarea dinamică inversă - printr-un triunghi orientat invers.

Circuite basculante bistabile RS asincrone

Denumirea provine de la cuvintele din limba engleză set - a stabili şi reset - a restabili, care indică funcţia, realizată de intrările respective S şi R. Bistabilul are două intrări informaţionale R şi S, pe care sunt posibile patru combinaţii de semnal logic. Acestor combinaţii le corespund anumite semnale la ieşirile Q şi Q, care sunt reprezentate în tabelul de adevăr. În acest tabel n-1 este momentul de timp, în care se aplică combinaţia respectivă, iar n, este momentul, în care s-a stabilit semnalul corespunzător la ieşirea bistabilului.

Din tabel observăm, că aplicarea nivelului „1" la intrarea S stabileşte bistabilul în starea „l", iar aplicarea nivelului „l" la intrarea R restabileşte CBB în starea „0". Combinaţia R=0 şi S=0 nu schimbă starea bistabilului, iar combinaţia R=l şi S=l este interzisă, deoarece starea bistabilului va fi nedeterminată şi în tabelul de adevăr este indicată prin X.

Verificarea:S = 0, R = 0 => ; ;

S = 1, R = 0 => ; ;

S = 0, R = 1 => ; ;

R 1 Q

1

QS

S

RQ

QT R S Qn-1 Qn Starea0011

0101

0/10/10/10/1

0/11/10/0X

PăstrareaStabilirea

RestabilireaInterzisă

S

R

Q

Page 14: Microprocesoare

а) Schema electrică b)Logigrama c) Tabelul adevărului d) Diagrama de timp

Fig.7. Bistabil RS asincron cu porţi NOR

а) Schema electrică b)Logigrama

Fig.8. Bistabil RS asincron cu porţi NAND

S & Q

&

QR

S

RQ

QT

Page 15: Microprocesoare

Недостаток асинхронного RS-триггера заключается в том, что есть опасность ложного срабатывания или несрабатывания при несинхронной подаче входных сигналов.

3.2. Синхронный (тактируемый) RS-триггер в отличие от асинхронного, реагирующего на входные сигналы в момент их подачи, реагирует на них только после поступления на вход синхронизации очередного сигнала синхронизации. Синхронный RS-триггер имеет управляющий сигнал С на входе (clok - основная синхронизация), который при С = 1 разрешает переключение по закону RS-триггера, при С = 0 триггер сохраняет свое состояние.

Функциональная схема, условное графическое обозначение синхронного RS-триггера и временные диаграммы его сигналов приведены на рис.9. Из временных диаграмм видно, что однотактный синхронный RS-триггер срабатывает по переднему фронту синхронизирующего импульса.

а) б) в)

Рис.9. Синхронный однотактный RS-триггер а) функциональная схема; б) графическое изображение; в) временная диаграмма

3.3 CBB de tip RS cu structură master-slaveAceste bistabile au structura formată din două trepte, ele sunt numite master-slave (stăpân-sclav). Bistabilul

RS cu structură MS este format din două bistabile conectate în serie, după cum este reprezentată în figura 10.- bistabil RS sincron la intrare T1 - prima treaptă (maşter),- bistabil RS sincron T2 - a două treaptă (slave),- invertor NOT.Stocarea informaţiei are loc în bistabilul ti odată cu aplicarea impulsului de tact (C=l). După dispariţia

semnalului de tact (C=0) informaţia este transmisă din bistabilul T1 în bistabilul T2. Prin urmare, întârzierea transmiterii informaţiei dintr-un bistabil în altul (din T1 în T2) este determinată de durata impulsului, aplicat la intrarea de tact C.

а) b) c)

Fig.10. Bistabilul de tip RS sincron cu structura MSа) schema; b) logigrama; c) diagrame temporale

S &

&

R

CS

RQ

QT SCR

Q

QT S

R

Q

C

SCR

Q

QTTSCR

T1 SCR

Q

QT2S

CR

1

S

R

Q

C

Page 16: Microprocesoare

3.4 CBB de tip DDenumirea provine de la cuvântul englez delay - reţinere. Circuitele bistabile de tip D au o singură intrare

informaţională - D. Nivelul de tensiune la ieşire corespunde nivelului de tensiune la intrarea D, dar cu o întârziere în timp.

Bascularea bistabilului este reţinută în timp până la aplicarea impulsului de tact (ClocK). În lipsa impulsului de tact (C=0) bistabilul este blocat şi la ieşirea bistabilului se păstrează starea precedentă ("l" sau "0"), în acest caz semnalul de comandă, aplicat la intrarea D, nu schimbă starea bistabilului. Dacă la intrarea C se aplică impulsul de tact, semnalul de la intrarea D se va găsi şi la ieşirea bistabilului.

Bistabilele D sunt folosite ca elemente de memorie în registre, numărătoare etc.

а) б) в)

Fig.11. Bistabilul de tip Dа) schema; б) logigrama; в) diagrame temporale

3.4 CBB de tip JKCircuite basculante bistabile de tip JK constituie o variantă îmbunătăţită a CBB de tip RS, în care este

exclusă starea interzisă. Rolul intrării S îl joacă intrarea J, iar rolul intrării R - intrarea K. Aplicarea simultană a impulsurilor pe J şi pe K determină bascularea circuitului în starea complementară celei în care se afla.

Aceste bistabile au structura formată din două trepte, ele sunt numite master-slave (stăpân-sclav). Bistabilul JK cu structură MS este format din două bistabile conectate în serie, după cum este reprezentată în figura 4.8:

Stocarea informaţiei are loc în bistabilul ti odată cu aplicarea impulsului de tact (C=1). După dispariţia semnalului de tact C=0 informaţia este transmisă din bistabilul ti în bistabilul T2. Prin urmare, întârzierea transmiterii informaţiei dintr-un bistabil în altul (din T1 în T2) este determinată de durata impulsului, aplicat la intrarea de tact C.

Bistabilele JK sunt universale, deoarece prin combinaţii simple pot fi formate bistabile de tip RS, D, T.

а) б) в)

Fig.12. Bistabilul de tip JKа) schema; б) logigrama; в) diagrame temporale

SCR

QT

1

D

CQ

QTD

C

SCR

QT2S

R

T1

1

&

&Q

JCK

QTT

Q

J

C

K

J

K

Q

C

D

Q

C

Page 17: Microprocesoare

3.5. Circuite basculante bistabile de tip TCircuitele basculante bistabile de tip T au o singură intrare de date (informaţională) şi o intrare de tact, care

în regim asincron poate lipsi. Dacă intrarea de date este pe nivel „0", ieşirea CBB îşi păstrează starea precedentă, iar dacă intrarea de date este pe nivel „l" starea CBB se schimbă. Prin urmare, bistabilul de tip T îşi schimbă starea la fiecare impuls aplicat la intrarea T. Aceste bistabile nu se produc atare, deoarece pot fi uşor căpătate prin conversia altor bistabile (RS, JK sau D).

În fig.13 este reprezentată conversia bistabilelor de tip JK sau de tip D în CBB de tip T :bistabil T asincron în baza unui bistabil JK - fîg.13.a,bistabil T sincron în baza unui bistabil JK - fig.13.b,bistabil T în baza unui bistabil D cu comandă dinamică - fig. 13.c.

Fig. 13. Conversia bistabilelor JK şi D în T

Функциональная схема, условное графическое обозначение счетного триггера на основе D-триггера и временные диаграммы его сигналов приведены на рис.14. При приходе синхронизирующего импульса триггер меняет свое состояние на противоположное, так как в него переписывается значение инверсного выхода.

а) б)

Рис.14. Счетный триггер на основе D-триггера а) функциональная схема; б) временная диаграмма

Функциональная схема, условное графическое обозначение счетного триггера на основе JK-триггера и временные диаграммы его сигналов приведены на рис.15. Так как на входе JK триггера присутствует комбинация J=K=1, то он изменяет свое состояние на обратное тому, в котором он находился.

а) б)

Рис.15. Счетный триггер на основе JK-триггера а) функциональная схема; б) временная диаграмма

C

D

QTT

Q

T

Q

Q

T

JCK

QTT

Q

T

+1

T

Q

Page 18: Microprocesoare

Tema 4. Dispozitive ale calculatoruluiPe baza bistabililor şi schemelor logice sunt realizate diferite dispozitive ale calculatorului. Cele mai

răspândite sunt registre, contoare, codificatoare, decodificătoare.

4.1. RegistreRegistre sunt circuite logice combinaţionale, care permit memorarea (stocarea), transferul, deplasarea şi

convertizarea informaţiei prezentate în cod binar. Fiecărui bit al codului binar îi corespunde o celulă de memorie în circuitul registrului. Registrele permit efectuarea unor operaţii logice (suma şi produsul logic pe biţi, etc.) şi operaţii de convertizare a codurilor binare (spre exemplu transformarea codului serie în cod paralel sau invers).

Registrul este format dintr-o serie de bistabile interconectate reciproc şi un dispozitiv de comandă semnalelor de intrare şi ieşire. Numărul de bistabile componente este determinat de numărul de biţi ai registrului. Fiind folosite ieşirile directe sau inverse ale bistabilelor informaţia din registru se poate citi, atât în cod direct, cât şi în cod invers.

Clasificarea registrelor se face în funcţie de modul de stocare şi modul de citire a informaţiei, în funcţie de modul de stocare şi modul de citire a informaţiei deosebim:

- registre de memorie (cu acces paralel), - registre de deplasare (cu acces serial), - registre combinate (paralel-serie).

În funcţie de prezentare a informaţiei stocate sau citite deosebim:- registre monofazice şi - registre parafazice.

În registrele monofazice informaţia este stocată numai în cod direct sau numai în cod invers, iar în registrele parafazice informaţia este stocată simultan, atât în cod direct, cât şi în cod invers. Citirea informaţiei, atât din registrele monofazice, cât şi din registrele parafazice se poate face atât în cod direct, cât şi în cod invers. Registrele pot fi simple sau universale (reversibile).

4.1.1. Registrul paralel de tipul D (pe baza bistabililor de tipul D) se foloseşte pentru păstrarea informaţiei. Registrele de memorie sunt utilizate pentru stocarea şi memorarea informaţiei binare în cod paralel (stocare simultană în toţi biţii registrului). Informaţia poate fi citită din registru de mai multe ori şi se păstrează în registru un timp nelimitat. Schema registrului paralel de tipul D este prezentată pe fig.16. Numărul de ordine a registrului, adică ordinul informaţiei (numărului binar) care poate fi înscris in registrul este egal cu numărul bistabililor folosite. De exemplu, registrul de ordinul N este compus din N bistabile. Dacă la intrările registrului este instalat cod binar X1...Xn, atunci la ivirea impulsului de tact (sincronizare) pe bara „Stocare” are loc înscrierea codului dat in registrul la ieşirile Q1...Qn, unde acest cod vor fi păstrat pană la ivirea următorului impuls de tact. Fiecărui bit ii corespunde bistabilul respectiv. Întrările comune „Setare” şi „Anulare” a registrului sunt folosite pentru instalarea sau la deteriorarea a tuturor bistabililor în mod forţat.

Fig.16. Registrul paralel de tipul D.

Schema registrului paralel pe baza bistabililor JK este analogică cu schema registrului de tipul D cu deosebirea că intrările "K" a bistabililor sunt unite cu intrările corespunzătoare "J" prin invertoare. Acest fapt determină funcţionarea bistabililor in regim "SET-RESET", excluzând regimurile "bascularea" (J=1, K=1) şi "păstrarea" (J=0, K=0) (fig.17).

SetareAnulareStocare

S D C R

Q1

S D C R

Q2

S D C R

Qn

T1 T2 Tn

X1 X2 Xn

Page 19: Microprocesoare

Fig.17. Registrul paralel pe baza bistabililor de tipul JK.

4.1.2. Registrul parafazic de tipul RS se foloseşte pentru înscrierea informaţiei (numărului) in cod binar si citirea informaţiei in cod binar DIRECT sau INVERS.

Iniţial toate bistabilele sunt resetate prin aplicarea unui impuls pe intrarea „Anulare" (unitate logică pe intrările R). Stocarea informaţiei în registru este realizată când se aplică semnal de comandă pe intrarea „Stocare", în acest caz unităţile logice de pe intrările porţilor logice Ti se aplică pe intrările S ale bistabilelor şi, prin urmare, codul de la intrare este stocat în registru. Informaţia se va păstra în registru până la următoarea procedură de anulare.

Pentru citirea codului direct se foloseşte intrare "Citire cod direct", pentru citirea codului invers - "Citire cod invers".

Fig.18. Registrul parafazic de tipul RS

4.1.3. Registrele de deplasare sunt circuite numerice, care la fiecare impuls de tact aplicat îşi deplasează conţinutul spre dreapta sau spre stânga cu câte o celulă. Aceste registre se realizează cu CBB de tipul D „master-slave", conectate în cascadă. Ieşirea fiecărui bistabil este legată la intrarea bistabilului următor, în timp ce tuturor bistabilelor li se aplică un semnal de tact comun, funcţionarea lor fiind sincronă

SetareAnulareStocare

S J C K R

Q1

S J C K R

Q2

S J C K R

Qn

T1 T2 Tn

X1 X2 Xn

S

R

T1Х1 &

&

1 Q1&

S

R

T2Х2 &

&

1 Q2&

S

R

TnХn &

&

1 Qn&

Stocare Anulare Citire cod direct

Citire cod invers

Page 20: Microprocesoare

În figura 19 este reprezentată schema unui registru de deplasare cu patru biţi cu bistabile D „master-slave". Stocarea informaţiei în registru este realizată în cod direct serie, biţii cărui se aplică pe intrarea D a bistabilului TTo sincron (simultan) cu impulsurile de tact aplicate pe intrarea C a tuturor bistabilelor. Aceleaşi impulsuri de tact comandă deplasarea codului stocat în registru spre dreapta, în timpul impulsului de tact în treptele „maşter" ale bistabilelor se stabileşte informaţia de la intrarea bistabilului (starea bistabilului precedent), iar după impulsul de tact (în pauze) starea respectivă se stabileşte în treapta a doua a bistabilelor.

După cum se observă, la fiecare impuls de tact conţinutul registrului se mută cu câte o poziţie spre dreapta, în consecinţă, semnalul de ieşire va fi identic cu cel de la intrare, dar întârziat cu un număr de perioade de tact egal cu numărul de celule din care a fost format registrul

Fig. 19. Registrul de plăsare de tipul Da) schema funcţională; b) diagrama timp

Page 21: Microprocesoare

4.2. Numărătoare de impulsuriNumărătoarele de impulsuri sunt circuite digitale, care permit stabilirea numărului de impulsuri, aplicate la

intrarea lor şi care menţin acest număr în absenţa aplicării unor alte impulsuri la intrare.Numărătoarele de impulsuri sunt folosite pentru divizarea frecvenţei, analiza numerică a unui anumit proces

ş.a. Numărătoarele sunt folosite în echipamente de măsurări şi de prelucrare digitală a informaţiei. De exemplu, în circuite de achiziţie de date. În tehnica de calcul numărătoarele servesc pentru formarea adreselor, numărarea ciclurilor în realizarea programei, numărarea paşilor la efectuarea operaţiilor de înmulţire şi împărţire.

Numărătoarele sunt formate din bistabile. Fiecărui bistabil component îi corespunde un rang adică un bit.Parametri principali ai numărătoarelor de impulsuri sunt:

- N - modulul de numărare este numărul maximal de impulsuri, care poate fi numărat de acest numărător şi depinde de numărul de biţi ai numărătorului.

- Frecventa maximă a impulsurilor, la care numărătorul funcţionează fără pierdere de informaţie.Toată varietatea de numărătoare poate fi clasificată în modul următor:Numărătoarele pot fi

- simple (unidirecţionale); - reversibile (bidirecţionale).Numărătoarele simple la rândul lor pot fi:- directe (cu adunare),- inverse (cu scădere).Numărătoarele reversibile pot funcţiona în ambele regimuri: cu adunare sau cu scădere.

În funcţie de modul de comandă numărătoarele pot fi- asincrone,- sincrone.

În funcţie de valoarea modulului de numărare deosebesc numărătoare- binare,- abinare.

În funcţie de modul, în care este realizat transportul informaţiei între bistabile deosebesc numărătoare- cu transport succesiv ,- cu transport paralel,- cu transport paralel-serie.

4.2.1. Numărător binar direct cu transport succesivPrin interconectarea mai multor bistabile de tip T în care legăm ieşirea Q a unui bistabil cu intrarea de tact a

următorului, obţinem schema unui numărător binar asincron direct. Numărătorul binar asincron funcţionează sub comanda unei serii de N impulsuri, care sunt înscrise treptat în numărător sub forma unor combinaţii de cod echivalente numerelor. Numărarea are loc în cod binar.

În fîg.20 este reprezentată schema (a) unui numărător binar direct cu trei biţi cu transport succesiv, format în baza bistabilelor de tip JK (T), iar prin tabelul (b) şi diagramele temporale (c) este explicată funcţionarea acestui numărător.

a) b) c)Fig.20. Schema (а), tabelul de comutaţii (b) şi diagrama temporală (c) numărătorului binar direct

4.2.2.Numărător binar invers cu transport succesivÎn acest caz impulsul iniţial, aplicat la intrarea „Set”, stabileşte în numărător codul maximal, după care

fiecare impuls de tact micşorează codul cu o unitate. Bascularea bistabilului din bitul următor are loc după bascularea bistabilului precedent (la ieşirea sa directă) din „0” în „l". Pentru a realiza circuitul unui numărător cu scădere intrarea de tact a bistabilului următor este conectată la ieşirea inversă a bistabilului precedent.

In fig.21 (a) este reprezentată schema unui numărător binar asincron cu trei biţi cu transport succesiv cu scădere, format în baza bistabilelor de tip JK (T), iar în fig.21 (c) prin diagramele temporale este explicată funcţionarea acestui numărător. Tabelul de comutaţii al numărătorului binar invers asincron cu trei biţi este reprezentat în tabelul 21 (b). După al opta impuls toate bistabile il revin în starea „l".

SetReset

+1

S J C K R

Q1

T1

C

S J C K R

Q3

T3

S J C K R

Q2

T2

S Q3 Q2 Q1

012345678

0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 10 0 0

C

Q1

Q2

Q3

C

Page 22: Microprocesoare

a) b) c)Fig.21. Schema (а), tabelul de comutaţii (b) şi diagrama temporală (c) numărătorului binar invers

4.2.3. Numărătoare abinareNumărătoarele de impulsuri ale căror modul de numărare este diferit de 2n se numesc numărătoare abinare.

Din analiza funcţionării numărătoarelor prezentate mai sus este clar că frecvenţa impulsurilor la ieşirea fiecărui bit este de două ori mai mică ca frecvenţa la intrarea bitului. Prin urmare fiecare bit al numărătorului binar efectuează divizarea frecvenţei la doi, iar factorul de divizare al numărătorului este egal cu modulul de numărare.

Numărătoarele abinare sunt create în baza unor numărătoare binare în care se realizează bucle de reacţie serie, paralele sau mixte. Mai frecvent este folosită reacţia paralelă. Pentru formarea unui numărător cu modulul de numărare N se procedează în modul următor:

- Se găseşte numărul necesar de bistabile n, reieşind din condiţia 2n-1<N<2n,- Se leagă toate bistabilele într-un circuit de numărător asincron cu transport succesiv.- Se găseşte numărul M, care este transferat în sistem binar, biţii codului găsit (M) reprezentaţi

prin unităţi indică numerele de ordine ale bistabilelor, care sunt legate prin bucle paralele de reacţie cu întrarea „Reset”.

In fig.22 este reprezentată schema unui numărător direct abinar asincron cu modulul de numărare N=5. Numărul necesar de bistabile este egal cu 3, fiind-că 22 < 5 < 23. Pentru contor direct legăm ieşirea Q a unui bistabil cu intrarea de tact a următorului. Numărul M=5 prezentăm în codul binar 1012.

Fig.22. Numărător direct abinar asincron cu modulul de numărare N=5

4.2.4. Numărătoarele reversibileNumărătoarele reversibile au două intrări de tact +1 şi -l. Dacă impulsurile de intrare vor fi aplicate la

intrarea +1 se va efectua numărarea directă, iar dacă impulsurile vor fi aplicate la intrarea -l se va efectua numărarea inversă. Intrările de instalare iniţială sunt D1, D2, D4, D8 şi C, întrare de anulare iniţială este R.

La ieşire „>15” apară semnal de tensiunea înaltă dacă pentru numărarea directă codul binar vor depăşi 11112.

Fig.24. Numărător reversibil К155ИЕ7

S J C K R

Q1

T1

C

S J C K R

Q3

T3

S J C K R

Q2

T2

SetReset

+1

&

D1

D2

D4

D8

C

R+1-1

CT2 124

8

>15<0

SetReset

+1

S J C K R

Q1

T1

C

S J C K R

Q3

T3

S J C K R

Q2

T2

SQ3 Q2 Q101234567

80 0 01 1 11 1 01 0 11 0 00 1 10 1 00 0 10 0 0

C

Q1

Q2

Q3

Q2

Q1

Page 23: Microprocesoare

4.2.5. Numărătoarele binar-zecimale

O categorie specială de numărătoare o reprezintă numărătoarele binar-zecimale. Numărătoarele binar-zecimale sunt folosite pe larg în aparatele digitale de măsură şi alte echipamente de afişare a informaţiei digitale în cod zecimal. Aceste numărătoare au căpătat denumirea de decadă. Ele se produc în formă de circuite integrate sau pot fi realizate cu circuite basculante bistabile. Altă metodă de creare a numărătoarelor abinare este exemplificată prin formarea unui numărător binar-zecimal, adică cu modulul de numărare N=10.

Numărătoarele binar-zecimale sunt legate în cascadă în aşa mod încât fiecare numărător va prezenta codul binar al unei cifre zecimale. Cu acest scop semnalul de pe bitul superior al numărătorului precedent este aplicat pe intrarea numărătorului următor.

4.2.5. Divizoarele de frecvenţă

Divizoarele de frecvenţă sunt circuite care formează la ieşire tot aşa o serie de impulsuri dreptunghiulare ca şi cele aplicate la intrare dar cu o frecvenţă de câteva ori mai mică. Divizoarele de frecvenţă se deosebesc de numărătoare, în numărătoare semnalele la ieşirile bistabilelor reprezintă codul necesar conform sistemului de numeraţie şi numărul de impulsuri aplicate la intrarea numărătoarelor, în divizoarele de frecvenţă consecutivitatea stărilor bistabilelor nu este importantă. Este important numai raportul între frecvenţa la ieşire şi la intrare. Consecutivitatea se alege reieşind din simplitatea legăturilor între bistabile.

4.3. Decodificatoare

Decodificatorul (decodorul) este un circuit logic combinaţional, care transformă codul, aplicat la intrare, în semnal la o anumită ieşire (sau la câteva ieşiri). Numărul maxim de linii distincte de ieşire m corespunde numărului de combinaţii posibile ale celor variabile binare de la intrare: m=2n. Dacă numărul de intrări corespunde expresiei m=2n, decodificatorul se numeşte complet, iar dacă m<2n , decodificatorul se numeşte incomplet.

Decodificarea este necesară în numeroase aplicaţii cum sunt adresarea memoriilor, afişarea numerică, multiplexarea datelor, etc. De regulă, pe intrările decodorului se aplică semnalul de la ieşirile registrului sau numărătorului, în care este format (stocat) codul numeric. Decodificatoarele sunt folosite:

- în dispozitive de comandă a microprocesoarelor, - pentru convertizarea codului paralel în cod serie, - pentru formarea distribuitoarelor de impulsuri pe diferite canale.

4.3.1. Decodificatoare de adresă

Decodificatoarele de adresă (spre exemplu, decodificatoare cu trei intrări) sunt circuite logice combinaţionale, care activează linia de ieşire a cărei adresă este prezentă pe intrări. Având în vedere, că numărul cuvintelor de cod distincte de n biţi este 2n, rezultă că un decodificator de adresă cu n intrări va avea 2n ieşiri distincte. Prin urmare, decodorul cu trei intrări de adresă are 23=8 ieşiri. La fiecare ieşire semnal apare numai pentru o anumită combinaţie a semnalelor de intrare. Starea fiecărei ieşiri este determinată de funcţiile respective prezentate în tabelul de funcţionare (vezi tabelul 4.1). Fiecare din aceste funcţii poate fi implementată cu porţi AND cu trei intrări, în fig.25 sunt reprezentate schema circuitului implementat cu porţi AND (a) şi simbolul decodificatorului de adresă cu trei intrări (b).

Tabelul 4.1x2 x1 x0 y7 y6 y5 y4 y3 y2 y1 y0

0 0 0 1 0 0 0 0 0 0 0

0 0 1 0 1 0 0 0 0 0 0

0 1 0 0 0 1 0 0 0 0 0

0 1 1 0 0 0 1 0 0 0 0

1 0 0 0 0 0 0 1 0 0 0

1 0 1 0 0 0 0 0 1 0 0

1 1 0 0 0 0 0 0 0 1 0

1 1 1 0 0 0 0 0 0 0 1

Page 24: Microprocesoare

Fig..25 Schema circuitului implementat cu porţi AND (a) şi simbolul decodificatorului de adresă cu trei intrări (b)

Decodificatorul analizat este de o treaptă (liniar). Avantajul acestui decodificator este viteza înaltă de comutaţie, deoarece timpul de propagare printr-un singur element este mic, iar dezavantajul - necesitatea porţilor logice cu multe (trei) intrări şi cerinţele înalte faţă de coeficienţii de sortanţă ai elementelor componente ale registrului (circuitul logic precedent).

Page 25: Microprocesoare

4.3.2. Decodifîcator BCD-Zecimal

În practică se întâlnesc frecvent situaţii, în care trebuie făcute decodificări dintr-un alt cod decât cel binar natural, de exemplu din codul BCD. în cele ce urmează va fi prezentat un astfel de decodifîcator din BCD în zecimal. Semnalul de nivel înalt ("l") la ieşirea respectivă a decodificatorului determină cifra zecimală, a cărui cod binar a fost aplicat la intrare.

4.3.3. Decodificator BCD-7 segmente

Decodificatorul este deseori folosit pentru reprezentarea vizuală a cifrelor (informaţiei digitale), de exemplu, de la ieşirea unui numărător sau registru. Decodificatorul este folosit în cazul tuburilor indicatoare, iar în cazul indicatoarelor cu 7 segmente luminoase sunt folosite decodificatoare cu şapte ieşiri.

Decodificatorul BCD-7 segmente este un circuit logic combinaţional cu patru intrări şi şapte ieşiri: a, b, c, d, e, f şi g. Tabelul de funcţionare a decodificatorului este reprezentat în tabelul 3.5. Pe cele patru intrări ale circuitului se aplică cuvântul de cod (codul BCD), iar semnalele de ieşire comandă segmentele indicatorului (a, b, c, d, e, f, g).

Условное графическое обозначение дешифратора на схеме и пример наращивания разрядности дешифраторов при использовании стандартных микросхем приведены на рис.28.

а) б)

124

8W0

W1

DC 012

...1415

124

8W0

W1

DC 012

...1415

X1

X2

X3

X4

X5

124

8W0

W1

DC 012

...1415

СИНХР

1

Y0

Y1

Y2

...Y14

Y15

Y16

Y17

Y18

...Y30

Y31

Page 26: Microprocesoare

Рис.28. Графическое обозначение дешифратора К155ИД3 (а) и наращивание разрядности дешифраторов при их объединении (б) (W0, W1 - входы микросхемы для выборки дешифратора)

4.4. Codificatoare

Codificatoarele sunt circuite logice combinaţionale, care realizează codificarea semnalelor (informaţiei), în fig. 3.2. sunt reprezentate schema de principiu şi simbolul unui codificator, care codifică orice cifră zecimală în cod binar. Prin apăsarea butonului respectiv cifrei se va căpăta la ieşire codul binar al acestei cifre. De exemplu, fiind apăsat butonul cifrei 9, tensiunea sursei de alimentare se va aplica la ieşirile l (20) şi 8 (23), iar la ieşirile 2 (21) şi 4 (22) semnalul va fi nul. Prin urmare, căpătăm codul 1001.

Метод построения функциональной схемы шифратора очень прост. Если номеру j входа, на котором присутствует единичный сигнал, соответствует двоичный код Cj, то данную входную цепь необходимо подвести через элементы ИЛИ к тем выходным разрядам, в которых содержатся единицы.

Page 27: Microprocesoare

Пример построения шифратора по заданной таблице преобразования, и графическое обозначение шифратора приведен на рис.29.

Так как номеру X1 входа соответствует код 000, то первый вход не соединяется ни с одним выходом; номеру X2 входа соответствует код 100, то этот вход соединен через элемент ИЛИ с выходом Y1 и т.д.

а) б) в) Рис.29. Шифраторы. Построение функциональной схемы (б) по заданной таблице преобразования (а). Графическое изображение шифратора типа К155ИВ1 (в)

X0 X1 X2 X3 X4 X5 X6 X7 Y1 Y2 Y31 0 0 0 0 0 0 0

0 1 0 0 0 0 0 00 0 1 0 0 0 0 00 0 0 1 0 0 0 00 0 0 0 1 0 0 00 0 0 0 0 1 0 00 0 0 0 0 0 1 0

0 0 0 0 0 0 0 10 0 01 0 00 1 01 1 00 0 11 0 10 1 1

1 1 1

X0

X1

X2

X3

X4

X5

X6

X7

Y1 Y2 Y3

1 1 1

0123456

7C

4

2

1

E

CD

Page 28: Microprocesoare

4.5. MultiplexoareMultiplexoarele sunt circuite logice combinaţionale, care permit trecerea datelor de la una din cele n intrări

la o ieşire unică. Selectarea intrării se face prin aplicarea cuvântului de cod (de adresă) de m biţi la intrările de adresă.Pentru fiecare intrare informaţională este rezervat un cod de adresă. Atunci când pe intrarea de autorizare

Enable se aplică nivelul zero logic E = O, multiplexorul selectează intrarea informaţională, a cărei cod de adresă este aplicat la intrările de adresă, şi o conectează la ieşirea Y.

în aşa mod formând diferite coduri de adresă pot fi transmise datele de pe diferite intrări informaţionale la ieşirea Y.

МУЛЬТИПЛЕКСОР - узел ЭВМ, обеспечивающий коммутацию одного из нескольких входных сигналов на один выходной. Выбор входного сигнала осуществляется в соответствии с кодом, поступающим на адресный управляющий вход. Релейный эквивалент, таблица функционирования, функциональная схема и графическое изображение мультиплексора приведены на рис.30.

a) б) в) г)Рис.30. Мультиплексор. Релейный эквивалент (а), таблица функционирования (б), функциональная

схема (в) и графическое изображение (г)

4.6. Demultiplexoare

Demultiplexoarele sunt circuite logice combinaţionale, care permit transmiterea datelor de pe o intrare de date comună pe una din cele n ieşiri selectate. Selectarea ieşirii se face prin aplicarea cuvântului de cod (de adresă) de m biţi la intrările de selecţie(de adresă).

Pentru fiecare ieşire este rezervat un cod de adresă. Atunci când pe intrarea de autorizare Enable se aplică nivelul zero logic E = O, demultiplexorul selectează ieşirea, a cărei cod de adresă este aplicat la intrările de adresă, şi o conectează la intrarea D.

În aşa mod formând diferite coduri de adresă pot fi transmise datele pe diferite ieşiri de pe intrarea informaţională D.

a) б) в) г)Рис.31. Демультиплексор. Релейный эквивалент (а), таблица функционирования (б), функциональная схема (в)

и графическое изображение (г)

X0

X1

X2

X3

A0

A1

YA0

A1

01

0123

Y

_Y

1&

&

&

&

X0

X1

X2

X3

X0

X1

X2

X3

A0

A1

C

Y

_Y

MUXA0 A1Y010

1 1X0

X1

X2

X3

DC

A1

A0 Y0

Y1

Y2

Y3

XA0

A1

01

0123

&

&

&

&

X

X

A0

A1

C

DMA0 A1X0 0

0 11 0

1 1Y0

Y1

Y2

Y3

DC

Y0

Y1

Y2

Y3

Y0

Y1

Y2

Y3

Page 29: Microprocesoare

4.6. SumatoareOperaţia fundamentală efectuată de calculatoare şi sisteme cu microprocesoare este adunarea. Operaţia de

scădere se reduce în adunarea primului termen (al descăzutului) cu complementul (în binar) al celui de al doilea termen (al scăzătorului). Înmulţirea se face prin adunări succesive, iar împărţirea prin scăderi succesive. Orice problemă sau operaţie matematică mai complexă se poate reduce (printr-o programare adecvată) la cele patru operaţii elementare, deci în ultimă instanţă la adunare. Iată de ce blocul, care efectuază adunarea în sistemele digitale, aşa numit sumator, reprezintă unul din blocurile cele mai importante ale unităţii de calcul aritmetic şi logic (ALU).

Conform sistemului de numeraţie şi codificare folosit în sistemul cu microprocesor sumatoarele sunt clasificate în sumatoare:

binare; zecimale; binar-zecimaleConform metodei de efectuare a operaţiei de adunaresumatoarele sunt clasificate în sumatoare: serie; paralel; paralel-serie.În sumatoarele serie operaţia de adunare este efectuatăconsecutiv începînd de la biţii inferiori (LSB) spre biţii

superiori (MSB), iar în sumatoarele paralel adunarea se face concomitent pe toţi biţii. În sumatoarele paralel-serie numerele sunt divizate îngrupe de biţi în care adunarea se face paralel, iar sumele parţiale sunt adunate în serie.

4.6.1. Semisumatorul elementarCel mai simplu sumator este semisumatorul elementar, care realizează suma cifrelor de pe ultima poziţie (rang

0) a două numere binare. Deoarece în acest sumator nu se ţine cont de transportul din bitul inferior, el este numit semisumator. Deoarece la adunarea a două numerele egale cu unitate se formează unitatea de transport spre bitul superior, semisumatorul are două ieşiri: pe ieşirea S este formată suma parţială (pe bitul 0) şi pe ieşirea P este format transportul către bitul superior. În fig. 32.a este reprezentat tabelul de funcţionare pentru semisumatorul elementar, din care rezultă forma analiticăa funcţiilor de ieşire:

S = X XOR YP = X AND Y

а) b) c)Fig.32. Tabelul de funcţionare (а), schema logică (b)

şi logigrama (c) ale semisumatorului elementar

4.6.2. Sumatorul elementarPentru sumarea a două numerele binare de mai mulţi biţi se adună succesiv biţii de acelaşi rang, adăugând şi

transportul rezultat din operaţia de adunare precedentă.Prin urmare, structura sumatorului este repetitivă: pentru fiecare rang se poate folosi o celulă elementară.

Această celulă elementară poartă numele de sumator complet. Ţinînd cont de transportul din rangul precedent sumatorului complet are trei semnale de intrare: câte una pentru biţii numerelor adunate şi una pentru transportul din rangul precedent. Sumarea va fi deci realizată prin conectarea în cascadă a celulelor elementare

Sumatorul elementar poate fi realizat pe baza semisumatoarelor.

а) b) c)Fig.33. Tabelul de funcţionare (а), schema logică (b)

şi logigrama (c) ale sumatorului elementar

XX YP S0 0

0 11 0

1 10 00 10 11 0

&

+

YP

S

X

Y

P

S

HS

P X YP S0 0 00 0 10 1 00 1 11 0 01 0 11 1 0

1 1 10 00 10 11 00 11 01 01 1

X

Y

P

S

HS

X

Y

P

S

HS

1 P

S

X

Y

P

X

Y

P

S

P

SM

Page 30: Microprocesoare

Adunarea a două numere de n biţi necesită sumatoarele complete, transportul considerat la sumarea biţilor cei mai puţin semnificativi fiind „0”, iar fiecare rezultat în urma unei sumări aplicînduse biţilor cu ponderea imediat superioară, ca în figura 34.

Dezavantajul sumatorului analizat cu transport succesiv îl constituie viteza mică de efectuare a operaţiei de adunare.

Fig.34. Schema logică ale sumatorului complet.

Тема 5. Синтез цифровых устройств на комбинационных схемах. Цифровые устройства имеют в основе логические элементы, которые реализуют булеву алгебру.

В связи с этим любую схему автоматического управления можно представить в виде булевой функции или набора булевых функций. На практике часто возникает задача реализации булевой функции при помощи логических элементов.

Перечислим основные этапы синтеза цифровых схем:1. Разработка алгоритма функционирования схемы;2. Построение формальной математической модели, описывающей алгоритм функционирования;3. Синтез структурной схемы и ее реализация на конкретных элементах.

Первый этап разрабатывается исходя из технического задания на проектирование, из интуиции проектировщика и знания им технологического процесса, которым необходимо управлять. По окончании этапа результат получают в виде таблиц истинности.

На втором этапе по таблице истинности осуществляется построение булевых функций. Существует несколько способов построения функций, наиболее простой из них - построение дизъюнктивно нормальной формы (ДНФ)

ДНФ логической функции представляется в виде логической суммы произведений, каждое из которых содержит все N переменных в прямом или инверсном виде. Для построения ДНФ выделяют те строки таблицы истинности, в которых значение функции равно 1. Для каждой выделенной строки составляют произведения, в которые переменные входят в прямом виде, если они равны 1 или в инверсном, если они равны 0.

а) б)

Рис.35. Синтез сумматора при помощи ДНФ. Таблица функционирования (а), функциональная схема (б)

Например, для сумматора (рис.35) при построении ДНФP1 необходимо выделить строки 4,6,7 и 8, а для ДНФS – строки 2, 3, 5 и 8. При этом соответствующие ДНФ имеют вид:

ДНФP1 = P*X*Y + P*X*Y + P*X*Y + P*X*Y

ДНФS = P*X*Y + P*X*Y + P*X*Y + P*X*Y На третьем этапе формальным подходом строят функциональную схему по полученной ДНФ.

X

Y

P

S

P

SMX

Y

P

S

P

SMX

Y

P

S

P

SMX

Y

P

S

P

SMX0

Y0

X1

Y1

X2

Y2

S2S1 S0

Xn

Yn

Sn

P X Y P1 S0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

0 00 10 11 00 11 01 01 1

P X Y P X Y P X Y P X Y P X Y P X Y P X Y P X Y

& & & &

1

P1

& & & &

1

S

Page 31: Microprocesoare

Классификация цифровых элементов

Рассмотренные функциональные узлы ЭВМ выпускаются промышленностью в виде интегральных схем (ИС), имеющих определенное условное обозначение.

По принятой системе обозначение ИС состоит из четырех элементов:- цифры, соответствующей конструктивно-технологической группе;- порядкового номера разработки ИС (обычно две-три цифры);- двух букв, определяющих функциональное назначение ИС;- порядкового номера разработки ИС в данной серии.

Для ИС, используемых в схемах широкого применения, перед кодом ИС ставится буква К. Например, интегральная схема К155ЛА1 относится к ИС широкого применения, конструктивно-технологическая группа 1,порядковый номер серии 55, выполняет логическую функцию И-НЕ (ЛА), имеет первый условный номер разработки по функциональному признаку.

Page 32: Microprocesoare

Tema 6. Microprocesor K580

6.1. Parametrii tehnici de bază şi structura funcţională a MP К580.В соответствии с ГОСТ 17021-88 («Микропроцессорные системы вычислительной техники. Термины

и определения»), микропроцессор (МП) – программно управляемое устройство, осуществляющее процесс приема и переработки цифровой информации и управления им, построенное на одной или нескольких БИС.

При знакомстве с МП необходимо иметь следующую информацию: архитектура МП; система его команд; какие устройства используют данный МП; сигналы управления; назначение выводов МП.

Понятие архитектуры относится к организации регистров цифрового устройства, разрядности шины адреса и шины данных, способы организации ВВОДА/ВЫВОДА.

Под системой команд понимают список операций, которые данный МП может выполнить. Включает в себя команды пересылок, арифметико-логические операции, команды передачи управления, ввода/вывода.

В данном разделе осуществляется знакомство с МП КР580 ИК80 (сокращенно К580), представляющий собой 8 разрядный однокристальный центральный процессор.

Характеристика К580 как центрального процессора предполагает, что для разработки функционально законченного изделия (специализированной МП системы или микрокомпьютера) к МП необходимо подключить память и средства ввода/вывода.

МП К580 рассчитан на разнообразные применения в качестве ядра системы, выполняющей обработку цифровых данных. Изготавливается по NМОП- технологии и выпускается в 40 контактном корпусе с двухсторонним расположением выводов (типа DIP). На кристалле расположено около 5000 транзисторов; напряжение питания +12, +5, -5 В; потребляемая мощность около 1 Вт; рабочий диапазон температур -10 +70

6.2. Функциональное назначение основных устройств МП системы.

Рис.36. Простейшая микропроцессорная система

На рис.36 представлена простейшая структурная схема МПС, в которой МП имеет 3 типа магистралей: адреса, данных и управления.

МП обрабатывает информацию в соответствии с программой - последовательностью команд, записанных в одном из блоков памяти. Считывание и выполнение команд осуществляется по тактирующим импульсам. Для получения кода команды МП формирует на шине адреса (ША) адрес ячейки памяти, в которой она записана, а по шине управления (ШУ) - управляющие сигналы, обеспечивающие режим считывания информации из памяти. Считанный из запоминающего устройства код поступает по шине данных (ШД) в МП, где он записывается в специальный регистр и в соответствии с записанным кодом выполняются операции, необходимые для реализации команд.

МП синхронизируется двухфазными сигналами с частотой 2 МГц от микросхемы генератора тактовых импульсов КР580 ГФ24. В течение одного периода возможны 2 группы событий: первая - во время действия синхросигнала Ф1, вторая - во время действия синхросигнала с фазой Ф2 (рис.37. ).

Рис.37. Функционирование двухтактного генератора тактовых импульсов

C

Ф1

Ф2

ГТИ

ОЗУ ПЗУ МИКРОПРОЦЕССОР

АЛУ СОЗУ УУ

КВВ УВВ

ШД

ШУ

ША

ПАМЯТЬ

Page 33: Microprocesoare

Память МП состоит из двух частей: энергонезависимое ПЗУ, допускающее только считывание хранящейся информации и полупроводниковое ОЗУ, допускающее выполнение операций как считывания, так и записи.

ПЗУ предназначено для хранения не меняющейся информации: таблиц функций, констант, ряд другой информации. Основное требование, предъявляемое к ПЗУ - неразрушаемость хранимой информации и энергонезависимость, т.е. способность сохранять информацию при отключении источника питания.

ОЗУ допускает как запись, так и считывание информации и предназначено для хранения программ пользователя, результатов вычислений, изменяющихся данных. При потере напряжения питания информация ОЗУ теряется.

При обращении к памяти МП выдает на ША шестнадцатибитный адрес, а на ШУ - управляющий сигнал, идентифицирующий тип операции. Адресное пространство МП К580 – 216 = 64 Кб.

Подсистема ввода/вывода представлена входными и выходными портами. В простейшем случае входные и выходные порты представляют собой буферные регистры с конкретными номерами (адресами). Связь портов с МП осуществляется посредством контроллеров ввода/вывода (КВВ). Количество портов ввода и вывода - по 256

Восьмиразрядное арифметико-логическое устройство (АЛУ) предназначено для осуществления по коду операции (КОП) арифметико-логических операций над данными. Одновременно АЛУ вырабатывает признаки результата. Схематично АЛУ может быть представлено в виде, показанном на рис.38. При выполнении арифметико-логических операций, как правило, один из операндов находится в аккумуляторе, туда же помещается результат.

Рис. 38. Структурная схема функционирования арифметико-логического устройства

Устройство управления координирует работу всех внутренних узлов МП и синхронизирует прием и передачу потоков информации. Устройство управления осуществляет следующие функции:

- обмен по шине данных для чтения команд и операндов; - выполнение операций в соответствии с заданным кодом операции; - регистрация результатов операции; - вычисление адреса следующей команды.После чтения команды она заносится из ОЗУ в регистр команд, где хранится в течении всего

машинного цикла. По коду команды и данным регистра флажков определяются необходимые действия с данными, и затем генерируется последовательность действий (микрокоманд) на выполнение команды. Таким образом деятельность устройства управления микропрограммируется (В этом смысле устройство управления МП является как бы "микро МП" в самом МП).

Структурная схема функционирования устройства управления приведены на рис.39

Рис.39. Структурная схема функционирования устройства управления

Признакирезультата

АЛУ

а0

Аа7

b0

Bb7

c0

Cc7

КОП

Блок микропрограммной

памяти

Блок генерации адреса

Дешифратор макрокоманд

Блок синхронизации

В операционный блок (АЛУ, СОЗУ)

От операционного блока (АЛУ, СОЗУ)

От устройства прерывания

Page 34: Microprocesoare

6.3. Arhitectura microprocesorului К580 din punct de vedere a programatorului Microprocesorul este o unitate electronică logică complicată şi o mare parte din elementele lui nu sunt

accesibile din exterior. Alcătuind programul pentru microcalculator programatorul se abstrage de la toată diversitatea elementelor MP şi are afacere numai cu sistemul de instrucţiuni şi un număr limitat de registre care sunt accesibile prin program. Acestea registrii se caracterizează prin cea ca ei pot fi folosiţi în instrucţiunile programului, iar conţinutul lor poate fi modificat, citit şi utilizat de programator. Registrii accesibili ocupă o mică parte din toţi registrii MP. Celelalte registre ai MP nu pot fi folosiţi în program. De acea se poate spune că din punct de vedere a programatorului MP prezintă o totalitate de registre accesibile prin program care într-un mod oricare au legătură cu celelalte componente ale MP cu scopul de a executa operaţiile corespunzătoare sistemului de instrucţiuni ai acestui MP. Deci registrele accesibile prin program şi sistemul de instrucţiuni este ceva principal despre care trebuie să ştie programatorul pentru a începe alcătuirea programului

Reprezentarea simplă a MP K580 din punct de vedere a programatorului este prezentată în fig.40.

RUG Registre de adresare 7 0 15 8 7 0

B B C

C

D D E

E

H H L

L

M SP

A PC

F A F PSW

Page 35: Microprocesoare

Fig.40. Arhitectura MP K580 din punct de vedere a programatorului

Programatorul are acces la 10 registre: 6 registre de uz general (RUG) de 8 biţi (B, C, D, E, H, L), registrul acumulator A şi registrul fanioanelor de condiţii F ambii de 8 biţi şi două registre de 16 biţi SP (indicatorul stivei) şi PC (contorul de program). În unele instrucţiuni pentru adresare şi cu alt scop se folosesc de odată o pereche de RUG una din (B,C), (D,E), (H,L). Adresarea la perechea de registre se face prin intermediul primei litere a perechii, deci B, D şi H respectiv. Conţinutul perechii de registre A şi F se numeşte ca cuvântul stării programului şi se semnează prin PSW.

Se examinăm pe scurt destinaţia registrelor.Registrul acumulator (A). La executarea de MP a instrucţiunilor aritmetice sau logice un operand trebuie

prealabil de alocat în acumulator, rezultatul operaţiei în totdeauna automat se înscrie în acumulator. In instrucţiunile de intrare-ieşire şi transferul în-din memorie datele din dispozitivele periferice se transfer în acumulator şi invers.

Registre de uz general (RUG). Acest grup de registre este nu alt ceva decât un mic bloc de memorie alocat însuşi în MP. Ele servesc la păstrarea temporală (supraoperativă) a informaţiei curente. Pentru adresarea indirectă RUG pot fi unite în pereche de registre (B, D şi H). De exemplu, celula memoriei, adresa căreia se află în perechea HL se notează prin M

Registrul indicatorilor de condiţii F. Acest registru are o însemnătate deosebită şi este destinat pentru păstrarea fanioanelor de condiţii în urma efectuării instrucţiunilor aritmetice şi logice. Registrul condiţiilor (sau fanioanelor) are 5 indicatoare de un bit în care se conţine informaţia despre starea MP (fig.41).

Page 36: Microprocesoare

S Z * AC * P * Cy

Page 37: Microprocesoare

Fig.41. Registrul F

Наиболее важный регистр - А (аккумулятор). Он используется во всех арифметико-логических операциях, операциях ввода/вывода и является наиболее узким местом при программировании. Функциональные возможности регистров B, C, D, E примерно одинаковы, H и L - более гибкие и об их особой роли будет рассказано ниже.

Особенность МП К580 заключается в том, что РОН допускается программно объединять в регистровые пары BC, DE и HL. При таком объединении из 8-битных регистров образуются 16-битные регистры, которые можно использовать для адресации памяти а также для хранения 16-битных данных при выполнении вычислений с повышенной точностью. Таким образом регистровая пара допускает двойную интерпретацию: адрес и 16-битные данные. Если регистровая пара применяется для адресации памяти, то она называется указателем памяти.

Наиболее гибкая из всех пар - HL пара. Объясняется это тем, что адресуемый ею байт в памяти считается "регистром" M микропроцессора (от МЕМОRY). Все команды, в которых фигурируют явные регистры МП допускают и указание "регистра" М. (Например, можно переслать его содержимое в любой регистр, сложить его с аккумулятором и т.п.). Подобный способ адресации называется косвенная адресация. Его преимущества: команды короткие; изменением содержимого регистровой пары при помощи одной и той же команды можно обращаться к разным ячейкам памяти, что удобно при обработке регулярных структур данных (массивов).

Как видно из программной модели, в МП есть еще три специализированных регистра. Два из них - счетчик команд РС и указатель стека SP имеют длину 16 бит и функционируют только как указатели памяти, а регистр флажков F предназначен для регистрации признаков результатов операций. Остановимся вкратце на функциях этих регистров.

При выполнении программы необходимо "следить" за отдельными командами, так, чтобы к моменту окончания текущей команды в специальном регистре МП был образован адрес следующей команды. Такую функцию и выполняет РС.

Всякий раз, когда МП считывает из памяти очередной байт команды, осуществляется увеличение PC на 1 (инкремент РС). Следовательно, к окончанию выборки всей текущей команды, в PC образуется адрес следующей по порядку команды. Действительно, команды МП К580 могут иметь длину от 1 до 3 байт. При выполнении однобайтной команды PC увеличится на 1, так как считан всего один байт команды; для двухбайтной команды PC увеличится на 2, так как считано два байта; для трехбайтной команды PC увеличится на 3, так как считано три байта.

В любом случае, независимо от длины текущей команды к моменту окончания выборки команды в PC образуется адрес следующей команды.

Если реализуется естественный порядок выполнения команд, то по окончании текущей команды МП обращается по адресу, сформированному к этому моменту в PC, т.е. к следующей по порядку команде. При нарушении естественного порядка выполнения программы (при использовании команд передачи управления, обращения к подпрограммам и т.п.), сами команды задают адрес очередной команды (адрес перехода). Очевидно, что для осуществления передачи управления, команда должна просто загрузить в PC адрес перехода и МП обратится за следующей командой по этому адресу.

Page 38: Microprocesoare

S Z * AC * P * C

Рис.41. Формат регистра флажковРегистр флажков F, формат которого показан на рис.41, имеет длину 8 бит, но используется в нем

только 5 бит. Команды воздействуют на флажки по разному, но, в общем, они показывают следующие признаки результата:

C - (Carry-перенос) - флажок переноса в операциях сложения(вычитания) устанавливается в 1 при наличии переноса(заема) из старшего бита результата; по существу этот флажок можно считать расширением результата на 1 бит влево;

Z - (Zero-нуль) - флажок нуля устанавливается в 1 при получении нулевого результата;S - (Sign-знак) - флажок знака своим состоянием повторяет значение старшего (знакового) бита

результата (0 для положительного, 1 для отрицательного);P - (Parity-четность) - флажок паритета или четности, устанавливается в 1, если результат содержит

четное число единиц;AC - (Auxiliary Carry - вспомогательный перенос) - флажок вспомогательного переноса,

устанавливается в 1 при наличии переноса(заема) из младшей тетрады результата в старшую.Наиболее интенсивно в вычислительных алгоритмах используется флажок C. Именно благодаря ему

малоразрядный МП может оперировать числами произвольной разрядности. Флажок Z в основном предназначен для организации циклических вычислений (проверка счетчика цикла), флажок AC позволяет работать с десятичными числами, а P - для связных применений МП.

Регистр флажков и аккумулятор объединяются в регистровую пару, содержащую слово состояния процессора PSW (Processor Status Word). Данная регистровая пара используется в двух стековых командах : POP PSW и PUSH PSW.

Указатель стека SP (Stack Pointer) предназначен для адресации вершины стека (последней занятой ячейки в области стековой памяти. Стек представляет собой область ОЗУ со своеобразным принципом работы "последним зашел -первым вышел" (LIFO -Last In First Out). По существу стек как бы расширяет регистры МП в ОЗУ.

Содержимое любого регистра МП можно поместить в стек с помощью операции PUSH, а из стека извлечь последние включенные в него данные с помощью операции POP. При включении данные как бы "кладутся" сверху ранее занятых ячеек стека, а при извлечении "берутся" из верхней ячейки стека.

В МП К580 обе стековые операции выполняются с 16-ти битовыми словами, т.е. в стек можно включать только содержимое регистровой пары и извлекать из стека только в регистровую пару. На рис.42 показано состояние стека при выполнении команд PUSH H, PUSH B, POP B, POP H.

КомандаPUSH Hсохранит

содержимое регистровой пары Н, SP

уменьшится на 2

КомандаPUSH Всохранит

содержимое регистровой пары В, SP

уменьшится на 2

КомандаPОР В

восстановит содержимое регистровой пары В, SP увеличится

на 2

КомандаPОР Н

восстановит содержимое регистровой пары Н, SP

увеличится на 2

(C) (C) (C)(B) (B) (B)

(L) (L) (L) (L)(H) (H) (H) (H)

SP

Page 39: Microprocesoare

Рис.42. Состояние стека при выполнении команд PUSH и POPСтек часто используется при выполнении стандартных операций: обслуживание запросов

прерываний, вычисление функций, временных задержках.Реагируя на внешние и внутренние прерывания МП должен переключиться с текущей программы на

другую программу, называемую обработчиком прерываний. Такое переключение необходимо осуществить так, чтобы после обслуживания прерывания возобновить программу "как ни в чем не бывало". Для этого требуется где-то временно сохранить содержимое используемых обработчиком прерываний регистров МП ( в предельном случае -содержимое всех регистров) на время его работы. Удобным временным "хранилищем" состояния МП является стек.

Стек применяется для автоматического запоминания адреса возврата при вызовах подпрограмм. На диаграмме поясняется процесс обращения к подпрограммам. По команде CALL содержимое PC (адрес возврата) записывается в стек, а в PC записывается адрес вызываемой подпрограммы, что обеспечивает ее выполнение. По команде RETURN в PC загружается содержимое стека (адрес возврата), что обеспечивает выполнение команды следующей за командой CALL.

В языках высокого уровня стек используется для передачи параметров подпрограммам (перед вызовом подпрограмм параметры включаются в стек, а затем эти данные используются подпрограммой).

6.4. Структура МП К580

Рис. 43. Структурная схема МП К580

На рис.43 представлена структурная схема МП К580. Преобразование 8 разрядных данных выполняется в АЛУ, которое связано посредством внутренней шины данных с внутренними регистрами СОЗУ и буфером информационной магистрали. Обрабатываемые данные могут поступать в АЛУ от внешнего источника (ШД) или от одного из внутренних регистров A-L. при выполнении операции в регистр признаков записываются признаки выполняемых операций.

А БРгД

БРгА

F РгК

АДшКАЛУ

ПР

ЕР

ЫВ

АН

ИЕ

ЗАХ

ВА

Т

ГО

ТО

ВН

ОС

ТЬ

ЧТ

ЕН

ИЕ

/ЗА

ПИ

СЬ

ФО

РМ

ИР

ОВ

, М

АШ

ИН

НЫ

Х

ЦИ

КЛ

ОВ

I

NT

IN

TE

HO

LD

HL

DA

RE

AD

Y

WA

IT

_

__

WR

DB

IN

RE

SE

T

C

1

C

2S

YN

C

12+5-5

GND

МультиплексорВыбор

регистраFAСхемы

ИнкрементаBCDEHLSP

PC СОЗУ

Буферный Регистр Адреса

Буферный Регистр Данных

Внутренняя шина данных

ШДD0 D7

A0 A15

ШA

Арифметико-логическое устройство

Page 40: Microprocesoare

СОЗУ включает в себя 8-разрядные регистры A-L, которые в программах могут быть использованы и как три 16-ти разрядных регистра (B, D, H). Программный счетчик (PC) используется для хранения адреса выполняемой команды. Содержимое PC автоматически изменяется после выбора каждого байта команды, что позволяет к окончанию выборки всей команды получить в нем адрес следующей команды. Указатель стека (SP) хранит адрес последней занятой ячейки в области стековой памяти. Стековая память используется для хранения содержимого регистровых пар, для запоминания адреса возврата из подпрограмм и т.п. Буферные регистры адреса и данных (БРД и БРА) состоят из регистров- защелок на основе D-триггеров и выходной схемы с тремя состояниями (0, 1 и высоко-импедансное состояние, когда регистр оказывается отключенным от шины).

Устройство управления (УУ) координирует работу всех внутренних узлов МП и синхронизирует прием и передачу потоков информации. После извлечения из ОЗУ код исполняемой команды поступает в РЕГИСТР КОМАНД и после дешифрации устройством управления (УУ) в соответствии с записанным кодом формирует управляющие сигналы на внутренние и внешние блоки МПС.

6.5. Шина управления МП. Внешние сигналы МПИз структурной схемы МП видно, что обрабатываемые числа, коды выполняемых команд и

результаты вычисления вводятся и выводятся по одной и той же ШД. Чтобы различать назначение информации, передаваемой по этой магистрали, используется строго определенная последовательность выполнения команд, которая задается импульсами С1 и С2 ГТИ и сигналами шины управления (ШУ). Шесть выходов ШУ (INTE, HLDA, WAIT, WR, DBIN, SYNC) несут сигналы управления и синхронизации всем прочим элементам системы. Четыре входа (READY, HOLD, INT, RESET) являются входами УУ, которые воспринимают информацию, поступающую из системы.

Перечисленные линии и составляют ШУ МПС, которая используется для указания элементам и отдельным узлам микроЭВМ на тип выполняемой операции.

___ Линии ШУ имеют следующие названия и назначение: WR (Запись) - сигнал на линии указывает интервал времени, на котором данные из МП

записываются в ОЗУ или ВУ;

DBIN (Чтение) - сигнал на линии указывает интервал времени, на котором данные из ОЗУ или ВУ считываются в МП;

INT/INTE - сигнал запроса на обслуживание прерывания/сигнал разрешения прерывания;

HOLD/HLDA (Захват/Подтверждение захвата) - переводит МП в состояние захвата, при котором БРД и БРА переходят в состояние высокого импеданса, тем самым отключая МП от ШД и ША/Подтверждение захвата. На протяжении данного интервала возможен прямой доступ к ОЗУ (например, для ввода данных, минуя МП);

SYNC - сигнал, определяющий начало машинного цикла;

READY (Готовность) - сигнал готовности, информирует МП что данные из ВУ переданы на ШД (что необходимо в случае работы МП с более медленно работающим ВУ). При отсутствии сигнала МП переходит в состояние WAIT (Ожидание);

RESET (Сброс) - сигнал, обеспечивающий установку всех устройств МП в начальное состояние; МП К580 помещается в корпусе интегральной схемы с 40 выводами с двухрядной упаковкой выводов

(DIP - Dual In-line Package). МП может поставляться в пластмассовом и в керамическом корпусе (МП в керамическом корпусе используется при повышенных температурах). Отметим способы определения положения вывода 1 микросхемы. Отметкой, позволяющей определить вывод 1 интегральной схемы является либо маленькая точка слева, либо вырез в корпусе ИС. Вывод 1 находится сразу слева от этой метки. Далее выводы нумеруются в направлении, обратном ходу часовой стрелки при виде на ИС сверху.

+12+5-5

GND

C1C2

D0

D1

D2

D3

D4

D5

D6

D7

INTHOLD

READYRESET

A0

A2

A3

A4

A5

A6

A7

A8

A9

A10

A11

A12

A13

A14

A15

INTEHLDAWAITWR

DBINSYNC

CPU

Page 41: Microprocesoare

Рис.44. Условное изображение МП К580

Условное изображение МП К580 представлено на рис.44. ИС имеет 40 выводов, из которых 4 используется для питания, 12 для управления МП, 16 для адресации ячеек памяти и 8 для передачи данных.

Для питания микросхемы используется три источника питания: 12В, +5В, -5В. Один вывод (ЗЕМЛЯ) - общий; 16 выводов А0-А15 позволяют обратиться к 65635 ячейкам памяти с адресами от 0000 до FFFF; 8 выводов шины данных D0-D7 обеспечивают организацию двунаправленной передачи информации между МП и памятью (или УВВ); 12 управляющих сигналов имеют функциональное назначение, рассмотренное выше.

6.6. Временные диаграммы работы МП К580Любая команда исполняется за время, называемое КОМАНДНЫМ ЦИКЛОМ, который реализуется

за 1-5 машинных цикла. Под МАШИННЫМ ЦИКЛОМ будем понимать время, требуемое для обмена одним словом по ШД или выполнения команды, определяемой одним машинным словом. Машинный цикл может состоять из 3, 4 или 5 тактов, в зависимости от сложности выполняемой команды. (В полном командном цикле содержится от 4 до 18 тактов, а время выполнения команды при тактовой частоте 2 МГц колеблется от 2 до 9 мкс.).

Для МП К580 существует 10 различных типов машинных циклов: извлечение кода команды (М1), чтение и запись данных в память, чтение и запись данных в стек, ввод и вывод данных во внешнее устройство, цикл обслуживания прерывания, останов и обслуживание прерывания при останове. В каждом из названных циклов МП по разному взаимодействует с подключенными к нему устройствами.

Для согласованного взаимодействия с внешними устройствами МП в каждом машинном цикле формирует управляющую информацию для внешних устройств (слово состояния), настраивая их на необходимый режим работы. Слово состояния (СС) выдается МП на магистраль данных лишь в первом такте, а должно использоваться на протяжении всего машинного цикла, поэтому его необходимо записать в специальный Регистр Слова Состояния. На рис.45 приведена схема записи слова состояния. Запись осуществляется с использованием сигнала SYNC, формирующимся в начале каждого цикла, и синхросигнала С1.

Рис. 45. Схема записи слова состояния в РгСС.

В качестве примера рассмотрим временную диаграмму выполнения команды IN 18 (ввод данных с внешнего устройства номер 18 в Аккумулятор). Команда занимает 2 байта. Первый байт содержит код операции, второй байт указывает адрес ВУ, с которого должна приниматься информация.

Выполняется команда за 3 машинных цикла (рис.46). В первом цикле М1 считывается код команды (и определяется, что необходимо считать еще один байт с адресом ВУ), во втором цикле М2 считывается адрес ВУ, записанный в следующей ячейке памяти, в цикле М3 осуществляется ввод информации с ВУ.

М1 М2 М3

Т1 Т2 Т3 Т4 Т1 Т2 Т3 Т1 Т2 Т3

МП

SYNC Рг

СС

&С2

ШД

СС

СС

С1

С2

SYNC

ШД

РгСС

Т1 Т2

Page 42: Microprocesoare

Рис. 46. Временная диаграмма выполнения команды IN 18

В такте Т1 цикла М1, счетчик команд РС выдает на ША адрес ячейки памяти, в которой записана исполняемая команда. На ШД формируется код, соответствующий Слову Состояния выполняемого цикла (М1-считывание кода операции). Во время импульса SYNC Слово Состояния записывается в Регистр Слова Состояния и остается в нем на протяжении всего машинного цикла М1. В соответствии со Словом Состояния к ШД подключается своими выходами память в которой записана исполняемая команда. Код в ШД в цикле М1 будет соответствовать содержимому ячейки, адрес которой выставлен на ША.

В такте Т2 цикла М1 анализируется состояние сигналов HOLD, READY, формируемых внешними устройствами и состояния HALT (останов) МП. Если к моменту появления импульса Ф2 на шине READY установлен 0, то МП переходит в режим WAIT (Ожидание). В этом режиме приостанавливается процесс обработки данных и формируется WAIT=1, подтверждающий это состояние. Длительность этого режима измеряется целым числом тактов и продолжается до появления логической 1 на входе READY.

В такте Т3 производится запись данных в Регистр Команд. В такте Т4 Дешифратор Команд расшифровывает код команды и определяет последовательность ее исполнения. (В данном случае необходимо ввести второй байт команды в цикле М2 и данные с ВУ в цикле М3).

В соответствии с этим в такте Т1 цикла М2 на ША формируется адрес следующей за кодом операции ячейки, на ШД -Слово Состояния, задающее режим чтения данных. Такты Т1 и Т2 аналогичны для таких же тактов цикла М1. В такте Т3 производится запись не в Регистр Команд, а в Регистр Адреса.

В такте Т1 цикла М3 на ША выставляется адрес ВУ, записанный в предыдущем цикле в Регистр Адреса, на магистрали ШД - Слово Состояния, соответствующее циклу ввода данных из внешнего устройства. В этом цикле от ШД отключаются все блоки (ОЗУ, ПЗУ, ВУ) кроме ВУ, адрес которого сформирован на ША. Такты Т2 и Т3 аналогичны соответствующим тактам М1. Отличие заключается в том, что информация с ШД записывается в такте Т3 в регистр А (Аккумулятор).

Тема 7. ПРОГРАММИРОВАНИЕ МИКРОПРОЦЕССОРА

7.1. Программирование МППрограммирование - это описание последовательности действий, которые МП должен выполнить для

решения поставленной задачи. Программирование включает следующие этапы:- составление алгоритма решения задачи или описание процесса с учетом возможностей МП;- составление программы на языке МП посредством команд, которые МП может выполнить;

СС

М1

С1

С2

SYNC

ШД

РгСС

ША

СС ССКод команды Адрес ВУ Данные с ВУ

Чтение данных Ввод из ВУ

Адрес команды Адрес команды +1 Адрес ВУ

Page 43: Microprocesoare

- отладка программы, в процессе которой программа загружается в МП и осуществляется попытка ее выполнить.

Напомним, что МП обрабатывает информацию в соответствии с последовательностью команд, записанных в памяти, при этом все команды представлены в МАШИННОМ КОДЕ - совокупности сигналов высокого и низкого уровня.

Приведем пример программы на машинном языке:00111110001111100010111100110010000000000011111001110110

Программа в двоичном коде очень громоздкая, понять ее практически невозможно.Программа на машинном языке становится проще для восприятия, когда она представлена в

шестнадцатиричном коде, как показано ниже: 3E 3E 2F 32 00 3E 76

Хотя программа записана в шестнадцатиричных кодах, все равно считается, что она на машинном языке (учитывая, что перевод шестнадцатиричных кодов в двоичную систему осуществляется заменой каждой шестнадцатиричной цифры соответствующей двоичной тетрадой). Даже записанная в шестнадцатиричных кодах программа все еще трудна для восприятия. (Так, например, код 3E трижды встречается в программе, и каждый раз этот код имеет разный смысл: в первый раз это код операции, во второй - данные, в третий - адрес).

На обычном человеческом языке программа выглядит следующим образом:ЗАГРУЗИТЬ В АККУМУЛЯТОР ЧИСЛО 3EИНВЕРТИРОВАТЬ АККУМУЛЯТОРЗАПИСАТЬ ЕГО СОДЕРЖИМОЕ ПО АДРЕСУ 3E00ОСТАНОВИТЬ МИКРОПРОЦЕССОР

Возникает вопрос: как перейти от этой формы человеческого языка (длинной и сложной для МП) к машинному языку? Ответ состоит в использовании языка АССЕМБЛЕРа. ассемблер использует слова и фразы, посредством мнемокода (от греческого МНЕМО- искусство запоминания) преобразуя их в машинный код МП. Так как каждый МП имеет свою систему команд, то ассемблер называют МАШИННО-ОРИЕНТИРОВАННЫМ языком.

Для МП К580 обычно фраза на языке ассемблера будет соответствовать выражению длиной от 1 до 3 байт машинного языка. Приведенная выше программа на языке ассемблер, записанная человеком, выглядит следующим образом:

MVI A,3ECMASTA 3E00HLT

Ассемблерная программа состоит из последовательности строк, имеющих следующий формат:

МеткаМнемокод

КомментарийМнемоника Операнд

MVICMASTAHLT

A,03

3E00

Загрузить в аккумулятор число 3ЕИнвертировать аккумуляторСохранить аккумулятор по адресу 3Е00Остановить микропроцессор

Page 44: Microprocesoare

Поле метки позволяет задавать в символическом виде адрес команды. Длина метки -до 6 символов, из которых первый - буква. После метки в ассемблерной программе ставится двоеточие.

Следующее поле служит для записи точной мнемоники, установленной фирмой разработчиком, которая указывает операцию для выполнения. В поле операндов содержится информация о регистрах, данных, адресах, необходимых для выполнения команды. Используя информацию полей мнемокода можно выдать соответствующий машинный код.

Информация поля комментариев не учитывается ассемблером, но очень важна для понимания и чтения программы.

Написанная в мнемокодах программа ассемблируется, т.е. представляется в виде:

АдресМашинный

кодМетка

МнемокодКомментарий

Мнемоника Операнд0800080108020803080408050806

3E3E2F32003E76

MVI

CMASTA

HLT

A,03

3E00

Загрузить в аккумулятор число 3Е

Инвертировать аккумуляторСохранить аккумулятор по адресу 3Е00

Остановить микропроцессор

Page 45: Microprocesoare

Таким образом задача ассемблирования состоит из следующих этапов:1. Перевод мнемокода на машинный язык.2. Назначение последовательно ячеек памяти каждому коду операции и операнду.

Данные операции осуществляются либо на машине при помощи специальных программ-трансляторов (Турбо-ассемблер, Макро-ассемблер), либо вручную, используя таблицы кодов команд. При этом представленные программы носят название исходной и объектной.

В отличии от языков высокого уровня (ФОРТРАН, PL, ПАСКАЛЬ, БЕЙСИК), в которых каждой команде обычно соответствует 20-30 машинных команд, ассемблер относится к языкам низшего уровня. Такие программы почти не содержат числовых значений, их заменяют символические имена, мнемоника команд, метки адресов, идентификаторы переменных и констант. Машинный язык и язык ассемблер отражают аппаратные средства и обеспечивают реализацию максимальных возможностей МПС

7.2. Система команд.Возможности любого процессора по преобразованию исходных данных определяются системой

команд. Разные процессоры имеют различные системы команд, поэтому ассемблер называют машинно-ориентированным языком. В данном разделе рассмотрим команды, выполняемые микропроцессором КР580ИК80.

Предварительные замечания и соглашения:а) команды на языке ассемблер имеют длину от 1 до 3 байт, 1-й байт всегда является кодом операции.б) наличие буквы I в мнемонике команды указывает, что необходимые данные имеются непосредственно в команде. Пример : MVI A,3E (ЗАГРУЗИТЬ В РЕГИСТР А ЧИСЛО 3Е)

Число 3Е находится непосредственно в командев) буква X в мнемонике команды указывает на то, что в качестве операнда используется регистровая пара. Примеры : LXI B, 3E00 (ЗАГРУЗИТЬ В РЕГИСТРОВУЮ ПАРУ ВС ЧИСЛО 3Е00) STAX B (СОХРАНИТЬ СОДЕРЖИМОЕ АККУМУЛЯТОРА ПО АДРЕСУ,

УКАЗАННОМУ В РЕГИСТРОВОЙ ПАРЕ ВС)г) буква М в командах с регистровой адресацией указывает не регистр, а ячейку памяти, адрес которой находится

в указателе адреса (паре HL). Подобный способ адресации называется косвенно-регистровой адресацией. Примеры : MOV M, B (ПЕРЕСЛАТЬ СОДЕРЖИМОЕ РЕГИСТРА В ПО АДРЕСУ (HL))

MVI M, 3E (ЗАГРУЗИТЬ ПО АДРЕСУ (HL) ЧИСЛО 3E)д) в дальнейшем тексте приняты сокращения:

byte - константа длиной 8 бит. (Обычно второй байт команды);data - константа длиной 16 бит. (2-й и 3-й байты команды);adr - 16-битовый адрес. (2-й и 3-й байты команды);port - 8-разрядный адрес УВВ. (2-й байт команды);R,R1,R2 - один из восьми регистров общего назначения (A, B, C, D, E, H, L, M);rp - одна из регистровых пар (BC, DE, HL, PSW)

е) в () заключено содержимое ячейки памяти или регистра, имя которого указано в скобках.

В приведенной ниже таблице 7.1. приведен перечень команд МП К580Табл.7.1.

Система команд микропроцессора КР580ИК80

Page 46: Microprocesoare

Команды пересылки и ВВОДА/ВЫВОДАКоманды передачи

управления

Команды арифметических и логических операций

Move

А,А 7FA,A 78A,C 79

A,D 7AMOV A,E 7B

A,H 7CA,L 7DA,M 7E

Move

E,A 5FE,B 58E,C 59E,D 5A

MOV E,E 5BE,H 5CE,L 5DE,M 5E

Move immediate

A, byte 3E B, byte 06 C, byte 0E D, byte 16

MVI E, byte 1EH, byte 26 L, byte 2E M, byte 36

Jump

JMP adr C3JNZ adr C2JZ adr CA

JNC adr D2JC adr DAJPO adr E2JPE adr EA

JP adr F2JM adr FA

PSHL adr E9

Add

A 87 B 80 C 81

ADD D 82 E 83 H 84 L 85

M 86

Increment

A 3C B 04 C 0C

INR D 14 E 1C H 24 L 2C M 34

Logical

A A7 B A0 C A1

ANA D A2 E A3 H A4 L A5

M A6

B,A 47B,B 40B,C 41 B,D 42

MOV B,E 43B,H 44B,L 45

B,M 46

H,A 67H,B 60H,C 61H,D 62

MOV H,E 63H,H 64H,L 65

H,M 66

Load/StoreLDAX B 0ALDAX D 1ALHLD adr 2ALDA adr 3ASTAX B 02 STAX D 12 SHLD adr 22 STA adr 32

CallCALL adr CDCNZ adr C4CZ adr CC

CNC adr D4CC adr DCCPO adr E4CPE adr EC

CP adr F4CM adr FC

A 8F B 88 C 89

ADC D 8A E 8B H 8C L 8D M 8E

B 03INX D 13

H 23 SP 33

A AF B A8 C A9

XRA D AA E AB H AC L AD M AE

C,A 4FC,B 48C,C 49

C,D 4AMOV C,E 4B

C,H 4CC,L 4DC,M 4E

L,A 6FL,B 68L,C 69

L,D 6AMOV L,E 6B

L,H 6CL,L 6DL,M 6E

Load immediate

B, date 01D, date 11

LXI H, date 21SP,date 31

Input/Output

OUT byte D3 IN byte DB

RET C9RNZ C0RZ C8

RNC D0RC D8RPO E0RPE E8RP F0

RM F8

Subtract

A 97 B 90 C 91

SUB D 92 E 93 H 94 L 95

M 96

Decrement

A 3D B 05 C 0D

DCR D 15 E 1D H 25 L 2D M 35

A B7 B B0 C B1

ORA D B2 E B3 H B4 L B5

M B6

D,A 57D,B 50D,C 51D,D 52

MOV D,E 53D,H 54D,L 55

D,M 56

M,A 77M,B 70M,C 71M,D 72

MOV M,E 73M,H 74M,L 75

M,M 76

Stack Ops

B C5D D5

PUSH H E5PSW F5

B C1D D1

POP H E1PSW F1

0 C7 1 CF 2 D7 3 DF

RST 4 E7 5 EF 6 F7 7 FF

A 9F B 98 C 99

SBB D 9A E 9B H 9C L 9D M 9E

B 0BDCX D 1B

H 2B SP 3B

A BF B B8 C B9

CMC D BA E BB H BC L BD M BE

Rotate

RLC 07RRC 0FRAL 17RAR 1F

Specials

DAA 27CMA 2FSTC 37

CMC 3F

Move

XCHG EB XTHL E5 SPHL F9

Control

D1 F3E1 FB

NOP 00HLT 76

Arithmeticalimmediate

ADI byte C6ACI byte CESUI byte D6SBI byte DE

Double Add

B 09DAD D 19

H 29 SP 39

Log.immediate

ANI byte E6XRI byte EEORI byte F6CPI byte FE

Page 47: Microprocesoare

Команды могут быть систематизированы по типу, длине, способу адресации

Тип Длина Адресация1. Пересылка 1 байт 1. Прямая2. Ввод/вывод 2 байта 2. Регистровая3. Арифметико-логические 3 байта 3. Косвенно-регистровая4. Сдвиг 4. Непосредственная5. Передача управления6. Вызов/возврат из подпрограмм7. Специальные

Команды пересылок передают данные с одного устройства на другое. При написании команды в мнемокодах языка ассемблера в команды пересылок сначала ставится приёмник а затем источник данных. В том случае, если в обмене данных участвует память М, ее адрес определяется содержимым регистров Н, L (старший байт адреса находится в регистре Н, младший - в регистре L).

Опорными словами данного типа команд являются слова MOVE (переместить), LOAD (загрузить), STORE (сохранить).

Команда MOV R1,R2 осуществляет пересылку между регистрами. Содержимое регистра R2 передается в регистр R1.

(R2) (R1)Например, по команде MOV A,B (HEX-код 78) содержимое регистра В перепишется в регистр А.

После выполнения команды в регистрах В и А будет один и тот же код. MOV M,A (переслать содержимое регистра A в ячейку памяти, адрес которой указан в паре HL). Учитывая, что в качестве R1 и R2 может быть использован любой из 8 регистров, общее количество команд MOV R1,R2 равно 64.

Команда MVI R, byte передает содержимое второго байта команды в регистр R.byte (R)

Например, после исполнения команды MVI A, 3E число 3E (представленное в шестнадцатеричной системе) будет записано в аккумулятор.

Команда LXI rp, data обеспечивает запись второго и третьего байтов команды в соответствующую пару регистров. (2-й байт в младший, 3-й байт в старший)

data (rp)

Команды группы Load/Store отличаются между собой тем, что по командам Load данные из памяти загружаются в соответствующую группу регистров, а по командам Store данные из регистров записываются в память.

Мнемоника Функция НазначениеLDA adrLDAX BLDAX DLHLD adr

adr A((BC)) A((DE)) A

(adr) L; (adr+1) H

Загрузка аккумулятора из памятиКосвенная загрузка аккумулятора из памятиКосвенная загрузка аккумулятора из памяти

Загрузка Н-пары из памяти

LDA adrLDAX BLDAX DLHLD adr

(A) adr(A) (BC)(A) (DE)

(L)--> adr; (H)--> adr+1

Сохранение аккумулятора в памятиКосвенное сохранение аккумулятора в памятиКосвенное сохранение аккумулятора в памяти

Сохранение Н-пары в памяти

Page 48: Microprocesoare

Например, по команде LHLD 21AО содержимое ячейки памяти с адресом 21АО запишется в ячейку L, а в ячейку Н - содержимое следующей ячейки 21А1. По команде STA 2108 содержимое аккумулятора запишется в ячейку с адресом 2108.

К о м а н д ы ВВОДА/ВЫВОДА (IN port/OUT port) похожи на LDA и STA, но в качестве источника используют порт внешнего устройства ( ((port)) A / (A) port )

Арифметические команды обеспечивают выполнение операций сложения, вычитания, инкрементирования (увеличения на 1), декрементирования (уменьшения на 1). Операции выполняются над содержимым аккумулятора и вторым операндом, источник которого указывается в коде операции. Результат помещается в аккумулятор, стирая ранее находившийся там операнд. Команды воздействуют на все индикаторы, изменяя Регистр Флажков.

Опорные слова: ADD (сложить), SUBTRACT (вычесть), INCREMENT, DECREMENT.

Команда ADD R осуществляет сложение содержимого регистра R с содержимым аккумулятора, помещая результат в аккумулятор .

(A)+(R) A По команде ADC R происходит сложение двух операндов и признака переноса, оставшегося от

предыдущей операции. (A)+(R)+(Carry) А

По команде SUB R обеспечивается вычитание из содержимого аккумулятора операнда, записанного в регистру R. Результат вычисления записывается в дополнительном коде в аккумулятор.

(A)-(R) AПо командам SBB R вычитание выполняется с заёмом содержимого разряда переноса регистра

признаков. (A)-(R)-(Carry) A

Сложение 16-разрядных кодов реализуется командами DAD rp, при этом содержимое регистров HL суммируется с содержимым регистров ВС, DE, HL, SP и сумма записывается в регистры HL.

(HL)+(rp) HL

Команды INR R и DCR R соответственно увеличивают и уменьшают на единицу содержимое указанного в команде регистра, а команды INX rp и DCX rp соответственно изменяют на 1 содержимое пар регистров .

Команды логических операций позволяют вычислять функции логической суммы ANA, логического произведения ORA, исключающего ИЛИ - XRA. Логические функции выполняются над содержимым аккумулятора и операндом поразрядно. (Команды логических операций применяются для проверки отдельных битов операнда, установки их в необходимое состояние, инвертирование битов.

Например, команды ORA A или ANA A можно применить для сброса флажка C; команду XRA A - для сброса аккумулятора и флажков C, Z)

Команда CMP R используются для сравнения двух чисел. При сравнении одного число вычитается из другого, как в командах SUB R и в регистр признаков заносится признак переноса и нуля. В отличие от команды SUB R результат вычитания не фиксируется в аккумуляторе, его содержимое остается неизменным. Такая операция называется неразрушающим сравнением.

Все арифметические и логические операции имеют модификации, оперирующие с непосредственным операндом, следующим за кодом команды. Например, команда ANI 03 выполняет логическую операцию И над содержимым аккумулятора с числом 03, результат записывается в аккумулятор.

Команды циклических сдвигов содержимого аккумулятора отличаются между собой организацией сдвига и его направлением. На рис. 47. показаны последовательность сдвига и источник информации, которые записываются в разряд переноса регистра признаков.

8 7 … 3 2 1C

8 7 … 3 2 1C 8 7 … 3 2 1C

8 7 … 3 2 1C

RAL RAR

Page 49: Microprocesoare

Рис. 47. Организация команд сдвига

Команды передачи управления изменяют последовательность исполняемых команд, обеспечивая безусловный или условный переход к заданной команде. Опорное слово JUMP (прыжок).

По командам безусловного перехода JMP adr управление передаётся указанной в команде ячейке памяти команд. adr PC

По командам условного перехода передача управления выполняется только при определенном значении заданного разряда регистра признаков. Если условие не соблюдается, выполняется команда, следующая по порядку за выполняемой. Команды условных переходов имеют модификацию по разрядам регистра признаков C (перенос), Z (нуль), S (знак, который может быть М (минус), и P (плюс)), P (паритет, который может быть Odd (нечетный) и Even (четный)). Команда условного перехода проверяет заданное условие, представленное состоянием конкретного флажка, и, если условие удовлетворяется, осуществляет передачу управления. В противном случае передача управления не производится, а выполняется следующая по порядку команда.

Например, по команде JC 1EE0 будет исполняться команда с адресом 1EE0, если разряд C регистра признаков равен 0.

Команды CALL / RETURN применяются при обращении к подпрограммам - многократно повторяющимся частям основной программы. Обращение к подпрограмме реализуется с помощью команды CALL adr, в которой указывается адрес первой выполняемой команды подпрограммы.

(PC) TOSadr PC

Возврат к основной программе после выполнения подпрограммы выполняется с помощью команды RET, использующей стековую организацию памяти. (TOS) PC

Каждый раз, когда процессор получает для исполнения команду CALL, в содержимом счетчика PC происходит приращение, при этом вычисляется адрес команды, следующей за командой CALL. Эта информация записывается в стек (ячейку памяти, адрес которой указан в регистре SP - указателе стека), что в дальнейшем обеспечит возврат в основную программу. После этого процессор в счетчик команд записывает адрес вызываемой подпрограммы, чем достигается ее вызов. (Действительно, МП всегда выполняет команду, адрес которой записан в PC). Последняя команда подпрограммы RET обеспечивает считывание адреса команды возврата в основную программу из стека (памяти по адресу регистра SP - указателя стека).

При каждой записи в стек содержимое регистра SP уменьшается на два, а при каждом считывании - увеличивается.

a) b)Рис.48. Диаграмма процесса обращения к подпрограммам

а) последовательность переходов в программе; б) содержимое стека при переходах

На рис.48 приведена диаграмма, поясняющая процесс обращения к подпрограммам. При обращении к подпрограмме 1 по адресу, определяемому регистром SP, записывается в память адрес A1, при этом содержимое регистра SP уменьшается на 2.

После выполнения подпрограммы 1 по адресу, определяемому SP из памяти считывается адрес A1 возврата (При считывании значение SP автоматически увеличивается на 2). Переход к подпрограмме 2 связан с записью по адресу, определяемому регистром SP, адреса возврата A2 (SP уменьшается на 2, так как адрес команд записывается в двух байтах). При переходе к подпрограмме 3 по измененному содержимому регистра SP записывается адрес A3. По первой команде RET указатель стека SP указывает на ячейку памяти, в которой записан адрес возврата A3. При исполнении второй команды RET содержимое регистра SP уменьшается на 2, указывая адрес ячейки памяти, в которой записан адрес возврата А2.

Аналогично командам передачи управления, команды CALL и RET могут выполняться по соблюдению условий регистра признаков.

RLC RRC

A1

A2 A3 A1

A1

A2

A2

A2

A2

A3

A3

A3

SP

CALL A1 RET CALL A2 CALL A3 RET RET

Page 50: Microprocesoare

Команды RST0 - RST7 обеспечивают переход к адресам 0000, 0008, 0010, 0018, 0020, 0030, 0038 микропрограммной памяти и используются при обработке прерываний.

Команды PUSH и POP сохраняют содержимое внутренних регистров МП в стековой памяти (PUSH) и восстанавливают их содержимое после исполнение команды POP (см.рис.42).

Последнюю, самую немногочисленную группу образуют команды управления МП. Команды EI (Enable Interrupt) и DI (Disable Interrupt) разрешают и запрещают восприятие внешних прерываний по входу INT посредством установки в соответствующее состояние триггера разрешения прерывания (шина INTE). При получении микропроцессором команды DI запросы прерывания до тех пор, пока не поступит команда ЕI.

Пустая команда NOP не производит никаких действий, лишь изменяется содержимое программного счетчика PC. Как правило, команда используется для организации временных задержек.

Команда HLT переводит МП в состояние останова, в котором он прекращает выполнение программы, ожидая сигнала прерывания.

7.3. Алгоритмы и программы, применяемые в РЗА систем ЭСПП7.3.1. Определить сумму элементов массива (применяется при учете электроэнергии, выделении

гармонических составляющих и т.п.)Исходные данные : размер массива – в регистре В, адрес массива – в регистровой паре Н, младший

байт суммы получить в А, старший байт суммы – в регистре СМетка Мнемокод Комментарий

CNT:

NCAR:

XRA AMOV C,AADD MJNC NCARINR CINX HDCR BJNZ CNTHLT

Очистка Аккумулятора и индикатора СОчистка регистра СДобавить новое слагаемоеВыяснить, был ли перенос, если был, перейти на NCARУвеличить на 1 старший байт результатаУвеличить на 1 указатель адресаУменьшить на 1 счетчик цикловЕсли счетчик не равен 1, перейти на CNTОстановить программу

7.3.2. Определить минимальный элемент массива (применяется для определения необходимости срабатывания защиты)

Исходные данные : размер массива – в регистре В, адрес массива – в регистровой паре Н, минимальный элемент поместить в А

Метка Мнемокод Комментарий

NEXT:

NEMIN:

MOV A,MINX HCMP MJNC NEMINMOV A,MDCR BJNZ NEXTHLT

Поместить в аккумулятор первый элементУвеличить на 1 указатель адресаСравнить новый элемент с аккумуляторомЕсли не было переполнения, перейти на NEMINПоместить в аккумулятор новый элементУменьшить на 1 счетчик цикловЕсли счетчик не равен 1, перейти на NEXTОстановить программу

7.3.3. Сложить два длинных числа (применяется для учета электроэнергии)Исходные данные : длина чисел – в регистре С, адрес младшего байта первого слагаемого – в

регистровой паре D, адрес младшего байта второго слагаемого – в регистровой паре Н, на место второго слагаемого поместить сумму

Метка Мнемокод Комментарий

CNT:XRA ALDAX DADC MMOV M,AINX HINX DDCR CJNZ CNTHLT

Очистить аккумулятор и признак переносаПоместить в аккумулятор байт первого слагаемогоДобавить к аккумулятору байт 2го слагаемого и CarryПолученный результат поместить на место 2го слагаемогоУвеличить на 1 указатели адресов Увеличить на 1 указатели адресовУменьшить на 1 счетчик цикловЕсли счетчик не равен 0, перейти на CNTОстановить программу

Page 51: Microprocesoare

7.3.4. Определить, в каком разряде числа появилась 1 (применяется для определения положения переключателей)

Исходные данные : исследуемое число – в регистре А, результат – в регистре ВМетка Мнемокод Комментарий

NEXT:

END:

MVI B, 07RLCJC ENDDCR BJNZ NEXTHLT

Записать в регистр В число 7Сдвинуть влево аккумуляторЕсли появилось переполнение, то найдена 1Уменьшить на 1 регистр ВЕсли В не равно нулю, продолжить анализОстановить программу