Sida 1 av 2

parallellport

Postat: 6 september 2004, 19:57:25
av PG74
denan fråga ligger på forumet "projekt" också, men det va nog fel forum så jag provar här...

ska använda parallellporten för att ta emot data i ca 100kB/s, har hört att den ska klara upp till 1.5 MB/s i Epp mode. men när jag provar att läsa in data från en adomvandlare kommer jag bara upp i 6.25KB/s. kan det kianske bero på den den kerner-drive och dll-fil som man måste använda för att kommunicera genom parallellporten i windows xp??

Postat: 6 september 2004, 20:07:05
av erixon
Du kommer nog upp 100kB/s i dos. Program för att komma åt parallellporten i windows brukar vara slö,
dock kan du skriva en drivrutin samt ha ett korrekt interface mot parallellporten så kan du komma upp 1.5MB/s

Men det är svårt att komma up i någon högre hastighet genom att bit banga, för jag antar att det är det du tänker göra?

Postat: 6 september 2004, 20:56:44
av PG74
Har skrivit ett program i VB.net som läser av parallellportens dataregistret.
Det är denna avläsning jag inte kan få att gå snabbare än 6250 gånger/s.
Vad menar du med drivrutin och korrekt interface? och vad är bit banga?

Postat: 6 september 2004, 21:45:51
av PatrikB
Använder du MSCOMM för att snacka med porten ?

Postat: 6 september 2004, 23:09:26
av matseng
Om du inte använder dig av all handskakning och liknande som finns i dom mer avancerade moderna för paralellporten så kanske det räcker att helt enkelt sätta porten i in-läge och sedan bara läsa datat från port 0x378.

Med io.dll från http://www.geekhideout.com/iodll.shtml kan jag läsa av porten ungefär 1 000 000 gånger per sekund från VB6 på min laptop.

DlPortIO.dll

Postat: 7 september 2004, 00:32:11
av SvenPon
Handskakning är inte relevant på parallellport,gäller com 1 mfl.

Du skall hämta och installera DlPortIO.dll när du kör på parallellporten
Då kommer du upp i dom hastigheter som du vill ha.

http://www.driverlinx.com/DownLoad/DlPortIO.htm

Återkom om du vill ha mer hjälp

Kolla gärna mitt program om du vill testa och experimentera
http://www.pellesoft.se/communicate/use ... spx?tid=53

Postat: 7 september 2004, 07:27:54
av PG74
använder en dll som heter inpout32.dll (http://www.logix4u.net/inpout32.htm) och den innehåller en kerner drive som ger mig tillgång till IO på parallellporten. Så det funkar fint att skriva och läsa på parallellportens register, men inte i dom hastigheter som jag vill. Menar du att om jag använder en annan dll, tex DlPortIO.dll så går det fortare?

Re: DlPortIO.dll

Postat: 7 september 2004, 08:11:25
av matseng
SvenPon skrev:Handskakning är inte relevant på parallellport,gäller com 1 mfl.
Huh? Är inte handskakning relevant på en paralellport? Nu tror jag nog att du får lov att läsa på lite.

Redan den gamla stenålders-paralellporten handskakar med skrivaren med ack/strobe/busy/pe-linjerna. Dom nya enchanched bidirectionella portarna har ju ännu mer avancerad handskakning.

Handskakning är mycket mer än den XON/XOFF som du förmodligen refererar till.

Postat: 7 september 2004, 08:51:05
av PG74
inte bråka pojkar!! :) ni ska ju hjälpa mig...
hansdkakningen är väl relevant om du väljer att använda den, har du inget behov av att verifiera att du läser av rätt data så kan du ju hoppa över den. Den handskakningen som moderna parallellportar använder för att öka hastigheten sker väl över databussen när du tex ska läsa av värdet på portens register?! tex så gör hårdvara att det i epp mode bara går en klockcykel av bussens klocka när du läser av registret mot fyra cykler i spp mode. och denna handskakning är ju inget man kan påverka...
eller har jag helt fel?
Åter till mitt problem! :)
jag vill inte använda handskakning i kommunicationen med min applikation, utan vill bara läsa av värden på parallellportens dataregister i en hastighet av 100 000 gånger/s.
kan denna hastighet påverkas av vilken dll man använder? eller kan det vara mitt program jag skrivit i vb.net som av någon anledning inte kan hämta data så snabbt?

Postat: 7 september 2004, 08:58:33
av matseng
För att se vart flaskhalsen sitter:

Vad händer med hastigheten om du kommenterar bort dll-anropet i ditt program och ersätter det med ett typ 'value=47'? Kan programet "sampla" 10 ggr fortare då?

Parallellport

Postat: 7 september 2004, 11:38:30
av SvenPon
Oki om du kallar tex Ack mfl handskakning så ok.

Med min DlPortIO.dll läser jag porten så det bara "visslar" i en Loop
Tycker du skall ta hem den och testa och kolla på deras bifogade program.
I NT och XP måster du ha en extra driver i System32/Driver.

Den drivern som slutar på .sys kan vara skriven på ett felaktigt sätt.
finns olika lösningar. Min DlPortIO.sys är helt Ok.

Hur reglerar du loopen så att du märker att det bara blir 6.... ?

Parallellport Driver

Postat: 7 september 2004, 12:46:07
av SvenPon
Har nu läst om den . dll du använder.Tydligen är kernel / drivern
inbyggd i dll :en. Ganska säker på att den är boven.

Porta om till och Installera DlPortIO.dll den mest korrekta lösningen jag känner till
http://www.driverlinx.com/DownLoad/DlPortIO.htm

Du måste installera som Administratör på din XP

PS
Jag är väldigt intresserad av att se din AD omvandlarlösning,sugen på ett
eget sampler projekt mot PC .Oscilliscope mm.

Postat: 7 september 2004, 17:56:37
av PG74
Vad händer med hastigheten om du kommenterar bort dll-anropet i ditt program och ersätter det med ett typ 'value=47'? Kan programet "sampla" 10 ggr fortare då?
bara för att kolla om det är loopen i VB-programmet som är slött och inte själva hämtningen från registret, menar du så?

SvenPo:
jag låter en ad-omvandlare sampla en given ramp-signal, och kan på så vis se hur lång tid som förflutit mellan avläsningarna av registret. ad-omvandlaren är 8-bitars med parallell utgång som jag kopplar direkt på datorns parallellport.

hur funkar "din" dll? måste det inte ingå en kernel-drive för att "lura" os att det handlar om kommunikation i kernel-mode och inte i user-mode som inte går i xp?

Postat: 7 september 2004, 18:05:55
av matseng
"bara för att kolla om det är loopen i VB-programmet som är slött och inte själva hämtningen från registret, menar du så?"

Jo, det var så jag tänkte.

Postat: 7 september 2004, 18:39:13
av SvenPon
>hur funkar "din" dll? måste det inte ingå en kernel-drive för att "lura" os

Men för helvete läs vad jag skriver och testa vad jag föreslår

Du installerar en äkta Drivrutin som lägger sig i System32/Driver/DlportIo.sys

Installera den och kör så funkar det,jag har kört samplers med 48 000 byte stereo utan problem.Drivern klarar mer än din loop.