Josef Hlouek
OSMIBITOVÉ MIKROØADIÈE ZiLOG Z8
A
Osmibitové mikroøadièe ZiLOG Z8
1
Kniha se zabývá osmibitovými mikroøadièi øady Z8 firmy ZiLOG. Popisuje architekturu øady Z8, instrukèní soubor, základy assembleru, ladìní programù na hardwarovém emulátoru a práci s integrovaným vývojovým prostøedím ZDS (ZiLOG Develope Studio). Obsahuje také popis jednoduché aplikace s obvodem Z86E02 a podrobnì komentovaný výpis programu. Vlastnosti mikroøadièù, spoleèné celé øadì Z8, jsou pøedstaveny prostøednictvím nejrozíøenìjích obvodù Z86E02/04/08 a Z86E30/31/33/733. Za pomoci textu knihy je mono navrhnout jednoduchou aplikaci s obvody øady Z8 a postup pak uplatnit, po akceptování konkrétních parametrù, na kterýkoliv obvod øady Z8. Text knihy pøedpokládá, e ètenáø je seznámen s obecnou teorií mikroprocesorù a mikroøadièù a ovládá pouívanou terminologii.
Josef Hlouek
Mikroøadièe ZiLOG Z8 Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo rozmnoována jakoukoli formou (tisk, fotokopie, mikrofilm nebo jiný postup), zadána do informaèního systému nebo pøenáena v jiné formì èi jinými prostøedky. Autor a nakladatelství nepøejímají záruku za správnost titìných materiálù. Pøedkládané informace jsou zveøejnìny bez ohledu na pøípadné patenty tøetích osob. Nároky na odkodnìní na základì zmìn, chyb nebo vynechání jsou zásadnì vylouèeny. Vechny registrované nebo jiné obchodní známky pouité v této knize jsou majetkem jejich vlastníkù. Uvedením nejsou zpochybnìna z toho vyplývající vlastnická práva. Vekerá práva vyhrazena © Ing. Josef Hlouek, Praha 1999 Nakladatelství BEN technická literatura, Vìínova 5, Praha 10 Josef Hlouek: Mikroøadièe ZiLOG Z8 BEN technická literatura, Praha 1999 1. vydání
ISBN 80-86056-81-3
2
Osmibitové mikroøadièe ZiLOG Z8
A
OBSAH 1.
VEOBECNÉ PARAMETRY MIKROØADIÈÙ Z8 ............................ 8
1.1 1.2 1.3
Mikroøadièe typu Z86 E30, Z86 E31, Z86 E33, Z86 733 ................................ 8 Mikroøadièe typu Z86 E02, Z86 E04, Z86 E08 ............................................... 9 Elektrické parametry mikroøadièù Z8 ............................................................ 10
2.
ADRESNÍ PROSTOR MIKROØADIÈÙ Z8 ..................................... 11
2.1 2.1.1 2.1.2 2.2 2.3 2.4 2.5
Pamì RAM .................................................................................................. 11 Standardní sada registrù .............................................................................. 12 Rozíøená sada registrù, banka F ................................................................ 13 Pamì PROM ............................................................................................... 13 Zásobník (Stack) .......................................................................................... 14 Øídicí registry pro pøístup do pamìti ............................................................ 15 Registry, jejich adresy a identifikátory .......................................................... 16
3.
OSCILÁTOR MIKROØADIÈÙ Z8 ................................................... 18
4. 4.1 4.2 4.3
RESET mikroøadièù Z8 ................................................................................. 20 Definovaný stav øídicích registrù a portù. ..................................................... 20 RESET pøi zapnutí napájení (POR Power On Reset) ............................... 21 WDTMR Watch Dog Timer ........................................................................ 21
5.
VSTUPNÍ/VÝSTUPNÍ PORTY ........................................................ 23
5.1 5.2 5.3 5.4 5.5
Port 0 ............................................................................................................ 24 Port 2 ............................................................................................................ 26 Port 3 ............................................................................................................ 27 Analogové komparátory ............................................................................... 28 Reim sníeného vyzaøování ruivých napìtí .............................................. 29
6.
ÈÍTAÈE, ÈASOVAÈE ..................................................................... 30
6.1 6.2 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.6 6.3.5
Øízení èítaèù ................................................................................................. 32 Výstupní módy èítaèù (pouze u typù Z86E30/31/33/733) ............................ 33 Vstupní módy èítaèe T1 ................................................................................ 34 Poèítání vnìjích impulzù ............................................................................. 34 Hradlování vnitøního signálu SCLK vnìjími impulzy ................................... 34 Monostabilní reim jednorázový ................................................................... 35 Monostabilní reim opakovatelný ................................................................. 35 Nastavení èítaèù po signálu RESET ............................................................ 36 Zapojení èítaèù T0 a T1 do kaskády ............................................................ 36
7.
PØERUENÍ ................................................................................... 37
7.1 7.2 7.3 7.4
Zdroje pøeruení ........................................................................................... 37 Priorita pøeruení .......................................................................................... 38 Maskování pøeruení .................................................................................... 39 Programové pøeruení .................................................................................. 39
A
Osmibitové mikroøadièe ZiLOG Z8
3
7.5 7.6
Vektorové pøeruení ..................................................................................... 40 Pøeruení na dotaz ....................................................................................... 40
8.
ÚSPORNÉ REIMY ........................................................................ 42
8.1 8.2 8.2.1 8.2.2 8.2.3
9.
Reim HALT ................................................................................................. 42 Reim STOP ................................................................................................. 42 Ukonèení reimu STOP signálem Power On Reset ..................................... 43 Ukonèení reimu STOP èasovaèem WDT ................................................... 43 Ukonèení reimu STOP signálem z urèeného zdroje .................................. 43
REGISTR VOLITELNÝCH FUNKCÍ ............................................... 45
10.
PROGRAMOVÁNÍ MIKROØADIÈÙ Z8 .......................................... 47
10.1 10.2 10.3 10.4
Pøíznak výsledku operace ............................................................................ 47 Notace pouívaná pro popis instrukcí .......................................................... 49 Ètyøbitová adresa na místì osmibitové adresy ............................................ 49 Instrukèní soubor Z8 ..................................................................................... 50
11.
ZMASM ZILOG MACRO CROSS ASSEMBLER ........................ 70
11.1 11.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.3.5 11.3.6 11.3.7 11.3.8 11.3.9 11.4
12. 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 12.10 12.10.1 12.10.2
4
Historie ZMASM ........................................................................................... 70 Struktura ZMASM ......................................................................................... 71 Formát zdrojového textu pro ZMASM .......................................................... 73 Pøíkazový øádek ............................................................................................ 73 Pole návìtí (label) ....................................................................................... 74 Pole instrukce ............................................................................................... 74 Pole operandu .............................................................................................. 74 Pole komentáøe ............................................................................................ 74 Konstanty ...................................................................................................... 75 Symboly ........................................................................................................ 76 Operátory ...................................................................................................... 76 Výrazy ........................................................................................................... 77 Direktivy assembleru .................................................................................... 77
VÝVOJOVÉ PROSTØEDÍ ZiLOG ................................................... 81 Sestava vývojového prostøedí pro mikroøadièe Z8 ....................................... 81 Napájecí zdroj pro emulátor ......................................................................... 82 Propojení emulátoru s osobním poèítaèem .................................................. 82 Pøizpùsobení emulátoru pro poadovaný typ mikroøadièe ........................... 82 Pøizpùsobení emulátoru k umístìní krystalu oscilátoru ................................ 83 Pøizpùsobení emulátoru ke zpùsobu napájení aplikace ............................... 83 Pøipojení emulátoru k aplikaci ...................................................................... 84 Uivatelsky dùleité prvky na desce emulátoru ........................................... 84 Úprava emulátoru Z86CCP00ZEM .............................................................. 85 Sputìní emulátoru ...................................................................................... 85 Instalace GUI ................................................................................................ 85 Sputìní GUI ................................................................................................ 85
Osmibitové mikroøadièe ZiLOG Z8
A
13. 13.1 13.2 13.3 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.4.5 13.4.6 13.4.7 13.4.8 13.5 13.5.1 13.5.2 13.5.3 13.5.4 13.5.5 13.6.1 13.6.2 13.6.3 13.6.4 13.6.5 13.6.6 13.6.7 13.6.8 13.7 13.7.1 13.7.2
14. 14.1 14.2 14.3 14.3.1 14.3.2 14.4 14.5 14.6
ZiLOG DEVELOPER STUDIO ZDS 2.11 ....................................... 87 Historie ZDS ................................................................................................. 87 Instalace ZDS 2.11 ....................................................................................... 87 Sputìní ZDS ............................................................................................... 88 Pøehled funkcí ZDS ...................................................................................... 89 Menu File ...................................................................................................... 90 Menu Edit ..................................................................................................... 90 Menu View .................................................................................................... 91 Menu Project ................................................................................................ 91 Menu Build .................................................................................................... 92 Menu Tools ................................................................................................... 92 Menu Window ............................................................................................... 92 Menu Help .................................................................................................... 93 Konfigurace projektu a pøeklad zdrojového textu ......................................... 93 Zaloení projektu .......................................................................................... 94 Sestavení projektu ........................................................................................ 95 Konfigurace assembleru pro projekt ............................................................ 95 Konfigurace linkeru pro projekt ..................................................................... 96 Vytvoøení spustitelného souboru *.ld ............................................................ 97 Konfigurace emulátoru ................................................................................. 99 Sputìní komunikace s emulátorem ............................................................ 99 Sputìní programu ..................................................................................... 100 Nastavení zaráek (break point) ................................................................ 101 Ladìní programu ........................................................................................ 102 Zobrazení obsahu registrù pøi ladìní .......................................................... 102 Opravy zdrojového textu pøi ladìní ............................................................. 103 Uzavøení a znovuotevøení rozpracovaného projektu ................................. 104 Programování OTP verzí mikroøadièù ........................................................ 104 Konfigurace programování ......................................................................... 104 Vloení programu do OTP pamìti mikroøadièe .......................................... 106
MÌØIÈ POHOTOVÉ REAKCE S MIKROØADIÈEM Z86E02 08 PSC ........................................... 107 Obvodové øeení mìøièe ............................................................................ 107 Funkce mìøièe ............................................................................................ 108 Výpoèet konstant pro programování èítaèe T1 .......................................... 110 Mìøení reakèní doby ................................................................................... 110 Astabilní multivibrátor s periodou cca 0,5 s (výchozí stav) ......................... 111 Popis programu ........................................................................................... 111 Mapa symbolù v pamìti RAM .................................................................... 112 Výpis programu reaction.s .......................................................................... 113
LITERATURA a INTERNETOVÉ ADRESY .................................. 122 Knihy nakladatelství BEN technická literatura .............. 123, 126 Jaké jsou dùvody pro aplikace mikroøadièù ZiLOG Z8 ........... 124 Sortiment a adresa firmy ECOM s. r. o. ..................................... 125 Kontaktní adresy firmy BEN technická literatura .................. 127 A
Osmibitové mikroøadièe ZiLOG Z8
5
HISTORIE OSMIBITOVÝCH MIKROPROCESORÙ A MIKROØADIÈÙ ZiLOG Americká firma ZiLOG vstoupila na trh mikroprocesorù v roce 1973. V dobì, kdy svìt dobývaly obvody Intel 8080, se objevil obvod s typovým oznaèením Z80. Osmibitový mikroprocesor s odlinou architekturou, zaloenou na sadì univerzálních registrù, které mohly slouit pro jakoukoliv funkci, tedy i jako støadaè. Architektura umoòovala prunìjí pøístup k registrùm, optimální vyuití instrukcí a tím i rychlejí chod programu ne u procesorù jiných výrobcù pøi stejném hodinovém kmitoètu. Jetì døíve, ne IBM dala svìtu osobní poèítaèe, museli se spokojit první poèítaèoví nadenci s èímsi, co je dnes mono srovnávat s PC jen velmi stìí. Dodnes vak jméno Sinclair pøedstavuje pojem. A Sinclair obsahoval mikroprocesor Z80 CPU ! Postupem èasu byl mikroprocesor Z80 CPU (Central Processor Unit) následován obvody Z80 CTC (Counter-Timer Circuit), Z80 PIO (Parallel Input/Output), Z80 SIO (Serial Input/Output), Z80 DMA (Direct Memory Access) a dalími. S rozvojem technologie se jednak mìnila struktura obvodù od TTL pøes NMOS a po CMOS, jednak se zvìtovala hustota integrace a v jednom pouzdøe se sluèovalo stále více obvodù døívìjí stavebnice. Na konci vývoje stál obvod Z80 IPC (Intelligent Peripheral Controller), který obsahoval nejen procesor, ale paralelní i sériové vstupnì/výstupní obvody (Porty), oscilátor, èítaèe. Tedy podle dnes zavedené terminologie mikroøadiè. Obvody øady Z80, pøestoe dnes ji typování obvodù smazalo pøíslunost k øadì Z80 (napø. Z84C0010PEC je novodobý CMOS procesor Z80), tvoøí znaèný podíl na svìtové produkci mikroprocesorù. A na výjimky, obvody øady Z80 nikdy neobsahovaly ádnou pamì kromì základní registrové výbavy. Ani souèasní pokraèovatelé øady, obvody Z180 a estnáctibitový Z380 nemají na èipu pamì. To je v tvrdé konkurenci nevýhoda. Musel se objevit nový obvod. Obvody øady Z8 jsou 8bitové CMOS mikroøadièe. Vycházejí z principu univerzální sady registrù, na èipu je vak tìchto registrù pro veobecné pouití (General Purpose Register) a 256, take u je mono hovoøit o pamìti RAM. Navíc èip obsahuje i pamì pro uloení programu v provedení PROM (pouívá se zkratka OTP One Time Programmable) a to nejménì 512 Bytù ale také a 32 KBytù. Dále èip obsahuje dva 14bitové èítaèe, dva analogové komparátory, oscilátor a nejménì 14 vstupù/výstupù. Èip dále obsahuje Watch Dog Timer (pøeklad tohoto termínu do èetiny se stále nedaøí), Power On Reset (èeský termín nulování pøi zapnutí napájení je moný, ale anglický je lepí) a dalí obvody.
6
Osmibitové mikroøadièe ZiLOG Z8
A
Vechny obvody øady Z8 mají jeden shodný instrukèní soubor. Mnemonicky pøipomíná instrukèní soubor Z80, funkènì je vak jiný. Pøesto pøechod od programování obvodù Z80 k øadì Z8 je snadný. Pro efektivní programování je k dispozici assembler, pro podporu vývoje je pouíván hardwarový emulátor øízený osobním poèítaèem. Øada Z8 v roce 1999 obsahuje více jak stovku jednotlivých typù, liících se velikostí pamìti, poètem vstupù a výstupù, rychlostí, dovolenou pracovní teplotou, pouzdry pro klasickou i povrchovou montá. Speciální obvody obsahují i AD a DA pøevodníky, sériový komunikaèní kanál (UART), jádro Z8 tvoøí základ mnoha jednoúèelových obvodù pro øízení klávesnic osobních poèítaèù nebo obvodù pro infraèervené dálkové ovládání. Tato uèebnice nemùe a ani nechce popsat funkci vech obvodù øady Z8. Chce pouze na nìkolika málo obvodech vysvìtlit vlastnosti spoleèné celé øadì Z8. Uèebnice popisuje architekturu øady Z8, instrukèní soubor, práci s assemblerem a emulátorem. S pomocí uèebnice je tedy mono navrhnout aplikaci s nejrozíøenìjími obvody øady Z8 a postup pak uplatnit, po akceptování konkrétních parametrù, na kterýkoliv obvod øady Z8. Text uèebnice pøedpokládá, e ètenáø je seznámen s obecnou teorií mikroprocesorù a mikroøadièù a ovládá pouívanou terminologii. Autor se omlouvá za èastìjí pouívání originálních anglických termínù vude tam, kde se jejich pouívání vilo, kde èeský pøeklad je ménì výstiný nebo smìný a pøedevím tam, kde je to nutné (procesor bude vdy rozumìt pouze instrukci DJNZ Decrement and Jump if Non Zero a nikoliv ZSNN Zmeni o jednu a Skákej kdy Není Nula).
A
Osmibitové mikroøadièe ZiLOG Z8
7