Sie sind hier: Home » Rollladensender » Beschreibung RLS

Link zu: Beschreibung Rollladensteuersender

Rolladensteuersender

 

Inhaltsverzeichnis

1       Allgemeine Anforderungen. 3

2       Aufbau. 3

2.1         Prinzip. 4

3       Adressen und Codes. 4

4       Peripherie Anschlüsse. 5

4.1         Stecker X2. 5

4.2         ISP-Programmierstecker 5

5       Generelles Protokoll 5

5.1         Protokollspezifisches. 6

5.1.1        Preable Byte - PRE. 6

5.1.2        Synchronization Bytes – SYNC1 und SYNC2. 6

5.1.3        Length Bytes (LEN) 7

5.1.4        Kommando-Byte (CDB) 7

5.1.5        Adressen. 8

5.1.6        CRC.. 8

6       Schema. 9

7       Layout 10

8       Bemerkungen. 10

9       Kompatibilitätsprobleme. 11

 

 

                                                                                              

Versionsverfolgung

Version

Datum

Bemerkung

 

V0.1

6.9.18

Initialversion

 

V0.2

27.11.18

Tastenanordnung ergänzt

 

V0.3

05.12.18

Quittung geändert

 

V1.0

18.12.18

Tastenzuweisung korrigiert, Text ergänzt, abgeschlossen

 

 

 

 

 

 

 

 

 


1       Allgemeine Anforderungen

Das Rolladensteuersender dient zum Steuern der oberen Rolläden. Es ist vollkommen autark und batteriegespiesen. Es steuert die Rolläden via Funkprotokoll. Als Sendemodul wird der Universal-Datensender verwendet.

Durch das Drücken einer Taste wird der Sender per Level-Interrupt aus dem Sleep-Mode aufgeweckt. Nach dem Aufwecken wird ein Code ausgesendet. Dieser wird vom Rollladenempfänger empfangen und quittiert. Erhält der Sender keine Quittung wird das Senden noch 1-mal widerholt. Während dem Senden sind die Interrupts ausgeschaltet. Nach dem Empfang der Quittung werden die Interrupts wieder eingeschaltet und der Prozessor geht in den Sleepmode.

Der DIL-Schalter dient mit den 3 ersten Schaltern zur Unterscheidung wo der Sender eingesetzt wird. Der 4. Schalter steuert einen Debug-Mode. Mit 0 ist er ausgeschaltet, mit 1 werden das Printer Port und die LEDs aktiviert.

 

Ort

 

DIL-Schalter; Position

 

Funkadresse

dezimal

 

 

1

2

3

4

Elternschlafzimmer

 

1

0

0

0/1

 

17

Kinderzimmer Süd

 

0

1

0

0/1

 

18

Kinderzimmer Nord

 

1

1

0

0/1

 

19

Gang

 

0

0

1

0/1

 

20

 

 

2       Aufbau

Für die Tasten ist eine neue Tastaturträger-LP notwendig. Als Verbindung dient eine Steckerleiste. Das Funkmodul kann direkt auf diese Steckerleiste gesteckt werden.

Um ein Aufwachen des Sendemoduls zu ermöglichen ist von jeder Taste je ein Widerstand auf 3.3V gelegt (Low Level Interrupt).

 

2.1             Prinzip

 

3       Adressen und Codes

 

Ort

DIL-Schalter

Taste

zugehöriger Port

gesendete Daten

Codebyte Binär

Code hex

Bad

100x

T1 / auf

PortD.6

00010010

12

 

 

T2 / ab

PortD.7

00010011

13

Schlafzimmer

 

T3 / auf

PortD.4

00010000

10

 

 

T4 / ab

PortD.5

00010001

11

Kinderzimmer Süd

010x

T1 / auf

PortD.6

00010100

14

 

 

T2 / ab

PortD.7

00010101

15

Kinderzimmer Nord

110x

T1 / auf

PortD.6

00010110

16

 

 

T2 / ab

PortD.7

00010111

17

Gang  (Kinderzimmer Süd)

001x

T1 / auf

PortD.6

00010100

14

 

 

T2 / ab

PortD.7

00010101

15

           (Kinderzimmer Nord)

 

T3 / auf

PortD.4

00010110

16

 

 

T4 / ab

PortD.5

00010111

17

 

Tastenanordnung (von vorne gesehen):

Bad & Schlaf-zimmer;
Gang

T1

T3

 

T1

Kinderzimmer
Süd & Nord

T2

T4

 

T2

 

4       Peripherie Anschlüsse

Verwendeter Prozessor ATmega 328P-PU mit dem Sende/Empfangsmodul RFM12B.

4.1             Stecker X2

Stecker X2

Prozessor-Pin

Signal

Alternativ-Signal

1

3, 5, 21

GND

 

2

4, 6

VCC

3.3V DC

3

30

PD0

TXD

4

31

PD1

RXD

5

27

PC4

SDA / ADC4

6

28

PC5

SCL / ADC5;    

7

1

PD4

Taste 2

8

2

PD5

Taste 1

9

9

PD6

Taste 4

10

10

PD7

Taste 3

 

 

4.2             ISP-Programmierstecker

Pin

Signal

Bemerkumg

1

MISO

 

2

+3V

 

3

Clk

 

4

MOSI

 

5

Reset

 

6

Gnd

 

 

 

5       Generelles Protokoll

Die Kommunikation zwischen Netzwerkknoten erfolgt in Form von Datenpaketen. Diese Datenpakete können von unterschiedlicher Länge sein. Die totale Paketlänge wird von der Anzahl Adress- und Datenbytes, der Fehlererkennungsmethode und einiger spezifischer Bytes bestimmt. Ein Byte (LEN) bestimmt die Anzahl folgender Bytes, ein weiteres Byte (Command Definition Byte: CDB) definiert weitere Funktionen.

Jedem Telegramm können eine beliebige Anzahl von Präambel-Bytes (Vorspann) vorangestellt werden, bevor es mit dem eigentlichen Synchronisationsbyte beginnt. Die Präambel-Bytes können beliebig sein, müssen sich aber vom Synchronisationsbyte unterscheiden. Da 2 verschiedene Funkmodule (RFM12B resp. RFM69CW) eingesetzt werden können sind 2 Preamble-Bytes vorgesehen.

 

Das folgende Beispiel zeigt ein kleines Paket mit CRC16-Fehlerdetektion:

PRE

…

SYNC

SYNC

LEN

DAB

SAB

CDB

DATA1

CRC2

CRC1

 

Name

Bezeichnung (original)

Bezeichnung (deutsch)

Byte

Umfang

CRC

PRE

Preamble Byte

Vorspann

 

 

 

SYNC

Synchronization Byte

Synchronisation

 

 

 

SYNC

Synchronization Byte

Synchronisation

 

 

 

LEN

Length Byte

Länge/Anzahl folgende Bytes

1

LEN

T

|

CRC-

Berechnung

|

DAB

Destination Address Byte

Empfängeradresse

2

T

|

|

LEN: Länge

|

|

SAB

Source Address Byte

Senderadresse

3

CDB

Command Definition Byte

Kommandobyte

4

DATA1

Data Byte 1

Datenbyte 1

5

CRC2

High byte of CRC-16

höherwertiges Byte der CRC16

6

nicht be-rücksichtigt

CRC1

Low byte of CRC-16

niederwertiges Byte des CRC16

7

Die gesamte Paketlänge beträgt hier sieben Byte ohne die Preamblebytes und Synchronisationsbytes. Die Bytes sind mit ihrem LSB rechts positioniert (Bit7…Bit0).

Da das verwendete Funkmodul RFM12B intern bereits Preamblebytes und Synchronisationsbytes bereitstellt wird nur der Rest des Protokolls ab LEN in Software programmiert.

5.1             Protokollspezifisches

5.1.1    Preable Byte - PRE

Das Preamble-Byte ist vordefiniert und dient der Taktsynchronisation des Empfängers..

 

Bit

 

7

6

5

4

3

2

1

0

Binär

1

0

1

0

1

0

1

0

Dies entspricht 0hAA in der Hexadezimalen Schreibweise und 170 als Dezimalzahl. Das Byte wird 2 mal gesendet.

 

5.1.2    Synchronization Bytes – SYNC1 und SYNC2

Die zwei SYNC-Bytes sind vordefiniert und kennzeichnen den Start eines jeden Datenpakets.

 

Bit

 

7

6

5

4

3

2

1

0

Binär

0

0

1

0

1

1

0

1

Dies entspricht 0h2D in der Hexadezimalen Schreibweise und 45 als Dezimalzahl. Das Byte kann im Funkmodul RFM12B umprogrammiert werden.

 

Bit

 

7

6

5

4

3

2

1

0

Binär

1

1

0

1

0

1

0

0

Dies entspricht 0hD4 in der Hexadezimalen Schreibweise und 210 als Dezimalzahl. Das Byte ist im Funkmodul RFM12B vorprogrammiert.

 

5.1.3    Length Bytes (LEN)

Dem Byte SYNC folgt das Längen-Byte LEN. Dieses legt die Anzahl zu übertragenden Bytes fest.

 

Bit

 

7

6

5

4

3

2

1

0

LEN

LEN

 

LEN:  Dies gibt die NACHFOLGENDE Anzahl Bytes an, MIT den CRC-Bytes.

Beim RFM69CW erfolgt die CRC-Berechnung immer EXTERN.

Die maximale Anzahl beträgt 255 Bytes; wird vom RFM69CW zusätzlich verschlüsselt so sind maximal 60 Byte Daten, Quelladresse + CDB-Byte sowie Zieladresse, Paketlänge und CRC möglich. Die Länge des FIFO΄s beträgt total 66 Byte.

 

5.1.4    Kommando-Byte (CDB)

Das Kommando-Byte beinhaltet folgende Funktionen:

 

Bit

 

7

6

5

4

3

2

1

0

CDB

ACK/NACK

C/D

R1

PN

 

Die enthaltenen Bits haben die folgende Bedeutung:

Name

Bezeichnung

ACK

ACK/NAK Bits

C/D

Kommando = 0 / Daten = 1

R1

Reservebit, vorläufig 0

PN

Fortlaufende Paket-Nummer (1..15 und wieder von vorne)

 

ACK

Definition

 

 

0 0

Sender fordert kein Acknowledge

C/D = 1; R1 = 0

 

0 1

Sender fordert Acknowledge

1 0

Empfänger sendet NACK zurück

C/D = 1; R1 = 0;

PN = PN der zu quittierenden Sendemeldung resp. 0

1 1

Empfänger sendet ACK zurück

 

PN:    Paketnummer, die gesendeten Pakete werden von 1 bis 15 durchnummeriert (0 entfällt). Dann wird wieder mit 1 gestartet. Eine komplett neue Datenpaketfolge beginnt wieder mit 1. Damit können fehlende Pakete festgestellt und eine Wiederholung angefordert werden.
Wird eine Quittung gesendet so wird das Reservebit R1 auf 0, C/D auf 1 und die Paketnummer PN wird bei positiver Quittung auf die empfangene Paketnummer gesetzt, bei negativer Quittung auf 0.

C/D:  Kommandobyte; mit log.0 werden die folgenden Daten als Kommando interpretiert, mit 1 als Daten. Vorläufig bleibt das Bit beim Datensenden log.1, bei der Quittung ebenfalls log.1.

Quittungen:           Positive Quittung (ACK):             &B1110xxxx
                     Negative Quittung (NACK):         &B10100000

5.1.5    Adressen

Die Adressen bestehen aus einem Byte. DIP-Schalter können 16 verschiedene Adressen auf dem Modul eingestellt werden.
Der Umfang der möglichen Einzeladressen beträgt 1….199 (0h01 … 0hC7).

Temperatursensoren , Block 1:                                                     01….15
Fernsteueradressen, Block 1:                                                        16….31
weitere Fernsteueradressen, Block 2:                                          32….47
weitere Fernsteueradressen, Block 3:                                          48….63
weitere Fernsteueradressen, Block 4:                                           64….79
Die Adresse des zentralen Datenloggers ist:                               85
Allrufadresse ist:                                                                             200
Gruppenrufadresse aller Temperatursensoren:                          201

Die  Adressen 201 … 254 (0hC9 … 0hFE) sind Gruppenadressen (was immer die Gruppen sein mögen, z.B. alle Temperatursensoren, alle Rolläden etc.).
Als Allrufadresse wird 200 (0hC8) verwendet.

 

5.1.6    CRC

Der CRC wird als 16Bit-CRC realisiert und umfasst die Bytes ab/mit Längenbyte (LEN) bis zum letzten übertragenen Datenbyte ohne die 2 CRC-Bytes.

 


 

6       Schema

 

7       Layout

 

 

 

8       Bemerkungen

Im Folgenden noch Bemerkungen für zukünftige Projekte:

-        Wenn man auf der gleichen Frequenz verschieden lange Daten überträgt so müssen die Empfangspuffer auf die maximal mögliche (oder maximal vorgesehene) Datenlänge ausgelegt werden. Ist der Puffer zu klein wenn längere Daten empfangen werden so werden damit die dem Puffer nachfolgenden Daten überschrieben. Das Gleiche gilt auch für Datenlängen <3; es müssen immer mindestens 4 Bytes sein.

-        Wird Senden mit Quittung verwendet so sollte der Sender bei der Wiederholung die gleiche Paketnummer verwenden. Damit kann der Empfänger erkennen, wenn der Sender die Quittung nicht auswerten konnte und wiederholt. Der Empfänger würde bei fortlaufender Paketnummer direkt wieder schalten(z.B. Relais ein/aus).

-        Keine Pullups bei der Interrupt-Leitung vom RFM12. Scheinbar legt der RFM12 diese Leitung an Masse. Ist ein Pullup aktiv werden ca. 90 uA verbraucht. Leerlauf ist ohne diesen Pullup 2.5 uA, hervorgerufen durch den Spannungsteiler für die Spannungsmessung.

 

9       Kompatibilitätsprobleme

Bei der Verwendung der 2 Funkmodule RFM12BS und RMM12BSP traten Kompatibilitätsprobleme auf. Es funktionierte nicht jeder mit jedem.

 


 
besucherzaehler-kostenlos.de