projekte:utrak:aprs
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
projekte:utrak:aprs [2014/10/21 10:02] – angelegt thasti | projekte:picoflights:aprs [2014/11/03 20:46] – Page moved from projekte:utrak:projekte:picoflights:aprs to projekte:picoflights:aprs thasti | ||
---|---|---|---|
Zeile 11: | Zeile 11: | ||
* Übertragungsrate: | * Übertragungsrate: | ||
* NRZI encoding | * NRZI encoding | ||
+ | * Bit-Stuffing (nach jeder fünften " | ||
* Data-Link Layer | * Data-Link Layer | ||
* AX.25-Framing (HDLC) | * AX.25-Framing (HDLC) | ||
* Frame Check Sequence nach CRC16-CCITT | * Frame Check Sequence nach CRC16-CCITT | ||
+ | ===== Implementierung ===== | ||
+ | ==== AFSK-FM ==== | ||
+ | Im MSP430 wird ein NCO implementiert, | ||
+ | Ein Timer stellt die Zeitbasis für den NCO zur Verfügung, dessen Samplerate so gewählt werden sollte, dass ein üblicher FM-Demodulator die Samplefrequenz schon nicht mehr in den NF-Zweig durchlässt. Ein Wert um die 10kHz sollte dafür ausreichen. | ||
+ | Der Phasenakkumulator wird bei jedem Takt auf Grundlage des aktuell zu übertragenden Tons erhöht (FCW_MARK bzw. FCW_SPACE). Aus einer Sinus-Tabelle, | ||
+ | |||
+ | Beim Si4060 beschränkte eine wenigstens annähernd saubere FM-Aussendung bisher, dass die PLL-Register nicht während des Sendens aktualisiert werden können. Dies lässt sich umgehen, indem man statt der PLL-Register selbst (Integer/ | ||
+ | 16 Bit " | ||
+ | |||
+ | Als erster Test sollte ein Sinus mit 1200Hz ausgegeben werden. Das Ergebnis der Demodulation ist im folgenden Screenshot zu sehen. Mit 23dB Oberwellendämpfung ist es zwar sicherlich nicht optimal, aber weitab der zweiten Nutzfrequenz (2200Hz), sollte also nicht zur nennenswerten Verschlechterung der Demodulation führen. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Vor der Demodulation sieht das Spektrum nach einer typischen FM aus: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== Bit-Stream ==== | ||
+ | Aus einem ganzzahligen Teil des Sampletaktes wird der Bit-Takt erzeugt, mit welchem die Funktion zum holen des nächsten Bits ausgeführt wird. Es wird sich einerseits um die NRZI-Kodierung gekümmert, als auch um die Vorgabe des AX.25-Protokolls, | ||
+ | |||
+ | ==== AX.25-Protokoll ==== | ||
+ | Von der Software wird lediglich ein Puffer beschrieben, | ||
+ | |||
+ | Im Hinterkopf behalten: APRS braucht zwar immer den gleichen Header (Source: eigenes Rufzeichen, Destination: | ||
+ | |||
+ | ==== APRS-Nutzdaten ==== | ||
+ | In erster Instanz sollen lediglich Position und Höhe im APRS-Netz verteilt werden können. Dies wird mit einem gewöhnlichen Position Report (APRS Spec, Seite 32) bewerkstelligt. Positionen werden im NMEA-Format eingebunden (mit anhängtem N/S bzw E/W), die Höhe wird im Kommentarfeld in Fuß nach dem Altitude Identifier "/ | ||
+ | |||
+ | ==== Design ==== | ||
+ | {{: | ||
===== Links ===== | ===== Links ===== | ||
* [[https:// | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
projekte/utrak/aprs.txt · Zuletzt geändert: 2015/07/24 08:28 von thasti