AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi USB CDC - Schnittstelle öffnen, lesen und schreiben

USB CDC - Schnittstelle öffnen, lesen und schreiben

Ein Thema von TUX_der_Pinguin · begonnen am 1. Dez 2020 · letzter Beitrag vom 2. Dez 2020
Antwort Antwort
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#1

USB CDC - Schnittstelle öffnen, lesen und schreiben

  Alt 1. Dez 2020, 15:26
Hallo,

ich habe hier ein Sensor der per USB am PC angeschlossen wird. Jetzt steht im beiliegenden Kommunikationsprotokoll das man das Gerät "einfach ansprechen" könnte. Ich frage mich nur wie soll das gehen? Also statt auf einen COM-Port zu zu greifen über Vendor-ID und Device-ID den Zugriff zu regeln.

Das Kommunikationsprotokoll an sich besteht aus dem schreiben und lesen von Bytes auf der Schnittstelle, so wie man das von einer seriellen Schnittstelle (RS232) auch kennt.

Auszug aus dem PDF:
Zitat:
Die USB Sensoren unterstützen eine Teilmenge des USB CDC (Communication Device Class, "http://www.usb.org/developers/devclass_docs/usbcdc11.pdf") Protokolls für die Datenübertragung. Da keine Notwendigkeit für die Auswahl der Baudrate oder anderer RS232 Kommunikationsparameter besteht, werden die betreffenden Eigenschaften irgnoriert. Stattdessen werden die über das USB Interface übertragenen Daten vom Sensor direkt aus der FIFO ausgewertet. Die grundsätzliche Kompatibilität zum CDC Protokoll erlaubt es jedoch, einen CDC class Treiber des jeweiligen Host-Betriebssystems einzusetzen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.100 Beiträge
 
Delphi 12 Athens
 
#2

AW: USB CDC - Schnittstelle öffnen, lesen und schreiben

  Alt 1. Dez 2020, 18:42
Zitat:
Da keine Notwendigkeit für die Auswahl der Baudrate oder anderer RS232 Kommunikationsparameter besteht, werden die betreffenden Eigenschaften irgnoriert.
Sicher, dass dieses Gerät keinen virtuellen Comport anbietet?

Klingt fast so, als wenn das Gerät über den Standardtreiber im Windows einen Port bereitstellt,
welcher sich an alle USB-CDC-Geräte anhängen dürfte, so lange sie keinen eigenen Treiber installiert haben.
Den Port dürfte man dann im Gerätemanager an diesem Gerät ablesen können.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 1. Dez 2020 um 18:45 Uhr)
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: USB CDC - Schnittstelle öffnen, lesen und schreiben

  Alt 2. Dez 2020, 07:52
Sicher, dass dieses Gerät keinen virtuellen Comport anbietet?

Klingt fast so, als wenn das Gerät über den Standardtreiber im Windows einen Port bereitstellt,
welcher sich an alle USB-CDC-Geräte anhängen dürfte, so lange sie keinen eigenen Treiber installiert haben.
Den Port dürfte man dann im Gerätemanager an diesem Gerät ablesen können.
Du hast recht, es wird ein Port bereitgestellt und der funktioniert auch. Mich hat nur die Dokumentation total verwirrt, das dort nicht stand "greifen sie über den COM Port auf die Schnittstelle zu". Ich habe jetzt mal wild mit den Schnittstellen Parametern (Baudrate, Datenbits etc.) gespielt und jedesmal klappt die Kommunikation, was ja normalerweise nicht funktionieren dürfte wenn es sich um eine echte serielle Kommunikation handeln würde. Es scheint also so zu sein, wie du auch geschrieben hast, das der Windows Treiber das alles regelt und man irgendwelche Parameter angeben kann.

Dann verbuche ich das mal unter unnötig kompliziert beschrieben, obwohl es doch so einfach ist. Hab mich einfach durch die diversen Aussagen auf die Falsche Spur bringen lassen

Danke trotzdem
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.462 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: USB CDC - Schnittstelle öffnen, lesen und schreiben

  Alt 2. Dez 2020, 08:02
Dann verbuche ich das mal unter unnötig kompliziert beschrieben, obwohl es doch so einfach ist. Hab mich einfach durch die diversen Aussagen auf die Falsche Spur bringen lassen
Vermutlich gibt es aber trotzdem eine weitere Schnittstelle, die nicht per virtuellem COM-Port arbeitet. Und die wird den ein oder anderen Vorteil bieten. Ich habe schon mehrfach angesetzt z.B. bei USB-Seriell-Wandlern von FTDI die native Schnittestelle zu nutzen, aber irgendwie bin ich jedes Mal von wichtigerem abgelenkt worden.

Auf der anderen Seite sind COM-Ports eine simple und weit verbreitete Schnittstelle, auch wenn die Artikelschreiber in IT-Magazinen nicht müde werden zu betonen, dass Computer sowas heutzutage nicht mehr bräuchten...
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.100 Beiträge
 
Delphi 12 Athens
 
#5

AW: USB CDC - Schnittstelle öffnen, lesen und schreiben

  Alt 2. Dez 2020, 18:53
Eine "echte" Serielle Schnittstelle hat irgendwo "physisch" die Daten "analog/getaktet" im Kabel übertragen.
Virtuelle Schnittstellen, wo die Daten überall voll-"digital" übertragen werden und wo es keine physische "unsynchronisierte" Übertragung gibt, der sind die BAUD-Raten und Dergleichen egal.
Klar, der Treiber könnte auch strikt nur mit einer bestimmten "Taktrate" arbeiten und bei allem Anderen einen Fehler werfen, oder er ignoriert diese Angaben einfach, weil er sie eh nicht benötigt.


z.B. COM-Port von auf TCP/IP+Port
Beides sind "Streams", aber im Ethernet synchronisiert sich die Übertragung von selbst, drum wäre da die BAUD-RATE auch egal.
Der Treiber könnte dann die BAUD nur noch dafür benutzen, um die Übertragung entsprechend zu drosseln, damit sie vom Tempo her gleich ist, aber wer will sowas.




Zitat:
Vermutlich gibt es aber trotzdem eine weitere Schnittstelle
Kann sein, da USB es ja erlaubt, dass man mehrere Klassen unterstützen kann.
z.B. könnte man auch noch HID verwenden.

Insgesamt finde ich es schöner, wenn "Standardschnittstellen" genutzt werden, wo es im System bereits Standardtreiber gibt.
Dann ist man nicht abhängig von speziellen Gerätetreibern, die im nächsten Windows/WindowsUpdate vieleicht nicht mehr funktionieren.
Und da ist CDC nunmal einer der "einfachsten".
https://microchipdeveloper.com/usb:device-classes

Für die Software ist es bei Serial, HID und Ähnlichem dann auch egal, ob die Hardware direkt am USB hängt oder z.B. via BT verbunden ist.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 2. Dez 2020 um 19:12 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz