Hlavní navigace

Rozšíření počtu vstupů portu

Erik Yokotashi Hamera 23. 7. 2009

Paralelní port (v základním režimu) má jen 5 vstupů, což nemusí vždy stačit. Rozšiřování počtu vstupů je jednodušší než rozšiřování počtu výstupů, neboť není zapotřebí žádná součástka, která by si pamatovala stav. Stačí si přepnout vstup a přečíst. K tomuto účelu se prodávají hotové multiplexory, nebo lze použít hradla.

Přepínač vstupů

Otázka je, jak za pomoci logických hradel přepnout vstup. Poměrně snadné je hradlem vstup vypnout a zapnout. Použijeme-li jeden vstup hradla AND jako datový a druhý jako řídící, dostaneme pro log 1 na řídícím vstupu na výstupu hodnotu z datového vstupu. Pro log 0 na řídícím vstupu dostáváme vždy log 0 na výstupu. Pokud zapojíme tyto „vypínače“ na více datových vstupů (na každý jeden), a zapneme pouze jeden z nich, dostaneme pouze jeden signál a zbytek budou log 0. Můžeme tedy vše sečíst a máme na výstupu vybraný signál. Ke sčítání se použije hradlo OR. Jeho sčítání je sčítání ve smyslu booleovy algebry, nikoliv klasické matematiky, ale to v tomto případě nevadí, protože víme, že na jeho vstupech je jen jeden signál, zbytek jsou log 0.

Pokud bychom chtěli přepínat mezi dvěma signály, potřebujeme dvě dvouvstupová hradla AND a jedno dvouvstupové hradlo OR. Oba řídící signály můžeme generovat přímo z portu, ale lze si povšimnout, že oba řídící signály nesmí být současně v log 1 (jinak nečteme jeden vstup, ale jejich logický součet) a nemá smysl, aby byly současně v log 0 (čteme vždy log 0 bez ohledu na stav vstupu). Stačí tedy generovat jen jeden řídící signál a jako druhý použít jeho negaci.

Rozšíření počtu vstupů portu - schéma 1

Optimalizovaný přepínač

Toto zapojení obsahuje tři typy hradel, které se běžné vyrábějí v pouzdrech po čtyřech (AND a OR), nebo šesti (NOT) hradlech. Takže by přepínač jednoho vstupu obsahoval tři pouzdra integrovaných obvodů, což je poněkud nepraktické. Čtyři identické přepínače by obsahovaly čtyři pouzdra IO. Naštěstí lze obvod optimalizovat. Hradlo OR je možné nahradit hradlem AND, které má negované všechny vstupy a výstup. S negací výstupu problém není, stačí použít hradlo NAND … a s negací vstupů vlastně také ne, použijí-li se místo vstupních hradel AND hradla NAND. Na přepínání mezi dvěma signály tedy potřebujeme tři hradla NAND a jedno hradlo NOT. Dvouvstupová hradla NAND se vyrábějí po čtyřech (obvod 7400), spojením vstupů hradla NAND vzniká NOT, takže se nám celý přepínač podaří postavit z jednoho pouzdra 7400.

Rozšíření počtu vstupů portu - schéma 2

Takto lze postavit přepínače pro všech pět vstupů paralelního portu. Budou obsahovat 5 výstupních hradel, 10 vstupních a jedno zapojené jako NOT. Dohromady 16 hradel NAND, tedy 4 pouzdra. Zapojení je identické, hradlo NOT je společné (není důvod neřídit všechny přepínače jedním výstupem). Tady může nastat problém s tím, že na jeden výstup paralelního portu je připojeno 7 vstupů hradel. Na výstup TTL hradla by mělo jít připojit přes 10 vstupů, ale výstupy paralelního portu často nejsou úplně podle normy TTL. Pokud máte port oddělený (podstatné je, že zesílený), není to problém.

Pokud to výstup paralelního portu nezvládne, lze mu ulehčit o jeden vstup alternativním zapojením negátoru. Místo zapojení A NAND A = NOT A lze totiž použít A NAND 1 = NOT A, logická 1 je napájecí napětí TTL obvodů. Pokud by nepomohlo ani to, je nutné výstupní signál zesílit. Stačí hradlo NOT (stejně je tento signál potřeba negovaný i nenegovaný), ale žádné volné není, takže by to znamenalo další pouzdro IO. Lze také použít NPN tranzistor s odporem cca 4k7 v bázi (na paralelní port) a 1k v kolektoru (na +5V, kolektor je výstup), což je také negátor.

Na portech, kde jsem to používal, naštěstí tento problém nenastal.

Rozšíření počtu vstupů portu - schéma 3

Čtveřice společně ovládaných dvouvstupových multiplexorů se prodává jako jeden obvod, takže bych dnes (pokud bych nepotřeboval stejné zpoždění na všech vstupech, což u paraleního portu opravdu potřeba není) stavěl pětinásobný multiplexor z jednoho obvodu 7400 a jednoho 74157 (čtyřnásobný multiplexor), což zároveň sníží zátěž ovládacího výstupu paralelního portu.

Zpoždění signálů

Na každém hradle dochází ke zpoždění signálů. Toto zpoždění je závislé na napájecím napětí (s tím u TTL hýbat nelze) a na řadě obvodů. Obvody řady 74Fxx jsou z běžných obvodů nejrychlejší (lze je použít na 100MHz), 74HCTxx pracují do 40MHz (typické zpoždění hradla 7ns při 25 stupnich Celsia a napájecím napětí 4.5V, maximální zpoždění 22ns / –40 až +125 degC / 4.5V – viz datasheet). Zpoždění na hradle je uvedeno v datasheetu. Například pro 74HCT00 se udává typické zpoždění 10ns. Pokud je třeba spínat rychle (jednou instrukcí přepnout, druhou číst), 74HCT00 vyhoví (což nic nemění na tom, že je třeba vyzkoušet, zda to stihne sám port). Pokud na rychlosti příliš nesejde (není problém mezi přepnutím a čtením několik mikrosekund počkat), lze použít jakékoliv obvody.

Návrh

Je principiálně jedno, zda si na tento obvod navrhnete plošný spoj, nebo ho zaletujete na bastldesku (nepájivé kontaktní pole doporučuji jen na hraní a ozkoušení). V každém případě je nutné ke každému pouzdru IO dát jeho blokovací kondenzátor. Ten by měl být keramický (svitkové a elektrolytické mají velkou indukčnost) s kapacitou mezi 33nF a 330nF. Většinou se používá 100nF. Celá deska by měla mít v napájení elektrolytický kondenzátor cca 10uF až 100uF. Napájecí vodiče by měly mít větší průřez (šířka 1mm na plošňáku a pocínovat, na bastldesce většinou člověk příliš tenký drát nepoužije, protože se s ním špatně dělá) a měly by vést přímo (stačí pravoúhle). Datové a napájecí vodiče by neměly mít dlouhé souběhy (být společně vedené blízko u sebe) a také se doporučuje, aby vstupní a výstupní vodiče byly spíše dál od sebe.

Platí, že čím méně pouzder, tím méně práce, takže se nevyplatí šetřit na součástkách (nejste-li student potřebující ušetřit desetikorunu za cenu hodiny své práce, nebo neděláte-li mnohatisícikusové série na osazovacích strojích, kde bude ekonomická kalkulace složitější). Navíc je zpravidla použití méně pouzder i levnější, takže často lze „šetřit“ pouze že šuplíkových zásob. Na druhou stranu hradla jsou v šuplíkových zásobách častěji, což se hodí při víkendovém bastlení.

Složitější přepínače

Není problém z hradel navrhnout i mnohem složitější přepínače – třeba se čtyřiceti vstupy, pěti výstupy a ovládaný třemi signály (23=8 stavů). Nicméně osmi a šestnáctivstupové multiplexory lze koupit jako hotové součástky (74151A, 74150) a je efektivnější stavět z nich.

Našli jste v článku chybu?

23. 7. 2009 10:43

Není nepájivé pole nepájivé přesně kvůli tomu aby se na něj nemuselo pájet ?

27. 8. 2009 12:17

muf (neregistrovaný)

Nevím teda ale pokud je zpoždění cca 10ns pak to odpovídá frekvenci cca 100 MHz, jsou tam dva přechody a nějaká rezerva a jsme na 40MHz, no asi není PC které umí vzorkovat paralel tímhle zvěrstem – běžně lze tak do 100 kHz. Jenom chci říct že zpoždění není limitující u hradlové logiky, nicméně s nějakým ultra pomalým MCU i při cyklickém testování i/o portů už to začne být „o prsa“.

Lupa.cz: Slevové šílenství je tu. Kde nakoupit na Black Friday?

Slevové šílenství je tu. Kde nakoupit na Black Friday?

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Lupa.cz: Není sleva jako sleva. Jak obchodům nenaletět?

Není sleva jako sleva. Jak obchodům nenaletět?

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

120na80.cz: Bojíte se encefalitidy?

Bojíte se encefalitidy?

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?