Laboratorní úloha z předmětu 36POB
Martin Tůma, Pavel Dědourek, Pavel Jelínek
Úkolem je realizovat ovládání krokového motoru pomocí integrovaného obvodu GAL. Krokový motor je ovládán čtyřmi signály IN.Q1, IN.Q2, IN.Q3, IN.Q4 podle následující tabulky:
krok | IN.Q1 | IN.Q2 | IN.Q3 | IN.Q4 |
---|---|---|---|---|
1 | 0 | 1 | 0 | 1 |
2 | 0 | 1 | 1 | 1 |
3 | 0 | 1 | 1 | 0 |
4 | 1 | 1 | 1 | 0 |
5 | 1 | 0 | 1 | 0 |
6 | 1 | 0 | 1 | 1 |
7 | 1 | 0 | 0 | 1 |
8 | 1 | 1 | 0 | 1 |
1 | 0 | 1 | 0 | 1 |
tab. 1 - Řídící signály krokového motoru
Signál OUT.Q1 znamená, že bylo stisknuto tlačítko krok vpřed. Signál OUT.Q2 znamená, že bylo stisknuto tlačítko krok vzad. Je k dispozici signál o frekvenci odpovídající krokům motoru. Navrhněte obvod, který bude provádět tyto dvě funkce.
Řízení jsme realizovali pomocí standartního konečného automatu typu Moore,
jehož graf uvádí obr. 1. Automat má 2 vstupy:
VPRED
, VZAD
(odpovídají signálům OUT.Q1
a OUT.Q2
) a 4 výstupy: Y1-4
(odpovídají signálům
IN.Q1-4
). Dále je implementován signál RESET
, který
uvádí automat do počátečního stavu 0 pomocí "globálního asynchroního
resetu" (signál AR) GAL obvodu. Vnitřní stavy automatu (1-8) odpovídají
binárně jednotlivým krokům motoru, stavu 0 odpovídá hodnota
0000
.
obr. 1 - Graf automatu
Funkce kombinační logiky byly sestaveny na základě tabulky přechodů (soubor
km.pla
) výše uvedeného automatu. K minimalizaci byl použit program
boom, který pro
minimalizaci používá heuristiky, kombinační logika tedy nemusí být optimální,
nicméně by se optimu měla blížit. Výsledné funkce mají následující tvar:
Y1.D := Y2 & !Y4 & VPRED # Y1 & Y2 & !VZAD & !VPRED # !Y3 & Y4 & VZAD # Y1 & !Y2; Y2.D := !Y4 & VZAD # Y1 & Y2 & !VZAD & !VPRED # !Y3 & VPRED # !Y1; Y3.D := !Y1 & Y2 & VPRED # Y1 & !Y2 & VZAD # Y3 & Y4 & !VZAD & !VPRED # Y3 & !Y4; Y4.D := !Y2 & VPRED # Y3 & Y4 & !VZAD & !VPRED # !Y1 & VZAD # !Y3;
Navržený obvod byl před naprogramováním úspěšně odsimulován pomocí simulátoru obsaženého v programu WinPlace. Časové průběhy vstupních/výstupních signálů jsou uvedeny na obr. 2.
obr. 2 - Simulace obvodu
Pro realizaci byl zvolen obvod PEEL18CV8, který byl naprogramován pomocí
JEDEC souboru vygenorovaného v programu WinPlace z "programu" automatu
(soubor km.psf
). Význam jednotlivých pinů obvodu je uveden na
obr. 3.
obr. 3 - Zapojení integrovaného obvodu
Navržené řízení krokového obvodu jsme úspěšně otestovali na daném
přípravku.
Obvod fungoval přesně tak, jak bylo zamýšleno. Pro použití v praxi by nicméně
ještě bylo vhodné v návrhu ošetřit (chybový) stav, kdy jsou současně aktivní
signály pro chod motoru vpřed i vzad (vstup 11
).