Jste zde

Převodník RS232 / Centronics

Popisovaná konstrukce tvoří HW interface umožňující připojení tiskárny s rozhraním Centronics k

sériovému portu RS232. Jedná se hlavně o nástin konkrétního řešení, porotože tento typ řešení závisí na konkrétní

aplikaci.

Rozhraní Centronics

Vlastnosti toto rozhraní již byly mnohokrát popisovány na různých místech, proto o jeho funkci jen krátce. Data posílaná do tiskárny jsou počítačem nastavena na signálech DATA0 až DATA7. Ve chvíli, kdy jsou data stabilní se na STROBE vyšle krátký negativní impuls. Tiskárna data převezme a po dobu jejich zpracovávání nastaví signál BUSY. Připravenost k příjmu dalšího byte dat signalizuje koncem BUSY a krátkým impulsem na ACK. Sekvence BUSY – ACK proběhne i v případě, že je tiskárna off-line, vyrovnávací paměť je plná, nebo došel papír. Signál ACK není v převodníku využíván. Naopak je pro test zapnutí tiskárny použit signál na pinu 35 (5V). 

Přenosový protokol RS232

Úkolem protokolu je zajistit, aby data byla po sériové lince přenášena takovým způsobem, aby nedošlo k jejich ztrátě z důvodu neschopnosti tiskárny je přijmout. 

XON/XOFF

Jedná se o softwarový protokol. Je-li tiskárna připravena přijímat data, vyšle znak XON (ASCII DC1 kód 11H. Když se vyrovnávací paměť tiskárny skoro naplní, nebo je tiskárna přepnuta do stavu off-line, je vyslán znak XOFF (ASCII DC3, kód 13H). Počítač musí přestat vysílat data dříve než dojde k přeplnění buferu tiskárny- Není-li v tiskárně papír vysílá se kód NAK – 15H

Při volbě minimální rezervy vyrovnávací paměti převodníku musíme vzít v úvahu také to, že většina současných počítačů má sériový port osazen obvodem UART 16550, který má vestavěný vysílací bufer o velikosti až 16 byte a přijímací bufer o velikosti až 14 byte. Obě velikosti jsou softwarově konfigurovatelné a bývají většinou nastavené na maximální rozsah. Nelze tedy očekávat, že tok dat se zastaví okamžitě po odeslání XOFF. Rezerva vyrovnávací paměti převodníku musí být alespoň tak velká, aby ve chvíli, kdy dojde k odeslání znaku XOFF pojmula beze ztráty ještě tolik znaků kolik UART odvysílá za dobu než procesor přijme řídící znak a než se vyprázdní vysílací bufer UARTu. 


DTR

Je hardwarový protokol podobný protokolu XON/XOFF. Připravenost tiskárny k příjmu dat je signalizována aktivním signálem DTR namísto vysílání řídícího kódu. Počítač musí přestat vysílat po deaktivaci DTR. 


ETX/ACK

Nepříliš často používaný softwarový protokol. Počítač vysílá bloky dat pevně dané délky zakončené řídícím znakem ETX (End Of Text 03H). Tiskárna blok zpracovává a ve chvíli, kdy ve své vyrovnávací paměti narazí na ETX odešle počítači jako potvrzení znak ACK (Acknowledge) – 06H. ETX je samozřejmě řídící znak a netiskne se. Teprve po potvrzení od tiskárny vysílá počítač další blok dat. Tento protokol převodník nepodporuje.

Signál CD sériového rozhraní oznamuje počítači, že tiskárna je zapnutá a je možné se pokusit o tisk. 

Popis zapojení

Celý adaptér je navržen okolo jednočipového mikrořadiče Atmel AT89C2051. Přes port P0 se přenáší data do tiskárny, port P3 je používán pro hadshaking rozhraní centronics (P3.5 a P3.7), datové a stavové signály sériového rozhraní (P3.0, P3.1 a P3.2) a čtení stavu konfiguračního přepínače, (P3.3 a P3.4). Hodinový kmitočet je pro snadné odvození standardních komunikačních rychlostí zvolen na 11,0592MHz. RC článek R2 C7 pro vytváření signálu RESET po zapnutí je doplněn ještě obvodem T1 R1 R2 který navíc resetuje řadič při vypnutí tiskárny. 
Rozhraní komunikační linky RS 232 je tvořeno převodníkem úrovní TTL / RS232 IC2. Pro implementaci rozhraní RS 232 s výše popsanými protokoly jsou zapotřebí tři výstupní signály, v pouzdru IC2 však najdeme jen dva výstupní budiče. Chybějící budič je proto v mém případě vytvořen operačním zesilovačem IC3 zapojeným jako komparátor. Symetrické napájecí napětí +10V / -10V potřebné pro jeho funkci je získáváno ze zdvojovače napětí v IC2. Pokud vystačíme pouze s hardwarovým nebo softwarovým handshakingem, nebude potřeba signál TxD resp. CTS a potom lze samozřejmě obvod IC3 s okolními součástkami vynechat a pro signál DCD využít jeden z ušetřených vysílačů. Stav DCD kopíruje zapnutí nebo vypnutí tiskárny. Signalizační diody LED indikují připojené napájecí napětí - D1 a připravenost k příjmu - volné místo v přijímacím bufferu - D2. Převodník lze napájet z externího stabilizovaného zdroje 5V, v mém případě jsem vyvedl napětí 5V přímo z tiskárny. Spotřeba se pohybuje okolo 20mA. 
 

P3.3   bez funkce – rezervováno
P3.4  volba přenosové rychlosti ON=19200 bps / OFF=9600 bps

Schéma


Značení signálů konektoru CON1 je z pohledu počítače - detail schematu

Program

Hlavní částí programu je obsluha kruhového buferu a paralelního rozhraní. Program pro AT89C2051 ve formátu Intel HEX můžete stáhnout zde.

Převodník komunikuje s počítačem jednou ze zvolených rychlostí - 9600 nebo 19200 Bd. Další parametry komunikace jsou: šířka slova 8 bitů, bez parity, 1 stop bit a 1 start bit. Volba přenosového protokolu se provádí nastavením komunikačního software na straně počítače a výběrem signálů, kterými vzájemně propojíme počítač a převodník. Pro protokol XON/XOFF stačí propojit signály Rx, Tx, CD a zem. Hardwarový protokol vyžaduje Tx, CTS, CD a zem 

Závěr: 

Tento článek není kompletním stavebním návodem pro začínající amatéry,  přestože popisované zařízení bylo úspěšně vyzkoušeno s různými maticovými  tiskárnami pod operačními systémy MS Windows 95/98 a SCO Openserver. Jde  spíše o ukázku možného řešení a zdroj inspirace pro další vývoj.

Hodnocení článku: