Forum: HF, Funk und Felder Manchester dekodieren


von Harald (Gast)


Lesenswert?

Hallo Zusammen!

Manchester mal wieder, hoffe ich. Ich hab hier einen Raspberry PI der 
mit einem 433MHz Empfänger über GPIO verbunden ist. Der Empfang rennt. 
Soweit so gut - was ich nicht verstehe ist das Signal. (Das Signal wird 
von einer Handelsüblichen Funk-Fernbedienung für Steckdosen erzeugt)

Das Signal lese ich mit einem selbst geschrieben C-Programm aus, da der 
ganze Quatsch im Netz (433Utils mit wiringPI, etc) nicht funktioniert.

Das Programm läuft in einer Schleife und misst die Zeit zwischen Pegeln.
Folgendes kam dabei heraus:

#____##____##__####__####____##__####____##____##__####____##____##____# 
#__####__####__####____##__####__####__####____##_______________________ 
_______

Jedes # oder _ steht für ca. 300us. Zur Validierung habe ich einen der 
Anderen Knöpfe auf der Fernbedieung gedrückt und das Signal 
aufgezeichnet:

#____##____##__####__####____##__####____##____##__####____##____##____# 
#____##__####__####____##__####__####____##____##_______________________ 
_______

Sehr ähnlich, logischerweise. Und nun zu meinem Verständnisproblem.
Alles was ich zu Manchester im Netz finden konnte erklärt nicht was die 
4-fach-Highpegel sind, ebenso wenig die 4x-Low-Pegel. Wie erklären sich 
diese Ausschnitte?

Mein Plan sieht vor das Signal per Software zu erkennen und zu 
dekodieren.
Wie gehts nun weiter? Wie kann ich das "Paket" identifizieren?

Vielen Dank im Vorraus!
Beste Grüße
Harald

von Markus (Gast)


Lesenswert?

Spontan würde ich sagen die 4fach Sequenzen kommen durch den Wechsel 
zwischen 0/1 bzw 1/0.
Bei den 2fach-Seq. kommen demnach mehrere 0 bzw 1 hintereinander.

von Harald (Gast)


Lesenswert?

Wie würde dann dann das dekodierte binäre Ergebnis aussehen? Und welche 
Flanken des Signals können zur Dekodierung verwendet werden.

Wenn ich das Signal in 4er-Blöcke aufspalte, bleibt am Anfang #____ 
über. Das scheint mir unplausibel 300us High-Pegel gefolgt von 1200us 
Low-Pegel.

Grüße

von Wolfgang A. (Gast)


Lesenswert?

Das sieht nach der Übertragung von 20 Bit aus, mit dem ersten "#" zur 
Synchronisation und dann folgen die Datenbits mit jeweils sechs deiner 
300µs Symbole.

#____##____##__####__####____##__####____##____##__####____##____##____#
s11111122222233333344444455555566666677777788888899999900000011111122222

#__####__####__####____##__####__####__####____##_______________________
2333333444444555555666666777777888888999999000000

_____

von Klaus I. (klauspi)


Lesenswert?

Von Atmel gibt es eine Application Note dazu „Manchester Coding Basics“, 
einen Link findest Du im Artikel 
http://www.mikrocontroller.net/articles/Manchester

Harald schrieb:
> Wie würde dann dann das dekodierte binäre Ergebnis aussehen? Und welche
> Flanken des Signals können zur Dekodierung verwendet werden.
>
> Wenn ich das Signal in 4er-Blöcke aufspalte, bleibt am Anfang #____
> über. Das scheint mir unplausibel 300us High-Pegel gefolgt von 1200us
> Low-Pegel.

Das am Anfang ist ja nur die erste Flanke, zwischen den Flanken ergeben 
sich kurze (2 x 300us) und lange Abstande (4 x 300us).

Zum dekodieren gibt es sicherlich viele Ansatzmöglichkeiten, z.B.
Erste Flanke abwarten
Dann Einfach nur alle 1200us schauen ob Pin high oder low ist.

Oder aber
Fallende Flanke nach lang = 0
Steigende Flanke nach lang = 1
erste Flanke nach kurz ignorieren, zweite Flanke zählt wie nach lang

Schaus Dir am besten noch mal an. Ich denke der Anfang mit dem halben 
kurz (einmal 300us) hat dich etwas irritiert.

Edit: Die Bedeutung steigende/fallende Flanke kann natürlich auch 
umgekehrt sein. Für andere Anwendung müsste man unter Umständen auch 
synchronisieren und wartet dann dazu auf einen langen Übergang.

: Bearbeitet durch User
von Wolfgang A. (Gast)


Lesenswert?

Harald schrieb:
> Manchester mal wieder

p.s. Warum meinst du, dass die Kodierung irgendetwas mit Manchester-Code 
zu tun hat?

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

#____##____##__####__####____##__####____##____##__####____##____##____#
s11111122222233333344444455555566666677777788888899999900000011111122222
S  0     0     1     1     0     1     0     0     1     0     0     0

#__####__####__####____##__####__####__####____##_______________________
2333333444444555555666666777777888888999999000000
   1     1     1     0     1     1     1     0   sssssssssssssssssssssss

___

sssss

: Bearbeitet durch User
von Guest (Gast)


Lesenswert?

Ich würde auch sagen, Wolfgang A. und Winfried J. haben da richtig 
interpretiert, dass es eher eine PWM mit zwei unterschiedlichen 
Verhältnissen ist (1:2, 2:1). Zumindest lässt es sich damit vollständig 
auflösen.
Gibts denn einen dekodierten Bitstrom, mit dem man die Annahme 
verifizieren kann?

von Klaus I. (klauspi)


Lesenswert?

Stimmt, bei Manchester dürfte es keine lang-kurz-lang Übergänge geben.

Hat das eigentlich dann irgendeinen speziellen Namen?

von :-) (Gast)


Angehängte Dateien:

Lesenswert?

Bei den Intertechno Steckdosen aus dem Baumarkt habe ich die folgende 
Kodierung herausgemessen.
Wie diese sich nennt weis ich aber nicht.

von Guest (Gast)


Lesenswert?

...also wenn's mit zwei unterschiedlichen Tastverhältnissen moduliert 
wird, heißt es Pulsweitenmodulation ;)
http://de.wikipedia.org/wiki/Pulsweitenmodulation

Die Intertechno-Modulation ist ja schon wieder eine andere. Da fällt mir 
auch gerade kein Name zu ein.

von Guest (Gast)


Lesenswert?

Beim genaueren Hingucken sieht es ein bisschen so aus, als wäre die Mod. 
von Intertechno auch eine PWM. Es werden zur Übertragung von einem 
Nutzbit eben immer zwei Bits gesendet 00 -> 0, 10 -> 1.
Also sind zwischen allen Nutzbits immer Nullen eingefügt (auch am 
Anfang).

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Guest schrieb:
> ...also wenn's mit zwei unterschiedlichen Tastverhältnissen moduliert
> wird, heißt es Pulsweitenmodulation ;)

Aber nur dann, wenn die Pausen dazwischen gleiche Länge haben.

Wir haben hier einen Mischmasch aus Pulse Distance (es gibt nur eine 
Pulslänge und zwei verschiedene Pausenlängen) und Pulse Width (es gibt 
zwei verschiedene Pulslängen und nur eine Pausenlänge).

Ich habe deshalb diese Kodierung im IRMP-Artikel "Pulse Distance 
Width" genannt:

  http://www.mikrocontroller.net/articles/IRMP#Kodierungen

Eine offizielle Bezeichnung habe ich jedoch nirgendwo gefunden.

Winfried J. schrieb:
1
> #____##____##__####__####____##__####____##____##__####____##____##____#
2
> s11111122222233333344444455555566666677777788888899999900000011111122222
3
> S  0     0     1     1     0     1     0     0     1     0     0     0

Die Bits könnten auch mit ## anfangen, was wahrscheinlicher ist.

Dann:
1
#____##____##__####__####____##__####____##____##__####____##____##____
2
sssss111111222222333333444444555555666666777777888888999999000000111111

Also:

  ##____    = 1
  ####__    = 0

oder umgekehrt:

  ##____    = 0
  ####__    = 1

Aber das ist lediglich Definitionssache.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Guest schrieb:
> Beim genaueren Hingucken sieht es ein bisschen so aus, als wäre die Mod.
> von Intertechno auch eine PWM. Es werden zur Übertragung von einem
> Nutzbit eben immer zwei Bits gesendet 00 -> 0, 10 -> 1.

Ja, genau so ist es.

von Guest (Gast)


Lesenswert?

Frank M. schrieb:
> Aber nur dann, wenn die Pausen dazwischen gleiche Länge haben.

Ja, nee, eine Pulsweitenmodulation basiert ja auf einer festen Frequenz 
und einer dementsprechend gleichlangen Periodendauer. Geändert wird das 
Verhältnis zwischen High- und Low-Level, also haben die Pausen bei einer 
PWM keine feste Länge.

"Dabei wird bei konstanter Frequenz der Tastgrad eines Rechteckpulses 
moduliert, also die Breite der ihn bildenden Impulse."

Die Kodierung mit gleicher Pausenlänge gibt es sicherlich auch, jedoch 
finde ich es in dem IRMP-Artikel etwas unglücklich, die Bezeichnung mit 
der der PWM zum verwechseln ähnlich zu wählen.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Guest schrieb:
> Ja, nee, eine Pulsweitenmodulation basiert ja auf einer festen Frequenz
> und einer dementsprechend gleichlangen Periodendauer. Geändert wird das
> Verhältnis zwischen High- und Low-Level, also haben die Pausen bei einer
> PWM keine feste Länge.

Beim IR-Signal wird die PWM genutzt, um den Modulationsträger zu 
erzeugen - z.B. mit 38kHz. Die eigentlichen Nutzsignale werden aber über 
ein (wesentlich) höheres Vielfaches dieser Länge gebildet.

> "Dabei wird bei konstanter Frequenz der Tastgrad eines Rechteckpulses
> moduliert, also die Breite der ihn bildenden Impulse."

Ja, aber da steckt (jedenfalls bei IR) keinerlei Information drin. 
Entweder die PWM ist an ("Puls" (besser ein ganzes Pulspaket)) oder sie 
ist aus.

> Die Kodierung mit gleicher Pausenlänge gibt es sicherlich auch, [...]

Ja, gibt es, jede Sony-Fernbedienung benutzt gleichlange Pausen.

> jedoch
> finde ich es in dem IRMP-Artikel etwas unglücklich, die Bezeichnung mit
> der der PWM zum verwechseln ähnlich zu wählen.

Hm, kann ich so nicht nachvollziehen. Für mich sind das 2 vollkommen 
verschiedene paar Schuhe. Die einzige Gemeinsamkeit der PWM für die 
Modulationsfrequenz und des eigentlichen Nutzsignals ist die Tatsache, 
dass die Pulspakete und die Pausen ein ganzzahliges Vielfaches der 
Grundfrequenzlänge haben.... einfach weil die Dinger in den FBs mit 
Zählern arbeiten, die mit der PWM-Frequenz getaktet werden.

Aber ich verstehe Dich schon. Du meinst mit PWM nicht die Erzeugung der 
Modulation, sondern benutzt diese für das Signal selbst. Klar, dann muss 
die Gesamtlänge eines Bits immer gleich sein. In diesem konkreten Fall 
hier passt das natürlich, weil alle Bits die Gesamtlänge 6 haben. 
IR-Fernbedienungen arbeiten aber zu 99% anders. Die Bitlängen (also die 
Summe von Pulspaket und Pause) sind hier verschieden und können daher 
nicht über eine (weitere) PWM erzeugt werden, welche der Modulations-PWM 
überlagert wird.

Nichtsdestotrotz könnte man das obige Signal mit IRMP auswerten.

von fredl (Gast)


Angehängte Dateien:

Lesenswert?

@ TO, Harald:

Moin, ich beschäftige mich mit dem gleichen Thema, versuche p. Assembler 
die Decodierung zu erledigen.

Stichwort: Steckdosen-Fernbedienung. In meinem FB-Sender werkelt ein 
PT2262.
Das verwendete Modulationsverfahren heißt u.a. Pulsweitenmodulation, 
siehe WIKI:

http://de.wikipedia.org/wiki/Pulsbreitenmodulation

Im Anhang d. Seite 4 des Datenblattes PT2262.

Viel Erfolg,
fredl

von fredl (Gast)


Lesenswert?

Nachtrag zum oben nicht erwähnten Synchronbit:

Verhältis der Pulsweiten:

"0"-bit  (H/L) = 4/12/4/12
"1"-bit  (H/L) = 12/4/12/4

Synchron-bit  (H/L) = 4/128

(s. S.5 Datenblatt PT2262)

fredl

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.