ALTE DOCUMENTE
|
||||||||||
Česká zemědělská univerzita v Praze
Provozně ekonomická fakulta
Katedra informačních technologií
Jednoúčelové počítače
(jednochip)
Obsah.......... ..... ...... .......... ..... ...... .......... ..... ...... .......... ..... ...... .............. 1
Úvod do jednoúčelových počítačů.......... ..... ...... .......... ..... ...... .......... ..... ...... .... 2
Vývoj mikroprocesorů a pamětí jednochopů.......... ..... ...... .......... ..... ...... ................ 2
Vyuzití jednochipů v současnosti.......... ..... ...... .......... ..... ...... .............................. 3
Jednochipy z praktického hlediska.......... ..... ...... .......... ..... ...... ....................... 3
Programování jednochipů.......... ..... ...... .......... ..... ...... .......... ..... ...... ..... 4
Seznam obrázků.......... ..... ...... .......... ..... ...... .......... ..... ...... .............................. 8
Literatura.......... ..... ...... .......... ..... ...... .......... ..... ...... .......... ..... ...... .......... 9
Málokdo si uvědomí, ze pod pojmem počítač si lze představit nejen klasický osobní počítač na stole v pracovně , ale také řadu jednoúčelových počítačů. Jedná se o počítače , které byly zkonstruovány pouze pro konkrétní účel , který budou vykonávat celou svojí zivotnost. Přitom ale mají vsechny znaky klasického počítače- jen nejsou tak univerzální. Proto se této kategorii také říká jednoúčelové počítače.
Určitou stále vyspělejsí formou jednoúčelových počítačů se stále častěji stávají např. mobilní telefony, ikdyz moderní telefon jiz dnes není pouze schopen zařízení schopné telefonovat a posílat zprávy.
Jednoúčelové počítače neboli nejstarsí počítací stroje , po zadání vstupů vypočítaly výsledek jediné funkce, která byla implementovaná jejich mechanizmem. Vseobecné počítače téměř úplně nahradily jednoúčelové počítače, a tím vzniklo úplně nové pole lidské působnosti - vývoj softwaru. Vseobecné počítače musí být programované sadou specifických instrukcí , vzhledem k úloze, kterou vykonávají, a posloupnost těchto instrukcí nazývame software. Návrh jednoúčelových zařízení a mnohých zařízení pro speciální účely je dnes konceptuálním cvičením, které se vykonává návrhem speciálního softwaru.
Brzy po vyzkousení mikroprocesorů ve výpočetních aplikacích se ukázalo, ze se jedná o součástku mnohem universálnějsí, která se uplatní nejen ve výpočetních, ale i v řídicích aplikacích, kde významným způsobem zjednodusí a zlevní návrh řídicího hardware. Ukázalo se rovněz, ze sestava řídicího systému s mikropočítačem můze být optimalizována, tj. minimalizována z hlediska rychlosti, sířky slova zpracovatelného pomocí RALU, kapacity operační paměti, mnozství 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 jestě operační paměť (RAM), pevná paměť (ROM, PROM nebo EPROM), kde je ulozen ří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 uzívaný název pro ROM, PROM nebo EPROM mikrořadiče) a paměť dat (zpravidla uzívaný název pro RAM mikrořadiče) a časovače, které umozňují synchronizaci s vnějsí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ězných elektronických přístrojů pouzívaných v domácnosti jako je videorekordér, automatická pračka, kuchyňský sporák, sicí stroj apod. az po nejnáročnějsí 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.
V současnosti je svět zahlcen mnozstvím elektronických zařízení, z nichz větsina je řízena právě některým z jednočipových počítačů . Jejich výhody spočívají hlavně v malých rozměrech, nízké energetické náročnosti a v sirokém spektru mozností jejich vyuzití. Oblast jednočipových počítačů je velice rozsáhlá, čím dál tím více výrobků je řízeno elektronicky , nebo alespoň umoznuje nějaké funkce které jsou zajistovány právě těmito jednočipovými počítači. Setkáme se s nimi např. v televizi, moderních pračkách , mikrovlných troubách , hračkách, nových automobilech , telefonech , v oblasti průmyslu prostě nachází uplatnění vsude tam, kde je potřeba snadno a levně řídit chod nějakého zařízení.
Jednochip je prakticky (ostatně jako
kazdý počítač) velice hloupé zařízení, které neumí nic jiného,
nez přehazovat hodnoty odněkud někam a popřípadě s
nimi provést nějakou matematickou operaci. Celý program není nic jiného,
nez takový návod, co se kam má přehodit, co od čeho odečíst nebo
třeba přičíst a to v pořadí, jak je to napsáno za sebou.
Aby to nebylo tak jednoduché, můze se v tomhle návodu (programu) přeskakovat
a skákat a to podle něčeho. Pokud si říkáte, jak se pomocí
tohohle (nějakého přičítání, odečítání, přesouvání,
skoků atd.) dá například psát znaky na LCD displej, komunikovat s PC,
měřit teplotu ap. pak vězte ze ano, a právě toto se Vám
budu snazit vysvětlit.
Aby
bylo pochopeno, co to je program a co je
pro programování snazsí, převedu to analogicky do bězného zivota,
dále jako kuchařková analogie.
Program je v podstatě nějaký soupis pokynů (u
procesorů instrukcí), jejichz vykonáním dosáhneme zádaného výsledku. Jako
jednoduchý příklad si vezměme třeba kuchařku (tím myslím
knihu, ne dívčinu). Kazdý recept v kuchařce představuje ve své
podstatě program, který říká jak postupovat, abychom uvařili
nějaké jídlo.
Procesor je "někdo" kdo onen program vykonává.
Opět v analogii s kuchařkou a recepty je to kuchař
Procesor pracuje ve strojovém kódu. Strojový kód je v podstatě hromada čísel, ve kterých se vyzná procesor (tedy pokud je program správně napsaný) ale člověk ne. Pro příklad kousek strojového kódu: "10000000D290B2907BA77AAB7910D9FEDAFADBF600" sestnáctkově.
Aby bylo programování pro člověka mozné, byl vytvořen jazyk symbolických adres (JSA) - vzilo se označení assembler. Assembler je nejnizsí programovací jazyk. Je to soubor instrukcí toho kterého procesoru, které se postupně zapisují do zdrojového souboru. Tyto instrukce mnemotechnicky vyjadřují jednotlivé povely pro procesor.
Zápisu programu v assembleru se říká zdrojový kód - zdroják. Tento zdrojový kód se posléze přelozí překladačem (compilerem) do výse zmíněného strojového kódu, který se pak jiz programátorem naprogramuje do čipu (nebo paměti EPROM). Dalsím výstupem překladače je listing překládaného souboru, a výpis chyb při překladu. Překladač odhalí například překlep v instrukci (třeba místo PUSH napísete PZSH), skok na neexistující návěstí, 2x definované návěstí a podobně, v listingu je chyba přehledně zobrazena.A zde nastupuje pojem ladění programu. To znamená postupné odladění funkčnosti subrutin v programu, kontrola výstupů subrutin a tak dále.
Jednočipy (tedy nejen jednočipy) je mozné programovat buď v assembleru (jazyku symbolických adres - assembler je v podstatě překladač, ale vzilo se toto označení) nebo v nějakém vyssím jazyku např. C. Oboje má svoje výhody a nevýhody, zálezí na kazdém programátorovi, co preferuje.Tady budu osobně preferovat assembler, v C jiz děláme na skole.
Aby bylo mozné program v mikroprocesoru vykonávat, musí být někde ulozen (analogie: recept je zapsán v knize) - k tomu slouzí paměť programu. Procesor také musí mít moznost ukládání mezivýsledků operací ap. Viz. v úvodu.
Jsou různé způsoby psaní software.Například pro PIC existuje MP Lab, kde si program napísete, přelozíte a odladíte, nebo pro 8051 se osobně preferuje obyčejný textový editor, který k textu nepřidává zádné formátovací znaky. Lze tedy pouzít např. Poznámkový blok z Windows 95/98/Me/NT/2000/XP, textový editor integrovaný v Norton Commanderu, Total Commanderu atd. Můzeme pouzít i dalsí programy jako WordPad nebo MS Word vsech verzí, výsledný dokument ale musíme ulozit jako "čistý text", tj. v případě WordPadu zvolit při ukládání typ souboru textový dokument - formát MS-DOS, v případě MS Wordu zvolit typ souboru MS-DOS text nebo něco podobného.
Samotné programování zde probírat nebudu, to je uz na Vás zda-li vás programování jednochipů zaujalo nebo ne.Dám Vám jestě jen několik rad pro začátek :
Nejprve si připravíme programátor (je taková krabička s paticí pro chip a s paralelním datovou sběrnicí k připojení k Pc)-přes něho se chip programuje. Jestli jsme si ho postavili či koupili hotový je zde zase nepodstatné. To znamená připojíme programátor k počítači (větsina programátorů se pouzívá s počítačem) v nezapnutém stavu. Vsechno zapneme a spustíme program pro ovládání programátoru. Pokud program pouzíváme poprvé, pak mozná bude nutné nastavit si v něm port, přes který programátor komunikuje s počítačem. Nyní si otevřeme tímto softwarem program. Program musí být přelozen, zvykem se stalo do formátu Intel Hex, tedy s koncovkou HEX. V tomto formátu bývají uvedeny i výpisy v různých časopisech a to z důvodu, ze obsahují kontrolní součty a tudíz se chyba v dobrém softwaru pro programátor projeví hned při pokusu o otevření tohoto souboru.
Nyní potřebujeme do programátoru vlozit vypalovaný (programovaný) jednochip. Vlození do patice programátoru bychom měli vzdy provádět az kdyz je programátor napájen, počítač zapnut a je spustěn ovládací program k programátoru se správně nastaveným portem pro komunikaci s programátorem a nastaven typ programovaného chipu. Je tomu tak u vsech solidních programátorů. Je to z důvodu, ze programátor se můze nacházet po připojení napájení v různém stavu a ovládací program uvede programovací patici do klidového stavu, tedy do stavu bez napětí. Některé hodně jednoduché konstrukce programátorů nemají vypínání napájecího napětí programovaného chipu a tak je patice pod napětím vlastně stále. Osobně si myslím, ze takové konstrukce nestojí za nic a je lépe se jim vyhnout. Opakuji, patice musí být při vkládání programovaného jednochipu absolutně celá vypnuta, nebo celá ve stejné úrovni. Pokud jste programátor zakoupili hotový, nebo jej sestrojili dle nějakého návodu, pak je dobré se drzet návodu. Pokud jsme tedy jednochip vlozili do patice, jsme připraveni s ním provádět nějakou akci. Budeme jej tedy číst, zapisovat nebo u některých typů mazat. Větsina jednochipů je v provedení OTP, tedy se dají vypálit jen jednou a tak je třeba si vzdy dobře rozmyslet, co vlastně chceme dělat. Programovaný chip nikdy nevkládejte do patice dříve, nez je Vám jasné co budete dělat.
Základní nastavení procesoru PIC a software
Začátečníci s procesorem PIC uvítají programy pro základní nastavení procesoru. V programu je podle typu procesoru provedeno nastavení PORTU A, B, C, D, E, přerusení na 10ms, rutina pro čtení a zápis do vnitřní paměti EEPROM. V programu stačí doplnit námi pozadované činnosti a je hotovo.
Název programu |
Typ procesoru |
|||||
12F629 |
16F84 |
16F88 |
16F627 |
16F873 |
16F874 |
|
ANO |
ANO |
|
ANO |
ANO |
ANO |
Software a hardware pro PIC. |
Na těchto stránkách můzete také najít programátor PIC. Není nijak závratně dokonalý a také není nijak slozitý. Jeho výhoda je v kompatibilitě s "TAIT Serial Programmer". U uvedeného programátoru je i software pro programování PIC12C5xx. Je to moc hezký program podporující velké mnozství typů PIC firmy Microchip. Pokud si jej stáhnete a vyrobíte si zde uvedený programátor, stačí po spustění IC-PROG stisknout F3 a nastavit "TAIT Serial Programmer". Vsechny vstupy i výstupy pracují tak, ze není třeba v checkboxech zaskrtávat inverzi ničeho v boxu "Communication" - tedy ponechat vse nazaskrtnuto. Zvolit správný port je samozřejmostí. Tato kombinace programátoru a programu pracuje velice dobře
Shrnutí
Shrnutí - jednoúčelové počítače:
řesí elementární úlohy neustále se opakující při příchodu nových dat
pouzívají se zejména v řízení a průmyslu
příklady - interpolační procesory
- datové procesory pro speciální pouzití
např.: elektronické pokladny , IP telefony , herní konzole , kalkulačky , GPS navigace, Web Pad
Nejvýznamějsí firmy zabyvajíci se vývojem a výrobou jednočipových počítačů : Atmel , Intel , Microchip , Zilog , Motorola.
Příloha 1.
Procesory Pic - Logická struktůra + Odkazy na programování Piců.
Vývojové prostředí MPLAB verze 7.21 (31Mb) pro Windows 98 SE, Windows 2000 SP2, Windows NT SP6, Windows ME, Windows XP Pro. Program MPLAB obsahuje překladač MPASM verze 4.02 pro WIN. Nově je také přibalen překladač MPLAB verze 4.02 pro DOS.
Překladač assembleru MPASM verze 3.20.02 (832kb) pro DOS a Windows 95, Windows 98, Windows ME, Windows NT_4 SP6, Windows 2000 je součástí MPLAB verze 5.70.40. Je to poslední verze programu, kde je překladač MPASM pro DOS! Doplněny jsou tyto nové flash procesory: PIC12F629 a PIC12F675
Definiční soubory pro překladač MPASM.
Pokud pouzíváte starsí překladač MPASM od MICROCHIPU pro DOS nebo
WINDOWS, potřebujete pro nové typy procesorů definiční soubor
*.inc kde jsou definovány registry.
PIC10Fxxx - soubor PIC10Fxx (7kb)
obsahuje procesory:
10F200, 10F202, 10F204, 10F206, 10F220, 10F222.
PIC12Fxxx - soubor PIC12Fxx (12kb)
obsahuje procesory:
12F508, 12F509, 12F510, 12F629, 12F635, 12F675, 12F683.
PIC16Fxxx - soubor PIC16Fxx
(128kb) obsahuje procesory:
16F5x (16F54, 16F57), 16F505, 16F506, 16F627, 16F627a, 16F628, 16F628a,
16F648a, 16F630, 16F636, 16F639, 16F676, 16F684, 16F685, 16F687, 16F688,
16F689, 16F690, 16F716, 16F737, 16F747, 16F767, 16F777, 16F72, 16F73, 16F74,
16F76, 16F77, 16F83, 16F84, 16F84a, 16F87, 16F88, 16F785, 16F818, 16F819,
16F870, 16F871, 16F872, 16F873, 16F873a, 16F874, 16F874a, 16F876, 16F876a,
16F877, 16F877a, 16F913, 16F914, 16F916, 16F917.
PIC18Fxxx - soubor PIC18Fxx
(767kb) obsahuje procesory:
18F242, 18F248, 18F252, 18F258, 18F442, 18F448, 18F452, 18F458, 18F1220,
18F1320, 18F2220, 18F2320, 18F2331, 18F2431, 18F2439, 18F2515, 18F2525,
18F2539, 18F2610, 18F2620, 18F4220, 18F4320, 18F4331, 18F4431, 18F4439,
18F4515, 18F4525, 18F4539, 18F4610, 18F4620, 18F6520, 18F6525, 18F6585,
18F6620, 18F6621, 18F6680, 18F6720, 18F8520, 18F8525, 18F8585, 18F8620,
18F8621, 18F8680, 18F8720
https://lucy.troja.mff.cuni.cz/~tichy/kap9/jednocpoc.html, https://www.bezstarosti.cz/elec/jednochip/jednochip.htm, https://mhz.blog.cz/ programování jednochipu:
https://www.dhservis.cz/dalsi_1/popis.htm, https://www.bezstarosti.cz/elec/picprog/picprog.htm.
|