Úvod
Čipy PICAXE nabízejí široký sortiment instrukcí pro řízení výstupů. V
tomto článku popisuji, na jakém principu funguje protokol sériové
komunikace a jednoduchý příklad programu, kterým lze pomocí sériového
rozhraní ovládat výstupní piny mikrokontroléru.
Protokol sériové komunikace
Od komunikace pomocí sériového kanálu vyžadujeme několik důležitých
funkcionalit. Jde nám o to, aby mikrokontrolér poznal, kde na portu začíná
začátek protokolu, zda je komunikace určená pro náš mikrokontrolér
(adresace), případně, zda byl protokol odeslán z kontroléru k tomu
určenému, aby byla přenesena data v potřebném sledu a případně, aby na
konci protokolu byl znak, že takovým bajtem protokol končí.
Opakuji, že po sériovém kanálu se přenášejí všechny
uvedené informace bajt po bajtu (tj. běžně po 8 bitech). Za dobrý,
ale velice jednoduchý a přehledný protokol považuji protokol, který
používá firma Icom pro komunikaci se zařízeními. Základní tvar protokolu
zde znovu vysvětluji na komunikaci kontroléru (zde rozuměj program v PC)
do zařízení (zde rozuměj zařízení Icom, konkrétně zařízení s adresou 76h,
což je TCVR IC-7200. Originální manuál s
částí, ve které je popsán protokol, sada příkazů, subpříkazů a dat s
parametry, je ke stažení zde.
 |
Zapojení mikrokontroléru a instrukce PICAXE pro sériovou
komunikaci
Čipy PICAXE jsou stvořené pro sériovou komunikaci. Pomocí sériové
komunikace je rovněž do čipů zaváděn program. Čipy můžeme
naprogramovat v jednoduchém přípravku (bude popsán) nebo přímo v
přístroji, kde jsou zapojené. V přípravku programuji čipy, které jsou
v pouzdře DIP. Do přístroje vložím do patice naprogramovaný čip. V
přístroji programuji čipy, které jsou zapájené. K programování a k
finální komunikaci používám rozdílné sériové vstupy, viz obrázek: |
 |
|
Příklad jednoduchého programu pro dálkové ovládání
Nejjednodušší, ale plně funkční program je popsán obrázkem náhledu na
programovací prostředí PICAXE Editor 6.1.0.0; program je bohatě
komentován, ale i tak je napsán asi na 25 řádcích včetně komentáře.
Potřebné instrukce jsou jen asi na 10 řádcích. Program po připojení
napájení provede nějaká nastavení (níže bod č. 1) a potom cyklicky
vykonává hlavní smyčku, která začíná na návěští main:
1. Program jde do procedury, která nastaví výstupní piny na úroveň low.
Moje zkušenost - nastavuji
jeden pin po druhém instrukcemi v proceduře na řádku 23 a 24. Tím se
současně nastaví piny jako výstupní. Po provedení se vrací řízení
programu zpět.
2. Hlavní smyčka programu je označena "main:" a návěští je na řádku
číslo 5.
3. Na řádku č. 6 se přijímají data ze sériového portu. Užitečné jsou
dva bajty, které uložíme do proměnných b0 a b1.
4. Instrukce na řádku 6 si všimneme podrobněji. C.6 znamená, že
sériová data čteme ze špičky (pinu) C.6. V závorce jsou čísla
(254,254,118,224). Těmto číslům říkáme hodnoty qualifier. Nebo také
preambule. Pokud je program přijme správně, přijme rovněž bajty b0 a
b1 a dosadí je do těchto proměnných. Pokud se hodnota qualifier liší,
data b0 a b1 se ukládat nebudou. Tuto posloupnost zde používám k
adresaci konkrétního čipu. Čipy mají podobné programy, které se liší v
počtu bajtů a hodnotách qualifier (preambule). V mé úloze jsem u
prvního čipu použil číslo 118, u druhého 119, atd. V jiné úloze - viz
poznámka v prvním obrázku, jsem použil jiné hodnoty i jiné počty bajtů
preambule.
5. Pokud se nám přijaté hodnoty qualifier a hodnoty naprogramované v
čipu shodují, jsou přijaté a uložené hodnoty bajtů b0 a b1. Program
následně běží na řádky 15 a 16. Tam jsou nastaveny pomocí instrukcí
outpinB a outpinC všechny piny portu B a piny portu C mimo C.6 (ten
není u typu 20M2 výstupní).
6. Na řádku 18 je pausa 100 ms (netřeba čip nutit k nepotřebnému
výkonu) a skok na řádku č. 20 vrací program na začátek hlavní smyčky
(návěští main:).
Úplný výpis programu ve formátu pdf je ke
stažení tady.
|
 |
Program je velice jednoduchý a přehledný. Abychom se vyznali přesně v
tom, co konkrétní instrukce dělají, doporučuji si o tom přečíst ve
stručném přehledu (v českém jazyce,
staženo z internetu, autor neznámý, omlouvám se, že jsem si nenapsal
zdroj, je to hezky přehledné). Úplný přehled instrukcí je obsahem
druhého manuálu - lze stáhnout zde a
také na stránkách výrobce čipů PICAXE zde:
https://picaxe.com/getting-started/picaxe-manuals/
Editor, který jsem použil k napsání programu a naprogramování čipu
není jediný, který je k dispozici. Osobně ho považuji za nejlepší. Je
určen pro Windows a vyžaduje mít instalovaný Framework .NET verze
3.51. Další vývojová prostředí pro programy PICAXE jsou k dispozici na
stránkách výrobce:
https://picaxe.com/getting-started/software-selection/Jiný
příklad sériové komunikace s adresací čipů, který využívá stejný
program, je popsán zde:
http://ok1ufc.nagano.cz/Gambas_stranky/serial_picaxe/serial_expander.htm
Závěry
1. Použití čipů PICAXE pro použití v oblasti dálkového ovládání se mi
jeví jako nejjednodušší, nejméně pracný, ale spolehlivý způsob. S
žádnými jinými čipy jsem nebyl schopen realizovat zařízení tak rychle
a tak jednoduše.
2. Pokud použijeme protokol, který umožňuje adresaci a čipům správně
naprogramujeme qualifier bajty (popsáno v tomto článku, jak to
funguje), jsme schopni po jednom sériovém portu ovládat značná
množství výstupů, např. relé. Dříve jsem používal pro stejné
funkcionality čipy Atmega 88 (Atmega8).
3. Několik dalších užitečných instrukcí pro použití v telemetrii (TM)
je popsáno v dalším článku. |
|
|