základy mikroprocesorové techniky
DESCRIPTION
Základy mikroprocesorové techniky. 12 . Týden – Periferie 8051. Garant:Prof. Zdeněk Bohuslávek, CSc. Přednášející:Ing. Jiří Nesládek Podklady:http ://www.rabaka.net/ ZMT. Přerušovací systém. Přerušení se používá pro snazší komunikaci procesoru s periferiemi; - PowerPoint PPT PresentationTRANSCRIPT
Základy mikroprocesorové techniky
12. Týden – Periferie 8051
Garant: Prof. Zdeněk Bohuslávek, CSc.
Přednášející: Ing. Jiří Nesládek
Podklady: http://www.rabaka.net/ZMT
Přerušovací systém• Přerušení se používá pro snazší komunikaci procesoru s periferiemi;
• Když periferie potřebuje obsloužit, požádá procesor o přerušení právě prováděného programu;
• Procesor v takovém případě dokončí rozpracovanou instrukci, uloží stav PC na vrchol zásobníku a provede skok do podprogramu obsluhujícího danou periferii – interrupt handler;
• Při vstupu do obslužné rutiny přerušení procesor automaticky zakáže zpracovávání dalších přerušení stejné důležitosti – priority;
• Obslužná rutina přerušení na rozdíl od běžného podprogramu nekončí instrukcí RET, ale musí se použít instrukce RETI;
• RETI stejně jako RET vyjme z vrcholu zásobníku návratovou adresu a naplní jí do PC, ale navíc ještě povolí zpracování dalších případných přerušení se stejnou nebo nižší prioritou;
Přerušovací systém
MOV DPTR,#tabznak
MOV A,31
CJNE A,#01,Next
MOV A,30H
ANL A,#0F0H
Next: MOV A, 30H
Hlavní program
Žádosto přerušení
Interrupt handler
PUSH PSW
PUSH A
POP A
POP PSW
RETI
Uložení PC,zákaz přerušení
Obnovení PC,povolení přerušení
Přerušení 8051
• IE – registr povolení přerušení (adresa A8H);
• Příznak globální maskování všech přerušení – EA;
• 5 zdrojů přerušení:– Dva vstupy vnějších přerušení (EX0, EX1) – konfigurovatelná
citlivost na sestupnou hranu resp. úroveň log. 0;
– Od dvou čítačů/časovačů (ET0, ET1);
– Od sériového kanálu (ES) – společné přerušení pro události „přijat znak“ i „znak odeslán“.
EA – – ES ET1 EX1 ET0 EX0
b7 b6 b5 b4 b3 b2 b1 b0
Přerušení 8051
• IP – registr priority přerušení (adresa B8H);
• 8051 rozlišuje dvě úrovně přerušení – nižší a vyšší;
• Pokud procesor zpracovává přerušení nižší úrovně, může být přerušen pouze přerušením vyšší úrovně. Přerušení stejné nebo nižší úrovně musí čekat na dokončení ve frontě;
– – – PS PT1 PX1 PT0 PX0
b7 b6 b5 b4 b3 b2 b1 b0
Přerušení 8051
EX0
TR0
EX1
TR1
ES
Registr IE
EA
Registr IE
PX0
PT0
PX1
PT1
PS
Registr IP Priority
1
2
3
4
5
1
2
3
4
5
Žádosto přerušenís vyššíprioritou
Žádosto přerušenís vyššíprioritou
Vektorpřerušení
Vektorpřerušení
IE0
IT0
INT0
IE1
IT1
INT1
1
TF1
TF0
TI
RI
Re
gis
tr S
CO
N
Registr TCON
Přerušení 8051• Každý zdroj přerušení má pevně definovanou adresu (vektor
přerušení), na kterou procesor po přijetí žádosti o přerušení, dokončení rozpracované instrukce a uložení návratové adresy do zásobníku předá řízení;
• Vektory přerušení jsou od sebe vzdáleny pouze 8 adresových míst (viz tabulka) a proto na nich obvykle bývá uložena pouze instrukce nepodmíněného skoku na vlastní obslužný podprogram.
Zdroj přerušení Adresa
IE0 Vnější přerušení 0 0003H
TF0 Čítač/časovač 0 000BH
IE1 Vnější přerušení 1 0013H
TF1 Čítač/časovač 1 001BH
RI+TI Sériový kanál 0023H
Sériový kanál
b0 b1 b2 b3 b4 b5 b6 b70 1 t
start bit stop bitdatové bity
klidováúroveň
• Plně duplexní asynchronní sériová komunikace– Duplexní = je schopen současně přijímat i vysílat;
– Asynchronní = rámcová synchronizace přijímače se odvozuje od tzv. start-bitu.
• Rámec se skládá z:– Start bitu – odpovídá hodnotě 0, generuje synchronizační hranu;
– Přenášeného znaku – 8 nebo 9 bitů;
– Stop bitu – odpovídá hodnotě 1, vyvádí signál do klidové úrovně.
Režimy sériového kanálu• SCON – Řídící registr sériového kanálu
SM0 SM1 SM2 REN TB8 RB8 TI RI
b7 b6 b5 b4 b3 b2 b1 b0
Mód SM0, SM1 Typ přenosu Bitová rychlost
0 0 0 Synchronní 8-mi bitový fosc / 12
1 0 1 Asynchronní 8-mi bitový časovač 1
2 1 0 Asynchronní 9-ti bitový fosc / 32, fosc / 64
3 1 1 Asynchronní 9-ti bitový časovač 1
Příznak odeslanéhoresp. přijatého znaku.
9. datový bit
Povolení příjmu.
Časování sériového kanálu
b0 b1 b2 b3 b4 b5 b6 b70 1 t
t
TxDnebo
RxD
TInebo
RI
start bit stop bitdatové bity (registr SBUF)
b0 b1 b2 b3 b4 b5 b6 b80 1 t
t
TxDnebo
RxD
TInebo
RI
start bit stop bitdatové bity (registr SBUF)
b7
TB8nebo
RB8
Mód
1M
ód 2
a 3
Čítače/časovače• 8051 obsahuje dva čítače/časovače;
• Čítač/časovač je tvořen hardwarovým čítačem, jehož stav je softwarově dostupný v registrech TH0,TL0 resp. TH1, TL1;
• Jestli hovoříme o funkci čítače nebo časovače závisí pouze na zvoleném použití – zdroji čítacího signálu;
• Čítač:– čítá externí události – sestupné hrany signálů T0 resp. T1;
– stav externího signálu je vzorkován a vyhodnocován jednou v každém strojním cyklu kmitočet externího signálu musí být menší než 1/24 kmitočtu oscilátoru mikroprocesoru;
• Časovač:– generuje časové intervaly odvozené od taktu oscilátoru mikroprocesoru.
Čítače/časovače – režimy
• TMOD – Registr určující režim činnosti čítačů/časovačů
– GATE – hradlování hodin čítače;
– C/T – výběr hodin čítače (čítač – externí, časovač – oscilátor);
– M1,M0 – režim čítače/časovače viz dále.
GATE C/T M1 M0 GATE C/T M1 M0
b7 b6 b5 b4 b3 b2 b1 b0
čítač/časovač 1 čítač/časovač 0
Čítače/časovače – řízení
• TCON – Řídící registr čítačů/časovačů
– TFn – přetečení časovače;
– TRn – hradlování hodin čítače;
– IEn – příznak žádosti o přerušení ze vstupu INTn;
– ITn – konfigurace citlivosti vstupu vnějšího přerušení:log. 1 – hranová, log. 0 – úrovňová.
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
b7 b6 b5 b4 b3 b2 b1 b0
řízení čítačů/časovačů řízení vnějších přerušení
Čítače/časovače – režim 0• 13-ti bitový čítač/časovač – zpětně kompatibilní s 8048;
• THn čítá hodinové impulzy vydělené 5-ti bitovým předděličem tvořeným spodními bity čítače TLn;
• Výhodnější je požívat režim 1, viz dále.
1&
C/T
TRn
GATE
fosc / 12
Tn
INTn
TLn5 bitů
THn8 bitů
TFn přerušení
Čítače/časovače – režim 1• 16-ti bitový čítač/časovač;
• Tento režim je shodný s režimem 0 s tím rozdílem, že se čítač TLn je plně 8-mi bitový.
1&
C/T
TRn
GATE
fosc / 12
Tn
INTn
TLn8 bitů
THn8 bitů
TFn přerušení
Čítače/časovače – režim 2• 8-ti bitový čítač/časovač s přednastavením;
• Čítač TLn čítá a po přetečení je nastaven na hodnotu THn;
• Programové nastavení registru THn neovlivňuje aktuální stav TLn.
1&
C/T
TRn
GATE
fosc / 12
Tn
INTn
TLn8 bitů
THn8 bitů
TFn přerušení
Čítače/časovače – režim 3• V tomto režimu se čítač/časovač 0 rozdělí na dva 8-mi bitové číatče;
• Čítač TH0 využívá řídící příznaky čítače/časovače 1, který se v tomto režimu používá pro generování hodin pro sériový kanál.
1&
C/T
TR0
GATE
fosc / 12
T0
INT0
TL08 bitů
TH08 bitů
TF0 přerušení
TF1 přerušení
TR1