# USB Interface RS485



## tubias (14 Dezember 2007)

Hallo

ich habe mir das Interface 38211 von http://www.wut.de/e-38211-ww-dade-000.php gekauft. Ich möchte damit über die FTDI D2XX Lib (FTDI Direct Treiber) die Telegramme auf dem RS485 Bus analysieren. Die Baudrate ist 1500000. Wenn ich zwei von den Interface aneinander schließe kann man ordentlich übertragen. Wenn man aber das Interface an den MPI (bzw. BTSS) Bus zwischen HMI und NCU hängt werden permanent Daten von dem Interface an die USB-Schnittstelle übertragen obwohl auf dem Bus außer dem Token keine Telegramme unterwegs sind (Signalleitung-LED leuchtet ständig).

Einstellungen:
BaudRate = 1500000
DataBits = 8
StopBits = 1
Parity = Even
FlowControl = None
RtsHi = false
DtrHi = false
Xon = 0x11
Xoff = 0x13

Liegt das an der Flusssteuerung?


mfg
Tobias


----------



## Rainer Hönle (14 Dezember 2007)

Auf dem Bus sind neben dem Token auch immer die Statusabfragen unterwegs. Dazu mal das rote Profibus-Buch von Popp anschauen (kann ich wirklich empfehlen).


----------



## tubias (14 Dezember 2007)

Hi

aber auch wenn Daten übertragen werden (z.B. ein MPF-Programm) kommen immer die gleichen USB-Packete an. Wenn ich das USB-Interface von dem MPI-Bus trenne, kommen trotzdem noch einige USB-Packete an. Deshalb dachte ich das die Pegel auf dem Bus wegen falscher Flusskontrolle nicht richtig erkannt werden?

mfg
Tobias


----------



## Rainer Hönle (14 Dezember 2007)

Wie sehen die Paketdaten aus? Wie wird die Baudrate eingestellt? Gibt es dabei irgendwo einen Fehler? Wie ist das Gerät eingestellt? Zwei- oder Vierdraht?


----------



## tubias (14 Dezember 2007)

Hi

Wie die Packetdaten aussehen kann ich erst heute Abend schreiben. Ein Word ist fast immer gleich. Ab und zu kommt dann mal irgend eine Binäre Folge.

Die Funktion SetPort der FTD2XX.LIB hat einen Parameter vom Typ TFtConfigData. Dieses struct hat die Attribute die ich oben genannt habe. Dabei gibt es keinen Fehler.
Es wird die 2-Draht-Technik verwendet. Die DIL Schalter SW1 und SW2 sind ON. Die MPI-A+ geht auf PIN2 und MPI-A- geht auf PIN7 des Sub-D (muss ich heute Abend noch mal prüfen ob das so war).

Ich habe auch schon versucht über den VCP-Treiber mit dem HyperTerminal Daten zu empfangen. Da kam aber gar nicht an und das Signalleitung-LED hat nicht geleuchtet.

mfg
Tobias


----------



## tubias (14 Dezember 2007)

Hi

Also, MPI A- habe ich an Pin2 und MPI B+ habe ich an Pin7 des Sub-D angeschlossen.

Übertragen werden eine Menge Word 0xDC16. Ab und zu auch 0xDC10 und 0xDC4F. Dazwischen kommt dann immer irgend ein Byte-Salat.


mfg
Tobias


----------



## Rainer Hönle (14 Dezember 2007)

Info leider unvollständig. Es handelt sich hierbei jedenfalls um das Token-Telegramm. Dies ist wie folgt aufgebaut:
0xDC DA SA, dabei ist DA = destination address und SA = source address
Deshalb: auch mal den Bytesalat reinstellen, am Besten byteweise in hex.
Und außerdem Manfred Popp, PROFIBUS-DP/DPV1 lesen. Hierfür relevante infos stehen in der 2. Auflage ab Seite 28.
Was und wofür soll eigentlich analysiert werden? Warum kommt kein professionelles Tool mit entsprechender Protokollkenntnis und -anzeige zum Einsatz?


----------



## tubias (16 Dezember 2007)

Hi

hier mal ein Auschnitt:

```
FC DC 01 0D 10 03 01 49 4D 16 DC 06 01 10 0C 06 
49 5B 16 DC 0D 06 10 14 0D 49 6A 16 DC 01 0D 10 
04 01 49 4E 16 DC 06 01 DC 0D 06 10 15 0D 49 6B 
16 68 64 64 68 81 8D 7C 19 21 F1 A3 32 07 00 00 
00 00 00 0C 00 47 00 01 12 08 12 02 01 02 00 00 
00 00 FF 09 00 43 00 0B FF 03 00 01 00 00 FF 04 
00 08 00 00 FF 04 00 08 01 00 FF 04 00 08 00 00 
FF 03 00 01 00 00 FF 04 00 08 00 00 FF 04 00 08 
D0 00 FF 04 00 08 00 00 FF 04 00 08 00 00 FF 04 
00 08 00 00 FF 04 00 08 00 A6 16 E5 DC 01 0D 10 
05 01 49 4F 16 68 08 08 68 8D 81 7C 21 19 B0 01 
A3 18 16 E5 DC 06 01 DC 0D 06 10 16 0D 49 6C 16 
DC 01 0D DC 06 01 DC 0D 06 10 17 0D 49 6D 16 DC 
01 0D DC 06 01 DC 0D 06 10 18 0D 49 6E 16 DC 01 
0D DC 06 01 DC 0D 06 10 19 0D 49 6F 16 DC 01 0D 
DC 06 01 10 07 06 49 56 16 DC 0D 06 10 1A 0D 49 
70 16 DC 01 0D DC 06 01 10 08 06 49 57 16 DC 0D 
06 01 10 16 DC 0D 10 16 DC 16 DC DC 06 16 DC 16 
DC 49 58 16 DC 01 10 16 DC 16 DC 16 68 16 DC 10 
17 16 DC 10 08 16 DC 16 DC 16 DC 16 DC 16 DC 10 
00 16 DC 01 10 01 10 16 DC DC 06 16 DC 16 DC 13 
0D 06 10 16 DC 16 DC 49 4C 16 DC 16 DC 16 DC 16 
DC 0D 49 06 10 16 DC 16 DC 01 10 16 DC 16 DC 16 
DC 16 DC 16 DC 16 DC 16 DC 16 DC 16 DC 16 10 16 
DC 16 DC 16 DC 0D 10 16 DC 16 DC 16 DC 16 DC 16 
DC 16 DC 16 DC 0D 10 0D 49 16 DC 16 DC 0A 06 16 
DC 16 DC 16 DC 4F 16 16 DC 0D 49 16 DC 16 DC 16 
DC 06 10 16 DC 06 DC 16 DC 16 DC 16 DC 16 DC 16 
DC 06 10 16 DC 16 DC 16 DC 16 DC 0D 49 16 DC 0D 
10 16 DC 0D DC 5A 16 16 DC 16 10 16 DC 16 DC 16 
DC 16 DC 06 10 16 DC 16 DC 16 DC 16 DC 4F 16 16 
DC 16 DC 16 DC 06 10 16 DC 16 DC 16 DC 16 DC 16 
DC 16 DC 16 DC 64 16 16 DC 16 DC 16 DC 16 DC 16 
DC 01 DC 16 DC 16 DC 16 DC 16 DC 0B 06 16 DC 16 
DC 16 DC 10 03 16 DC 16 DC 16 DC 16 DC DC 0D 16 
DC 16 DC 05 01 16 DC 16 DC 01 0D 59 16 16 DC 06 
10 16 DC 06 10 16 DC 16 DC 16 DC 16 DC 0D 10 16 
DC 16 DC 16 DC 16 DC 16 DC 16 DC 16 DC 16 DC 16 
DC 16 DC 16 DC 16 DC 16 DC 49 4D 16 DC 16 10 16 
DC 16 DC 0D DC 0D DC 16 DC 0D 06 16 DC 16 DC DC 
06 16 DC 16 DC 16 DC 16 DC 06 10 16 DC 16 DC 16 
DC 06 01 16 DC 0D 10 01 02 0D 10 0D 10 01 DC 16 
DC 16 DC DC 06 16 DC 0D 10 16 DC 0D DC 16 DC 16 
DC 49 4D 16 DC 16 DC 16 DC 16 DC 16 68 16 DC 0D 
DC 16 DC 16 DC 16 DC 16 DC 16 DC 0D DC 16 DC 16 
DC 06 10 16 DC 16 DC DC 0D 16 DC 16 DC 16 DC 16 
DC 74 16 16 DC 0D 06 16 DC 0D 10 16 DC 16 DC 16 
DC 0D DC 16 DC 16 DC 16 DC 16 DC 16 DC 01 10 16 
DC 16 DC 0D DC 16 DC 16 DC 16 DC 06 DC 00 84 01 
10 06 01 65 16 16 DC 01 0D 16 DC 16 DC 0D 06 16 
DC 16 DC 10 02 16 DC 0D 10 16 DC 16 DC 16 DC 0D 
06 4C 16 16 DC 01 10 0D DC 01 0D 16 DC 16 DC 16 
DC 16 DC 16 DC 16 DC 16 DC 0D DC DC 01 06 10 16 
DC 08 06 16 DC 01 10 16 DC 0D DC 16 DC 01 0D 16 
DC 16 DC 06 49 08 00 16 DC 16 DC 16 DC 16 DC 4E 
16 16 DC 16 DC 16 DC 06 49 16 DC 01 10 16 DC 4E 
16 DC 06 06 10 16 DC 06 10 16 DC 01 10 16 DC 01 
DC 0D DC 0D DC 16 DC 16 DC 16 DC 16 DC 16 DC 16 
DC 01 DC 0D DC 16 DC 06 DC 06 49 16 DC 16 DC 01 
0C 16 DC 16 DC 0D 10 16 DC 16 DC 06 10 16 DC 16 
DC 16 DC 16 DC 4E 16 16 DC 16 DC 16 DC 16 DC 16 
DC 16 DC 16 DC 0D 06 01 DC 0D DC 0D 49 16 DC 16 
DC 16 DC 16 DC 16 DC 0D 06 01 DC 02 01 16 DC 0D 
10 16 DC 16 DC 16 DC 16 DC 16 DC 0D 10 16 DC 16 
DC 16 DC 16 DC DC 01 49 5B 16 DC 06 10 16 DC 16 
DC 16 DC 75 16 16 DC 16 DC 16 DC 16 DC 01 DC 0D 
DC 16 DC 16 DC 16 DC DC 01 00 01 16 DC 06 10 DC 
0D 01 DC 0D 10 16 DC 73 16 16 DC 16 DC 16 DC 06 
DC 01 DC 10 04 16 DC 66 16 16 DC 68 17 10 13 16 
DC 16 DC 0D 06 16 DC 16 DC 06 01 16 DC 16 DC 1E 
0D 16 DC 06 10 16 DC 16 DC 16 DC 0D 10 16 DC 11 
0D 16 DC 06 10 0D 06 01 DC 16 DC 16 DC 16 DC 16 
DC 16 DC 0D DC 06 10 0D 06 01 DC 10 04 16 DC 16 
DC 0F 0D 16 DC 16 DC 16 DC 4E 16 16 DC 16 10 16 
10 16 DC 16 DC 16 DC 16 DC 0D 10 16 DC 16 DC 16 
DC 16 DC 16 DC 0D 10 16 DC 0D 10 06 10 06 10 16 
DC 16 DC 16 DC 16 DC 16 DC DC 06 49 70 06 10 DC 
0D 16 DC 01 10 16 DC 01 10 0D DC 16 DC 16 DC DC 
0D 16 DC 01 10 16 DC 16 DC 16 DC 16 68 16 DC 0D 
10 16 DC 08 00 16 E5 06 10 16 DC 16 DC 01 10 16 
DC 16 DC 10 0E 07 06 16 DC 16 DC 16 DC 01 10 16 
DC 0D 10 49 6D 06 10 01 10 16 DC 4D 16 16 DC 16 
DC 16 DC 16 DC 06 DC 16 DC 16 DC 16 DC 16 DC 01 
10 16 DC 16 DC 16 DC 06 10 16 DC 06 10 08 00 16 
DC 16 DC 16 DC 16 DC 0D 10 16 DC 06 DC 0D 06 01 
10 16 DC 03 01 16 DC 0D 10 49 6A 06 10 16 DC 16 
DC 16 DC 10 1A 16 DC 01 10 16 DC 16 DC 49 56 16 
DC 16 DC 06 DC 10 0B 16 DC 16 DC 16 DC 0D 10 16 
DC 0D 10 16 DC 16 DC 0B 06 16 DC 16 68 01 DC 16 
DC 16 DC 0D DC 16 DC 16 DC 16 DC 16 DC 01 DC 16 
DC 16 DC 16 DC 01 0D 16 DC 16 DC 16 DC 06 10 16 
DC 16 DC 16 DC 16 DC 75 16 16 DC 16 DC 08 00 16 
DC 01 DC 16 DC 0D 10 16 DC 12 0D 16 DC 06 10 16 
DC 16 DC 16 DC 10 03 16 DC 16 DC 16 DC 16 DC 0D 
DC 16 DC 16 DC 16 DC 16 DC 16 DC 16 DC 10 11 16 
DC 06 10 16 DC 06 10 16 DC 16 DC 16 DC 16 DC 16 
DC 16 DC 16 DC DC 01 16 DC 01 DC 16 DC 16 DC 16 
DC 16 DC 16 DC 16 DC 16 DC 16 DC 10 03 16 DC 0D 
10 16 DC 0D DC 16 DC 16 DC 16 DC 16 DC 16 DC 16 
DC 16 DC 08 00 16 DC 0D 10 16 DC 16 DC 16 DC 16 
DC 16 DC 16 DC 6E 16 16 DC 16 DC 16 DC 16 DC 16 
DC 16 DC 16 DC 16 DC 0D 10 16 DC 16 DC DC 01 16 
DC 01 DC 16 DC 01 10 16 DC 06 01 16 DC 16 DC DC 
01 06 10 16 DC 16 DC 16 DC 16 DC 16 DC 16 DC 16 
DC 01 0D 00 00 16 68 16 DC 16 DC 01 10 16 DC 06 
01 16 DC 0D 10 16 DC 16 DC 16 DC 16 DC 49 4C 16 
DC 16 DC 16 DC 0D DC 16 DC 01 10 16 DC 4E 16 16 
DC 16 DC 16 DC 0D DC DC 01 06 10 16 DC 06 10 16 
DC 16 DC 16 DC 16 DC 0D DC 16 DC 16 DC 16 DC 0D 
06 16 DC 16 DC 10 02 16 DC 0D 10 16 DC 16 DC 16 
DC 0D 06 16 DC 16 DC 16 DC 01 10 16 DC 16 DC 16 
DC DC 0D 16 DC 16 DC 16 DC 16 DC 0D DC 01 0D DC 
01 16 DC 16 DC 16 DC 06 10 16 DC 16 DC 01 DC 0D 
10 16 DC 16 DC 06 DC 01 0D 06 10 16 68 16 DC 01 
DC 16 DC 16 DC 16 DC 06 10 16 DC 16 DC 16 DC 16 
DC 16 DC 16 DC 16 DC 16 DC 06 DC 16 DC 16 DC 01 
10 01 DC 0D DC 16 DC 16 68 E5 DC 06 10 16 DC 06 
49 16 DC 16 DC 01 DC 0D 10 16 DC 16 DC 16 DC DC 
01 49 59 01 10 01 DC 0D 10 16 DC 16 DC 0D DC 16 
DC 16 DC 06 10 16 DC DC 0D 16 DC 16 DC 16 DC 0D 
DC 16 DC 16 DC 16 DC 16 DC 16 DC 0D DC 0D 49 16 
DC 16 DC 16 DC 16 DC 16 DC 0D 06 01 DC 0D 10 16 
DC 0D 10 16 DC 0D 49 16 DC 16 DC 06 10 01 DC 06 
01 0D DC 16 DC 16 DC 06 10 16 DC 16 68 06 10 16 
DC 16 DC 16 DC 16 DC 16 DC 01 0D 16 DC 16 DC 16 
DC 16 DC 16 DC DC 06 16 DC 16 DC 16 DC 16 DC 06 
10 0D 06 01 DC 16 DC 01 10 16 DC 0D 10 16 DC 0D 
DC 06 10 06 10 16 DC 16 DC 01 49 16 DC 16 DC 16 
DC 16 DC 06 10 16 DC 16 DC 01 10 16 DC 16 DC 0D 
DC 16 DC 0D 10 16 DC 08 00 16 E5 16 DC 16 DC 16 
DC 16 DC 16 DC 16 DC 06 10 01 DC 01 10 16 DC 0D 
10 16 DC 16 DC 16 DC 0D 49 06 10 01 DC 16 DC 16 
DC 16 DC 01 10 16 DC 16 DC 06 DC 01 DC 16 DC 16 
DC 16 DC 16 DC 0D DC 16 DC 16 DC 06 10 08 00 16 
DC 16 DC 01 10 16 DC 16 DC 16 DC DC 06 16 DC 06 
DC 16 DC 16 DC 16 DC 16 DC 16 DC 06 01 6A 16 06 
10 0D 06 16 DC 01 10 16 DC 4F 16 16 DC 06 01 16 
DC 06 DC 06 DC 56 16 16 DC 16 DC 01 10 16 DC 16 
DC 0D 10 16 DC 16 DC 06 10 16 DC 16 68 0D 06 16 
DC 16 DC 16 DC 16 DC 0D DC 16 DC 16 DC DC 0D 16 
DC 16 DC 16 DC 16 DC 06 10 16 DC 06 10 16 DC 49 
59 16 DC 01 10 16 DC 16 DC 16 DC 16 DC 00 FF 16 
68 16 DC 06 DC 16 DC 16 DC 0D 10 16 DC 16 DC 57 
16 16 DC DC 0D 16 DC 16 DC 10 01 16 DC 16 DC 0D 
DC 1E 0D 16 DC 16 DC 0B 06 16 DC 16 DC 16 DC 16 
DC 16 DC 58 16 16 DC 16 DC 16 DC 16 DC 16 DC 16 
DC 16 DC DC 01 16 DC 06 10 16 DC 06 10 01 DC 0D 
10 16 DC DC 01 16 DC 16 DC 01 10 16 DC 16 DC 0D 
10 16 DC 16 DC 1A 0D 16 DC DC 01 16 DC 16 DC 06 
10 16 DC 16 DC 16 DC DC 01 16 DC 16 DC 16 DC 17 
68 16 DC 16 DC 16 DC 16 DC 16 DC 16 DC 0D 10 16 
DC 1C 0D 16 DC 16 DC 02 01 16 DC 16 DC 0D DC 16 
DC 16 DC 16 DC 01 DC 16 DC 16 DC 16 DC 16 DC 0D 
DC 16 DC 16 DC 06 10 16 DC 16 DC 01 DC 06 49 06 
01 0D 10 16 DC 0D 10 16 DC 00 08 16 DC 16 DC 16 
DC 0D 10 16 DC 16 DC 16 DC 16 DC 16 DC 16 DC 16
```

Ich werde mir das Buch von Manfred Popp besorgen. Danke!
Das interessiert mich einfach. Will ja kein Dummkopf sein sondern die Wahrheit wissen 

mfg
Tobias


----------



## Rainer Hönle (17 Dezember 2007)

Na das ist doch schon mal was.

Tokentelegramm:
0xDC DA SA 

Request FDL-Status:
0x10 DA SA FC FCS 0x16

Hierbei gilt:
DA = Destination Address
SA = Source Address
FC = Function Code (0x49 = suche aktive Teilnehmer, 0x4D = Nachfrage bei Slave nach Ausgangsdaten)
FCS = Frame Checking Sequence

Und die eigentliche Kommunikation läuft über die 0x68-Telegramme (Datentelegramme variabler Länge) ab.


----------



## tubias (21 Dezember 2007)

Hi

ich muss immer noch auf das Buch warten 
Kommt man ziemlich schwer dran...

Es müssten dann ja eigentlich eine ganze Menge 0x68 Telegramme vorhanden sein. Der Ausschnitt wurde währen dem Übertragen von Programmen aufgezeichnet. Es sind aber fast nur Token Telegramme zu sehen. Liegt das  evtl. an der Größe der USB-Packete? Vielleicht gehen Daten verloren.

mfg
Tobias


----------



## Rainer Hönle (21 Dezember 2007)

tubias schrieb:


> Hi
> 
> ich muss immer noch auf das Buch warten
> Kommt man ziemlich schwer dran...
> ...


Dies liegt einfach da dran, dass bei der "Nutzdatenübertragung" immer auf eine logische Quittierung gewartet wird. Und in dieser Zeit läuft selbstverständlich der Token und die Statusanfrage weiter über den Bus.
Einfach die Token- und Statustelegramme ausblenden und den Rest anschauen.


----------



## tubias (21 Dezember 2007)

Hi

Das Interface setzt ja einfach die Pegel auf dem Bus in USB Packete um. Es hat also auch keine Adresse in dem Bus. Die Nutzdaten tauschen sich zwei Slaves aus. Die Quittierungen müssten doch die beiden Busteilnehmer sich ausmachen? Die Daten werden ja auch vollständig von dem einen Slave zum andern Übertragen. An dem Interface habe ich momentan auch nur die Eingänge angeschlossen.

mfg
Tobias


----------



## Rainer Hönle (22 Dezember 2007)

Ist schon klar. Aber mit Ausblenden meinte ich, einfach in der Software entsprechende Filter einbauen und dann das gefilterte Ergebnis ordentlich (= paketweise) ausgeben. Das vereinfacht die Analyse ungemein.
Ansonsten schöne Weihnachten und viel Spaß beim Experimentieren.


----------



## Rainer Hönle (22 Dezember 2007)

tubias schrieb:


> ... Die Nutzdaten tauschen sich zwei Slaves aus. Die Quittierungen müssten doch die beiden Busteilnehmer sich ausmachen?


Am Bus ist es klar geregelt: Slaves halten die Klappe und antworten nur wenn sie gefragt werden (ist ungemein praktisch). Deshalb geht die ganze Kommunikation von mindestens einem Master aus. Datenaustausch zwischen Slaves ist mir noch nicht untergekommen. Auch die Staustelegramme und Tokens gehen nur von Busmastern aus.


----------



## tubias (22 Dezember 2007)

Hi

Stimmt, die NCU ist der Master. Trotzdem müssten doch viel mehr 0x68 Packete von dem Interface aufgezeichnet werden.
Na ja, ich werde mal sehen. Hoffe dass ich das Buch bald bekomme.

Vielen Dank auf jeden Fall für die Antworten. ich wünsche dir auch schöne Feiertage.

mfg
Tobias


----------



## Rainer Hönle (29 Dezember 2007)

Hast Du das Buch jetzt schon erhalten?


----------



## tubias (29 Dezember 2007)

Hi

Nein, das dauert bis zu 3 Wochen,  wegen Weihnachten evtl. noch länger. Ich implementiere aber gerade schon mal einen Generic-ConnectionLayer und spezialisiere den für verschiedenen Schnittstellen (u.a. FTDI). Der ProtocolLayer kommt dann wenn ich das Buch habe.

mfg
Tobias


----------



## Rainer Hönle (18 Januar 2008)

Falls Du das Buch noch nicht hast, hier ist es momentan zu haben:

http://cgi.ebay.de/Profibus-DP-DPV1...ryZ40459QQssPageNameZWDVWQQrdZ1QQcmdZViewItem


----------



## tubias (18 Januar 2008)

Hallo

Danke für den Hinweis. Ich habe es vor ein paar Tagen endlich bekommen. Ich werde am WE mit meinem Projekt weiter machen. Mal sehen...

Gruß
Tobias


----------

