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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.