Announcement

Collapse
No announcement yet.

Zugriff auf USB Schnittstelle unter C#

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zugriff auf USB Schnittstelle unter C#

    Hallo!

    Ich möchte Werte von 0-255 von der USB Schnittstelle einlesen. Wie greife ich am besten unter C# auf die USB-Schnittstelle zu?

    Vielen Dank im Voraus

    Michaela

  • #2
    Jetzt koennte man natuerlich ueber Frauen laestern, aber die Maenner machen genau die gleichen Fehler bei USB.

    USB heisst Universal Serial Bus und nicht Serial Line. Es ist also ein richtiger Bus und eher dem Ethernet verwandt als der RS232.
    Man kommuniziert also nicht mit "dem Port" sondern mit einem bestimmten Geraet am Bus. Mit dem USB-Port zu reden ist etwa so sinnvoll wie eine persoenliche Beziehung zum Ethernet-Kabel aufbauen zu wollen.

    Der Grossteil der USB-Geraete hat kein eigenes Zugriffs-API, sondern die Gerate werden ueber nicht USB-spezifische APIs angesprochen.
    Bei USB Sticks z. B. gibt es nur den normalen Filesystemzugriff

    Comment


    • #3
      Eine sehr ausführliche Antwort, aber nicht genau, was ich wissen möchte.
      Im Allgemeinen lässt sich mein Vorhaben auf folgendes beschränken:
      - Ich möchte einen PH-Sensor und einen Temperatursensor mit BNC (British Network Connector) mit dem PC verbinden.
      - Um die Signale des Sensors zu verstärken benötige ich einen Operationsverstärker.
      - Dieser Verstärker wird dann mit dem A/D Wandler verbunden.
      - Danach sollte man die komplette Schaltung an einer Schnittstelle vorzugsweise USB anschließen können.
      - Sobald die Schaltung mit dem PC verbunden ist, sollte diese die Werte (0-255) der beiden Sensoren in ASCII über den USB liefern.
      - Jetzt benötige ich lediglich eine Beschreibung über den Zugriff auf den USB mit Hilfe von C#

      Comment


      • #4
        Hi Michaela,
        schau mal bei FTDI nach. Die haben kleine Module um SIgnale über USB auf eine virtuelle COM zu schicken. Das scheint mir passend zu sein...

        http://www.ftdichip.com/FTProducts.htm
        und der Shop...
        http://apple.clickandbuild.com/cnb/shop/ftdichip?op=catalogue-products-null&prodCategoryID=38&title=UM232R
        cu Michae

        Comment


        • #5
          Hallo Michael!

          Vielen Dank für die beiden Links.

          Ich würde mich jetzt noch riesig über einen ansatzweisen Quellcode (evtl schon in C#) für den USB Zugriff (Einlesen der Daten vom USB) freuen.

          Hat Jemand vielleicht eine Ahnung, wie man den USB Zugriff am optimalsten durchführen kann?

          Vielen Dank im Voraus

          Michael

          Comment


          • #6
            Hi,
            naja, ich sach' mal so: Fertig hab ich in C nix rumliegen :-)
            Du brauchst lediglich eine Komponente, welche den COM-Port handelt. Im onReceive Ereigniss stehen dann deine Daten.
            Wie Robert schon dargestellt hat: Von der USB bekommst Du die Daten nicht, sondern von der über USB simmulierten RS232!

            cu Michae

            Comment


            • #7
              Hi Manuela,
              was mir beim genaueren durchlesen deiner Postings noch einfällt:
              Du benötigst im Sensorteil eine gewisse Inteligenz. Am besten nimmst Du einen uController mit 8-Bit AD Teil. (z.B. Atmel 89S52, PIC o.ä.) Atmel kannst Du auch in C (KEIL) programmieren!
              Die Messdaten kannst Du dann rot, grün oder gelb anstreichen und über das FTDI Modul über USB an einen COM-PORT zum PC senden.

              cu Michae

              Comment


              • #8
                Ich glaube jetzt muss ich ein paar spitze Bemerkungen absondern.

                Erst mal von einer Frau haette ich mehr erwartet ;-)
                Diese Dickkoepfigkeit und Ignoranz muss vom Ingenieur in Ihnen kommen ;-)

                Der Satz "- Jetzt benötige ich lediglich eine Beschreibung über den Zugriff auf den USB mit Hilfe von C#." ist komplett unsinnig.
                "der USB" existiert nicht. Ueber den USB gehen keine ASCII-Zeichen. Man kann ueber USB nur mit Geraeten reden. Was die Geraete fuer ein API implementieren liegt in der Verantwortung des Geraeteerstellers.
                Der Zugriff auf ein Geraet erfolgt zwingend ueber einen Treiber. Die meisten der USB-Gearate fallen in bestimmte Klassen fuer die es Standardtreiber gibt.

                Was man hier braucht ist ein USB-Geraet an das man ICs anschliessen kann.
                Hier bietet sich unser IO-Warrior 24 Starterkit an (http://www.codemercs.com), denn es unterstuetzt IIC und SPI. Fuer den MAX127 A/D IIC Chip haben wir auch Beispiele (allerdings nicht in C#).
                Der wesentlichste Vorteil hier liegt im Breadboard-Teil des Starterkits auf dem man seine Schaltung aufbauen kann.

                Es gibt wahrscheinlich auch Fertigloesungen mit Temperatursensoren ueber USB, aber da habe ich keinen Ueberblick. Auf jeden Fall gibt es keinen Markt wo man Ihnen ein USB-Geraet massschneidert.

                RS232 ueber USB hat so seine Maengel.

                Fuer einen tieferen Einblick in USB empfiehlt sich http://www.lvr.com
                Jan's Buch ist die Bibel fuer USB-Geraeteentwickler

                Comment


                • #9
                  ...um "ASCII Zeichen" von lahmen Sensoren zu schicken wird's reichen ;-)

                  cu Michae

                  Comment


                  • #10
                    Schon etwas älter, aber...

                    Hallo zusammen,

                    bin durch ein ähnliches Problem auf diesen Thread gestoßen, wie das der Erstellerin. Es ist natürlich korrekt, dass die Ausdrucksweise "mit dem USB kommunizieren" nicht korrekt ist, dennoch der Grundgedanke dahinter leuchtet mehr oder weniger ein:

                    Es muss doch m.E. nach möglich sein, mit einem USB Gerät zu kommunizieren, ohne einen Treiber für dieses Gerät installieren zu müssen, denn spätestens dieser Treiber muss ja dann entsprechend der Spezifikation mit dem Gerät "direkt" kommunizieren. Der einzige Hinderungsgrund wären möglicherweise Berechtigungsprobleme in der WindowsNT ACL.

                    Sofern es also aus Gründen der Sicherheit einen Treiber erfordert, mit einem USB Gerät auf direktem Wege zu kommunizieren, stellt sich mir hier wieder die Frage, wie dann der Treiber die Kommunikation mit dem Gerät aufbaut, dessen Protokollspezifikation bekannt ist.

                    mfg
                    Achim

                    Comment

                    Working...
                    X