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

Re: FS20-Funksystem Protokoll Kategorie: Sonstige Hardware (von Hansi - 30.10.2004 11:00)
Als Antwort auf FS20-Funksystem Protokoll von Thomas H. - 27.10.2004 21:47
Ich nutze:
C-Control II Unit, C-Control II Station, CC2-Application-Board, OSOPT_V2

Hallo tom,

Dank Deiner Hilfe ( wichtig waren für mich noch die Befehle ) versteht meine C-Control II jetzt
meine FS20-Steuerung.
Mein jetziger Treiber wertet allerdings nur ein Befehlsbyte aus und mu? jetzt natürlich etwas optimiert
werden.

Jawohl, C-Control II goes FS20 ist keine Zukunftsmusik mehr !

Der nächste Schritt ist jetzt der Sender.

Gru? Hansi


> 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: