Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

FS20-Funksystem Protokoll Kategorie: Sonstige Hardware (von Thomas H. - 27.10.2004 21:47)
Als Antwort auf Gibt es schon eine Verbindung CC2 - FS20-Funksystem? von Jan - 19.10.2004 20:38
Ich nutze:
C-Control II Unit, OSOPT V3.0
Habe mal von Conrad das FS20-Protokoll bekommen
Vielleicht hilft es weiter:
------------------------------------------------------------------------------
FS20-Funkschaltsystem

1. Protokoll

1.1. Datenrahmen:
Hauscode 16 bit
Adresse 8 bit
Befehl 8 bit (16bit, wenn im ersten Befehlsbyte das Erweiterungsbit gesetzt ist.)
Quersumme 8 bit

Daten-Bit:
Senden Empfang
0: 400µs High, 400µs Low 600-1000µs Periodendauer
1: 600µs High, 600µs Low 1000-1450µs Periodendauer

Synchronisation:
0000000000001 (12* „0“, 1* „1“)
Jede Übertragung zu Empfängern wird mit dieser Synchronisationssequenz eingeleitet.

Parität:
Gerade

EOT:
0
Damit das letzte Datenpaket richtig ausgewertet werden kann, muß ein zusätzliches Daten-Bit
übertragen werden. Diese 0 selber kann allerdings nicht ausgewertet werden!

1.1.1. Hauscode:
0-65535
Hauscode1: 8bit (High-Byte)
Hauscode2: 8bit (Low-Byte)
 
1.1.2. Adresse:
High-Nibble (4bit): Adreß-Gruppe (Bank / Raum)
15 = Master- / Funktionsgruppen-Bereich
0-14 = Adreßraum für Einzeladressen
Low-Nibble (4bit): Unter-Adresse
15 = alle der Adreß-Gruppe (lokal Master)
0-14 = Einzel-Adresse / Adresse der Funktionsgruppe

Das High-Nibble wählt die Adreß-Gruppe aus. Es stehen 15 Adreß-Gruppen zur Verfügung.
Die Adreß-Gruppe „15“ wählt den Master- bzw. Funktionsgruppen-Adreßbereich aus.
Das Low-Nibble bestimmt innerhalb der gewählten Adreß-Gruppe die anzusprechende Unter-Adresse.
Zum Ausführen einer globalen Master-Funktion müssen High- und Low-Nibble der Adresse „15“ sein!

Reihenfolge der Eingabe und Speicherung von Hauscode und Adresse beim Setup von Sendern:
1. HC1: [A1|A0|B1|B0|C1|C0|D1|D0] 2. HC2: [E1|E0|F1|F0|G1|G0|H1|H0]
3. Adr: [I1|I0|J1|J0|K1|K0|L1|L0]
1.1.3. Befehl:
Unteren 5 bit:
000h aus
101h an, 6,25% Einschalten auf Helligkeitsstufe 1 (min.)
2 02h an, 12,5%
...
15 0fh an, 93,75%
16 10h an, 100% Einschalten auf Helligkeitsstufe 16 (max.)
1711h an, alter Wert Auf letztem Helligkeitswert einschalten
1812h toggle Wechsel zwischen “aus” und “an, alter Wert“
1913h dim up Eine Helligkeitsstufe heller
2014h dim down Eine Helligkeitsstufe dunkler
2115h dim up and down ..., + bis max, kurz warten, - bis min, kurz warten, …
2216h timeset Timerprogrammierung (Start, Ende)
2317h send status Nur bei bidirektionalen Komponenten!
2418h aus, für Timerzeit
2519h an, 100%, für Timerzeit
261ah an, alter Wert, für Timerzeit
271bh reset (auf Auslieferzustand)
281ch frei
291dh frei
301eh frei
311fh frei
Bit 5: Erweiterungsbit (0 = ohne, 1 = Erweiterungsbyte zwischen Befehl und Quersumme)
Bit 6: bidirektionaler Befehl (normal = 0)
Bit 7: Antwort eines Empfängers (normal = 0)

Erweiterungsbyte bei gesetztem Erweiterungsbit:
Ist im ersten Befehlsbyte das Erweiterungsbit gesetzt, wird ein Erweiterungsbyte eingeschoben.
Für die Befehle 0 bis 18  und 24 bis 26 gilt folgende Codierung des Erweiterungsbytes:
Das Byte gibt die einmalige Zeitdauer für den Timer in Schritten von 0,25s an.
Bei Befehl 22 wird der Timer des Empfängers fest auf den übertragenen Timerwert gestellt.
Das Low-Nibble gibt den Zahlenwert an. Ist es Null (= 0), wird die Timerfunktion ignoriert und der
Verbraucher dauerhaft/sofort geschaltet.
Das High-Nibble dient als Multiplikator mit dem Faktor 2^x. Es sind nur Werte kleiner oder gleich
 12 sinnvoll. Größere Werte werden auf 12 begrenzt!
Zeit = 2^(High-Nibble) * Low-Nibble * 0,25s
Die maximale Zeitdauer beträgt damit ca. 4,25Std, die minimale 0,25s, sofern dies jeweils von den
Empfängern bis zu den angegebenen Grenzen unterstützt wird.

1.1.4. Quersumme
8bit-Summe aus 6, Hauscode, Adresse und Befehl (und Erweiterungsbyte) bilden
Werden Repeater verwendet, so treten auch um 1 oder 2 erhöhte Quersummen auf, die von den
Empfängern im Normalfall akzeptiert werden sollten. Wurde von einem Empfänger bis 1,6s vor einem
Repeater-Befehl ein normaler Befehl empfangen, so wird der Repeater-Befehl ignoriert.


1.1.5. Komplette Übertragung:
Synchr, HC1, Parity, HC2, Parity, Adresse, Parity, Befehl, Parity, Quersumme, Parity, EOT
13 bit    8 bit   1 bit    8 bit   1 bit      8 bit      1 bit     8 bit     1 bit         8 bit          1 bit    1 bit
oder:
Synchr, HC1, Parity, HC2, Parity, Adr, Parity, Bef1, Parity, Bef2, Par, Quersumme, Par, EOT
13 bit     8 bit  1 bit    8 bit   1 bit   8 bit   1 bit   8 bit    1 bit   8 bit  1 bit        8 bit      1 bit  1 bit

Übertragung beginnt mit MSB.
Die Übertragung für ein komplettes Datenpaket mit 1 Befehl dauert 47,6ms bis 65,6ms.

Wird an der Hand-FB eine Taste < 400ms gedrückt, so wird beim Loslassen folgendes gesendet:
DAT, 10msPAUSE, DAT, 10msPAUSE, DAT, 110msPAUSE

Wird eine Taste an der Hand-FB länger als 400ms gedrückt, so wird alle 250ms folgendes gesendet:
DAT, 10msPAUSE, DAT


Im AUS-Zustand schaltet ein Dimmer bei EIN mit alter Helligkeit ein.
Im AUS-Zustand schaltet ein Dimmer bei DIMUP mit voller Helligkeit ein.
Im EIN-Zustand wird bei DIMUP eine Stufe aufgedimmt.

Alle Befehle dürfen von Empfängern immer nur 1x ausgewertet werden. Gesendet wird der
Befehl 3x mit einer Pause von 10ms. Dim-Befehle werden nur 2x mit einer Pause von ca. 10ms
 und 130ms gesendet. Nach einem erkannten Befehl ignorieren die Empfänger für 120ms weitere
 Befehle. Befehle von Repeatern werden für 1,6s ignoriert.
----------------------------------------------------------------
Mit Gruss
tom h.


    Antwort schreiben


Antworten:

Re: FS20-Funksystem Protokoll (von Hansi - 30.10.2004 11:00)
Re: FS20-Funksystem Protokoll (von Hansi - 29.10.2004 21:40)