Produkty Novinky Články Návody Kontakty

Popis

Jak už jsme nastínili v úvodu, hw přípravek budeme připojovat k počítači přes paralelní port. Možná si někteří kladete otázku proč zrovna přes paralelní port? Mohli bychom použít rozhraní USB, ale to vyžaduje řadič a složitý ovladač. Nebo sériový port, který ovšem nemá dostatečný počet vodičů a vyžaduje převodník singálů RS232/TTL. V porovnání s těmito rozhraními vyhrává paralelní port počtem vodičů a snadnou implementací ovladačů připojených zařízení. Signály paralelního portu jsou navíc v úrovni TTL (5V), takže převodník úrovní není potřeba.

Paralelní port

Paralelní port může pracovat v několika režimech. Určitě jsou vám povědomé zkratky jako EPP, ECP či SPP. Jsou to označení nejběžnějších pracovních módů paralelního portu: EPP = Enhancement parallel port, ECP = Extended capabilities mode a SPP = standard parallel port. Nás bude zajímat mód SPP (někdy také označovaný jako Normal), v němž na rozdíl od módů EPP a ECP nezasahuje do přenášení dat další interní logika řadiče paralelního portu (DMA řadič, FIFO bufery apod.) Proto se ujistíme, že v BIOSu základní desky počítače použivaného pro pokusy je režim paralelního portu nastaven na SPP (příp. Normal) a obousměrný režim (bi-directional).
Pin (DSUB25) Signál I/O směr Registr HW invertován
1 /Strobe vstup/výstup řídící ano
2 D0 výstup datový
3 D1 výstup datový
4 D2 výstup datový
5 D3 výstup datový
6 D4 výstup datový
7 D5 výstup datový
8 D6 výstup datový
9 D7 výstup datový
10 /Ack vstup stavový
11 Busy vstup stavový ano
12 Paper-Out vstup stavový
13 Select vstup stavový
14 /Auto-Linefeed vstup/výstup řídící ano
15 /Error vstup stavový
16 /Initialize vstup/výstup řídící
17 /Select-printer vstup/výstup řídící ano
18 - 25 GND
Tabulka 1.1 Signály paralelního portu
Signály paralelního portu lze rozdělit do tří skupin: datové, řídící a stavové. Mimo to je samozřejmě vyveden i vodič signálové země. Seznam signálů je v tabulce 1.1. Signály uvozené lomítkem jsou signály s inverzní logikou. To znamená, že takový signál je aktivní v log. 0 místo v log. 1. Signály označené jako HW invertované jsou signály, jejichž logická úroveň je invertována logikou paralelního portu. Tedy, že když do řídícího registru zapíšeme např. na pozici signálu /Strobe log. 1, tak na výstupu paralelního portu bude mít tento signál úroveň log. 0. Stav odpovídajícího bitu a stav signálu na sběrnici jsou vůči sobě invertovány.
Výstupní úrovně paralelního portu odpovídají úrovním TTL logiky. Většina řadičů paralelního portu dokáže dodávat i odebírat proud až 12mA. Přesto je doporučeno používat budiče sběrnice (bus driver).
Řídící, stavové a datové signály jsou v adresovém prostoru počítače architektury x86 namapovány jako tři I/O registry, resp. I/O porty. Bázová adresa (adresa prvního registru) je pro paralelní port LPT1 adresa 0x378 (hexadecimálně), pro paralelní port LPT2 pak 0x278.
Popis datového registru je v tabulce 1.2. Do datového registru se zapisují data, která mají být vystavena na datové sběrnici paralelního portu. Čtení z datového registru vrátí poslední zapsanou hodnotu.
Jestliže ovšem paralelní port v BIOSu počítače nastavíme jako obousměrný a v řídícím registru nastavíme 5. bit Enable Bi-Directional Port na log. 1, můžeme přes datový registr vyčítat data přítomná na datové sběrnici. Zmíněný bit v řídícím registru zajistí odpojení výstupního budiče datové sběrnice a přepnutí na vstupní režim.
Poznámka: Některé řadiče paralelních portů se chovají jinak. Pro aktivaci obousměrného režimu vyžadují zápis log. 1 do 6.bitu řídícího registru apod.
Datový registr
Adresa Bit Signál
0x378 7 D7
6 D6
5 D5
4 D4
3 D3
2 D2
1 D1
0 D0
Stavový registr
Adresa Bit Signál
0x379 7 Busy
6 /Ack
5 Paper Out
4 Select
3 Error
2
1
0
Řídící registr
Adresa Bit Signál
0x37A 7
6
5 Enable Bi-Directional Port
4 Enable IRQ via /Ack
3 /Select-printer
2 /Initialize
1 /Auto-Linefeed
0 /Strobe
Tabulka 1.2 Registry paralelního portu
V tabulce 1.2 jsou uvedeny významy bitů stavového registru paralelního port. Ze stavového registru lze pouze číst.
Posledním registrem je řídící registr, jehož popis je uveden v tabulce 1.2. Běžně je používán pouze k zápisu řídící sekvence, nicméně za určitých okolností z něj lze i číst (podrobnostmi se nebudeme zabývat, protože řídící signály budeme vždy používat jako výstupní).

Schéma

Na obrázku 1.1 je zobrazeno schéma přípravku. Seznam součástek je v tabulce 1.3.
obrázek hwkit-zaklad-schema
Obrázek 1.1 Základ přípravku - schéma
Ze schématu je patrné, že budeme využívat celou datovou sběrnici a řídící signály /Initialize (zkráceno na Init), /Strobe, /Auto-linefeed (zkráceno na /Autofeed) a /Select paralelního portu. Stavové signály paralelního portu využívat nebudeme.
Abychom postihly skutečnost, že signály /Strobe, /Auto-linefeed a /Select jsou vůči odpovídajícím bitům v řídícím registru hardwarově invertovány, zatímco signál /Initialize nikoliv, budeme ve schématech používat tato označení signálů: Init (signál Initialize), /Strobe (signál /Strobe), /Autofeed (signál /Auto-linefeed) a /Select (signál /Select).
Protože potřebujeme zajistit definované výchozí úrovně na datové sběrnici, jsou všechny její vodiče připojeny pomocí pull-up odporů na napájecí napětí +5V. Pull-up odpory realizujeme pomocí odporové síInformationSoučástka, v které je integrováno více odporů s jedním společným vývodem. RN1 se společným vývodem připojeným na napájecí napětí.
Přípravek je připojen k paralelnímu portu pomocí konektoru P1 typu D-SUB25 male (zásuvka), resp. CAN25 male.