Jednočipové
    mikrokontroléry ve výuce, zábavě i v seriozních aplikacích

Jednočipové mikrokontroléry ve výuce, zábavě i v seriozních aplikacích

Jiří Hrbáček

Vysoká vojenská škola pozemního vojska Vyškov
XVII. MEZINÁRODNÍ KOLOKVIUM
o řízení osvojovacího procesu
(sborník příspěvků)
I

 

Sborník vydala VVŠ PV Vyškov, 1999
ISBN 80-7231-035-6

Jednočipové mikrokontroléry ve výuce, zábavě i v seriozních aplikacích

Mikrokontroléry, jednočipové počítače, často nesprávně nazývané mikroprocesory patří do skupiny programovatelných logických obvodů. Pokud se rozhlédneme kolem sebe, nalezneme je v automatických pračkách, řídí chod moderních automobilů, kde jich zájemce objeví hned několik. Nedovedeme si bez nich již představit ani moderní televizory, různé dálkové ovladače, pagery, zabezpečovací systémy, řídí činnost jednotlivých částí robotů. Nacházejí se v tiskárnách počítačů i v klávesnicích. Nesmíme zapomenout ani na moderní hračky, modelářství a samozřejmě, ani na ve vojenské i civilní mobilní systémy.

Jednoduše řečeno, jejich místo je všude tam, kde je třeba a je možné zjednodušit velice složité mechanické systémy, kde je třeba složitého řízení či ovládání a kde je nutná implementace vlastní inteligence. Díky moderním technologiím, a opravdu masovému nasazení jejich cena klesla až k ceně srovnatelné s běžnými elektronickými obvody, řádově jednotky stovek korun i méně.

V současné době se s těmito obvody setkávají až studenti středních elektrotechnických škol. V mnoha případech se seznamují s již zastaralými obvody řady INTEL 8747, v lepším případě 8751. Tyto mikrokontroléry jsou však jednak již opravdoví dědečkové, a navíc podle mého názoru nejsou nejvhodnější pro výuku. Nemají přímo dostupné všechny registry a proto je nutné velmi často používat nepřímé adresování. V moderních aplikacích se již prakticky nevyskytují.

Po důkladném prostudování dostupných mikrokontrolérů, jejich cen i možností, získání vývojového prostředí, výukových kitů a v neposlední řadě dostupnosti literatury v češtině mě zaujaly mikrokontroléry firmy MICROCHIP.

Tyto mikrokontroléry v současné době naleznete v nejrůznějších systémech, počínaje satelitními dekodéry, pagery, "hardlocky". Patří mezi několik málo typů , které jsou ve třídě osmibitových mikrokontrolérů nejvýkonnější na světě.

Harwardovská architektura (oddělená paměť programu od paměti dat) umožňuje, aby všechny instrukce byly jednoslovní a většina instrukcí byla prováděna v jednom cyklu hodin. Pouze instrukce volání a návratu z podprogramů a instrukce skoků jsou prováděny ve dvou cyklech.

Jsou schopny vykonávat i více než pět milionů instrukčních cyklů za sekundu a kmitočet generátoru hodin není ze zdola omezen.

K realizaci generátoru hodin lze použít RC článek v aplikacích, které nejsou náročné na stabilitu kmitočtu, v náročných aplikacích pak krystalového rezonátoru nebo keramického filtru. Můžeme však připojit také vnější zdroj pro synchronizaci s okolním systémem. Jeden cyklus hodin trvá čtyři takty generátoru hodin. Při použití RC oscilátoru je vyveden kmitočet Fosc/4 pro případnou synchronizaci okolních obvodů.

Mikrokontroléry MICROCHIP lze napájet nestabilizovaným napětím i z baterií. Jsou schopny pracovat s napájecím napětím v rozsahu 2 až 6V. Pro redukci spotřeby lze mikrokontrolér převést do stavu SLEEP, kdy je jeho spotřeba maximálně 100 mA. Při běžné činnosti odebírá proud menší než 10 mA, v závislosti na kmitočtu hodin.

Podívejme se krátce na vnitřní architekturu mikrokontroléru PIC16F84, který je vhodný pro výuku:

Všechny registry, jak univerzální tak i speciální jsou přístupné přímým adresováním. Mikrokontrolér má implementovaný systém přerušení, datovou EEPROM, čítač/časovač, programovatelnou předděličku, může využívat hlídací časovač (WDT) a třináct paralelních vstupů/výstupů.

Velkou výhodou je paměť programu realizovaná jako paměť typu Flash, která umožňuje stovky mazacích a programovacích cyklů. Tyto mikrokontroléry lze programovat i mazat přímo v aplikaci (ISP).

Instrukční soubor se skládá pouze z 35 jednoslovních instrukcí a je pro všechny mikrokontrolery MICROCHIP prakticky stejný. Složité mikrokontroléry mají pouze několik instrukcí navíc. Není tedy velký problém použít jednou odladěný program v jiném typu mikrokontroléru. Neobyčejně zajímavé jsou mikrokontroléry, které mají pouze osm vývodůpro svoji činnost nepotřebují naprosto žádné vnější součástky.

Vraťme se nyní k využití těchto mikrokontrolérů pro výuku.

Před třemi roky vyšla knížka "Mikrořadiče PIC16CXX a vývojový kit PICSTART" v nakladatelství BEN Praha. V této publikaci jsou popsány mikrokontroléry PIC16C54 až 57, z jednodušší řady a PIC16C71 a 84 , které patří k střední třídě těchto mikrokontrolérů. (16F84 je 16C84 s pamětí Flash). Zájemce zde nalezne také popis vývojového kitu firmy MICROCHIP. Je zde popsán simulátor a překladač, který je zdarma k mání na internetu (http://www.microchip.com/10/Tools/).

O rok později nakladatelství BEN vydalo "Programování mikrokontrolérů PIC16CXX" kde je formou příkladů ukázána činnost jednotlivých částí těchto mikrokontrolérů. Zájemce zde nalezne systém "bastldesek" pro ladění rozličných aplikací. Jsou zde také klišé v měřítku 1:1, aby si každý mohl tyto desky vyrobit sám. Naleznete zde také konstrukční doporučení pro používání mikrokontrolérů a zásady pro jejich programování. Pokud projdete postupně všechny uvedené příklady, získáte potřebné znalosti pro svoji další samostatnou konstruktérskou praxi. Zdrojové tvary všech uvedených programů lze získat na disketě.

Letos na jaře vyšel první díl "Komunikace mikrokontroléru s okolím". Tato publikace je již psána distanční formou a obeznámí Vás s nejpoužívanějšími způsoby řešení klávesnic, zobrazovacích jednotek a nejpoužívanějších způsobů komunikace. Na začátku je popsán velice zajímavý modul, který se nazývá PVKpro firmy ASIX. Je velice vhodný pro výuku. K počítači (stačí i AT286) se připojuje prostřednictvím COM portu, nebo LPT portu, podle typu. Pro programování není třeba zvláštní programátor. V tomto modulu lze přímo programovat mikrokontroléry PIC16F84. Pokud chceme, můžeme využívat osm tlačítek, osm LED diod a čtyři sedmisegmentovky pro přímé ladění. Pokud máme zájem, můžeme všechny vývody mikrokontroléru připojit přes konektor k vlastní aplikaci, realizované například na "bastldeskách". Součástí publikace je i disketa se všemi uvedenými zdrojovými tvary programů a podprogramů.

Pokud se rozhodnete pro experimentování s RS232 nebo 485, práci se sériovou EEPROM (I2C nebo ISP), obvodem reálného času DS1307, dalšími způsoby realizace vstupů a výstupů, můžete použít DBPIC firmy DAVID electronic. V tomto případě je však již potřeba mít programátor, pro uložení programu do mikrokontroléru.

Ukázali jme si publikace, v současné době dostupné možnosti pro praktické odzkoušení našich programů, možnost získání assembleru a simulátoru. Nyní již zbývá to nejdůležitější, koho a jak učit dovednostem práce s mikrokontroléry.

Pokud se podíváme za hranice, kde těchto technologií využívají již dlouho, zjistíme, že například  NASA zaměstnává špičkové odborníky, kterým je 25 let. Je to vůbec možné?

Po takovémto setkání na kongresu FTSD před mnoha lety jsem začal přemýšlet, jak asi mohl takový "mladíček" dokázat získat tak hluboké znalosti.

Myslím si, že je u nás naprosto nedostatečné vyhledávání talentů. To je třeba začít již na úrovni základní školy. Konstrukce s využitím těchto moderních technologií potřebuje změnit způsob myšlení při jejich realizaci. Používání mikrokontrolérů vyžaduje, aby si člověk nejdříve uvědomil, v čem je rozdíl, mezi klasickou konstrukcí a použitím mikrokontrolérů. Ideální by bylo, kdyby například vedoucí modelářského kroužku, přibral do týmu chlapce, kteří tíhnou k elektronice a ukázal jim rozdíl v těchto konstrukcích. Jaké má výhody používání serv a mikrokontrolérů. Jak se zjednoduší konstrukce ale také co je třeba udělat pro to, aby to správně fungovalo. Děti by si pak vymýšlely různé jednoduché modely, hračky nebo by s ním vyvíjely jednoduchého robota. Z počátku by se učily dovednostem pájení a zvykaly by si na tato řešení. V deváté třídě by již ti šikovnější mohly začít s programováním nejjednodušších aplikací.

Na střední škole by spolu s vyučujícím mohly začít programovat a postupně se učit realizovat nejdříve jednoduché aplikace (programovatelné blikače, jednoduché kódové zámky, jednoduchá zabezpečovací zařízení apod.). Postupně by přecházely od jednoduchých komunikacím (např. dálkové ovladače, VF komunikace, ovládání inteligentních obvodů) po víceprocesorové systémy. Naučily by se základům komunikace mezi mikrokontroléry a mikrokontroléry s počítači.

Není třeba takto podrobně a důkladně učit všechny studenty. Ze všech nemohou být špičkový odborníci pro konstrukce s mikrokontroléry. Používání mikrokontrolérů totiž vyžaduje nejen schopnost programovat, ale také dokázat myslet jako elektronik i konstruktér strojař. Zvládat analýzy problémů komplexně. Přijmout týmovou práci s konstruktéry strojaři, specialisty na přenos informací, měření a mnoha dalších, v závislosti na problému, který se řeší.

S použitím mikrokontrolérů jako programovatelných logických obvodů však musí být seznámeni všichni, kteří se zabývají elektronikou. V současné elektronice se stává dominantní číslicová technika a tyto obvody patří mezi její hlavní komponenty, vedle různých typů hradlových polí, inteligentních obvodů i základní řady číslicových obvodů. Každý elektronik by měl být tedy vybaven dostatečnými znalostmi v této oblasti a být schopen navrhnout s nimi jednoduché aplikace. Široká skupina techniků, která se zabývá opravami elektronických zařízení musí také disponovat alespoň základními znalostmi v této oblasti, chápat způsoby řešení obvodů, které se v takovýchto systémech vyskytují. Je proto nezbytně nutné se těmito okruhy zabývat a učit studenty všemu, co je potřebné k udržení odborné kvalifikace na velmi dobré úrovni.

Věřím, že stojí za to se této zatím nepříznivé situaci věnovat a začít ji systematicky řešit. Věda a technika nečeká a tento vlak se řítí čím dál rychleji kupředu. Nenechejme ho zcela ujet.


Na publikace


Na mikrokontroléry PIC


Na hlavní stránku