' schrieb:Als aller erstes möchte ich Dir das "Du" anbieten, weil sich hier jeder duzt, ausser Du (Sie?) willst es nicht.
Ich bin davon ausgegangen, dass ein Gerät über SCPI-Befehle angesteuert wird und da enden Lesebefehle mit "?".
1.) Ja, das verstehst Du richtig.
2.) Gekoppelt heißt als "Paket", also ein String, der alle Befehle mit Trennzeichen enthält.
Ich schicke sie immer einzeln, d.h. ich schicke z.B. einen "einzelnen" Befehl zum Einstellen, dann den nächsten Befehl zum Einstellen, dann einen Befehl zum Auslesen,..... also ein String pro Befehl.
Was bei einem µC sonst noch zu Problemen führt, kann ich leider nicht sagen.
Eine Frage, die mich interessiert. Wie hast Du den USB-Zugriff auf Deinen µC im MAX geschafft? Mit der Anleitung von NI zur Erstellung eines USB-Treibers? Und was meinst Du mit Endpunkte und Adressen vom Lesen und Schreiben? Ich kann mir darunter nichts vorstellen.
Gruß Markus
Hi!!
Klar, Du ist besser ....
Wie ich den Zugriff auf den µC geschafft habe??
Erst mal den VISA-Treiber zur RAW-Klasse erstellt. Dann sieht man schon im MAX, das was da ist. Besser gesagt sein sollte, weil am anfang wollte der auch net so ganz. Hat man das geschafft, gehts daran dein µC so zu konfigurieren, das LV auch weis wie die Übertragung stattfinden soll!
Deswegen ein kleiner, vereinfachter USB-Crashkurs zum besseren Verständnis und Nachvollziehbarkeit:
Man hat verschiedene Übertragungswege für USB. Interrupt, Bulk, Control & Isochron Transfer.
Von denen hat jeder 'ne spezielle aufgabe & daseinsberechtigung. Ich verwende mit meinem Controller Interrupt-Transfer nach der HID. Die HID (Human Interface Device) wird für Mäuse, Tastaturen und so zeugs verwendet. Sie bestimmt wie der Transfer ablaufen soll. Dazu werden in verschiedenen Deskriptoren Einstellungen vorgenommen, die besagen wie der Transfer abläuft, die Schnittstelle konfiguriert ist & wie der Datenstrom aufgebaut ist.
Diese müssen alle richtig eingestellt sein, damit sich was tut.
USB-Schnittstellen an sich, haben 15 Endpunkte. Der Endpunkt bestimmt entweder, welches Gerät angesteuert wird (falls mehrere angesschlossen sind) bzw. liest die ankommenden/ausgehenden Signale ein/aus. Im Endeffekt ist der Endpunkt 'ne Adresse wohin der Datenfluss in der USB-Schnittstelle geschrieben wird.
Die HID unterstützt aber nur EINEN Endpunkt. Das bedeutet das in dem Endpunkt eine Fallunterscheidung gemacht wird, und eine Adresse (meist 0x01 für OUT bzw. 0x81 für IN ) bestimmt, wo man sich die Daten abholen kann!
Man KANN auch zwei Endpunkte machen & in einem dann auslesen & in dem anderen schreiben. Das muss man dann halt in den Deskriptoren alles berücksichtigen & die dann auch richtig einstellen, das das dann funktioniert. Dann ist man allerdings nicht mehr HID Konform und braucht nen anderen Übertragungstyp bzw. kann die HID nicht mehr verwenden.
Die HID ist ne tolle Sache und kann eigentlich für die meisten/alle Steuerungssachen verwendet werden & sollte für Regeltechnische & Ansteuerungssachen mit USB das Ding schlecht hin sein.
Tipps & Hilfe für USB:
USB 2.0 von Jan Axelson im mitp-Verlag (wirklich super Buch)
HID 1.1 auf der usb.org
usbTrace (Programm zum capturen/identifizieren der USB Schnittstelle )
Hoffe, es nachvollziehbar beschrieben zu haben ....
gruuß biz