Löytyi hyvä dokkari rinnakkaisportista kiinnostuneille jos joku vielä rakentelee tuolle omia kytkentöjä:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.128.1178&rep=rep1&type=pdf
Erityisesti tykkäsin EPP-kohdan kytkennästä, jossa näytetään miten ylimääräisten output-kontrollinastojen puutteesta rinnakkaisportissa pääsee eroon melko yksinkertaisella puskurointi kytkennällä (esim. 74hct573).
Tuo EPP:hän taitaa löytyä 386:sta lähtien porteista aika usein ja on helppo käyttää, kun ohjelmoijan näkökulmasta riittää yksi OUT tai IN komento, kun portti hoitaa kaikki signaloinnit itse - ainakin helpompaa kuin perus SPP portin kanssa. Sen sijaan EPP ei ole kiva jos porttiin kytkee mikrokontrollerin suoraan kättelemään signaaleja, koska sen ajoitusten saaminen esim. keskeytyskäsittelijälle voi olla vaativa operaatio - kannattaa tällöin ainakin vilkaista jo ECP-porttia, koska se protokolla on taas suunniteltu cpu - cpu välille.
kirjoitinportista omia kytkentöjä
8
57
Vastaukset
- Anonyymi
Rinnakkaisporttia ei nykyään löydy kuin > 15 vuotta vanhoista pöytätietokoneista. Niitä vielä löytyy kierrätyksestä mutta laitteille on käyttöjärjestelmän tuessa ongelmia.
https://en.wikipedia.org/wiki/Parallel_port
Nykyään tarvittavan USB <-> rinnakkaisportti - muuntimen sijaan itse käyttäisin ulkoisia laitteita esimerkiksi Raspberry PI:n tai Arduinon SPI/I2C väylien avulla. Niiden ohjaus virtuaalisen sarjaportin tai WLAN-yhteyden kautta onnistuu myös tämän päivän muodin mukaisissa käyttöjärjestelmissä ja laitteissa.- Anonyymi
Jaa että pitäisi vielä jotakin maksaa siitä, että saa kytkeä tietokoneeseen omia laitteita? Jos ilmaiseksi saa kytkettyä omia kytkentöjä koneeseen sarja tai rinnakkaisportin kautta - miksi pitäisi käyttää rahaa tekniikkaan jota ei selvästikkään tarvita vaan on kehitetty rahastuksen takia?
Valitettavasti USB on erittäin surkea väylä. Se käy selväksi jos yrittää tehdä mitään kaksisuuntaista tiedonsiirtoa, jossa vastauksen ajoitukset ovat yli 1kHz taajuisia signaaleja - pakettiformaatti ei pysty vastaamaan tarpeeseen. Vertailun vuoksi, rinnakkaisporttiin pystyy kirjoittamaan tai lukemaan 2MHz taajuudella. USB:n käyttö toki on mahdollista, mutta vaatii aina väliin puskurointia ja mikrokontrollereita. Miksi näitä pitäisi käyttää?
PCI-express väylään saa rinnakkaisportin ostettua kympillä. Valitettavasti PCI-express väylässä on myös USB-väylä, joten pitää olla tarkkana, että laite todella on express-väylässä kiinni eikä USB. Käyttäjiä siis harhautetaan tässäkin.
Emolle sitä ei ole integroitu koska valmistajille sopii ajatella rinnakkaisportti vain kirjoitinporttina, jolloin usb-toteutus on tiedon siirron kannalta käyttökelpoinen ratkaisu.
En kuitenkaan ymmärrä, miksi välissä pitäisi olla ylimääräisiä "rahastuspiirejä", jos homma onnistuu ilmankin? - Anonyymi
Anonyymi kirjoitti:
Jaa että pitäisi vielä jotakin maksaa siitä, että saa kytkeä tietokoneeseen omia laitteita? Jos ilmaiseksi saa kytkettyä omia kytkentöjä koneeseen sarja tai rinnakkaisportin kautta - miksi pitäisi käyttää rahaa tekniikkaan jota ei selvästikkään tarvita vaan on kehitetty rahastuksen takia?
Valitettavasti USB on erittäin surkea väylä. Se käy selväksi jos yrittää tehdä mitään kaksisuuntaista tiedonsiirtoa, jossa vastauksen ajoitukset ovat yli 1kHz taajuisia signaaleja - pakettiformaatti ei pysty vastaamaan tarpeeseen. Vertailun vuoksi, rinnakkaisporttiin pystyy kirjoittamaan tai lukemaan 2MHz taajuudella. USB:n käyttö toki on mahdollista, mutta vaatii aina väliin puskurointia ja mikrokontrollereita. Miksi näitä pitäisi käyttää?
PCI-express väylään saa rinnakkaisportin ostettua kympillä. Valitettavasti PCI-express väylässä on myös USB-väylä, joten pitää olla tarkkana, että laite todella on express-väylässä kiinni eikä USB. Käyttäjiä siis harhautetaan tässäkin.
Emolle sitä ei ole integroitu koska valmistajille sopii ajatella rinnakkaisportti vain kirjoitinporttina, jolloin usb-toteutus on tiedon siirron kannalta käyttökelpoinen ratkaisu.
En kuitenkaan ymmärrä, miksi välissä pitäisi olla ylimääräisiä "rahastuspiirejä", jos homma onnistuu ilmankin?Mitä käyttistä koneessa käytät?
Raspberry PI 4 tekee sujuvasti SPI-liikennettä nopeudella 30 MHz eli siitä saa lävitse luokkaa yli 20 megabittiä sekunnissa. Eli 8 - bittinen spi->parallel piiri voi syytää dataa 2 MHz bittitaajuudella.
Kun näitä laitteita vertaillaan niin yksi asia pitää muistaa. Vanhanmallinen pööytätietokone on melkoinen tehosyöppö. Jos laite on päällä vain lyhyitä aikoja niin sitten sillä ei ole väliä mutta esimerkiksi 24/7 - käytössä alkaa kilowattitunteja kertyä. Kalliimpi mutta vähemmän sähkötehoa syövä laite voi tulla käytössä huokeammaksi. Sata wattia vuoden ajan tekee 876 kWh eli viidentoista sentin sähkönhinnalla (siirto kulutus) tuosta tulisi 130 euroa. Jos joku ratkaisu säästää jatkuvasti 20 W käyttötehoa niin se säästää vuodessa luokkaa 26 euroa.
Omassa käytössä tärkeintä on tietenkin se, mitä itse pitää tärkeimpänä. Jos on tottunut ohjelmoimaan laitetta X niin sitten voi hyvinkin kannattaa käyttää laitetta X vaikka jonkun muun mielestä se olisikin huonompi ratkaisu. Ja jos laitetta ei ole tarkoitettu sarjatuotantoon niin osien saatuvuusongelmatkaan eivät vaikuta. - Anonyymi
Anonyymi kirjoitti:
Jaa että pitäisi vielä jotakin maksaa siitä, että saa kytkeä tietokoneeseen omia laitteita? Jos ilmaiseksi saa kytkettyä omia kytkentöjä koneeseen sarja tai rinnakkaisportin kautta - miksi pitäisi käyttää rahaa tekniikkaan jota ei selvästikkään tarvita vaan on kehitetty rahastuksen takia?
Valitettavasti USB on erittäin surkea väylä. Se käy selväksi jos yrittää tehdä mitään kaksisuuntaista tiedonsiirtoa, jossa vastauksen ajoitukset ovat yli 1kHz taajuisia signaaleja - pakettiformaatti ei pysty vastaamaan tarpeeseen. Vertailun vuoksi, rinnakkaisporttiin pystyy kirjoittamaan tai lukemaan 2MHz taajuudella. USB:n käyttö toki on mahdollista, mutta vaatii aina väliin puskurointia ja mikrokontrollereita. Miksi näitä pitäisi käyttää?
PCI-express väylään saa rinnakkaisportin ostettua kympillä. Valitettavasti PCI-express väylässä on myös USB-väylä, joten pitää olla tarkkana, että laite todella on express-väylässä kiinni eikä USB. Käyttäjiä siis harhautetaan tässäkin.
Emolle sitä ei ole integroitu koska valmistajille sopii ajatella rinnakkaisportti vain kirjoitinporttina, jolloin usb-toteutus on tiedon siirron kannalta käyttökelpoinen ratkaisu.
En kuitenkaan ymmärrä, miksi välissä pitäisi olla ylimääräisiä "rahastuspiirejä", jos homma onnistuu ilmankin?"Vertailun vuoksi, rinnakkaisporttiin pystyy kirjoittamaan tai lukemaan 2MHz taajuudella."
Täytyy olla erityisesti huippunopeuksiin suunniteltu piiri ja piirilevy, jos tuohon pystyy!
Normaalitapauksessa 1 MHz on tuon LPT -portin yläraja, joka tulee ihan tästä:
esim.
mov DX, porttinumero
mov AL, databyte
out DX,AL
Ylläolevassa koodissa käsky out DX,AL kuluttaa tyypillisesti aikaa yhden mikrosekunnin CPU:n kellotaajuudesta riippumatta !
Eli olipa 20 MHz vanha CPU tai 3,5 GHz uusi CPU, niin molemmilla n. 1 mikrosekunti kestää käskyn out DX,AL suoritus !
Johtuuk otuo CPU:sta itsestään, väyläelektroniikasta vai kirjoitinportin omasta toteutuksesta, sitä en tiedä.
Lisäksi vain MS-DOS -käyttöjärjestelmässä voi sovellusohjelma sellaisenaan ohjata laitteistoportteja, mutta sekä Windows että Linux asettavat omia sääntöjään asiaan !
- Anonyymi
Hienoa! Uusin kone mikä löytyy on vuodelta 2006 :) Vanhin taitaa olla -80 luvulta, mutta siinäkin on centronics portti - eikä PC ensinkään. Kaikki käytössä.
- Anonyymi
Justiinsa!
Käyttöjärjestelmät (vanhaa MS-DOSia lukuunottamatta) ovat suurin este tuolle!
Linuxissa ilmeisesti onnistuu, mutta vaatii:
1) Ohjelmisto-osaamista (käytä funktiota ioperm antaaksesi ohjelmalle oikeudet laiteporttien käsittelyyn).
2) Aja ohjelma root -oikeuksin. Muuten ioperm() ei toimi !
Windowsissa onnistuu myös, mutta vain 32-bittisissä käyttöjärjestelmäversioissa, ja sielläkin vaatii laiteohjaimen (esim. giveio.sys) lataamista. Omissa ohjelmissa: Käytä DeviceIoControl() -funktiota laiteohjaimen kanssa keskusteluun.
En ole nähnyt netissä vastaavaa 64-bittiseen käyttöjärjestelmäversioon sopivaa laiteohjainta.
Vanhoissa Windows 95/98/98SE/ME -versioissa ei tarvita laiteohjainta, vaan niissä CPU:n omat In ja Out -käskyt riittävät !
Nuo laiteohjaimet (Windows) yleensä joko:
a) Tarjoavat InPort() ja OutPort() -funktiot, joita käytetään CPU:n omien In ja Out -käskyjen sijasta.
b) Asentavat sellaisen "fault handler":in, joka reagoi esim. CPU:n omaa out -käskyyn näin (koska se suojatussa käyttöjärjestelmässä generoi "CPU Protection Fault"):
mov EAX, [Client_EAX]
mov EDX, [Client_EDX]
out DX,AL
add [Client_EIP], n
missä n = käskyn "Out DX,AL" koko tavuina.
Jos käyttäisin nyt 32-bit windowsia, olisin voinut tarkistaa tuon käskyn koon DEBUG.EXEä käyttämällä, mutta kun 64-bit windowsissa ei ole DEBUG.EXEä, niin jää harjoitustehtäväksi lukijalle.
Tuo periaate esim."mov EAX, [Client_EAX]" on tuttu Anrdew Schulmanin kirjasta "Undocumented Windows 95".
Tuo koodi siis ajetaan sitä varten erikseen suunnitellussa keskeytyskäsittelijässä, ja tuon seurauksena suoraan sovellusohjelmasta tehty "Out DX,AL" -käsky "toimii" - todellisuudessa se ei toimi, mutta sen toimintaa simuloidaan oikein suunnitellulla keskeytyskäsittelijällä, jolloin se näyttää toimivan, ja ainoa ero siihen, että se toimisi oikeasti, on suoritusnopeus, eli kun sovellusohjelma "suorittaa" käskyn Out DX,AL, niin todellisuudessa suoritetaan vähintään satoja, ellei tuhansia käskyjä samaan lopputulokseen pääsemiseksi kuin suojaamattomassa (esim. MS-DOS) käyttöjärjestelmässä tapahtuisi !
Tällaista kirjoitellessa tuntuu joskus, että ohjelmointi on monimutkaisempaa kuin elektroniikka, mutta tämä ei ole koko totuus asiasta.- Anonyymi
Mitenkähän lienee, linuxissa löytyy 64-bittisissäkin inb/outb rutiineista ainakin 8 /16/32 bittiset versiot. I/O ei taida voida olla 64-bittistä perus-emoilla? Käytännössä nuo on wrappereita suoraan alla oleville asm-komennoille. ioperm():n ne vaatii tai sitten on tehtävä kernel-ajuri, mikä voi olla hyvä idea jos siirrettävää dataa on enemmän: User space:sta ei saa tehtyä kaikkia temppuja, kuten DMA-siirtoa suoraan laitteelta muistiin. Valmiitakin ajureita löytyy, joissa toiminnot saatu ioctl():n avulla user space:n puolelle koko lailla - DMA siirtoa ei taida pystyä virittelemään sinne kuitenkaan..
No, ei jaksa kuitenkaan opetella mitään uutta enää: Välillä ms-dos virtualboxissa tuntuu ihan hyvältä ratkaisulta saada homma toimimaan. - Anonyymi
Anonyymi kirjoitti:
Mitenkähän lienee, linuxissa löytyy 64-bittisissäkin inb/outb rutiineista ainakin 8 /16/32 bittiset versiot. I/O ei taida voida olla 64-bittistä perus-emoilla? Käytännössä nuo on wrappereita suoraan alla oleville asm-komennoille. ioperm():n ne vaatii tai sitten on tehtävä kernel-ajuri, mikä voi olla hyvä idea jos siirrettävää dataa on enemmän: User space:sta ei saa tehtyä kaikkia temppuja, kuten DMA-siirtoa suoraan laitteelta muistiin. Valmiitakin ajureita löytyy, joissa toiminnot saatu ioctl():n avulla user space:n puolelle koko lailla - DMA siirtoa ei taida pystyä virittelemään sinne kuitenkaan..
No, ei jaksa kuitenkaan opetella mitään uutta enää: Välillä ms-dos virtualboxissa tuntuu ihan hyvältä ratkaisulta saada homma toimimaan."Välillä ms-dos virtualboxissa tuntuu ihan hyvältä ratkaisulta saada homma toimimaan."
Siis ajatko virtulboxissa ms-dosia linuxin sisällä?
saman asian ajaa varmaankin dosemu.
Mutta: Onko nuo Virtualbox ja Dosemu muka tehty niin, että ne sallivat suoran laite-I/O:n MS-DOS -ohjelmasta samoin kuin aito MS-DOS (ilman emulointia) sallisi ?
Ketjusta on poistettu 1 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Elämä valuu ohi ilman merkitystä
Olen 5-kymppinen korkeasti koulutettu hyvässä ja vaativassa työssä oleva mies. Erosin pitkästä parisuhteesta pari vuotta2764069Martina julkaisi romanttisia kuvia kihlajaisista
Ihana pari. Paljon onnea ja rakkautta heille 💞2721351Ilo, joka nousee silmiisi saakka
kun katseemme kohtaavat. Olet energinen, aito, ihana. Välillä tuijotat suoraan silmiini - enkä hämmenny, katson takaisin651305Gekkosessa hyvä juttu Sofian Dubai "töistä"
"Vielä tammikuussa Belórf lupaili aloittavansa jälleen verkkovalmennukset, mutta tämä projekti näyttää kuihtuneen kaikes1011104- 841096
eerikäinen novassa sanoi ei kukaan enää aja manuaalivaihteilla
meillä on 3 autoa talissa ja kaikissa manuaalilaatikot, on meillä vielä tämmöiset vaikka toisin puhutaan.981028En oikeasti
Tiennyt että sinulla on ollut vaikeuksia ja huonoja aikoja. Olen oikeasti pahoillani, ja olisin myös toiminut eritavoin121972Jokaisella on omat syntinsä
Minä olisin niin mielelläni sinun. Ehkä joskus viittasitkin siihen. Olet nainen ajatuksissani jatkuvasti ja taidat tietä56956- 169883
Palsta sekosi lopullisesti?
Taidan mennä päikkäreille. Oliko hän nyt muka oikeasti äsken täällä ja kirjoitti, että täytyy unohtaa? Todistakaa se. Ki15851