Forum: PC Hard- und Software Wie steuert ein PC die RS232-Schnittstelle auf Treiberebene?


von Ralf (Gast)


Lesenswert?

Guten Morgen,

weiss jemand wie ein PC die RS232-Schnittstelle auf Treiberebene 
steuert? Greift das Betriebssystem auf BIOS-Funktionen zurück oder macht 
das Betriebssystem direkt den Zugriff auf den UART?

Hintergrund der Frage ist dass ich auf der Suche nach entsprechendem 
Sourcecode bin, wie der UART angesprochen wird und Funktionen wie 
Hardware-Handshake etc. realisiert werden.

Ralf

von der mechatroniker (Gast)


Lesenswert?

Das BIOS tut überhaupt nichts mehr, wenn es das Betriebssystem geladen 
hat. Das macht das OS alles selbst. Ausnahme: Krücken wie DOS und die 
alten DOS-basierten Windowse.

von Tobi (Gast)


Lesenswert?

@Ralf,

am besten einen Blick in den Linux Quellcode werfen.

Gruss,
Tobi

von Ralf (Gast)


Lesenswert?

Hallo,

@mechatroniker:
Schade, hab ich befürchtet :( D.h. wenn ich basierend auf dem Quellcode 
eines OS einen UART ansteuere, heisst das nicht, dass es ein anderes OS 
genauso macht...

@Tobi:
Hört sich gut an, werd mich mal auf die Suche machen :)

Danke an euch beide.

Ralf

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Was genau hast Du vor?

von Purzel H. (hacky)


Lesenswert?

Hardware handshake ist eher was Triviales, sofern das UART 8250 
kompatibel ist und einen Interrupt fuer eine Statusleitung generieren 
kann.

von Reinhard Kern (Gast)


Lesenswert?

Langer Tag schrieb:
> Hardware handshake ist eher was Triviales, sofern das UART 8250
> kompatibel ist und einen Interrupt fuer eine Statusleitung generieren
> kann.

Hallo,

das Komplizierte daran ist, dass ja das System nicht stillgelegt werden 
darf, sondern eben alles über Interruptroutinen mit sehr kurzer Laufzeit 
abgewickelt werden muss - Warteschleife drehen bis ein Zeichen eintrifft 
ist absolut NoGo.

Gruss Reinhard

von Ralf (Gast)


Lesenswert?

@Rufus:
Ich soll auf einem µC eine (echte) RS232-Schnittstelle implementieren, 
welche sich soweit wie möglich wie die Schnittstelle am PC verhält. 
Momentan ist noch nicht geklärt, ob der µC selbst die Signale generiert, 
oder ob evtl. ein 16550 kompatibler UART mit auf die Schaltung kommt. In 
beiden Fällen aber wäre der Sourcecode hilfreich, selbst wenn ich den 
Treiber komplett neu schreiben muss.

Ralf

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> welche sich soweit wie möglich wie die Schnittstelle am PC verhält.

Was soll das bedeuten? Die Schnittstelle am PC verhält sich so, wie sie 
vom jeweiligen Programm und den vom OS verwendeten Devicetreibern 
angesteuert wird - also schlimmstenfalls mal so, mal so und dann ganz 
anders.

von Michael U. (amiga)


Lesenswert?

Hallo,

so schlecht ist doch die Spezifikation von RS232 nun auch wieder nicht, 
daß man das nicht in Software nachbauen kann.
Auch das Handshake ist letztlich kein Problem.

Ist letztlich doch nur Bereitschaft melden, wenn zum Empfang bereit, 
schauen, ob die Gegenstelle zum Empfang bereit ist, wenn man senden 
will. Das muß nichtmal zwingend nach jedem Byte sein, alle üblichen 
UARTs schicken zwangsläufig ihren Buffer noch raus, wenn ihnen der 
Rechner mitteilt, daß die Gegenstelle nicht mehr will. Das passiert 
üblicherweise im Treiber, nicht in der UART-Hardware.

Gruß aus Berlin
Michael

von Martin F. (martinf)


Lesenswert?


von Ralf (Gast)


Lesenswert?

Hallo,

danke an alle für eure zahlreichen Antworten. Hört sich nicht so schwer 
an, wie ich zuerst dachte (lieber zittern als es zu locker nehmen 
grins).

@Martin:
Danke, da hab ich was zum Lesen :)

Ralf

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
Noch kein Account? Hier anmelden.