Jiøí Pinker
MIKROPROCESORY A MIKROPOÈÍTAÈE
Praha 2004
Je mojí milou povinností podìkovat panu Ing. Frantiku Kostkovi, CSc., za peèlivé pøeètení rukopisu a za cenné pøipomínky. Obsahu i formì knihy to velmi prospìlo.
Jiøí Pinker MIKROPROCESORY A MIKROPOÈÍTAÈE Lektor
Frantiek Kostka
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 © Prof. Ing. Jiøí Pinker, CSc., Plzeò 2004 © Nakladatelství BEN technická literatura, Vìínova 5, Praha 10 Jiøí Pinker: Mikroprocesory a mikropoèítaèe BEN technická literatura, Praha 2004 1. vydání
ISBN 80-7300-110-1
OBSAH SLOVNÍK ANGLICKÝCH TERMÍNÙ ........................ 6 1
ÚVOD ..................................................................... 9
2
ZÁKLADNÍ ÈÁSTI A FUNKCE POÈÍTAÈE ............ 11
2.1 2.2 2.3
Sbìrnicové cykly .............................................................................. 14 Periferní obvody ............................................................................... 15 Adresové prostory ............................................................................ 16
3
PROCESOR .......................................................... 19
3.1 3.2 3.3 3.4 3.5 3.6
Základní pojmy ................................................................................. 19 Aritmeticko-logická jednotka ............................................................. 26 Pøíznakové bity ................................................................................. 28 Dalí vyuití ALU .............................................................................. 29 Prostøedky pro zrychlení èinnosti procesoru .................................... 29 Procesory typu CISC a RISC ........................................................... 32
4
ZÁKLADNÍ TYPY INSTRUKCÍ .............................. 33
4.1 4.2 4.3
Adresace v instrukcích ..................................................................... 33 Typy instrukcí a jejich provádìní ...................................................... 34 Vyuití pøíznakových bitù v instrukcích podmínìných skokù ........... 43
5
OBVODY POÈÍTAÈE ............................................. 45
5.1 5.2 5.3 5.4 5.5 5.6 5.7
Systémový øadiè ............................................................................... 46 Vnìjí sbìrnice a øídicí signály ......................................................... 49 Adresové dekodéry a výbìrová logika ............................................. 55 Pamìová mapa ............................................................................... 57 Nulování poèítaèe ............................................................................. 59 Generace a vnitøní rozvod hodinových impulzù ............................... 62 Diagnostické prostøedky poèítaèe .................................................... 63
6
PØERUENÍ PROGRAMU ..................................... 67
6.1 6.2 6.3 6.4 6.5
Øadiè pøeruení ................................................................................ 67 Èinnost procesoru a øadièe pøi pøeruení ......................................... 71 Pøeruení programu u jednoèipových mikropoèítaèù ....................... 73 Latence pøeruení ............................................................................ 77 Zásady pro práci s pøeruením ......................................................... 77
A
MIKROPROCESORY A MIKROPOÈÍTAÈE
3
7
PAMÌ ................................................................. 79
7.1 7.2 7.3 7.4 7.5 7.6
Typy pamìtí ...................................................................................... 79 Poadavky na dynamické parametry pamìti ................................... 81 Pøekrývání pamìti ............................................................................ 87 Programování pamìti FLASH v systému ......................................... 88 Rozíøení pamìového prostoru ....................................................... 90 Kanál pøímého pøístupu do pamìti ................................................... 92
8
ÈÍTAÈE A ÈASOVAÈE .......................................... 97
8.1 8.1.1 8.1.2 8.1.3 8.2 8.2.1 8.2.2 8.3
Univerzální èítaè/èasovaè ................................................................. 98 Reim èítání impulzù ........................................................................ 98 Reim èasování .............................................................................. 101 Reim generace impulzù ................................................................ 105 Èasovací jednotka CAPCOM ......................................................... 106 Záchytná jednotka .......................................................................... 108 Porovnávací jednotka ..................................................................... 109 Impulzní íøkový modulátor ............................................................ 111
9
VSTUPNÍ A VÝSTUPNÍ OBVODY ....................... 115
9.1 9.2 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.3.6 9.3.7 9.3.8 9.3.9 9.4 9.4.1 9.4.2
Øízení vstupních a výstupních obvodù .......................................... 115 Paralelní vstupní a výstupní obvody .............................................. 116 Sériové vstupní a výstupní obvody ................................................ 124 Synchronizace pøijímaèe s vysílaèem ............................................ 125 Znaková synchronizace .................................................................. 128 Bitová synchronizace ..................................................................... 129 Ovládání sériového pøijímaèe a vysílaèe ........................................ 131 Spojení vysílaèù a pøijímaèù ........................................................... 131 Sériové vstupní a výstupní obvody SPI .......................................... 134 Sériové vstupní a výstupní obvody UART ...................................... 136 Sériové vstupní a výstupní obvody CAN ........................................ 138 Sériové vstupní a výstupní obvody IIC ........................................... 142 Analogové vstupní a výstupní obvody ............................................ 143 Analogové vstupní obvody ............................................................. 143 Analogové výstupní obvody ........................................................... 147
SEZNAM GRAFICKÝCH SYMBOLÙ .................... 151 REJSTØÍK .......................................................... 153 LITERATURA ..................................................... 155
4
JIØÍ PINKER
A
SLOVNÍK ANGLICKÝCH TERMÍNÙ A ZKRATEK anglicky
èesky
acceptance filter accumulator acknowledge ACR Acceptance Code Register ALU Arithmetic-Logic Unit AMR Acceptance Mask Register auto scan
pøíjmový filtr støadaè potvrdit registr pøíjmového kódu aritmeticko-logická jednotka registr pøíjmové masky postupné pøevádìní skupiny vstupních kanálù opakované pøevádìní skupiny vstupních kanálù pomocný pøenos pøepínaè bank (registrù) dvojsmìrný chyba v bitu vsouvání bitù instrukèní jednotka dno (zásobníku) vysílání výzvy, urèené vem skupina, shluk impulsù sbìrnicový cyklus viz vysvìtlení v kapitole 8 zachytit pøenos výbìr adresy sloupce (u dynamické pamìti) registr pøíznakù poèítaè se sloitým souborem instrukcí porovnat øadiè
8 3 8 8 3 8
viz vysvìtlení v kapitole 8 adresa cíle dat pøímá adresa pøímý pøístup do pamìti
8 4 4 7
auto scan continuous auxiliary carry bank switch bidirectional bit error bit stuffing BIU Bus Interface Unit bottom broadcasting burst bus cycle CAN Controller Area Network capture carry CAS Column Address Select CCR Condition Code Register CISC Complex Instruction Set Computer compare controller CSMA/CD+AMP Carrier Sense, Multiple Access/Collision Detection + Arbitration on Message Priority destination address direct address DMA Direct Memory Access
A
MIKROPROCESORY A MIKROPOÈÍTAÈE
kapitola (prvý výskyt)
8 8 3 3 8 8 8 3 3 8 8 5 8 8 3 7 3 3 8 3
5
anglicky
èesky
EA External Access embedded computer EU Execution Unit FIFO First In - First Out flags GPR General Purpose Register GPT General Purpose Timer half-carry handshake IE Interrupt Enable IIC, I2C Inter-Integrated Circuit Bus immediate IMR Interrupt Mask Register indexed address indirect address instruction cycle INT Interrupt INTA Interrupt Acknowledge interrupt controller interrupt latency IRQ Interrupt Request IRR Interrupt Request Register ISR In-Service Register left justified LIFO Last In First Out LSB Least Significant Bit MAC Multiply And Accumulate master MC Machine Cycle memory map microcontroller misalignment mnemonic code MSB Most Significant Bit nested nibble NMI Non-Maskable Interrupt NRZ Non-Return to Zero
vnìjí pøístup zabudovaný, vloený poèítaè výkonná jednotka pamì fronty pøíznakové bity univerzální registr univerzální èítaè/èasovaè polovièní pøenos korespondenèní provoz povolení pøeruení viz vysvìtlení v kapitole 8 bezprostøední (data) registr masky pøeruení indexová adresa nepøímá adresa instrukèní cyklus pøeruení (programu) potvrzení pøeruení øadiè pøeruení latence pøeruení poadavek na pøeruení registr poadavkù na pøeruení registr obsluhovaných poadavkù zarovnaný zleva zásobníková pamì nejnií, nejménì významný bit vynásobení a pøiètení hlavní (stanice) strojový cyklus pamìová mapa mikroøadiè nesprávné zarovnání slov mnemotechnická instrukce nejvyí, nejvýznamnìjí bit do sebe vloené (podprogramy) pùlbyte nemaskovatelné pøeruení bez návratu k nule
6
JIØÍ PINKER
kapitola (prvý výskyt) 5 2 3 8 3 5 8 3 8 6 8 4 6 4 4 3 3 6 6 6 6 6 6 8 3 4 3 8 3 5 2 5 4 4 6 4 6 9
A
anglicky
èesky
kapitola (prvý výskyt)
op-code
operaèní kód, operaèní znak, instrukèní kód 3 OTP One-Time Programmable jednou programovatelná (pamì) 7 overflow pøeteèení 3 overrun error ztráta dat 8 page stránka 7 parity parita 3 PC Program Counter èítaè instrukcí 3 pipeline zøetìzená struktura 3 PLL Phase Locked Loop fázový závìs 5 port brána 2 PSW Program Status Word stavové slovo programu 3 PWM Pulse-Width Modulation impulsní íøková modulace 8 quasi-bidirectional kvazi-dvojsmìrný, neúplnì dvojsmìrný 8 RAS Row Address Select výbìr adresy øádku (u dynamické pamìti) 7 relative address relativní adresa 4 reload znovu nastavit 8 request poadavek 8 reset nulování 3 retriggerable znovuspustitelný 5 right justified zarovnaný zprava 8 RISC Reduced Instruction Set poèítaè se zjednodueným souborem Computer instrukcí 3 RS 232 C Recommended Standard (doporuèená) norma RS 232 C RTR Remote Transmission Request poadavek na pøenos z jiné stanice 8 SFR Special Function Registers registry speciálních funkcí 5 shadow ROM stínová ROM 7 sign znaménko (èísla) 3 SIM System Integration Module modul pro integraci systému (vzájemnou spolupráci jeho èástí) 5 single channel continuous conversion opakovaný pøevod jednoho vstupního kanálu 8 single channel conversion pøevod jednoho vstupního kanálu 8 SJW Synchronization Jump Width sychronizaèní skok 8 slave podøízený (stanice) 8 SOF Start of Frame zaèátek rámce 8 source address adresa zdroje dat 4
A
MIKROPROCESORY A MIKROPOÈÍTAÈE
7
anglicky
èesky
SP Stack Pointer SPI Serial Peripheral Interface SWI Software Interrupt system controller TAR Temporary Address Register TDR Temporary Data Register token passing top UART Universal Asynchronous Receiver-Transmitter VLSI Very Large Scale Integration wait-state generator WDT Watch-Dog Timer zero
ukazatel zásobníkové pamìti sériové periferní rozhraní softwarové pøeruení (instrukce) systémový øadiè pomocný adresový registr pomocný datový registr pøedání povìøení vrchol (zásobníku) univerzální asynchronní pøijímaè-vysílaè velmi velká integrace generátor èekacích taktù diagnostický èasovaè nulovost (výsledku, obsahu)
8
JIØÍ PINKER
kapitola (prvý výskyt) 3 8 6 5 3 3 8 3 8 2 5 5 3
A