Freescale Semiconductor hat eine Rundsteuerbibliothek (RCOLIB, Ripple Control Library) entwickelt, mit deren Hilfe sich die Rundsteuertelegramme auf dem Stromnetz erkennen und decodieren lassen. Die RCOLIB-Bibliothek besteht aus fünf grundlegenden Funktionen:
• Sie kann Rundsteuersignale mit Amplituden größer 0,4 % Un erkennen und korrekt decodieren
• Sie unterdrückt alle Rundsteuersignale, deren Amplitude unter 0,4 % liegt.
• Sie unterstützt alle Rundsteuerprotokolle bis zu 64 Bit.
• Sie liefert den aktuellen Zustand des Rundsteuerempfängers.
• Sie benötigt keine hohe Rechenleistung.
Bild 3 zeigt das in der RCOLIB verwendete Decodierverfahren. Zur Decodierung wird das Rundsteuersignal zunächst aus dem Netz gefiltert. Ein Bandpassfilter separiert das Rundsteuersignal aus der Netzspannung. Anhand des gefilterten Signals kann man sehen, ob ein Rundsteuersignal vorhanden ist. Für die korrekte Decodierung werden einige weitere mathematische Operationen benötigt. Das gefilterte Rundsteuersignal wird durch Potenzierung »gleichgerichtet«. Das gleichgerichtete Signal wird dann durch ein Tiefpassfilter mit niedriger Grenzfrequenz geschickt. Am Ausgang des Tiefpassfilters erhält man den ursprünglichen Signalverlauf. In der letzten Stufe des Decodierprozesses wird der Ausgang des Tiefpassfilters mit einer vordefinierten Schwelle verglichen. Liegt der Ausgangswert des Tiefpassfilters über der Schwelle, so wird ihm bei der Decodierung eine logische 1 zugewiesen, im anderen Falle eine logische 0. Alle diese Schritte sind Bestandteil der RcolibDecode()-Funktion.
Die Filterkoeffizienten werden in Abhängigkeit von den vorgegebenen Eingangsparametern in der RcolibInit()-Funktion berechnet. Die Eingangsparameter der RcolibInit()-Funktion spezifizieren das Kommunikationsprotokoll, die Rundsteuer- und Abtastfrequenz und den anfänglichen Schwellenwert. Die RcolibCalibrate()-Funktion sorgt automatisch für die richtige Einstellung des Schwellenwerts und sollte daher unbedingt genutzt werden.
Will man den aktuellen Status des Decodiervorgangs abfragen, so kann dies mit Hilfe der RcolibDecodeInfo()-Funktion geschehen. Die RcolibDecodeInfo()-Funktion gibt die folgenden Statusinformationen aus:
Status | Beschreibung |
RCOLIB_MSG_READY | Rundsteuertelegramm wurde erfolgreich empfangen und ist auslesebereit. |
RCOLIB_MSG_PENDING | Rundsteuertelegramm wird gerade decodiert. |
RCOLIB_MSG_IDLE | Rundsteuerempfänger ist in der Warteschleife. Empfänger wartet auf Startbit. |
Tabelle 1. Ausgabeoptionen der RcolibDecodeInfo-Funktion
Tabelle 2 zeigt die Anforderungen an die Rechenleistung der MCU für die Abarbeitung der Rundsteuerbibliothek auf einem ARM Cortex-M0+-Kern (MKM34Z128MCU).
Funktion | Anzahl der Eingangsparameter | Codegröße | Datengröße | Taktzyklen |
RcolibInit | 7 | 1092 Byte | Nutzt Softwarestack | 16796 |
RcolibDecode | 1 | 388 Byte | Nutzt Softwarestack | 523 |
RcolibDecodeInfo | 0 | 22 Byte | Nutzt Softwarestack | 41 |
RcolibMsgRead | 0 | 12 Byte | Nutzt Softwarestack | 38 |
RcolibCalibrate | 0 | 22 Byte | Nutzt Softwarestack | 38 |
Tabelle 2. Für die Rundsteuerbibliothek benötigte Rechenleistung