Programování, testování a oživování mikroprocesoru je možné několika způsoby. Každému konstruktérovi může vyhovovat odlišný postup vývoje budoucího zažízení řízeného mikroprocesorem. V současné době jsou nejobvyklejšími postupy asi tyto:
    programování mikroprocesoru ve speciální "programovací krabičce"
     Jedná se o různé tzv. vývojové kity, které mají vyvedenu patici pro zasunutí mikroprocesoru nebo je v nich mikroprocesor přímo zapájen. Krabička obsahuje podpůrné obvody mikroprocesoru jako je reset obvod, obvod oscilátoru atd. Na krabičce tak potom bývá vyvedeno RESET tlačítko atd. Součástí kitu je i speciální programovací software.
Nevýhodou těchto kitů je to, že je lze použít jen s konkrétními typy mikroprocesorů, pro které byly navrženy. Dále je konstruktér ochuzen obvykle o sériový kanál nebo jeden celý port, přes který se kit připojuje k sériovému portu PC, na kterém se provádí programování. Navíc nemusí být všechny vývody mikroprocesoru externě vyvedeny a nejsou tak konstruktérovi k dispozici. Výhodou je jednoduchost a rychlost programování.
    programování mikroprocesoru za pomocí různých emulátorů
     Emulátor mikroprocesoru 8051 slouží k tvorbě a odlaďování programů pro něj, "ale bez něj". Vlastní emulátor je navržen tak, aby v plné šíři emuloval (t.j. napodobil) vlastnosti mikroprocesoru ve vyvíjeném zařízení. Řada pracovních režimů umožňuje jeho použití nejrůznějšími způsoby a to i tehdy, kdy vyvíjené (zákaznické) zařízení není zcela zkompletováno.Připojení emulátoru k vyvíjenému zařízení se provádí emulačním kabelem, který vychází z emulátoru a bývá zakončen několikapinovou zástrčkou (vidlicí) ve formě pouzdra obvodu, která může být zastrčena přímo do patice místo původního (nebo dosud vůbec nezapojeného) mikroprocesoru ve vyvíjeném zařízení. Místo kabelu může být celý obvod emulátoru navržen jako jednotka, zakončená několikapinovou vidlicí (dle typu mikroprocesoru) k přímému zasunutí do patice, pokud tomu dovolí prostorové podmínky.
     Emulátor může být pomocí propojovacích míst (nebo softwarově) nakonfigurován tak, že představuje logický ekvivalent původního mikroprocesoru ve všech jeho možných stavech. Obslužný software emulátoru obvykle umožňuje provést kontrolu vyvíjeného programu s ohledem na vzájemnou spolupráci s periferiemi, což by bylo normálně možné provést pouze pomocí osciloskopu (toto platí i pro 1.metodu programování s program."krabičkou"). Dále umožňuje zobrazit a měnit obsahy registrů, obsahy pamětí, simulovat paměti ROM nebo RAM, spouštět a zastavit program na zvolených místech, zobrazit a změnit stavové slovo systému atd.
     Z výše uvedených faktů vyplývá, že k samotnému přenesení(nahrání) programu do mikroprocesoru je ještě potřeba klasický programátor (ať už univerzální nebo pro konkrétní typ mikroprocesoru). Nevýhodou tohoto způsobu programování jsou určitá omezení (byť minimální), např. pevně daný krystal, výhodou je jednoduchost ladění programů.
   programování mikroprocesoru pomocí univerzálního programátoru
     Tento způsob využívá k programování "univerzální" programátor, který se připojuje k sériovému nebo méně často k paralelnímu portu PC. Programátor je vybaven pouze samotnou paticí pro zasunutí mikroprocesoru, obvykle je patice univerzální pro několik typů mikroprocesorů (s různým počtem vývodů). Neposkytuje mikroprocesoru žádné podpůrné obvody. V programátoru se tak provádí jen samotné programování. Podpůrné obvody je nutné mikroprocesoru zajistit na jiném místě, nejlépe tedy na desce s nepájivým kontaktním polem, kde lze celé zařízení při vývoji pohodlně odladit. Nevýhodou je náročnější programování - nikde nevídíte, co se v procesoru právě děje (stavy registrů, portů atd.) a jestli už proběhla určitá část programu apod. Obvyklou metodou, jak indikovat dosažení určité části programu nebo požadované funkce, je připojit k portu mikroprocesoru LEDku (LEDky), a v programu je na požadovaném místě ovládat (rozsvěcovat). Při tomto způsobu programování je nepříjemná nutnost přendávat mikroprocesor mezi programátorem a nepájivým kontaktním polem při sebemenší změně v programu. Dále je nutné se při programování přepínat mezi obslužným programem programátoru a textovým editorem, ve kterém píšeme program. Nevýhodou je rovněž obvykle vyšší cena univerzálního programátoru. Výhoda spočívá v tom, že konstruktér není ochuzen o žádnou část mikroprocesoru, může se zvolit takový krystal, jaký potřebuje, díky univerzálnímu programátoru může využít široké spektrum typů mikroprocesorů.

     K tomuto způsobu programování náleží i další alternativa a to v podobě toho, že místo univerzálního programátoru se používá programátor vyvinutý jen pro určitý typ nebo skupinu mikroprocesorů. V případě skupiny je to obvykle pro mikroprocesory od jednoho výrobce. Využití takovéhoto programátoru je v současnosti stále častější, protože jak bylo zmíněno výše, univerzální programátory jsou poměrně drahé. Naopak programátory pro určitý typ mikroprosorů jsou levné a amatersky poměrně snadno vyvinutelné a vyrobitelné. Množství konstrukcí takovýchto programátorů se neustále zvyšuje, jak je možné vysledovat z odborných časopisů nebo internetu. Já programuji procesory ATMEL programátorem PAtmel verze 1 a 2. Momentálně jsem si konečně dokončil redukci pro PAtmel 2 pro programování 89c2051 ap., abych mohl používat jen jeden programátor pro všechny čipy.


     Některé výše uvedená omezení neplatí, pokud máte možnost využít softwarového systému, který s procesorem na nepájivém kontaktním poli (a nebo i v hotové aplikaci) nějak komunikuje. Osobně používám tuto metodu: Vytvořím vývojový diagram,přepíšu jej do instrukcí JSA, přeložím jej, a pak pro ladění používám sofware NEGATRON research konkrétně MONITOR x51 za pomoci SIMEPROMu 32k. S Monitorem komunikuji buď přes TELIX nebo ve Windows přes Hyperterminál.


Postup při programování 3.metodou:
     Napíšete tedy program v nějakém textovém editoru, který do výsledného souboru nepřidává své vlastní formátovací informace, lze tedy použít např.Poznámkový blok, WordPad (bez formátování), textové editory Windows Commandera, Norton Commandera atd. Potom musíte využít služeb některého z tzv.překladačů. Tento překladač zajistí kontrolu a převod programu napsaného v jazyce symbolických adres do souboru ve formátu *.hex. V tomto kroku dochází k náhradě symbolických označení, návěští atd. jejich skutečnými adresami, program se jednoduše řečeno převede do formy strojového kódu srozumitelného mikroprocesoru. Tento *.hex soubor se potom načte do obslužného programu programátoru a programátor nahraje program do samotného mikroprocesoru. Podrobný popis vývoje programů pro 8051, způsob programování v jazyce symbolických adres a postup při překladu programů naleznete na jiné stránce.

     Pro jednoduché programy a zkoušení kratších bloků programu bývá dobré využít schopností a služeb tzv. simulátoru mikroprocesoru. Jedná se o program, který běží na PC a simuluje funkci mikroprocesoru,aniž byste ho měli fyzicky k dispozici. Jako vstup simulátoru se určí *.hex soubor, v simulátoru se dále mohou nastavit další parametry simulovaného mikroprocesoru (hod.kmitočet, ext/int paměť, počáteční obsah (stav) registrů, stavového slova, portů atd.).
     Program v simulátoru lze obvykle spustit tak, že proběhne celý tak jak jdou instrukce za sebou nebo v tzv.krokovém režimu, kdy se provede vždy jen jedna instrukce a čeká na další pokyn uživatele ke spuštění další instrukce. Lze tak přehledně sledovat, co která instrukce provádí a jak se mikroprocesor po provedení dané instrukce chová. Aby bylo možné sledovat stavy jednotlivých funkčních částí mikroprocesoru (a k tomu je simulátor určen především),je obrazovka simulátoru obvykle členěna do několika oken zaměřených na danou část mikroprocesoru. Lze tady sledovat zejména dobu vykonávání programu nebo i jednotlivých intrukcí,stavy registrů,portů, obsah paměti dat atd. a samozřejmě také sledovat, která instrukce se právě provedla. Kromě toho lze i stavy portů, obsahy registrů atd. nastavovat.

Vytisknout stránku
Zpátky Zpátky
© DH servis 2002 -