Forum: Mikrocontroller und Digitale Elektronik RS232 über USB


von Heinz B. (hez)


Lesenswert?

hello,

angeblich soll es möglich sein, eine RS232 über einen USB-Port zu 
simulieren.

PC USB --- USB-RS232-Adapter --- uC-Board RS232

Dazu braucht man nur auf dem PC einen Treiber installieren. Allerdings 
frage ich mich, was hier genau abläuft.

Auf dem PC gibt es einige USB-Stecker. An einem hängt die Tastatur, an 
der nächsten die Maus. An einem der restlichen freien USB-Stecker soll 
dann via USB-RS232-Adapter das uC-Board angeschlossen werden.

Wie entscheidet der PC, über welchen USB-Bus dann die RS232-Verbindung 
simuliert werden soll? Könnte dann plötzlich meine Tastatur nicht mehr 
funktionieren? Und wie finde ich unter Windows heraus, an welchen 
USB-Port ich dann das uC-Board anschließen muss?

von Daniel F. (df311)


Lesenswert?

Heinz B. schrieb:
> Wie entscheidet der PC, über welchen USB-Bus dann die RS232-Verbindung
> simuliert werden soll? Könnte dann plötzlich meine Tastatur nicht mehr
> funktionieren?
das entscheidet die kiste gleich wie sie zwischen maus und tastatur 
unterscheidet: über die geräte-id

> Und wie finde ich unter Windows heraus, an welchen
> USB-Port ich dann das uC-Board anschließen muss?
das ist einfach: ist ein usb-port frei? dann nimm ihn ;-)
und wenn du in die lage kommen solltest, dass keiner mehr frei ist, dann 
kauf dir einfach ein usb-hub.

es kommt aber auch darauf an, was du mit dem usb-rs232 anschluss machen 
möchtest: programmieren über z.b. ponyprog geht damit nur ganz langsam, 
da ist das geld besser in z.b. ein stk500 investiert. wenn du dich nur 
mit dem controller "unterhalten" willst, kannst du auch einen 
billig-adapter aus der schütte beim blödmarkt o.ä. nehmen...

von Julian O. (juliano)


Lesenswert?

Ich glaube, du hast das Prinzip hinter einem Bus (USB = 
UniversalSerialBus) noch nicht ganz verstanden:
http://de.wikipedia.org/wiki/Bus_(Datenverarbeitung)

von ... .. (docean) Benutzerseite


Lesenswert?

Heinz B. schrieb:
> Und wie finde ich unter Windows heraus, an welchen
> USB-Port ich dann das uC-Board anschließen muss?

Du siehst in Win eine ganz normale ser. Schnittstelle wie ein "echter" 
COM Port auch.

von R. M. (rmax)


Lesenswert?

Julian O. schrieb:
> das Prinzip hinter einem Bus (USB = UniversalSerialBus)

Wobei USB entgegen des Namens keine Bus-, sondern eine Baumstruktur hat.

von Heinz B. (hez)


Lesenswert?

>>über die geräte-id

Hat der USB-RS232-Adapter so eine ID? Weil das uC-Board wird ja nicht so 
eine ID haben, wenn sie für eine echte RS232-Verbindung ausgelegt ist.
Dann muss der auf dem PC zu installierende Treiber auf den 
USB-RS232-Adapter abgestimmt sein?

>>dann nimm ihn

OK. Den Adapter kann ich also an einen beliebigen USB-Port anschließen. 
Jetzt möchte ich aber von Keil das kostenlose uVision verwenden. Das 
soll ja so supertoll sein. Habe ich auch schon installiert.

Unter
-> Options for Target (dieser komische Button)
-> Debug
-> Settings
muss man einen Port auswählen. Woher weiß ich, welchen ich auswählen 
muss??

von R. M. (rmax)


Lesenswert?

Heinz B. schrieb:

> Hat der USB-RS232-Adapter so eine ID?

Ja, so eine ID (bestehend aus Hersteller und Gerätenummer) ist für jedes 
USB-Gerät zwingend notwendig und für alle Geräte eines Typs gleich.

> Weil das uC-Board wird ja nicht so eine ID haben, wenn sie für eine
> echte RS232-Verbindung ausgelegt ist.

Diese Adapter simulieren die serielle Schnittstelle nicht, sondern sie 
enthalten einen seriellen Schnittstellenbaustein, der nicht wie früher 
per ISA oder PCI, sondern eben per USB an den PC angeschlossen ist. Für 
das Gerät, das auf der seriellen Seite des Adapters angeschlossen wird, 
ist es eine echte serielle Schnittstelle.

> Dann muss der auf dem PC zu installierende Treiber auf den
> USB-RS232-Adapter abgestimmt sein?

Ja. Bei USB-Seriell-Adaptern kocht jeder Chiphersteller sein eigenes 
Süppchen, weil es anders als bei z.B. Tastaturen und Mäusen dafür keine 
generische USB-Geräteklasse mit entsprechenden universellen Treibern 
gibt.

> muss man einen Port auswählen. Woher weiß ich, welchen ich auswählen
> muss??

Ich nehme an, Du verwendest Windows: Entweder zeigt Windows Dir beim 
Anstecken des Adapters an, welcher COM-Port ihm zugewiesen wurde, oder 
Du kannst es im Gerätemanager nachschauen.

Vorsicht Fallstrick: Wenn der Adapter zusätzlich zur ID noch eine 
Seriennummer hat, bekommt er meines Wissens immer den gleichen COM-Port, 
egal in welchen USB-Port Du ihn steckst. Die meisten Seriell-Adapter 
haben aber keine Seriennummer und bekommen deshalb an jedem USB-Port 
einen anderen COM-Port.

von Heinz B. (hez)


Lesenswert?

>>im Gerätemanager nachschauen

Also im XP unter
-> Start
-> Systemsteuerung
-> System
-> Hardware
-> Geräte-Manager
-> Anschlüsse (COM und LPT)
Unter -> Treiber stehen dann wohl nähere Infos zu dem COM-Port. Anhand 
dieser Infos erkenne ich dann hoffentlich den COM-Port, den ich für 
uVision auswählen muss.?

Das lustige ist, dass ich hier auf meinem PC (auf diesen PC habe ich den 
Treiber noch nicht installiert) nur 1 COM-Port (COM1) aufgelistet 
bekomme. Wenn ich aber im uVision
-> Options for Target (dieser komische Button)
-> Debug
-> Settings
schaue, dass werden mir dort gleich 16 COM-Ports aufgelistet. Strange. 
Aber ich nehme mal an, ich muss dann dort auch nur den COM1 auswählen. 
Alles andere wäre ja irgendwie unlogisch.

P. S. habe eine Grafik gemacht ... wie kann ich die hier anzeigen? 
Hochladen und ..?

von R. M. (rmax)


Lesenswert?

Heinz B. schrieb:
>>>im Gerätemanager nachschauen
> Also im XP unter [...]
> Das lustige ist, dass ich hier nur 1 COM-Port (COM1) aufgelistet
> bekomme.

Du siehst hier genau die Ports, die zu dem Zeitpunkt (intern oder 
extern) vorhanden und per Treiber in Windows eingebunden sind.

> Wenn ich aber im uVision [...] schaue, dass werden mir dort
> gleich 16 COM-Ports aufgelistet.

Ich kenne das Programm nicht, aber viele Programme "fragen" Windows 
nicht nach den vorhandenen Ports, sondern zeigen einfach eine feste 
Liste an (was ziemlich nervig sein kann, wenn die Liste nur bis COM4 
geht, der Seriell-Adapter aber COM6 bekommen hat). Wählt man einen an, 
den es nicht gibt, bekommt man eine Fehlermeldung, sobald das Programm 
versucht, den Port zu öffnen.

> Aber ich nehme mal an, ich muss dann dort auch nur den COM1 auswählen.
> Alles andere wäre ja irgendwie unlogisch.

Genau. Du wählst immer den Port an, den Dein USB-Adapter laut 
Gerätemanager bekommen hat.

> P. S. habe eine Grafik gemacht ... wie kann ich die hier anzeigen?
> Hochladen und ..?

Nicht nötig. Eine Liste, die von COM1 bis COM16 geht, kann ich mir 
gerade noch vorstellen. ;)

von Heinz B. (hez)


Lesenswert?

Die (selbst gebastelte) Grafik zeigt einen logischen/physikalischen 
Ablauf vom uVision bis zum uC-Board. Vielleicht interessiert es ja noch 
andere Anfänger ... wie ich auch einer bin :)

von R. M. (rmax)


Lesenswert?

Ja, einfach als Dateiangang hochladen, der Rest geht meines Wissens 
automatisch.

von Heinz B. (hez)


Angehängte Dateien:

Lesenswert?

Test ...
EDIT: Mist! Da ist ja noch was falsch!!!

von Henk (Gast)


Lesenswert?

Na die Grafik find ich aber mal höchst verwirrend, wenn ein 
"physikalischer RS232- Port) auf einmal per USB- Kabel verbunden wird.

von Henk (Gast)


Lesenswert?

Na die Grafik find ich aber mal höchst verwirrend, wenn ein 
"physikalischer RS232- Port" auf einmal per USB- Kabel verbunden wird.

von Heinz B. (hez)


Angehängte Dateien:

Lesenswert?

Versuch 2 :)
@Henk: ja, den Fehler hatte ich vorher auch gerade erkannt. Jetzt passts 
hoffentlich

von Henk (Gast)


Lesenswert?

Ne, denn das ist genau die selbe Grafik wie oben! ;-)

von Henk (Gast)


Lesenswert?

Sorry, die F5 Taste hat Dich gerettet hehe. Jetzt passt es eigentlich.

von R. M. (rmax)


Lesenswert?

So ist es besser, ich würde den logischen RS232-Port aber einfach 
COM-Port nennen, denn RS232 ist ja gerade Spezifikation der 
physikalischen Schnittstelle. Außerdem befinden sich zwischen dem 
Adapter-Treiber und dem USB-Port noch der USB-Host-Controller mit den 
dazugehörigen Treibern, was man zur Vereinfachung aber auch weglassen 
kann...

von Heinz B. (hez)


Angehängte Dateien:

Lesenswert?

Stimmt! Da hat noch der Begriff "COM" gefehlt. Ist wichtig.

von Fritz (Gast)


Lesenswert?

Wie wäre es mit, einfach nen "FT232R" benutzen? :)

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.