Emulace připojené tiskárny na LPT port

Počítače stolní, notebooky, tablety, tiskárny, scanery a vše, co nějak souvisí s PC

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
Osmdesat
Příspěvky: 1497
Registrován: 19 led 2016, 01:00
Bydliště: Liberecko

Emulace připojené tiskárny na LPT port

#1 Příspěvek od Osmdesat »

Potřeboval bych docílit odeslání dat na LPT port, i když na něj není nic připojeného. Když zadám ve windows zápis do souboru "lpt1", zápis se zasekne, pokud tam není zařízení, které to "odhendšejkuje".
Zkoušel jsem nahodit vstup SELECT, shodit ACK, ale nejde to. Nevíte, jakým zapojením to jednoduše ošulit?

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#2 Příspěvek od rnbw »

Potvrdzuje sa kazdy bajt.
Přílohy
centron.gif
(2.7 KiB) Staženo 67 x

Uživatelský avatar
tomasjedno
Příspěvky: 5634
Registrován: 11 říj 2008, 02:00
Bydliště: ZZ9 Plural Z Alpha

#3 Příspěvek od tomasjedno »

Zkusil bych propojit STB a ACK. Může být potřeba ještě ošetřit BUSY a PAPER ERROR.

Uživatelský avatar
EKKAR
Příspěvky: 29689
Registrován: 16 bře 2005, 01:00
Bydliště: Česká Třebová, JN89FW21

#4 Příspěvek od EKKAR »

Nešlo by tohle ošetřit nějakým hádrujýnem ? Prostě procesůrek napájenej z portu, kterej by na podnět z datový linky odeslal příslušnej handshake ...?
Nasliněný prst na svorkovnici domovního rozvaděče: Jó, paninko, máte tam ty Voltíky všecky...

A kutilmile - nelituju tě :mrgreen: :mrgreen: !!!

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#5 Příspěvek od rnbw »

Na paralelnom porte nie je ziadne napajanie.

Nieco s minimalnou spotrebou by sa dalo napajat cez diody z riadiacich signalov. Napajaju sa tak automaticke prepinace 2 PC -> 1 tlaciaren. Tie maju vsak vyhodu, ze mozu zrat z PC aj tlaciarne sucasne.

Uživatelský avatar
tomasjedno
Příspěvky: 5634
Registrován: 11 říj 2008, 02:00
Bydliště: ZZ9 Plural Z Alpha

#6 Příspěvek od tomasjedno »

EKKAR píše:Nešlo by tohle ošetřit nějakým hádrujýnem ? Prostě procesůrek napájenej z portu, kterej by na podnět z datový linky odeslal příslušnej handshake ...?
Jistě by se to dalo vymyslet ještě složitějc.

Uživatelský avatar
Osmdesat
Příspěvky: 1497
Registrován: 19 led 2016, 01:00
Bydliště: Liberecko

#7 Příspěvek od Osmdesat »

Nevíte, jestli si ten handshake softwarově hlídá windowsový ovladač portu, nebo se hlídání handshaku děje na úrovni HW?

Otázka je, jak přísná je ta kontrola - tedy jestli tomu stačí jen ACK? Nebo tam potřebuje mít i to BUSY?

Mohl bych na výstup STROBE zapojit tranzistorový invertor, který by vyrobil signál pro BUSY, a signál pro ACK bych vyvedl přímo ze STROBE. Ale odehrálo by se to všechno současně a nevím, jestli by to sežral. Třeba tam chce vidět posloupnost - strobe, po něm busy a nakonec ACK. Pak bych tam musel zavést zpoždění. RC členem by se daly ty signály možná trochu prodloužit.


Vím, že existují možnosti to obejít, mám otestovanou knihovnu inpout32.dll pro přímý zápis na V/V porty, s tou to chodí dobře, ale pak to musíš tok dat řídit softwarově - bitbangingem, což zatěžuje CPU, je to pomalé (user mode driver), není to časově přesné a proč to dělat, když to jde nativně úrovni řadiče/ovladače?

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#8 Příspěvek od rnbw »

V SPP mode sa vsetko robi cez SW. V EPP a ECP modoch to riesi HW.

Uživatelský avatar
tomasjedno
Příspěvky: 5634
Registrován: 11 říj 2008, 02:00
Bydliště: ZZ9 Plural Z Alpha

#9 Příspěvek od tomasjedno »

Osmdesat píše: Otázka je, jak přísná je ta kontrola - tedy jestli tomu stačí jen ACK? Nebo tam potřebuje mít i to BUSY?
BUSY je nepovinný, dej ho na 0.

Uživatelský avatar
EKKAR
Příspěvky: 29689
Registrován: 16 bře 2005, 01:00
Bydliště: Česká Třebová, JN89FW21

#10 Příspěvek od EKKAR »

tomasjedno píše:
EKKAR píše:Nešlo by tohle ošetřit nějakým hádrujýnem ? Prostě procesůrek napájenej z portu, kterej by na podnět z datový linky odeslal příslušnej handshake ...?
Jistě by se to dalo vymyslet ještě složitějc.
Pro mě je to všecko "hádrujýno" - prostě myslel jsem nějakej programovatelnej šváb s minimální spotřebou, kterej by se dal napájet buď přímo z portu, nebo usměrněnýho signálu nějaký linky => aby nebyl potřeba žádnej další napájecí zdroj a kterej by učunil tu funkci odezvy na portu. Pokud to zvládneš líp, třeba jedním odporem a půlkou tranzistoru, navrhni to. Já neznám průběhy na tiskovým portu, ale napadlo mě, že nějakej programovatelnej bázmek by to zvládat musel. Některým lidem stačí napovědět směr, dál už pak věc řeší sami. Chtěl jsem jen popostrčit, ne navrhovat jedno určitý a pravděpodobně i moc složitý řešení. Když ale v dnešní době lidi řeší i blbej blikač namísto dvou trandů, pár odporů, kondíku a LEDky jedním programovatelným švábem a tvrdí, že to je levnější řešení, proč nepoužít podobnou cestu i na ten LPT port?
Nasliněný prst na svorkovnici domovního rozvaděče: Jó, paninko, máte tam ty Voltíky všecky...

A kutilmile - nelituju tě :mrgreen: :mrgreen: !!!

Uživatelský avatar
samec
Příspěvky: 3692
Registrován: 19 pro 2017, 01:00

#11 Příspěvek od samec »

A nestačilo by v príkazovom riadku napísať "type LPT1 > nul" ?

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#12 Příspěvek od rnbw »

Ten prikaz by mal robit akoze co?

Uživatelský avatar
Osmdesat
Příspěvky: 1497
Registrován: 19 led 2016, 01:00
Bydliště: Liberecko

#13 Příspěvek od Osmdesat »

Já tam ty data budu skutečně potřebovat. Ale na něco jiného, než na tisk. Jen potřebuju, aby si systém myslel, že jsou data přijímána tiskárnou, a v klidu je poslal.

Uživatelský avatar
Osmdesat
Příspěvky: 1497
Registrován: 19 led 2016, 01:00
Bydliště: Liberecko

#14 Příspěvek od Osmdesat »

Už mi to funguje - pro funkčnost přes Windows API je nutno uzemnit BUSY a PAPER OUT. Když jsem uzemnil ještě ERROR, už to nefungovalo. S ACK nebylo nutné nic dělat.

Uživatelský avatar
Osmdesat
Příspěvky: 1497
Registrován: 19 led 2016, 01:00
Bydliště: Liberecko

#15 Příspěvek od Osmdesat »

Jinak měřil jsem trvání těch přes Windows API volně posílaných bajtů a zjistil, že na ntb s Pentiem 4 a windows XP trvá bajt asi 12 µs.
U čtyřjádrového Xeonu s Windows 7 trvá bajt 30 µs, a trvání dost kolísá. Nechápu, když je to rychlejší počítač. Podezírám, že za to může Windows 7.

Odpovědět

Zpět na „Výpočetní technika“