doc. Dr. Ing. Petr Novák (petr.novak@vsb.cz)
katedra robototechniky VŠB – TU Ostrava
Rozhraní pro průmyslové senzory s komunikací SSI
V příspěvku je popsáno možné technické řešení styku řídicího systému, popř. servisního systému, se senzorem vybaveným komunikací prostřednictvím SSI (Serial Synchronous Interface). Popisu SSI a různých používaných formátů zpráv byl věnován článek [1], na který tento text volně navazuje.
Konstrukce využívající jednočipový mikrořadič řady x51, popsaná v dalším textu, umožňuje na připojeném zobrazovači s LCD zobrazovat údaje o poloze (v různých formátech, tj. v surovém stavu – nejčastěji v Grayově kódu, v podobě počtu pulsů, počtu otáček, dráhy u lineárních senzorů atd.) i hodnoty speciálních bitů (pokud je senzor vysílá). Spolu s vizuálním výstupem je podporován také sériový přenos po lince RS-232 (RS-422), takže veškeré snímané údaje lze zpracovat např. na PC, popř. do PC načítat pouze „surová“ data vysílána senzorem, a v PC je teprve zpracovat.
Požadavky na rozhraní
Na interface tvořené jednočipovým mikrořadičem jsou z pohledu senzoru s komunikací SSI kladeny tyto požadavky:
- komunikovat se senzorem prostřednictvím standardu RS-422,
- generovat správnou posloupnost taktovacích pulsů (Clock) s ohledem na daný typ senzoru,
- číst a ukládat významové (datové) bity (Data) vysílané senzorem,
- zajistit převod typicky Grayova kódu do jiného (nejčastěji binárního) kódu,
- zobrazit přijatá a zpracovaná data na alfanumerickém zobrazovači LCD,
- vyslat data sériovou komunikační linkou dále.
Konstrukce
Základem vlastního rozhraní, jehož blokové schéma je na (obr. 1), je osmibitový jednočipový mikrořadič řady x51 Atmel 89C2051. Pro připojení senzoru k rozhraní je zapotřebí jedna vstupní (+/– Data) a jedna výstupní (+/– Clock) linka standardu RS 422. K tomu jsou určeny dva obvody SN75176A, popř. jejich modernější a vhodnější náhrady (např. MAX3488). Pro zobrazení (je-li vyžadováno) je použit běžný alfanumerický nebo znakový zobrazovač LCD v uspořádání 16 × 1 nebo 16 × 2. Pro případnou komunikaci s nadřazenou řídicí úrovní po lince RS-232 nebo RS-422 je možné využít některý z velkého množství nabízených převodníků.
Poměrně důležitou hodnotou, mající vliv na volbu typu mikrořadiče, je jeho maximální taktovací kmitočet a z toho plynoucí výpočetní výkon. Vzhledem k požadované minimální frekvenci taktovacích (Clock) pulsů 100 kHz je třeba generovat taktovací pulsy s periodou 5 ms v logické úrovni L a 5 ms v logické úrovni H. Ve druhé půlperiodě je zapotřebí načíst a uložit přijatá sériová data vysílaná senzorem. Takto je nutné postupně načíst a dále zpracovat až 32 významových (datových) bitů. Jako dostačující se ukázal mikrořadič řízený krystalem kmitajícím na frekvenci 24 MHz s odpovídající dobou jednoho strojového cyklu 0,5 ms.
Software
Celý program pro komunikaci se senzorem, následný převod Grayova kódu do binárního kódu, zobrazení údaje na LCD a jeho vyslání po sériové lince jsou napsány v jazyce C ve vývojovém prostředí Keil. Vlastní program zabírá ne více než 2 kB, a lze jej tedy umístit do mikrořadiče 89C2051 s pamětí typu flash 2 kB a RAM 128 B. Při větších nárocích na paměť programu je možné použít 4kB verzi 89C4051, popř. další typy.
Tab. 1. Převod Grayova kódu do binárního a obráceně
// Gray to bin code
long Bin_to_Gray(long i)
{
long answer, mask;
answer = i;
mask=answer/2;
while(mask >0)
{answer = answer ^mask;
mask = mask/2;}
return (answer);
} // end of |
// bin to Gray code
long Bin_to_Gray(long i)
{
return (i ^ (i/2));
} |
|
Algoritmus pro generování taktovacích pulsů a čtení významových datových bytů (Data), včetně jejich ukládání do bitově adresovatelné části RAM, není z časových důvodů realizován v cyklu, ale sekvenčně.
Zápis části programu uskutečňující převod z Grayova kódu do binárního kódu je v tab. 1 (pro úplnost je uveden také zdrojový text funkce převádějící binární kód na Grayův kód).
Závěr
Ze standardních součástek lze snadno sestavit obvod rozhraní pro stále častěji používané průmyslové senzory, zejména absolutní polohy, využívající komunikaci SSI (Serial Synchronous Interface).
Tento článek byl podpořen projektem J17//98:272300008 MŠMT.
Literatura:
[1] NOVÁK, P.: SSI – komunikace pro průmyslové senzory. Automa, 10, 2001, s. 38-40.
[2] MAC4124A Quadrature Decoder with Counter Interface or Serial Synchronous Interface (SSI) Data Shee. MAZeT, Germany 2000, 19 p.
[3] PC-SSI/Slot.3 – Interfacekarte PC und SSI. Stegmann Technische Information Ausgabe, 3/93, Germany 1993, 12 p.
[4] www.risc.uni-linz.ac.at/courses/ws97/intropar/distributed/index_16.htm
|