Wie steuert ein PC die RS232-Schnittstelle auf Treiberebene?

Gast #1650045
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
Gast #1650094
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
Gast #1650405
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
Gast #1650406
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
#1650681
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
Gast #1651230
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren