Tag Mich würde interesieren ob schon jemand ein Programm für UART-Komunikation über LPT oder Gameport geschrieben hat oder ob ich dass selbst schreiben muß. Ich habe nämlich keine Lust einen Pegelwandler zusammenbasteln. Wenn keiner eine Quelle weis, dann muß ich mir halt was für den Gameport selber schreiben. mfg Alex
Vergiss es. Das für eine UART im "Handbetrieb" (Bit-Banging) erforderliche knappe Timing wirst Du nicht hinbekommen, sofern auf Deinem PC auch nur irgendeine Art von Betriebssystem läuft. Du musst die Lesedatenleitung mit mindestens der 8fachen Baudrate abtasten, um halbwegs zuverlässig Daten empfangen zu können; bei gerade mal 1200 Baud hast Du so bereits eine Abtastrate von 10 kHz. Das ist beispielsweise unter Windows nicht realisierbar, es sei denn, Du schreibst einen Devicetreiber dafür ... was ich für unwahrscheinlich halte. Du solltest Dich mit dem Gedanken abfinden, daß Du vielleicht doch zwei Euro fuffzich ausgeben musst und einen Max232 und vier Kondensatoren auf Deine Schaltung mit draufpackst.
Tag Windows hat sogenannte high-performance-counter die bis auf 10ns bis 100ns genau zählen. (Der wird so viel ich weis auch für die Schnittstellen verwendet.) Weiters habe ich vor das Ganze mit einem eigenen Task mit höchster Priorität zu machen. Und der LPT kann so viel ich weis jeden Ein- und Ausgang mit 500kHz ansteuern. Dass müsste doch hinhauen. Ich wollte nur wissen ob's sowas schon giebt bevor ich mir die Arbeit antuhe. mfg Alex
Wie wärs mit MIDI (über Gameport). Ist ja auch ein UART mit 31250 Baud.
Wenn Du am LPT hängst, dann fütter doch nicht erst ein UART, sondern kommuniziere doch gleich parallel - dennoch - ohne Treiber wird das nix. Die Kommunikationsgeschwindigkeit des LPTs hängt übrigens stark von dem verwendeten Rechner ab und schwankt, je nach Alter der Kiste zwischen 500kB/s bis 2MB/s, Betonung liegt auf Byte, weil PARALLELPORT. Wenn Du den Gameport nutzen willst, sieht das schon anders aus. Dort gibt es nämlich eine genormte Schnittstelle, in Fachkreisen auch MIDI genannt, die serielles FullDuplex bietet. Allerdings funktioniert diese Schnittstelle im Allgemeinen als Stromschleife auf Optokoppler (jeweils im Eingang). Die Baudrate ist hier fest und liegt bei 31.250 Hz. Als Kommunikationssoftware ist MIDI-OX zu empfehlen. Du mußt ´Dich aber nicht wundern, wenn diese mehr zum Musikmachen gedacht ist, weil MIDI ist ja geradezu prädestiniert dafür ;-).
Zwar hat Windows auch Performancecounter mit der von Dir genannten hohen Auflösung, aber weder wird damit die normale UART angesteuert noch kann eine Usermodeapplikation mit deren Auflösung I/O-Operationen durchführen. Das geht NICHT, völlig irrelevant, mit was für Taskprioritäten Du Deinen Rechner vergewaltigen willst. Auch der LPT kann, mit einem Usermodeprogramm angesteuert, nicht die von Dir genannten Datenraten erreichen, vor allem nicht beim Einlesen von Daten. Wenn Du wirklich krampfhaft (und pathologisch) daran festhalten willst, serielle Kommunikation ohne Pegelwandler zu machen, dann solltest Du den Vorschlag von TravelRec umsetzen und die Midi-Schnittstelle für diesen Zweck missbrauchen. Oder Dir einfach mal ansehen, welche Alternativen zu richtigen V24-Treiberbausteinen existieren; mit ein paar Widerständen, Dioden und 'nem Transistor kann man sich da nämlich auch was zusammenfrickeln. Solltest Du eine symmetrische Spannungsquelle mit +/- 12V zur Verfügung stehen haben (+/- 5V würden auch schon reichen), dann kannst Du auch auf die klassischen V24-Treiberbausteine MC1488/MC1489 zurückgreifen und auf die Kondensatoren der Ladungspumpe verzichten. Da im Inneren des PCs diese Spannungen zur Verfügung stehen (+12V Gelb, -12V Blau, Masse Schwarz) sehe ich wirklich keinen Anlass für irgendwelche Hirnknoten und Rechnermissbräuche.
Bis Win98 kann man ohne Treiber direkt auf die Register und somit auf den LPT zugreifen. (_inp(Adresse) und _outp(Adresse,Wert) bei C/C++) Ich wollte es eigentlich nur desswegen machen weil es möglich sein dürfte. Dies dürfte übrigens auch der Hauptgrund für die meißten Elektronikbasteleien sein. Wenns nicht / bedingt möglich ist, werd ich halt wie alle anderen nen Pegelwandler verwenden. mfg Alex
Möglich ists schon, irgendwelche Pegel mehr oder minder schnell auf dem Parallelport auszugeben / abzufragen. Aber wie Rufus bereits bemerkte: Das Timing ist das Problem. Im Allgemeinen geht man von einer Abweichung von max. +/- 3% von der Baudrate aus, die gerade noch tolerierbar ist. Da ALLE Windows-Betriebssysteme von einem Realtime-OS so weit weg sind, wie es irgendwie geht, kannste das abhaken. Unter DOS oder Realtime-Linux ist so etwas evtl. möglich, aber nicht sinnvoll. Wie wärs denn mit einem kleinen Atmel als Protokollwandler? Auf der einen Seite 5V-Rs232, auf der anderen Seite bidirektional parallel. Damit sparst Du Dir die ganzen Verrenkungen mit Windows. Ist aber komplizierter, als ein Pegelwandler, und dementsprechend sinnvoll ;)
Das Windows kein echtzeit OS ist weis ich. Ich hatte mir überlegt mehrere Mikrokontroller über die parallele Schnittstellen zu verbinden und den PC als "Verteiler", externer Speicher und zur Protokollierung zu verwenden. Das war halt nur mal so eine kleine Überlegung nach dem Motto: Wiso soll ich es so machen wie alle Anderen. Es muß doch auch anders funktionieren. (Vorallem weil die 2 Com schon anderweitig gebraucht werden.) Mir ist aber gerade eine weitere nicht COM Komunikationsmöglichkeit eingefallen die ich nochmal kurz durchdenken will. mfg Alex
USB? oder bau dir noch eine rs232 karte ein...
@Bastlwastl "Das war halt nur mal so eine kleine Überlegung nach dem Motto: Wiso soll ich es so machen wie alle Anderen." ganz einfach, weil du nach Lösungen gefragt hast. Vermutlich haben "alle Anderen" da rausgelesen: < nach schon mal verwendeten, funktionsfähigen Lösungen. >. Wie sie halt alle Anderen schon mindestens einmal in Betrieb hatten. Aber vielleicht bist du auf der Suche nach neuen kreativen Brainstorm-Ansätzen, wie dein Rechner mit der Außenwelt Verbindung aufnehmen kann, ohne daß schonmal "alle Anderen" auf deise Iden gekommen sind. Ich werd mich mal versuchen: a) Zur Eingabe nutze deine Maus als E/A Schnittstelle. Es muß eine optische sein, und über Optokoppler blinkst du der Maus etwas vor.. b) Ausgabemäßig könnten Status-LEDS von Testatur, Festplatten-Kontrolleuchte oder die Laufgeräusche des Lüfters (PWM) herhalten Alternativ könntest du den Bildschirm beliebig modulieren und da dem Rechner einen Kommunikationsweg "nach draußen" eröffnen. Gab es nicht mal so eine Uhr von ???? die man damit hypnotisieren konnte? davon kannst du dann ein paar Subroutinen recyclen. Auf solche Ideen ist hoffendlich noch niemand gekommen, und du kannst es dann wie gewünscht machen "wie NICHT alle Anderen"
Ja,für ne weitere USV/232 is immer platz. Die funktionieren als vorgesehene RS232 bestens und 4 Serielle kann jeder PC der Welt ,egal wie Alt er ist und welches OS drauf läuft immer verwalten denn Com1-4 sind standardisiert. So und derzeit moderne Betriebssysteme wie irgendein Linux,W2k,XP oder meinentwegen auch ein Unix sind in der Lage "mindestens" 8 Serielle zu verwalten. Is also Reserve genug da. Wem das allerdings immernoch nicht reicht für den gibt es dan die Hardcorevarianten als Schnittstellenkarten die bis zu 256 RS232 Ports liefern die auch alle gleichzeitig bedient werden können sofern der Rechner genug Schmalz im Hirn hat (Rechenleistung). Kostet dann allerdings etwas mehr. Eine weitere Frage ,die man sich auch im Jahr 2005 leider immernoch stellen muß ist ob das Programm das man nutzen möchte auch fähig ist diese angebotenen Seriellen anzusprechen. Ab und an flattert einem ja so verkrüppelte Soft auf die Platte die nur fähig ist Com1 und Com2 auf standardpararmeter (Adr,IRQ) zu bedienen. Eine gute Soft unter Windows sucht also nicht nach Standardadressen sondern nimmt alles was das System als Schnittstelle liefert. Das ist aber nur eine Frage des Programierstils. Also die paar Euro für nen USB/232 sollten doch irgendwo noch aus der Sesselritze zu angeln sein.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.