Jag behöver läsa in parallell data till en dator och funderar på om en parallellport klarar av det hastighets mässigt? Kan inte så mycket om detta ämne (någon som kan det ska skriva programmet som läser data senare), är det skillnad på operativ-systemet när det gäller hastighetsaspekten, har ålder på burk betydelse (snabbare kretsar på nyare)? Absolut mini är att den ska läsa in 1 byte med frekvens på 3 MHz men det är troligen för sakta.
========= mvh Harald =========
Didn't find your answer? Ask the community — no account required.
T
Torbjörn Ekström
Det går alldeles för fort för parallelkortet
- den klarar på sin höjd 200 Kbyte i sekunden.
du måste ha annan typ av HW, med kanske DMA mot moderkortet
/TE
O
Olof Lagerkvist
3 MHz och däröver är faktiskt ganska rejäl bandbredd även för dagens datorer. Det är i princip bara nätverkskort, hårddiskcontroller och videocapturekort som arbetar mot extern utrustning i det bandbreddsområdet du behöver. Kommunikations- och parallellportar kommer inte ens i närheten.
Du klarar helt enkelt inte detta utan att endera bygga ett helt specialanpassat kort direkt för t ex PCI-bussen i datorn, eller genom att med någon extern specialbyggd hårdvara omvandla till något som kan läsas in genom något av nätverkskort, videocapture eller SCSI-interface och sedan ordna upp det hela i datorn med specialskrivet program.
Att konstruera ett eget PCI-kort med dessa krav och skriva tillhörande drivrutin för något modernt operativsystem är ingen helt trivial sak i dagens läge och det låter som om det kan bli riktigt dyrt.
Ett alternativ kan kanske alltså vara att bygga någon extern pryl som kan omvandla till t ex ethernet. Jag har sett en del byggen där man använt enchipsdatorer för att läsa in data i hög hastighet och sedan skickat vidare via någon av Intels eller Realteks enchips ethernetadaptrar över ethernetnätverkskabel till nätverkskort i datorn som egentligen ska ha informationen. Om det finns någorlunda färdiga sådan hårdvara att köpa vet jag inte alls däremot, men det bör iaf bli någorlunda humant pris på en sådan lösning.
Olof Lagerkvist
ICQ: 724451
Web page: http://here.is/olof
H
Harald
Jag blev råd detta med PCI-kort tidigare men misstänkte att det skulle bli mycket jobb.
Denna lösning är absolut något jag ska kolla närmare på
Ett tack till både Dig Olof och till Torbjörn
mvh Harald
I
Ichimusai
För länge sedan, på 486-tiden, skrev jag en point-to-point driver för Linux som nyttjade parallellporten för att överföra information. Lite som PLIP men som ett labbexperiment. Hastigheterna jag kom upp i då utan att gå över på avancerade protokoll var ca 130 kbyte/s på de enklare parallellportarna och upåt 150-170 kbyte/s på de mer avancerade.
Jag tror inte man kan förvänta sig några grova hastigheter utöver detta, inte ens om man är slugare än jag var 1995 eller så.
Ichimusai http://ichimusai.org/ AA #769 ICQ: 1645566 Yahoo: Ichimusai
MSN: Ichimusai1972 AOL: Ichimusai1972 IRC: Ichimusai@IRCNet
What is more dangerous than a room full of angry Narns?
An angry Narn with the key.
-- B5, Centauri joke
T
Torbjörn Ekström
Det slog mig att det fins många microkontrollers med USB interface som kanske passar för denna typ av applikation.
- dock, det måste vara USB2.0 om du skall får den bandbredd du behöver.
du drar nog en 35 - 50 Mbit för 3-Mbyte i sekunden då det är så mycket overhead mm. pga omfrågningar mm. i USB
Kruxet här är att skriva en applikation på PC-sidan som pratar USB som du vill, och att enheten som plockar upp informationen presenterar sig i rätt klass (video?) för att få dom realtidsegenskaper som krävs.
- i princip vill du ha komunikations-chipseten och tillhörande mjukvara i var ända som används i USB-baserade videokapturekort...
- du kommer att behöva en bunt minne för buffring på microcontrollern då datatransporten över USB är tämligen ryckigt.
Personligen gillar jag inte alls USB, då det rent tekniskt transmissionsmässigt är ett slafsverk i stil med IDE-bussen i dummheter - detssutom är 'host' i PC tämligen komplicerad att hantera.
mao. det gäller att hitta _bra_ appnötter och kit där allt sådant är så färdiggjort som det bara går.
- både på kontrollersidan och i PC-sidan.
Ett alternativ är kanske att titta på firewire då det
är en protokoll som faktiskt är gjord för realtid
och är mer igenomtänkt arkitekturmässigt (dock inte
eletriskt då de har samma typ av 'blunder' som i USB).
i XP så ses faktiskt firewire likvärdigt
med nätverkskort och kan kopplas ihop mellan datorer.
Man kan skicka TCT/IP-strömmar i hög hastighet genom den
om man så vill - Man har inte samma beskymmer med
'master - slave' relation som man har i USB och
omöjligjör ihopkoppling mellan datorer via
'plain' USB-sladd.
Här gäller det också att hitta bra utvecklingskit
för firewire där allt är så färdigt som det bara går.
I båda fallen så är det enklaste och primära behovet
att när man skicka en byte i ena ändan så skall den
byte ploppa upp i något skal i PC:n - ungefär som
terminalprogram över RS232
- har man fått just det här att funka i vald
utvecklingskit, så har man kommit väldigt långt
mot en full insammlingsapplication.
/TE
H
Harald
Du träffar mitt i prick eller hur man nu säger, det verkar vara ett stort krux och man får en ryckig överföring. Mycket jobb med osäker prestanda. Jag vill försöka undvika detta med Cypress Hotlink, får se vad jag kommer fram till... Problemet blir till sist att få in datat i datorn. Ska oxå titta lite på Olofs förslag.
Firewire är nog det optimala alternativet ( om inte det ända rätta) men det verkar vara ännu mera jobb med det än med USB. Utvecklingskorten är svindyra och då måste man ofta köpa "stacken" ovanpå detta. Jag har försökt sätta mig in i det bara för att förstå att det skulle ta alltför lång tid för mig. Det är helt enkelt lite överkurs...
mvh Harald
T
Torbjörn Ekström
Du kommer aldrig runt detta med ryckigheten då USB är ett paketorienterat nät - du behöver säkert 10 ggr nyttjad banbredd i marginal för att vara någotsånär säker på alltid tillgång...
- om 'host' sköter sig i sin ända övh.
Dessutom var det tidigare vanligt med korrupta packet med massa slumpmässiga omfrågningar, mycket beroende på den urursla transmissionsöverföringsfilosofin HW-mässigt.
Kretskopplat nät som firewire så är det helt anna sak, då har du en 'garanterad' bandbredd - iofs kanske i 'sektorer' med viss stadigt intervall, men ändå!
Val av transporttopologi kan vara helt avgörande för hur bra och kanske tom. om möjlighet alls att lyckas med i sitt nära realtidsprojekt.
< jättesnip >
Själv tycker jag det är synd att så fort man lyckas få till lite 'speed' i HW för överföring, så lassar man på så mycket API i både HW och mjukvara så att kommunikationsgränssnittet lider av svår slagsida
- elefantisis helt enkelt, mjukvarufolket formligen dränker en i olika API:e så att man kommer så långt ifrån HW-level som möjligt i någon slag godhjärtad dumhet/ondska (och medföljande dålig prestanda då informationen skall ta sig igenom en bunt layers innan det når 'trådarna' ut - det kanske passar mjukvarufolk utan prestandakrav, men det passar inte folk som jag och förmodligen du, som vill ha full kontroll på HW, så nära 'trådarna' som möjligt för att klämma ut maximal prestanda!! Framförallt så begriper jag inte varför man i USB har bestämda 'master' och 'slave'-roller och inte kan byta plats med varandra.
Jag menar att RS232:s styrka var, är och förblir att man kunde byta både 'kön' och 'roll' - 'kön' fysisk med omkopplingar, och roll beroende vad mjukvaran i resp. ända betraktar sig som.
Hela den här biten är omöjliggjord i USB som den ser ut idag. Arkitekturmässigt så är den ytterst trång kostym och knakar och spricker i sömmarna betänkligt redan vid först provningen mot verkligheten som när man sätter sig - samt saknar ovesäntligheter vänsterarm och högerben...
För att gå iland med sådanahär projekt så måste man idag
vara ett litet företag och med vissa investeringar i tid
och materiell för att hantera USB övh.,
till skillnad förr i pojk/tonnårsrummet där man kunde
göra mycket avancerade saker och styrningar
själv med idogt hackande bara genom serie och
parallellporten.
Man har mist kontrollen över HW... och trampar i gungfly av
buggig och svårdebuggad mjukvara numera.
/TE
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.