www.mikrocontroller.net

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


Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: der mechatroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ralf,

am besten einen Blick in den Linux Quellcode werfen.

Gruss,
Tobi

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was genau hast Du vor?

Autor: Zwölf Mal Acht (hacky)
Datum:

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

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin Freund (martinf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.