Brzy po vyzkouĹĄenĂ mikroprocesorĹŻ ve vĂ˝poÄetnĂch aplikacĂch se ukĂĄzalo, Ĺže se jednĂĄ o souÄĂĄstku mnohem universĂĄlnÄjĹĄĂ, kterĂĄ se uplatnĂ nejen ve vĂ˝poÄetnĂch, ale i v ĹĂdicĂch aplikacĂch, kde vĂ˝znamnĂ˝m zpĹŻsobem zjednoduĹĄĂ a zlevnĂ nĂĄvrh ĹĂdicĂho hardware. UkĂĄzalo se rovnÄĹž, Ĺže sestava ĹĂdicĂho systĂŠmu s mikropoÄĂtaÄem mĹŻĹže bĂ˝t optimalizovĂĄna, tj. minimalizovĂĄna z hlediska rychlosti, ĹĄĂĹky slova zpracovatelnĂŠho pomocĂ RALU, kapacity operaÄnĂ pamÄti, mnoĹžstvĂ vstupnÄ-vĂ˝stupnĂch obvodĹŻ i rozsahu ĹĂdicĂho programu. PostupnÄ se tak vyvĂjel minimalizovanĂ˝ systĂŠm ĹĂdicĂho mikropoÄĂtaÄe, kterĂ˝ pak vĂ˝robci zaÄali integrovat do jednoho Äipu. Vznikl tak mikrokontrolĂŠr, mikroĹadiÄ, jednoÄipovĂ˝ mikropoÄĂtaÄ (anglicky embedded microcontroller), kterĂ˝ je svou architekturou pĹizpĹŻsoben speciĂĄlnÄ pro monitorovĂĄnĂ a ĹĂzenĂ rĹŻznĂ˝ch mechanismĹŻ a procesĹŻ. KromÄ vlastnĂho mikroprocesoru jsou na Äipu integrovĂĄny jeĹĄtÄ operaÄnĂ pamÄĹĽ (RAM), pevnĂĄ pamÄĹĽ (ROM, PROM nebo EPROM), kde je uloĹžen ĹĂdicĂ program, vstupnĂ a vĂ˝stupnĂ obvody, pĹĂpadnÄ pĹĂmo potĹebnĂĄ rozhranĂ pro ĹĂzenĂ periferiĂ, napĹĂklad seriovĂŠ rozhranĂ, ÄasovaÄ, A/D nebo D/A pĹevodnĂky, vĂ˝konovĂŠ budiÄe ĹĂdicĂch ÄĂslicovĂ˝ch signĂĄlĹŻ apod. JednoÄipovĂŠ mikropoÄĂtaÄe zpravidla obsahujĂ oddÄlenou pamÄĹĽ programu (zpravidla uĹžĂvanĂ˝ nĂĄzev pro ROM, PROM nebo EPROM mikroĹadiÄe) a pamÄĹĽ dat (zpravidla uĹžĂvanĂ˝ nĂĄzev pro RAM mikroĹadiÄe) a ÄasovaÄe, kterĂŠ umoĹžĹujĂ synchronizaci s vnÄjĹĄĂm okolĂm - s reĂĄlnĂ˝m svÄtem. Proto se nÄkdy jednoÄipovĂ˝m mikropoÄĂtaÄĹŻm ĹĂkĂĄ ĹĂdicĂ systĂŠmy v reĂĄlnĂŠm Äase. AplikaÄnĂ rozsah tÄchto ĹĂdicĂch systĂŠmĹŻ je prakticky neomezenĂ˝ od bÄĹžnĂ˝ch elektronickĂ˝ch pĹĂstrojĹŻ pouĹžĂvanĂ˝ch v domĂĄcnosti jako je videorekordĂŠr, automatickĂĄ praÄka, kuchyĹskĂ˝ sporĂĄk, ĹĄicĂ stroj apod. aĹž po nejnĂĄroÄnÄjĹĄĂ aplikace v automobilovĂŠm aleteckĂŠm prĹŻmyslu a ve vojenstvĂ. VĂ˝voj a aplikace jednoÄipovĂŠho mikropoÄĂtaÄe je v ÄĂslicovĂŠ technice jistou duĂĄlnĂ analogiĂ k vĂ˝voji a aplikaci operaÄnĂho zesilovaÄe v technice analogovĂŠ; i zde je obecnĂ˝ princip (v tomto pĹĂpadÄ univerzĂĄlnĂho zesilovaÄe) realizovĂĄn v ĹadÄ modifikacĂ, vhodnĂ˝ch pro danĂŠ specifickĂŠ aplikace.
NejvÄtĹĄĂho rozĹĄĂĹenĂ z hlediska aplikacĂ doznaly mikrokontrolĂŠry dvou vĂ˝znamnĂ˝ch vĂ˝robcĹŻ mikroprocesorĹŻ - firem Motorola a Intel (podobnÄ jako v technice stolnĂch mikropoÄĂtaÄĹŻ). Spektrum vĂ˝robcĹŻ jednoÄipovĂ˝ch mikropoÄĂtaÄĹŻ je vĹĄak velmi ĹĄirokĂŠ, mimo jiĹž jmenovanĂŠ firmy jsou to napĹĂklad americkĂŠ Texas Instruments, National Semiconductors, evropskĂŠ Philips, Siemens, japonskĂŠ OKI, NEC, Toshiba, Hitachi apod. CharakteristickĂŠ pro historickĂ˝ vĂ˝voj mikrokontrolĂŠru vĹĄak je, Ĺže se zde neprojevuje snaha o drastickĂŠ zvýťenĂ rychlosti a kapacity pamÄti jako u osobnĂho poÄĂtaÄe. Je to dĂĄno zejmĂŠna faktem, Ĺže nasazenĂm ĹĂdicĂho mikropoÄĂtaÄe v danĂŠ aplikaci musĂ dojĂt k podstatnĂŠmu zjednoduĹĄenĂ vĂ˝roby a tĂm ke snĂĹženĂ ceny vĂ˝slednĂŠho vĂ˝robku. StaÄĂ-li proto napĹĂklad k vykonĂĄnĂ specifickĂŠho ĹĂdicĂho programu operaÄnĂ pamÄĹĽ 64 bytĹŻ, nenĂ vĂ˝robce niÄĂm motivovĂĄn, aby pouĹžil mikrokontrolĂŠr s pamÄtĂ 128 bytĹŻ, protoĹže by tĂm jen zdraĹžil vĂ˝slednĂ˝ vĂ˝robek. ObecnÄ platĂ, Ĺže se pro aplikaci pouĹžije ten nejjednoduĹĄĹĄĂ mikrokontrolĂŠr, kterĂ˝ pro danou aplikaci vyhovuje. Tato motivace je proto takĂŠ dĹŻvodem k tomu, Ĺže vĂ˝robci jednoÄipovĂ˝ch mikropoÄĂtaÄĹŻ nabĂzejĂ velmi ĹĄirokĂŠ spektrum konfiguracĂ mikrokontrolĂŠrĹŻ, liĹĄĂcĂ se i drobnĂ˝mi zmÄnami v kapacitÄ pamÄtĂ (RAM i ROM), poÄtĹŻ vstupĹŻ/vĂ˝stupĹŻ, pouĹžitelnĂ˝ch periferiĂ apod. PĹito zĂĄmÄr vĂ˝robce aplikace je co nejjednoduĹĄĹĄĂ (a tĂm nejlevnÄji vyrobitelnĂĄ a nejspolehlivÄjĹĄĂ) sestava potĹebnĂŠho ĹĂdicĂho hardware, nejlĂŠpe sloĹženĂĄ pouze z vlastnĂho mikrokontrolĂŠru. HistorickĂŠ Ĺady mikrokontrolĂŠrĹŻ se proto spĂĹĄe liĹĄĂ ĹĄĂĹkou nabĂzenĂ˝ch modifikacĂ perifernĂch obvodĹŻ, neĹž vlastnĂ sestavou ĹĂdicĂho mikropoÄĂtaÄe. Z rozĹĄiĹovĂĄnĂ ĹĂdicĂho systĂŠmu mikrokontrolĂŠru je patrnĂĄ snaha o rozĹĄĂĹenĂ kapacity pevnĂŠ pamÄti PROM na Äipu, z pĹŻvodnĂch 1-4 kB u Ĺady MCS-48 fy Intel na souÄasnĂ˝ch 32 kB u Ĺady MCS-96 tĂŠĹže firmy, adresovatelnĂŠho prostoru pamÄti, z pĹŻvodnĂch 64 kB (Ĺada Intel MCS-51) na 16 MB (Ĺada Intel MCS-251), zrychlenĂ provĂĄdÄnĂ instrukcĂ (z pĹŻvodnĂch max. 24 hodinovĂ˝ch cyklĹŻ na 2 hodinovĂŠ cykly u tÄchĹže Ĺad) a o komfort programovĂĄnĂ (zdrojovĂŠ programy pro Ĺadu MCS-251 mohou bĂ˝t v jazyce C). Snaha je tĂŠĹž o zaintegrovĂĄnĂ specializovanĂ˝ch obvodĹŻ pro ĹĂzenĂ periferiĂ, kterĂŠ pak minimĂĄlnÄ zatÄĹžujĂ centrĂĄlnĂ jednotku mikrokontrolĂŠru. Mezi takovĂŠ specializovanĂŠ obvody patĹĂ napĹĂklad zrychlenĂ obsluhy pĹeruĹĄenĂ, tzv. jednotka zpracovĂĄnĂ udĂĄlostĂ apod. JednotlivĂŠ generace jednoÄipovĂ˝ch mikropoÄĂtaÄĹŻ se tak liĹĄĂ poÄtem ÄasovaÄĹŻ, poÄtem a druhy vstupnÄ vĂ˝stupnĂch obvodĹŻ, poÄtem pĹeruĹĄovacĂch vstupĹŻ, pĹĂtomnostĂ A/D pĹevodnĂku na Äipu a jeho rozliĹĄenĂm, pĹĂpadnÄ pĹĂtomnostĂ speciĂĄlnĂch generĂĄtorĹŻ ĹĂdicĂch signĂĄlĹŻ (pulsnĂ ĹĄĂĹkovÄ modulovanĂ˝ vĂ˝stup u Ĺady MCS-96). K datu vydĂĄnĂ skript byly autorĹŻm znĂĄmy Ĺady 8, 16 a 32bitovĂ˝ch jednoÄipovĂ˝ch mikropoÄĂtaÄĹŻ (poslednĂ vyrĂĄbĂ napĹĂklad Motorola, Texas Instruments a Hitachi). JednoÄipovĂŠ mikropoÄĂtaÄe jsou vyrĂĄbÄny, podobnÄ jako mikroprocesory, buÄ technologiĂ MOS (nebo jejĂmi mutacemi HMOS, HMOS II apod.) nebo CMOS (niŞťà rychlost a spotĹeba).
Pro ilustraci, jak se liĹĄĂ harwarovĂŠ sestavy jednotlivĂ˝ch historicky vzniklĂ˝ch Ĺad jednoÄipovĂ˝ch mikropoÄĂtaÄĹŻ uvedeme tĹi Ĺady fy Intel: MCS-48 (vznikla v roce 1976), MCS-51 (vznikla v roce 1980) a MCS-96 (vznikla v roce 1983).
Ĺada Intel MCS-48 (integrovĂĄno na Äipu) 8bitovĂĄ CPU 1/2/4 kB ROM 64/128/256 bytĹŻ RAM 1 ÄĂtaÄ/ÄasovaÄ paralelnĂ vstup/vĂ˝stup 8bitovĂ˝ pĹevodnĂk A/D |
Ĺada Intel MCS-51 (integrovĂĄno na Äipu) 8bitovĂĄ CPU 4/8 kB ROM 128/256 bytĹŻ RAM 2 ÄĂtaÄe/ÄasovaÄe paralelnĂ vstup/vĂ˝stup seriovĂ˝ vstup/vĂ˝stup aĹž 6 zdrojĹŻ pĹeruĹĄenĂ |
Ĺada Intel MCS-96 (integrovĂĄno na Äipu) 16bitovĂĄ CPU aĹž 32kB ROM aĹž 744 bytĹŻ RAM 2 ÄĂtaÄe/ÄasovaÄe a hlĂdacĂ ÄasovaÄ (watchdog) aĹž 64 bitĹŻ ÄĂslicovĂ˝ch vstupĹŻ/vĂ˝stupĹŻ aĹž 5 seriovĂ˝ch linek vstupu/vĂ˝stupu A/D pĹevodnĂk 8/10 bitĹŻ s multiplexerem jednotka zpracovĂĄnĂ udĂĄlostĂ jednotka zrychlenĂŠ obsluhy pĹeruĹĄenĂ aĹž 14 zdrojĹŻ pĹeruĹĄenĂ |
SrovnĂĄme-li vnitĹnĂ struktury jednotlivĂ˝ch Ĺad mikrokontrolĂŠrĹŻ najde v nich ÄĂĄsti, kterĂŠ jsou analogickĂŠ vzĂĄjemnÄ i ve srovnĂĄnĂ s obecnou strukturou mikropoÄĂtaÄe na obrĂĄzku 9.1 a ÄĂĄsti specifickĂŠ pro pĹĂsluĹĄnou skupinu jednoÄipovĂ˝ch mikropoÄĂtaÄĹŻ. Jako pĹĂklad uvĂĄdĂme na obrĂĄzku 9.9 zjednoduĹĄenou vnitĹnĂ strukturu 8bitovĂŠho a na obrĂĄzku 9.10 zjednoduĹĄenou vnitĹnĂ strukturu 16bitovĂŠho mikroĹadiÄe. I kdyĹž jsou uvedenĂĄ schemata zĂĄkladem urÄitĂ˝ch konkrĂŠtnĂch jednoÄipovĂ˝ch mikropoÄĂtaÄĹŻ, budeme je vyklĂĄdat jako pĹĂklady moĹžnĂŠ architektury mikroĹadiÄĹŻ.
VĹĄimnÄme si nejprve obrĂĄzku 9.9. ZĂĄkladnĂm prvkem jednoÄipovĂŠho, tak jako i bÄĹžnĂŠho, mikropoÄĂtaÄe je centrĂĄlnĂ procesorovĂĄ jednotka CPU (na obrĂĄzku 9.1 oznaÄena jako m P), tvoĹenĂĄ ĹadiÄem instrukcĂ, ALU, registry pro zĂĄpis dat, instrukcĂ a stavu, a pamÄĹĽovĂ˝m rozhranĂm. VnitĹnĂ adresovĂĄ sbÄrnice je 8vodiÄovĂĄ, multiplexovanĂĄ a slouŞà tĂŠĹž jako (obousmÄrnĂĄ) datovĂĄ sbÄrnice. ĹĂdicĂ sbÄrnice nenĂ v obrĂĄzcĂch 9.9 a 9.10 zakreslena. PamÄĹĽ programu (ROM) mĹŻĹže mĂt kapacitu 64 kB prĂĄvÄ tak jako pamÄĹĽ dat (RAM). To je kapacita, kterou je tento jednoÄipovĂ˝ mikropoÄĂtaÄ schopen adresovat aĹĽ se jednĂĄ o pamÄĹĽ na Äipu nebo externĂ pamÄĹĽ. Na Äipu je vĹĄak umĂstÄno jen max. 256 bytĹŻ pamÄti dat a max. 32 kB pamÄti programu. Tento vzĂĄjemnĂ˝ pomÄr kapacity pamÄti programu a operaÄnĂ pamÄti je charakteristickĂ˝ pro ĹĂdicĂ softwarovĂŠ aplikace, neboĹĽ ty neobsahujĂ programovĂŠ operace nĂĄroÄnĂŠ na operaÄnĂ pamÄĹĽ. MikroĹadiÄ mĂĄ ÄtyĹi 8bitovĂŠ obousmÄrnĂŠ paralelnĂ porty pro vstup/vĂ˝stup ÄĂslicovĂ˝ch logickĂ˝ch signĂĄlĹŻ a jeden sĂŠriovĂ˝ port pro asynchronnĂ a synchronnĂ sĂŠriovou komunikaci a pro komunikaci v multiprocesorovĂ˝ch systĂŠmech. Je schopen zpracovat logickĂ˝ signĂĄl pĹeruĹĄenĂ z celkem 6 zdrojĹŻ. MĹŻĹže mĂt aĹž tĹi programovatelnĂŠ 16bitovĂŠ ÄĂtaÄe/ÄasovaÄe, pouĹžitelnĂŠ buÄ oddÄlenÄ pro komunikaci s vnÄjĹĄĂm prostĹedĂm, nebo lze jeden z nich vyuĹžĂt pro generaci pĹenosovĂŠ rychlosti sĂŠriovĂŠho kanĂĄlu. PracovnĂ kmitoÄet hodinovĂŠho signĂĄlu se mĹŻĹže pohybovat v rozmezĂ od 0 do 16 MHz. PamÄĹĽ programu mĹŻĹže bĂ˝t v provedenĂ ROM, PROM nebo EPROM. (V literatuĹe popisujĂcĂ mikroĹadiÄe se vyskytuje Äasto nĂĄzev OTPROM, coĹž je zkratka pro One-Time-Programmable ROM; tento nĂĄzev je ekvivalentnĂ oznaÄenĂ PROM.) MikroĹadiÄ mĂĄ dva reĹžimy snĂĹženĂŠ spotĹeby, âidleâ, kdy se spotĹeba z pĹŻvodnĂch 70 mA na napĂĄjecĂm napÄtĂ 5 V snĂŞà na cca 30 mA, a âpower-downâ, kdy je jeho spotĹeba pouze cca 50 mA.
Na obrĂĄzku 9.10 je pĹĂklad vnitĹnĂho uspoĹĂĄdĂĄnĂ rychlejĹĄĂho 16bitovĂŠho jednoÄipovĂŠho mikropoÄĂtaÄe. Ĺada jeho souÄĂĄstĂ je shodnĂĄ jako na obrĂĄzku 9.9, proto je nebudeme opakovat. AdresovĂĄ sbÄrnice je oddÄlena od datovĂŠ a mĂĄ 8 vodiÄĹŻ; ĹĂĄdkovĂĄ a sloupcovĂĄ adresa jsou ÄasovÄ multiplexovĂĄny. AdresovatelnĂ˝ prostor je proto 64 kB, z otho na Äipu mĹŻĹže bĂ˝t aĹž 32 kB. DatovĂĄ sbÄrnice mĂĄ plnou ĹĄĂĹku 16 vodiÄĹŻ, pĹenos dat mezi CPU, pamÄtĂ a periferiemi je proto rychlejĹĄĂ neĹž v pĹedchozĂm pĹĂpadÄ. Aritmeticko-logickĂĄ jednotka mĂĄ zabudovanou hardwarovou nĂĄsobiÄku (16x16 bitĹŻ za 1,75 ms pĹi taktovacĂ frekvenci 16 MHz) a dÄliÄku (32/16 bitĹŻ za 3 ms pĹi taktovacĂ frekvenci 16 MHz). MikroĹadiÄ obsahuje systĂŠm pro zrychlenĂ obsluhy pĹeruĹĄenĂ, oznaÄenĂ˝ na obrĂĄzku jako PTS, a jednotku pro zpracovĂĄnĂ udĂĄlostĂ, oznaÄenou jako EPA. Tato jednotka âpĹedzpracovĂĄvĂĄâ ÄĂslicovĂŠ signĂĄly z perifernĂch Äidel z hlediska splnÄnĂ potĹebnĂ˝ch podmĂnek (napĹĂklad komparace, ÄasovĂĄ nĂĄslednost, apod.) a ťetĹĂ tak procesoru Äas, o kterĂ˝ je pak odezva na konkrĂŠtnĂ stav vnÄjĹĄĂch Äidel rychlejĹĄĂ. KromÄ toho obsahuje mikroĹadiÄ na Äipu jeĹĄtÄ pĹevodnĂk A/D s programovatelnĂ˝m rozliĹĄenĂm 10 nebo 12 bitĹŻ (niŞťà rozliĹĄenĂ znamenĂĄ kratĹĄĂ dobu pĹevodu), kterĂ˝ je vybaven 8-14 kanĂĄlovĂ˝m multiplexerem rovnÄĹž na Äipu. MikrokontrolĂŠr je tak schopen reagovat i na analogovĂŠ signĂĄly z vnÄjĹĄĂch Äidel bez dodateÄnĂ˝ch souÄĂĄstek. ÄĂslicovĂ˝ch logickĂ˝ch vstupĹŻ mĹŻĹže mikrokontrolĂŠr vyuĹžĂt aĹž 53 a obsahuje rovnÄĹž dva programovatelnĂŠ ÄitaÄe/ÄasovaÄe a hlĂdacĂ ÄasovaÄ (watchdog). SbÄrnice mikroĹadiÄe jsou vyvedeny pro pĹipojenĂ vnÄjĹĄĂ pamÄti nebo dalĹĄĂch vstupnÄ-vĂ˝stupnĂch obvodĹŻ.
Z uvedenĂ˝ch pĹĂkladĹŻ je zĹejmĂŠ, Ĺže jednoÄipovĂ˝ mikropoÄĂtaÄ je a zĹŻstane ĹĄiroce pouĹžĂvanou elektronickou souÄĂĄstkou v jednoĂşÄelovĂ˝ch aplikacĂch, kde je rozsah ĹĂdicĂch funkcĂ pĹedem znĂĄm. VelkĂ˝ vĂ˝bÄr mikroĹadiÄĹŻ nabĂzenĂ˝ch rĹŻznĂ˝mi vĂ˝robci umoĹžĹuje nalĂŠzt typ, jakĂ˝ je pro danou aplikaci nejvhodnÄjĹĄĂ. VlastnĂ nasazenĂ pak vyĹžaduje vyvinout ĹĂdicĂ program a vyzkouĹĄet jej buÄ na zaĹĂzenĂ simulujĂcĂm funkci jednoÄipovĂŠho mikropoÄĂtaÄe (emulĂĄtoru) nebo na mikroĹadiÄi osazenĂŠm pamÄtĂ EPROM, kterou je moĹžnĂŠ v pĹĂpadÄ chyby v programu pĹeprogramovat. Tyto mikrokontrolĂŠry jsou opatĹeny, podobnÄ jako pamÄti EPROM, okĂŠnkem, kterĂ˝m je moĹžnĂŠ obsah celĂŠ pamÄti programu smazat. V souÄasnĂŠ dobÄ nabĂzĂ celĂĄ Ĺada prodejcĹŻ vĂ˝vojovĂŠ prostĹedky pro programovĂĄnĂ jednoÄipovĂ˝ch mikropoÄĂtaÄĹŻ, jejich popis a pouĹžitĂ vĹĄak jiĹž pĹesahuje rĂĄmec tÄchto skript.