Aktuální vydání

celé číslo

07

2024

Elektrické, hydraulické a pneumatické pohony; polohovací mechanismy

Kamerové systémy a zpracování obrazu

celé číslo

Připojení inkrementálního senzoru k jednočipovému mikroprocesoru řady x52

číslo 11/2002

Připojení inkrementálního senzoru k jednočipovému mikroprocesoru řady x52

Tato stať volně navazuje na článek Rotační inkrementální senzory otištěný v časopise Automa č. 10 na str. 32-33 a popisuje jednu z možností, jak vyhodnotit signál z inkrementálního snímače. Použití standardního mikroprocesoru řady x52 je levnou a spolehlivou variantou s minimální softwarovou zátěží systému, spočívající jen v obsluze přerušení při přetečení nebo podtečení čítače.

Obr. 1.

1. Kvadraturní dekodér LS7084
Popisované zapojení využívá pro dekódování signálu inkrementálního senzoru kvadraturní dekodér LS7084, který poskytuje na výstupu CLK impulsní signál a na výstupu UP/DN informaci o směru. Vlastní čítání impulsů s ohledem na směr je realizováno mikroprocesorem řady x52.

Kvadraturní dekodér LS7084 je integrovaný obvod určený k dekódování kvadraturních signálů A a B na pulsy a směr. Podobný obvod LS7083 má odlišné výstupy: na jednom výstupu jsou impulsy, které se přičítají, a na druhém impulsy, které se odečítají. Obvody LS708x mají zabudovaný filtr zamezující zpracování vstupních pulsů o šířce impulsu menší, než je nastavená hodnotou odporu RB.

Dále obvody umožňují zvolit způsob dekódování X1 a X4. Obvody jsou blíže popsány v [1], časový průběh vstupních a výstupních signálů LS7084 je znázorněn na obr. 3.

Tyto signály jsou přivedeny na řídicí vstupy čítače-časovače 2 (dále Č/Č2) mikroprocesoru 8052, jehož mód činnosti se volí bity registrů T2CON a T2MOD. Je třeba uvést, že některé starší typy mikroprocesorů s jádrem 8052 registr T2MOD neobsahují a jsou pro náš záměr nepoužitelné. Registr T2MOD obsahuje dva bity: DCEN a T2OE.

Obr. 2.

2. Obousměrný režim čítání Č/Č2 s přednastavením podle bitu DCEN
DCEN (Down Counter Enable) umožňuje realizovat dva režimy s přednastavením: je-li DCEN = 0, čítá Č/Č2 nahoru, je-li DCEN = 1, Č/Č2 čítá nahoru i dolů. Směr čítání v tomto případě je řízen stavem signálu na vstupu T2EX (nahoru = 1, dolů = 0). Nás pro zpracování signálu z LS7084 tedy bude zajímat situace, kdy DCEN = 1.

Pro směr čítání nahoru je hodnota přednastavení dána obsahem registrů RCAP2H a RCAP2L, pro směr čítání dolů je hodnota přednastavení pevná FFFFH. Při přetečení nebo podtečení Č/Č2 je nastaven příznakový bit TF2, kterým může být vyvoláno přerušení. Při přetečení nebo podtečení je nastaven příznak přetečení Č/Č2 (bit TF2) a zároveň se překlopí (invertuje) hodnota bitu EXF2. Hodnotu tohoto bitu lze využít jako sedmnáctý bit obousměrného čítače-časovače 2. V tomto módu obousměrného čítání (tedy DCEN = 1) nelze bit EXF2 využívat k žádosti o přerušení.

Přerušení při přetečení nebo podtečení Č/Č2 spolu s údajem o směru čítání (hodnota vstupu T2EX) dává možnost aktualizovat proměnnou obsahující počet přetečení nebo podtečení a mít tak k dispozici údaj o počtu impulsů inkrementálního senzoru ve velice širokém rozsahu. Implementace tohoto algoritmu může být následující:

  • v obsluze přerušení pro přetečení nebo podtečení čítače-časovače je zapotřebí s ohledem na směr čítání inkrementovat nebo dekrementovat hodnotu n celočíselné proměnné, které se počítá podle algoritmu n := n + T2EX*2 – 1

  • při čtení celkové hodnoty pozice pak k aktuálnímu obsahu Č/Č2 přičíst – s ohledem na řád – obsah proměnné n: celkem := n*65536 + T2; kde T2 := 256*TH2 + TL2

Předností uvedeného řešení využívajícího mikroprocesoru řady x52 je:

  • při rozsahu čítání 16 bitů je čítání zcela transparentní, využívá pouze technické prostředky – Č/Č2 a nepředstavuje pro systém žádnou softwarovou zátěž,

  • za cenu minimální softwarové zátěže, spočívající v režii obsluhy přerušení způsobeného přetečením nebo podtečením čítače-časovače 2, je možné téměř neomezeně zvětšit rozsah čítání,

  • použitím kvadraturního dekodéru typu LS7084 je zavedena filtrace signálů A a B inkrementálního senzoru a je tak výrazně zvýšena spolehlivost a přesnost měření,

  • volitelně lze využít možnosti zvýšit rozlišení v režimu X4 kvadraturního dekodéru,

  • údaj o poloze je možné dále zpracovat, zobrazovat nebo poslat přes sériový kanál do nadřazeného systému,

  • je to levné řešení – cena obvodu LS708 je při jednotkovém množství přibližně 100 Kč [1].

Obr. 3.

Použitelnost tohoto řešení vzhledem k maximální frekvenci zpracovávaných impulsů je dána tím, zda budeme v aplikaci používat větší hloubku čítače než 16 bitů. V takovém případě přistupuje časová režie obsluhy přerušení, během které by nemělo dojít ke změně směru. Změnu směru, která může nastat během obsluhy přerušení, lze zachytit kontrolou hodnoty bitu EXF2 registru T2CON. Při přetečení nebo podtečení Č/Č2 dojde mimo jiné také k překlopení (invertování) hodnoty bitu EXF2. Hodnota tohoto bitu by měla být po celou dobu obsluhy přerušení stejná – blíže viz např. [5] a [6].

Pokud vystačíme s rozlišitelností 16 bitů, je maximální frekvence signálu dána 1/24 frekvence oscilátoru mikroprocesoru. Logická úroveň čítaného signálu musí zůstat nezměněna vždy alespoň jeden strojový cyklus. Z uvedeného vyplývá, že při použití 24MHz krystalu je maximální vstupní frekvence čítaného signálu 1 MHz. Minimální frekvence čítaného signálu není omezena. Podrobnější informace o mikroprocesorech řady x51 a x52 lze čerpat v [5], [6] a [7].

Poděkování: Tento článek byl podpořen projektem G1428/2002 FRVŠ „Návrh a vývoj školního mobilního robotu“.

Literatura:

[1] US Digital Corporation: LS7083 & LS7084 –Encoder to Counter Interface Chips. Dostupné na http://www.usdigital.com/products/ls7083-84/, posl. úpravy 2002 [cit. 18. 7. 2002].

[2] TŮMA, P.: Připojení inkrementálního snímače k PC. Automa 7 (2001), č. 1 s. 50-51.

[3] ŠMEJKAL, L.: Jak vyřešit ... vyhodnocení přírůstkových snímačů. Automatizace 43 (2000), č. 9, s. 642.

[4] ŠMEJKAL, L.: Měření polohy a natočení. Automatizace 43 (2000), č. 5, s. 343-347.

[5] Alespoň něco o 8051... FUKSA, M. (ed.) Dostupné na http://8051.hyperlink.cz/index.htm, posl. úpravy červenec 2002, [cit. 18. 7. 2002].

[6] SKALICKÝ, P.: Mikroprocesory 8051. Praha BEN-technická literatura, 1997.

[7] Intel: MCS@51 Microcontroller family User´s manual. February 1994, 334 p.

doc. Dr. Ing. Petr Novák,
katedra robototechniky, VŠB-TU Ostrava
(petr.novak@vsb.cz)

Inzerce zpět