Ansprechen einer über USB simulierten seriellen Schnittstelle
-
Gute Nacht!
Ich soll ein "USB/TTL-Modul mit 13 Ein-/Ausgängen", welches über ebay gekauft wurde, ansprechen, stehe nun aber vor dem Problem, dass ich im Grunde überhaupt keine Ahnung habe wie ich das Gerät ansprechen soll.
Ich habe bereits im Forum nachgeschaut (auch in der FAQ) und bin lediglich auf CREATEFILE, WRITEFILE und READFILE gestossen, kann aber nicht einschätzen ob und wenn ja, wie ich damit arbeiten muss.
das einzige was in der Anleitung zum Thema stand ist folgendes:
"Installation
Nach Anschluss des Moduls an einen USB-Port des PCs wird die neue Hardware erkannt und zur Auswahl eines Treibers aufgefordert.
Legen Sie die CD ein und wählen Sie das Verzeichnis entsprechend Ihres Betriebssystems. Daraufhin wird der USB-Treiber sowie ein neuer (virtueller) COM-Port installiert. Dieser COM-Port wird von Anwenderprogrammen wie eine nromale RS232-Schnittstelle behandelt, wobei die Daten jedoch über USB ausgegeben werden. Zur Ansteuerung des Moduls genügt bereits ein beliebiges Terminalprogramm. Auch eigene Scripts, Visual-Basic-Routinen o.ä. sind geeignet.
Befehlssatz:
Syntax: Kommandos mit <ENTER> abschließen
Pins: <01>...<13>
Konfiguration: <i>, <o>
Pegel: <1>, <0>c?
c:ooooooooooooo
c12,i
c:ooooooooooooo
c:ooooooooooo io
p?
p:0000000000010
Kommando "c?"
Antwort "c:ooooooooooooo"
Abfrage der Konfiguration Pin1...13 ("o"= Output, "i"=Input)Kommando "<c12,i>"
Antwort "c:ooooooooooooo"
Antwort "c:oooooooooooio"
<c12,i> Pin "12" auf Input
Pin1...13 (Konfiguration alt)
Pin1...13 (Konfiguration neu)Kommando "p?"
Antwort "p:0000000000010"
Abfrage der Pins
Pin1...13 (Logischer Pegel)Kommando "p13,1"
Antwort "p:0000000000010"
Antwort "p:0000000000011"
Pin "13" auf "H" setzen
Pin1...13 (Pegel alt)
Pin1...13 (Pegel neu)Kommando: "?"
Antwortp: "0000000000011"
Antwortp: "0000000000011"
Antwortp: "0000000000011"
Antwortp: "0000000000011"
Antwortp: "0000000000001" (Pins "12" Zustandsänderung)
Antwortp: "0000000000001"
Antwortp: "0000000000011"
Antwortp: "0000000000011"
Kommando: "#"
permanente Abfrage d. Pins
Pin1...13 (Logischer Pegel)
...Übertragung ca. alle 10ms
(Pins "12" Zustandsänderung)
<#> Stop mit beliebigem Zeichen"Wäre wirklich nett, wenn ihr mir helfen könntet, da ich nicht glaube, dass ich sonst weiter komme und ausserdem sitzt mir mein Lehrer im Nacken (hat aber noch weniger plan).
vielen dank im voraus für die investierte zeit!
jan
p.s. ich hoffe, ich habe das richtige forum erwischt.
-
Du sprichst mit dem Ding, als ist ein ein normaler serieller Port. Für Dich ist eigentlich uninteressant, daß da noch USB zwischenliegt. Eine ausführliche Beschreibung zum Thema serielle Schnittstelle findest Du hier:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/communications_resources.asp?frame=true
-
vielen dank für den link! jetzt weiß ich wenigstens was die parameter bei createfile da eigentlich tun. ich scheine es sogar geschafft zu haben, dass er sich der rechner mit dem modul unterhält, da die rote led, die anzeigt, dass daten vom modul gesendet werden, aufblinkt, wenn ich ihm per writefile etwas sende. nun stehe ich aber vor dem problem, dass ich nicht mithören kann.
ich dachte mir, dass ich vielleicht mit readfile etwas abfangen kann, wenn ich es direkt nach der writefile-anweisung einsetze, hat aber nicht so ganz funktioniert: das programm stürzt jedes mal ab und zieht den bcb mit.
"
DWORD dwBytesWritten = 0;
char chRead;
ReadFile(hComm, &chRead, 1, &dwBytesWritten, NULL);
"
-
Schau die mal das Programm Portmon an es könnte dir bei deinen Problemen helfen.