Forum: PC-Programmierung Kommunikation per USB


von Schntizi (Gast)


Lesenswert?

Hallo allerseits:
Folgende Thematik:
Ich habe eine Messelektronik, insbesondere einen A/D-Wanlder. Dessen
Daten möchte ich per USB an den Pc schicken.
Mein Problem:
Ich möchte ein C/C++ Programm erstellen (besitze einen recht einfachen
aber guten von bloodshet), mit dem ich in der Lage bin, Daten über USB
zu senden und zu empfangen. Ich habe gelesen, dass ich hierzu eine API
brauche.
Ich blicke bei dieser Thematik jedoch noch nicht ganz durch. Wer kann
mir Tipps, Hilfe oder auch Links geben. Bin für jegliche Hilfe
dankbar.

Gruß Schnitzi

von Rufus T. Firefly (Gast)


Lesenswert?

Das hängt davon ab, auf welche Art und Weise Deine Hardware per USB mit
dem PC verbunden ist.
Wenn beispielsweise die beliebten FTDI-USB-Chips verwendet werden,
musst Du auf der PC-Seite Dich um nicht sonderlich vieles kümmern - das
verhält sich exakt wie eine serielle Schnittstelle.

Wenn andere USB-Hardware verwendet wird, solltest Du Dich kundig
machen, was für eine das ist und mit was für Devicetreibern die
ausgestattet ist.
Erst mit diesem Wissen kannst Du entscheiden/rausfinden, wie das ganze
mit Deinem C-Compiler anzusprechen ist.

Bloodshed (das Blutvergießen) wird mit 'd' geschrieben.

von Schntizi (Gast)


Lesenswert?

Servus:
@Rufus
Sorry für den blutigen Schreibfehler

Ich habe ein relativ altes Mainboard, bei dem ich den USB selbst per
Steckverbinder aufs Mainboard stecken musste. Ich schau heute abend
mal, was sich für IC´s dort so rumtummeln.

von Rufus T. Firefly (Gast)


Lesenswert?

Halt, es geht nicht um die USB-Schnittstelle Deines PCs, sondern um
die Art und Weise, mit der Deine andere Hardware mit USB verbunden
wird:

  "Ich habe eine Messelektronik, insbesondere einen A/D-Wanlder."

Wie ist die mit dem USB verbunden?

von Schntizi (Gast)


Lesenswert?

Also,
die elektronik existiert bisher nur in meinem Kopf. Ich werde einen
schnellen ADC verwenden, der die Daten seriell ausgibt (macht ja auch
sonst keinen Sinn diesen mit USB zu verwenden). Soll dann in etwa so
funktionieren:
z.B. 16 BIT ADC:
PC -> ADC   1.CLK-Takt gleichzeitig enable chip-select
ADC -> PC   1.Datenbit
PC -> ADC   2.CLK
ADC -> PC   2.Datenbit
usw.
PC -> ADC   16.CLK + disable CS

Aber zuerst will ich mich mit der USB Schnittstelle beschäftigen, d.h.
ich möchte z.B. ein einfaches Programm schreiben mit dem ich
feststellen kann, ob die RD-Leitung auf High oder Low-Pegel liegt.
D.h. bevor ich per USB auf meine Elektronik losgehe, möchte ich doch
den ersten Schritt machen und die USB-Schnittstelle kennenlernen.

von Rufus T. Firefly (Gast)


Lesenswert?

"Ich werde einen schnellen ADC verwenden, der die Daten seriell ausgibt
(macht ja auch sonst keinen Sinn diesen mit USB zu verwenden)."

Du solltest Dich vorher erst einmal damit beschäftigen, was USB ist.
Mir scheint, daß Du da noch die eine oder andere Wissenslücke* hast.

Das ist keine serielle Schnittstelle, an der Du nach belieben
irgendwelche Signale anlegen könntest.

Aus genau diesem Grund hat es auch überhaupt keinen Sinn, zu versuchen,
per Software auf die von Dir angedachte Art und Weise mit der
USB-Schnittstelle zu "kommunizieren".

Sieh' Dir einfach spaßeshalber mal die Spezifikationen unter
www.usb.org an.

*) klaffend, weit.

von Thorsten (Gast)


Lesenswert?

Was meinst du mit der RD-Leitung, bei USB gibts nur die D+ und D-
Leitung. Ich fürchte, so einfach wird das Programm nicht denn es wird
ein Treiber notwendig sein und den mußt du programmieren.

von Chris (Gast)


Lesenswert?

Hi Schnitzi !
Mit dem FTDI 245 BM lässt sich dein Problem sehr einfach lösen.
Mit diesem Chip gibt es zwei Möglichkeiten den AD Wandler ueber usb zu
steuern.
Einmal geht es über den sogenannten BitBang Modus mit dem sich die acht
datenbit des 245BM einzeln ansteuern lassen, die zweite möglichkeit
braucht einen microcontroller dazu, mit einem stück software dazu. die
api für die ansteuerung der ftdi-chips sind frei verfügbar.
ich realisiere derzeit ein ähnliches projekt, wenn du mehr wissen
möchtest .> e-mail, würde sonst den rahmen hier sprengen.
du solltest dich allerdings schon mal kurz mit den usb grundlagen
vertraut machen, da ein steuern einzelner leitungen, wie z.B. bei der
seriellen oder parallelen schnittstelle bei usb nicht möglich ist,
infos kannst du auch von mir haben !

ciao
chris

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.