RDS Dekodierung von Anfang an

Gast #409725
Lesenswert?

Hallo

Ich baue mir gerade eine kleine Stereoanlagen, an der eigentlich alles
geht. Doch nun wollte ich das System um einen RDS Dekoder ergänzen,
doch ich verstehe überhaupt nichts.

Angennommen, ich habe jetzt 26 Bit empfangen, woher soll ich wissen,
welche Bits ich vor mir habe. Wenn ich dann die richtigen Bits jemals
habe muss ich sie ja mit einem 10x26 Bit Generatormatrix multiplizieren
doch wie? Ich kann doch nicht ein Matrix mit einer Zahl multiplizieren,
oder? Dann verstehe ich gar nichts mehr.

Kann mir jemand helfen?

Vielen Dank im Vorraus!
Persönliche Seite #409728
Lesenswert?

Als von Anfang an:

Du empfängst einen RDS Datenstrom mit hilfer der Clock und Daten
Signale.
Innerhalb des Datenstroms gibt es keinen Anhaltspunkt für den Start und
das Ende eines Blocks. Um einen Block zu empfangen must du den Empfänger
als erstes in Bit- und Blocksynchronität zum Datenstrom bringen.

Das geht wie folgt:
Du empfängst 26 Bit aus dem Datenstrom. Jetzt überprüfst du diesen
Datensatz auf gültige CRC. Das geht am einfachstem mit vorberechneten
CRC Werten für jedes einzelne Bit. Für jedes 1 Bit wird der
entsprechende CRC Wert mit der empfangenen CRC XOR verknüpft.
Wenn du das gemacht hast bleibt am Ende das Syndrom übrig. Für jeden
der 5 Blöcke gibt es ein Syndrom, du braucht nun nur das eben
berechnete zu prüfen und weist welchen Block du empfangen hast,
vorausgesetzt die CRC und das Syndrom waren gültig.

Wenn du kein gültiges Syndrom nach der Berechnung erhalten hast,
schiebst du die 26 Bit um eins nach links und hängst am Ende EIN
weiteres empfangenes Bit an, nun fürst du die obige Berechnung wieder
durch und überprüfst wieder auf ein gültiges Syndrom.

Das ganze machst du solange bis Du ein gültiges Syndrom gefunden hast.
Nun ist der Empfänger Bit- und Blocksynchron zum Datenstrom.
Solltest Du ab jetzt ein ungültiges Syndrom berechnen, must du sofort
wieder bei Null anfangen und erneut die Synchronität herstellen, das
man davon ausgehen muss das diese nicht mehr gegben ist.

Mit dieser Prozedur stellst du spätestens nach 26 weiteren empfangenen
Bits die Synchronität her, wenn der Datenstrom nicht unterbrochen
wurde.

Anhand des gültigen Syndrom kannst Du nun festellen welchen der 5
Blöcke du empfangen hast, und die enthaltenen Daten verarbeiten.
Gast #409729
Lesenswert?

@ RDS Anfänger

Welchen RDS-Dekoder benutzt du? Es gibt nämlich auch welche, die die
ganze Syndromgeschichte schon automatisch machen und dir lediglich via
I2C die dekodierten Blöcke zur Verfügung stellen. Evtl. kannst du dir
den Aufwand komplett sparen.
Gast #409730
Lesenswert?

@ Aufreger

Leider verwende ich nicht einen solchen Dekoder, son deshalb, da ich
keine Bezugsquelle finden konnte.

@ Michael Wolf

Vielen Dank für die Hilfe ich werde es jetzt erst mal probieren ob ich
es richtig verstanden habe.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren