Forum: Mikrocontroller und Digitale Elektronik UART settings??


von Basti (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

ich versuche gerade die kommunikation eines GPS chips in einer Navi 
mitzulesen.

Die Pinne heissen RX und TX also gehe ich von UART aus.

Einmal pro sekunde kommen wie erwartet Daten, aber ich bekomme die nicht 
decodiert, da mir Baudrate und die anderen Settings fehlen.

Anbei oben ein Screenshot und 10 Sekunden Logic Analyzer Dump

Der Chip ist ein Furuno GN-8409B

Hat jemand ne Idee, wie man so eine Analyse anfängt, ich habe 
normalerweise wenigstens mit "probieren" immer was brauchbares gefunden 
aber hier scheitere ich :-((

von Konrad S. (maybee)


Lesenswert?

Versuch mal 38400,8,N,1.

von Pandur S. (jetztnicht)


Lesenswert?

Das verwendete Protokol ist NMEA, und ist wahrscheinlich zuvordert bei 
Gurgel.

von Basti (Gast)


Lesenswert?

" They are also compatible with most computer serial ports using RS232 
protocols"

und " the NMEA standard is 4800 b/s (bit per second rate) with 8 bits of 
data, no parity, and one stop bit. "

also xx 8N1 - ich habe alle von 1200 bis 115200 versucht, bekomme aber 
nur kauderwelsch. :-)

@Ben

Danke für deinen Beitrag der nichts zur Sache beiträgt.
Ich vermisse die Zeiten als hier noch wenig Trolle unterwegs waren

von Pandur S. (jetztnicht)


Lesenswert?

Allenfalls ist das GPS zum Einbauen und hat deshalb keinen Max232 
konverter, dh die Signale waeren dann TTL, resp das Signal waeren 
invertiert. Es muss nichts kaputt gehen... kann aber.

von X4U (Gast)


Lesenswert?

Basti schrieb:
> Hat jemand ne Idee, wie man so eine Analyse anfängt

Erstmal eingrenzen:

1. Die kürzeste Zeit für einen Bitwechsel ist deine Bitzeit.
   1/Bitzeit ist deine Baudrate (Bits/Sekunde).

2. So wie es aussieht fährt dein Protokoll negative Logik (Idle auf 
high)


3. Jetzt noch mit Start und Stop Bits rumspielen, könnte klappen.

von Felix W. (felixw)


Lesenswert?

Hallo Basti,

du hast maximale 4 Flanken in 100µs. Die Symbolrate muss also um 25µs -> 
ca. 40000 Baud liegen -> 38400 Baud. (~80000) wären möglich, aber 
unwahrscheinlich.

Startbit ist Low, Stopbit ist High, dazwischen n beliebige Datenbits. 
Dann wiederholt sich das ganze.

Suche nach Mustern. Es können auch 9 Datenbits sein oder ein Parity-Bit 
sein. Die längste Low-Phase könnte dir schon Aufschluss geben.

Grüße

von Konrad S. (maybee)


Lesenswert?

Konrad S. schrieb:
> Versuch mal 38400,8,N,1.

Hoppala, es ist 38400,8,O,1 (Odd-Parity).

von Basti (Gast)


Angehängte Dateien:

Lesenswert?

@Jetztnicht, X4U

Das ist TTL Pegel, also Idle-High. (oder hab ich da was verwechselt?)



@Konrad:

Leider auch nicht, hab gleich mal verschiedene Baudraten versucht....

Lt. Hersteller

Protocol  NMEA0183 /FEC Binary
Interfaces  Single Serial UART, 3 Volt CMOS Digital Levels

soweit also UART

von X4U (Gast)


Lesenswert?

Basti schrieb:
> Das ist TTL Pegel, also Idle-High. (oder hab ich da was verwechselt?)

Hat mit dem Pegel nichts zu tun. Deine Pegel sind die "üblichen", z.B. 
bei  invertierenden Treibern (wie MAX232) für die RS232 Wandlung.

Idle Low auf TTL Pegel kommt aber auch vor, deshalb einmal checken.

> Protocol  NMEA0183 /FEC Binary
> Interfaces  Single Serial UART, 3 Volt CMOS Digital Levels

Auf dem ISO Level bist du aber noch nicht, auch binary Protokolle senden 
lesbare Zeichen.


Probier doch mal Hterm, das zeigt Zeichen auch als binary an.

> hab gleich mal verschiedene Baudraten versucht

Rechne Sie doch erst mal aus.

von Jim M. (turboj)


Lesenswert?

X4U schrieb:
> Idle Low auf TTL Pegel kommt aber auch vor, deshalb einmal checken.

Würde man bei GPS sofort sehen, denn das Signal ist relativ lange idle 
zwischen zwei Ausgaben - jedenfalls bei 38,4 kBaud.


Basti schrieb:
> Protocol  NMEA0183 /FEC Binary
> Interfaces  Single Serial UART, 3 Volt CMOS Digital Levels

Das bedeutet, dass man für ein PC Kompatibles RS232 einen MAX3232 
braucht - das ist die 3.3 Volt Version des Pegelwandlers. Ein 74xx 
Inverter könnte  auch funktioniern, liefert aber keine konformen Pegel.

Ausname: Man hat schon ein USB->UART TTL Kabel ohne Pegelwandler 
rumfliegen. Die gibts bei IBäh.

von Basti (Gast)


Lesenswert?

Habs mit nem CP 2102 versucht also lassen wir mal rs232 aussen vor ;-) 
(Nutzt das noch jemand?)

von Basti (Gast)


Lesenswert?

Also...

es ist 38400

Das Protokoll ist "Furuno Binary"

die frames sehen so aus

1075F402A58C3B00A30E0E02280019CC7F0008FFE8FF8E02A58C2400A30E2102190019C6 
300004FFE8FF8117070D13150413144822150413144821000685000111FFFFFFFF000400 
291003108800000006F21F450F0E089DE21B0F081F832611082C2127120421000016081E 
CC0B18081E0B7D000000000000000000000000000000000000000000000000007C010000 
00FF7FF0FF1D2208100310780800040F0A4014FE220000000000000000811003

1079021504131448237F10031075F402A58C3E00A30DF102280019CC7C0008FFE8FF8C02 
A58C1D00A30DD002130018C7190004FFE9FF8617070D1315041314482315041314482200 
068500011010FFFFFFFF0004003C1003108800000006F21F450F0E089DE21B0F081F8326 
11082B2127120421000016081ECC0B18081E0B7D00000000000000000000000000000000 
0000000000000000007C01000000FF7FF0FF1D230E100310780800040F0A4014FE220000 
000000000000811003

ich kann auf jeden fall die Uhrzeit und datum erkennen

150413144822
150413144823

etc

mal sehen ob ich anhand vom debug output der navi den rest entschlüsselt 
krieg

von Konrad S. (maybee)


Lesenswert?

Basti schrieb:
> es ist 38400

Nu, sach ich doch. ;-)
Und 8 Datenbits, Odd Parity, 1 Stop-Bit wird wohl auch stimmen. Das Bild 
im Eingangspost legt das zumindest nahe.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.