Ergebnis 1 bis 13 von 13

Thema: Grundlagen FMS im Zeitbereich

  1. #1
    Registriert seit
    28.01.2011
    Beiträge
    5

    Grundlagen FMS im Zeitbereich

    Hallo,

    aus intresse wollte ich einmal wissen wie ein FMS Telegramm im Zeitbereich aussieht. Dazu habe ich meinen Scanner an den Mikrofoneingang angeschlossen und mit dem Soundkarten-Oszillograph einen Single-Shot gemacht.







    Es handelt sich dreimal um das gleiche Telegramm nur mit verschiedenen Zeitablenkungen.

    Das Signal entspricht halbwegs meinen Erwartungen. Ich gehe davon aus, dass ein Bit einer Wellenlänge entspricht. Dann zähle ich zwöf Einsen zu Beginn (Telegramm-Vorlauf) gefolgt von vier Nullen. Soweit korrekt?

    Die vier Nullen decken sich aber schon nicht mehr mit der erwarteten Block-Synchronisation (0001 1010).

    Kann mir jemand bei der Interpretation der Bilder helfen? Sind meine Ansätze korrekt?

    Grüße

  2. #2
    Registriert seit
    21.09.2009
    Beiträge
    2.678
    Hallo!

    Zitat Zitat von julian_xv Beitrag anzeigen
    aus intresse wollte ich einmal wissen wie ein FMS Telegramm im Zeitbereich aussieht. Dazu habe ich meinen Scanner an den Mikrofoneingang angeschlossen und mit dem Soundkarten-Oszillograph einen Single-Shot gemacht.
    Guter Ansatz.
    Aber wenn du sowas häufiger machen möchtest, nimm besser ein Soundbearbeitungsprogramm welches dir die gesampelten Daten in beliebigen Größen anzeigen kann. Ich persönlich verwende dafür gerne Wavelab von Steinberg (komerziell, teuer), gibt da aber auch reichlich andere Lösungen als Share- oder Freeware.
    Dann mit möglichst hoher Samplingrate arbeiten.
    Denn wenn man ein komplettes FSK oder FFSK-Paket "zufuß" decodieren und bewerten will, geht nix mehr auf Augen und Konzentration, als eckig abgestufte Signalverläufe.
    Arbeite bei 1200bps gerne mit übertriebenen 44,1kHz oder 48kHz Sampling, weil das Signal dann wesentlich sinusförmiger aussieht und mehr Feinheiten erkennen lässt.

    Zitat Zitat von julian_xv Beitrag anzeigen
    Das Signal entspricht halbwegs meinen Erwartungen. Ich gehe davon aus, dass ein Bit einer Wellenlänge entspricht. Dann zähle ich zwöf Einsen zu Beginn (Telegramm-Vorlauf) gefolgt von vier Nullen. Soweit korrekt?
    Nein, falsch:
    Es wäre weitestgehend richtig, wenn es sich um FSK bzw. AFSK handeln würde.
    Wird heute aber nur noch (aus historischen Kompatibilitätsgründen) im Amateurfunk (1200bps Packet Radio, sowie APRS) sowie auf Kurzwelle (RTTY und so) verwendet.

    FMS sowie gut 90% aller anderen professionellen Datenprotokolle im Sprechfunkbereich, arbeiten aber mit phasenkohärenter Umschaltung, da sie deutlich effizienter aus zu werten ist.

    Bei FFSK braucht man zwei ganz bestimmte und exakte Töne die zur exakten Bitrate passen.
    Denn eine logische 1 wird übertragen durch eine komplette Periode der tieferen Frequenz, und eine logische 0 wird übertragen durch 1,5 Perioden.

    Für 1200bps also...:

    Logisch 1 = 1,0 Perioden 1200Hz
    Logisch 0 = 1,5 Perioden 1800Hz

    Der Hauptvorteil liegt darin, das wärend der Übertragung beide logische Zustände in exakt gleicher Zeit übertragen werden - bei (A)FSK wäre die "0" ja deutlich kürzer als die "1".
    Das führt zu unsicherheiten bei der Decodierung, weil die Gesamtgeschwindigkeit sowie die Gesamtdauer eines Paketes plötzlich davon abhängt, wie häufig die "0" darin vor kommt.

    Bei FFSK kann der Decoder sich wärend der Bitsynchronisation auf das Timing eines empfangenden Paketes einschießen und sich seine Zeitmaske zurechtschieben.

    Ich habe dir das dritte Bild mal zufuß decodiert und angehängt.
    Kleiner Tip zum selber machen:
    Da Anfänge und Enden von FFSK-Paketen generell "wirsch" sind (PLL-Einschwingphase, Leistungsabfall am Ende) fängt man zufuß immer an einer markanten Stelle an die man zweifelsfrei erkennt:
    Der Nulldurchgang zwischen dem ersten 1/0-Wechsel.
    Im Angehängten Bild war mein Startpunkt also beim ersten Nulldurchgang rechts deiner rechten roten Linie.

    Und immer exakt im Nulldurchgang abgrenzen.
    eine Periode (1200Hz) besteht aus einer positiven und einer Negativen Halbwellen, also 3 Nulldurchgängen.
    Eineinhalb Perioden (1800Hz) besteht aus drei Halbwellen, zwei oben eine unten, oder umgekehrt - und somit aus 5 Nulldurchgängen.

    Edit: Nicht nur kompletter Telegrammvorlauf und Blocksynchronisatzion passen.
    Und die vier letzten bits sagen "Rettungsdienst"...stimmt's?

    Grüße aus Dortmund

    Jürgen Hüser
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	FFSK.jpg 
Hits:	224 
Größe:	147,0 KB 
ID:	12768  
    Geändert von DG7GJ (04.05.2011 um 12:34 Uhr)

  3. #3
    Registriert seit
    28.01.2011
    Beiträge
    5
    Zitat Zitat von DG7GJ Beitrag anzeigen
    Aber wenn du sowas häufiger machen möchtest, nimm besser ein Soundbearbeitungsprogramm welches dir die gesampelten Daten in beliebigen Größen anzeigen kann.
    Danke für den Tip. Auf die Idee kam ich später auch, aber hab mich dann erstmal auf das bereits aufgenomme Signal mit dem Soundkarten Oszi konzentriert.


    Zitat Zitat von DG7GJ Beitrag anzeigen
    Bei FFSK braucht man zwei ganz bestimmte und exakte Töne die zur exakten Bitrate passen.
    Denn eine logische 1 wird übertragen durch eine komplette Periode der tieferen Frequenz, und eine logische 0 wird übertragen durch 1,5 Perioden.

    Für 1200bps also...:

    Logisch 1 = 1,0 Perioden 1200Hz
    Logisch 0 = 1,5 Perioden 1800Hz

    Der Hauptvorteil liegt darin, das wärend der Übertragung beide logische Zustände in exakt gleicher Zeit übertragen werden - bei (A)FSK wäre die "0" ja deutlich kürzer als die "1".
    Das führt zu unsicherheiten bei der Decodierung, weil die Gesamtgeschwindigkeit sowie die Gesamtdauer eines Paketes plötzlich davon abhängt, wie häufig die "0" darin vor kommt.
    Danke dafür das macht es jetzt klar.


    Zitat Zitat von DG7GJ Beitrag anzeigen
    eine Periode (1200Hz) besteht aus einer positiven und einer Negativen Halbwellen, also 3 Nulldurchgängen.
    Eineinhalb Perioden (1800Hz) besteht aus drei Halbwellen, zwei oben eine unten, oder umgekehrt - und somit aus 5 Nulldurchgängen.
    Sind es bei eineinhalb Perioden dann nicht 4? Siehe Anhang.


    Zitat Zitat von DG7GJ Beitrag anzeigen
    Edit: Nicht nur kompletter Telegrammvorlauf und Blocksynchronisatzion passen.
    Und die vier letzten bits sagen "Rettungsdienst"...stimmt's?
    Habe das Signal nicht parallel nicht mit einem Programm ausgewertet. Es gibt aber hier Fahrzeuge die als Org-Kenner "Rettungsdienst" haben von daher wäre es möglich.


    Vielen Dank für den äußerst hilfreichen Beitrag.

    Grüße nach Dortmund
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	nullstellen.jpg 
Hits:	150 
Größe:	47,4 KB 
ID:	12769  

  4. #4
    Registriert seit
    09.04.2005
    Beiträge
    664
    ich weiß ja nicht, auf was dieser Thread hier genau raus will, überlege aber gerade (rein theoretisch), wie ein Mikrocontroller programmiert werden müsste, der die NF abtastet um daraus die Statusmeldungen zu decodieren. Der fertige Chip dafür ist ja leider nicht mehr so gut erhältlich.

    Hat jemand Ideen dazu?
    mein Name ist Programm

  5. #5
    Registriert seit
    28.01.2011
    Beiträge
    5
    Zitat Zitat von DME-Murxer Beitrag anzeigen
    ich weiß ja nicht, auf was dieser Thread hier genau raus will, überlege aber gerade (rein theoretisch), wie ein Mikrocontroller programmiert werden müsste, der die NF abtastet um daraus die Statusmeldungen zu decodieren. Der fertige Chip dafür ist ja leider nicht mehr so gut erhältlich.

    Hat jemand Ideen dazu?
    Du wirst lachen. Genau das ist meine Intention. Ich werde mal kurz schreiben was ich mir gedacht habe.

    Ich gebe das Sinussignal auf einen Komparator und forme mir damit ein Rechtecksignal. Nun beginne ich mit der ersten Flanke in gleichen Abständen abzutasten und zähle die Nulldurchgänge dazwischen.

    Da ich nicht glaube es zu schaffen genau auf einem Nulldurchgang abzutasten* würde ich jeweils kurz vor einem Nulldurchgang abtasten und dann wieder kurz dahinter. Ich habe das mal an einer Sinusschwingung im Anhang markiert. Die rosa sowie grünen Abstände sind immer gleich. Die logische "1" (1,2kHz) könnte man nun durch einen Nulldurchgang identifizieren und die logische "0" (1,8kHz) durch zwei Nulldurchgänge.

    Ich bitte um Kritik und gute Ideen.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	abtasten.jpg 
Hits:	183 
Größe:	79,5 KB 
ID:	12773  

  6. #6
    Registriert seit
    09.04.2005
    Beiträge
    664
    So in dieser Richtung mit Komparator und Nulldurchgängen habe ich auch gedacht.
    Nur für das Auswerten erschließen sich für mich 2 Lösungsansätze:

    1.
    3fache Abtastung (3600/sec) während der Rauschphase, bis der Telegrammanfang gefunden wird, so dass ab dann Phasensynchron mit 1200/sec. abgetastet werden kann.
    Der Abtastzeitpunkt kann dann genau zu dem Zeitpunkt erfolgen, bei dem sich eine 1200Hz-Impuls von einem 1800Hz Impuls unterscheidet.

    2.
    3 fache Abtastung über den gesamten Zeitraum, so dass ständig nach den beiden Frequenzen gesucht werden muss.


    Mit was für einen uC arbeitest du?
    mein Name ist Programm

  7. #7
    Registriert seit
    28.01.2011
    Beiträge
    5
    Zitat Zitat von DME-Murxer Beitrag anzeigen
    1.
    3fache Abtastung (3600/sec) während der Rauschphase, bis der Telegrammanfang gefunden wird, so dass ab dann Phasensynchron mit 1200/sec. abgetastet werden kann.
    Der Abtastzeitpunkt kann dann genau zu dem Zeitpunkt erfolgen, bei dem sich eine 1200Hz-Impuls von einem 1800Hz Impuls unterscheidet.

    2.
    3 fache Abtastung über den gesamten Zeitraum, so dass ständig nach den beiden Frequenzen gesucht werden muss.
    Für die Erkennung des Telegrammanfangs dachte ich an die Verwendung von Interupts. Ansonsten erscheint mir aber deine erste Variante einfacher.

    Zitat Zitat von DME-Murxer Beitrag anzeigen
    Mit was für einen uC arbeitest du?
    Noch sind das nur Gedankenspiele, aber ich habe noch einen ATmega16 rumliegen.

  8. #8
    Registriert seit
    28.01.2011
    Beiträge
    5
    In einem anderen Forum bekam ich den Tipp mit Bandpässen zu arbeiten.

    Ich könnte also auch das Signal in einen 1,2 kHz Bandpass schicken. Es dann gleichrichten und über einen Komparator schicken. Da das Signal mit 1en beginnt kann der Anfang erkannt werden und die Länge ist mit 48 Bit auch vorgegeben.

    Das Signal könnte ich dann gut im µC verarbeiten.

  9. #9
    Registriert seit
    21.09.2009
    Beiträge
    2.678
    Hallo!

    Zitat Zitat von julian_xv Beitrag anzeigen
    Sind es bei eineinhalb Perioden dann nicht 4? Siehe Anhang.
    *Stirnklatsch*...hast recht!

    Grüße aus Dortmund

    Jürgen Hüser

  10. #10
    Registriert seit
    21.09.2009
    Beiträge
    2.678
    Hallo!

    Zitat Zitat von DME-Murxer Beitrag anzeigen
    ich weiß ja nicht, auf was dieser Thread hier genau raus will, überlege aber gerade (rein theoretisch), wie ein Mikrocontroller programmiert werden müsste, der die NF abtastet um daraus die Statusmeldungen zu decodieren. Der fertige Chip dafür ist ja leider nicht mehr so gut erhältlich.
    Hmm...freilich kann man eine handvoll OP's an einem µC hängen und den Rest per Software zurecht biegen.
    Aber was meinst du für einen "fertigen Chip" der "nicht mehr so gut erhältlich" ist?
    Des FM63...äh...weisnicht...das dumme aus metusalem-Zeiten?

    Nixda, gibt's alles noch, nur halt zusammen mit fielen anderen Funktionen, die man immer mal in Funkgeräten brauchen tut.
    Da wäre z.B. der CMX881:
    http://www.cmlmicro.com/products/dat...s/cmx881ds.PDF

    Empfängt das Teilchen Daten, klingelt es an nem Interrupt-Pin des µC's, der sich die Daten dann einfach per SPI aus dem Chip zieht.

    Habe hier noch ein paar davon im Schrank, weil ich damit auch mal was mit nem ATMega16 stricken wollte, aber bis heute nicht dazu kam.

    Gibt da aber noch mehrere vom Spezialisten CML:
    http://www.cmlmicro.com/products/ind...earch=features

    Grüße aus Dortmund

    Jürgen Hüser

  11. #11
    Registriert seit
    09.04.2005
    Beiträge
    664
    @julian_xv: Das mit den Bandpässen wird nicht klappen, da die Frequenz zu kurz anliegt. Jeder Filter hat ein Einschwingverhalten!


    Zitat Zitat von DG7GJ Beitrag anzeigen
    Hallo!



    Hmm...freilich kann man eine handvoll OP's an einem µC hängen und den Rest per Software zurecht biegen.
    Aber was meinst du für einen "fertigen Chip" der "nicht mehr so gut erhältlich" ist?
    Des FM63...äh...weisnicht...das dumme aus metusalem-Zeiten?

    Nixda, gibt's alles noch, nur halt zusammen mit fielen anderen Funktionen, die man immer mal in Funkgeräten brauchen tut.
    Da wäre z.B. der CMX881:
    http://www.cmlmicro.com/products/dat...s/cmx881ds.PDF

    Empfängt das Teilchen Daten, klingelt es an nem Interrupt-Pin des µC's, der sich die Daten dann einfach per SPI aus dem Chip zieht.

    Habe hier noch ein paar davon im Schrank, weil ich damit auch mal was mit nem ATMega16 stricken wollte, aber bis heute nicht dazu kam.

    Gibt da aber noch mehrere vom Spezialisten CML:
    http://www.cmlmicro.com/products/ind...earch=features

    Grüße aus Dortmund

    Jürgen Hüser

    Der CMX881 ist noch erhältlich?
    Mal abgesehen davon dass du noch ein paar in deinem Schrank liegen hast; wer vertreibt die in geringen Stückzahlen für Endabnehmer?

    Grüße vom Murxer
    mein Name ist Programm

  12. #12
    Registriert seit
    21.09.2009
    Beiträge
    2.678
    Hi Murxer!

    Zitat Zitat von DME-Murxer Beitrag anzeigen
    @julian_xv: Das mit den Bandpässen wird nicht klappen, da die Frequenz zu kurz anliegt. Jeder Filter hat ein Einschwingverhalten!
    ACK! Ist ja schließlich kein Schnecken-AFSK.
    Mit Filtern und oder ebenso langsammen NE567 als Tonauswerter kenne ich nur diese alten 45/50Bd RTTY-Decoder, als die in den 80'ern für C64 und Atari-ST eingebürgert wurden..:-)

    Zitat Zitat von DME-Murxer Beitrag anzeigen
    Der CMX881 ist noch erhältlich?
    Soweit ich weis?!?
    Zumindest ist bei CML noch kein "obsolete" oder "not for new product" zu sehen.

    Zitat Zitat von DME-Murxer Beitrag anzeigen
    Mal abgesehen davon dass du noch ein paar in deinem Schrank liegen hast; wer vertreibt die in geringen Stückzahlen für Endabnehmer?
    Das ist der Nachteil an CML. Es ist ein sehr spezieller Markt, dessen globaler Kuchen fein säuberlich aufgeteilt ist, das die Distris angeht.
    Es darf nicht jeder beliebige Distri nach Deutschland verkaufen, obwohl mehrere innerhalb der EU sind (Frankreich, Finnland...)
    Nö, der Deutsche Markt gehört was CML-Produkte angeht www.spezial.com

    Der verkauft ab Mindestmenge 10 Stück (je nach Chip, einige ab 25 Stück, einige ab...reden wir nicht drüber*) an Wiederverkäufer, Industrie und Ing's.
    Freilich könnten sich kleinere Spezialhändler (www.box73.de oder www.amidon.de) da drann hängen und in Einzelstücken/Kleinmengen an Endkunden verkaufen.
    Aber scheinbar ist der Markt da zu spezifisch.

    Würde freilich in Amateurfunkkreisen ein Projekt in den Fachzeitschriften veröffentlicht werden, die solch einen Hyperspezialchip als Herzstück braucht, wäre zumindest box73 leicht zu überzeugen.

    Solange man bei den handzahmen Produkten wie den CMX881 bleibt, wäre das Risiko ja überschaubar.
    10 Stück lagen damals glaube ich bei etwa 140€ Netto, also zzgl. MwSt. etwa 167€ und somit 16,70€ je Chip im Einkauf. 3-5€ Marge drauf und gut.
    Aber wie gesagt: Solche Händler haben genügend Spezialteile in Ihren Lagern, die seit Jahren verstauben. (Man wühle nur mal die Seiten von www.amidon.de durch...IC's noch original von Plessley und Ferranti. Fast noch Röhrenzeit...hi)

    *= Vor vielen Jahren, als mit viel Wirbel die 703x/803x FirmASIC frisch raus kamen, erdreistete ich mich bei CML nach einem Sample an zu Fragen.
    CML verwies mich freundlich auf ihre Gebietszuweisungen und zum damaligen Deutschland-Distri. Das war damals noch "Atlantic-Electronic" oder so ähnlich.
    ..."Samples? Nee, ich schau mal eben...VE vom CMX7031 stehen hier 10.000 Stück, darunter geht garnix" sagte man mir telefonisch...

    Grüße aus Dortmund

    Jürgen Hüser

  13. #13
    Registriert seit
    09.04.2005
    Beiträge
    664
    Zitat Zitat von DG7GJ Beitrag anzeigen
    Hi Murxer!
    .
    .

    Das ist der Nachteil an CML. Es ist ein sehr spezieller Markt, dessen globaler Kuchen fein säuberlich aufgeteilt ist, das die Distris angeht.
    Es darf nicht jeder beliebige Distri nach Deutschland verkaufen, obwohl mehrere innerhalb der EU sind (Frankreich, Finnland...)
    Nö, der Deutsche Markt gehört was CML-Produkte angeht www.spezial.com

    Der verkauft ab Mindestmenge 10 Stück (je nach Chip, einige ab 25 Stück, einige ab...reden wir nicht drüber*) an Wiederverkäufer, Industrie und Ing's.
    Freilich könnten sich kleinere Spezialhändler (www.box73.de oder www.amidon.de) da drann hängen und in Einzelstücken/Kleinmengen an Endkunden verkaufen.
    Aber scheinbar ist der Markt da zu spezifisch.
    .
    .
    .
    Grüße aus Dortmund

    Jürgen Hüser
    Eigentlich Schade, dass die guten alten Schaltkreise und deren Alternativen für Endkunden kaum mehr erhältlich sind. In den 80er'n habe ich nach jedem Elektronikfachgeschäft gesucht, wenn ich beruflich in einer fremden Großstadt unterwegs war um nach neuen Ideen zu suchen, jetzt gibt es das Internet mit so vielen Möglichkeiten und trotzdem ist es nicht einfacher geworden wenn esw um Spezialteile geht. Der CML-Distributor wäre sogar in akzeptabler Reichweite von mir, aber leider gibt es wohl kein Ladengeschäft dort.

    Das ist, um wieder auf den Ursprung des Threads zu kommen, ein Grund auf Basis von herkömmlichen Analogschaltungen und uC's, selbst was zu entwickeln. Hält außerdem geistig Fit!

    Viele Grüße,
    Der Murxer
    mein Name ist Programm

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •