Funkfernbedienung

Aus LaborWiki
Wechseln zu: Navigation, Suche

Worum geht es

Es geht um die Funksteckdosen, die mit einem 12bit tristate Encoder ausgestattet sind(das sind die meissten). Die Codes werden am Sender gesetzt indem die 12 Codier-Pins des ICs auf GND, oder VCC gelegt werden, oder offen gelassen werden.

Pegel  | Wert
-------+------
 GND   |   0 
 offen |   1
 VCC   |   2 

Dadurch ergibt sich ein Code in Trinär. Dieser wird aber nicht Trinär gesendet, sondern statdessen binär.

Pegel  | trinär| binär
-------+-------+-------
 GND   |   0   |  00
 offen |   1   |  01
 VCC   |   2   |  11

Wenn man jetzt immer 2 Trinär stellen zu einer Hex-Ziffer zusammenfasst ergibt sich folgende Kodierung:

trinär | hex
------ +-------
  00   |  0
  01   |  1
  02   |  3
  10   |  4
  11   |  5
  12   |  7
  20   |  C
  21   |  D
  22   |  F


Schalter

(5-Schalter Variante)

Die Schalter sind folgendermassen codiert:

TASTE  | Code | BINÄRCODE
-------+------+-----------
  A    | 055  |
  B    | 115  |
  C    | 145  |
  D    | 151  |
  E    | 154  |

Tabelle 1: Codes für an/aus-Schalter

Dip Schalter

(Variante mit 5er Dip)

Zur Codierung der Dipschalter werden die ersten vier Schalter jeweils in Zweiergruppen zusammengefasst. Für diese Schalter gilt jeweils die gleiche Codierung:

  DIP  | 1 AN | 1 AUS
-------+------+------
 2 AN  |  0   |   4
 2 AUS |  1   |   5  

Tabelle 2: Dipschaltercodes

Der 5. Dip-Schalter addiert zu der ersten Stelle des Codes der An/Aus Schalter (s.o.) eine 4, wenn er aus geschaltet ist. (Wenn er auf Stellung an ist, passiert nichts.)


Zusammengesetzter Code

Der gesamte Code, der gesedet wird, ergibt sich aus den obigen Tabellen. Die erste Stelle repräsentiert den Code für die ersten beiden Dipschalter (s. Tabelle 2). Für die 2. Stelle gilt dies analog.
Die 3. Stelle ist die erste Stelle der Schalter aus Tabelle 1 plus die Codierung, die sich aus dem Dipschalter 5 ergibt.
Die 4. und 5. Stellen sind die übrigen 2. und 3. Codeziffern aus Tabelle 1.
Die 6. und letzte Stelle des Codes ergibt die Stellung der Schalter A bis E: 1 steht dabei für an, 4 steht für aus.

Verwirrend? - Hier ist ein Beispiel

Es soll die Steckdose A angeschaltet werden. Der Systemcode (=Dipschalterstellung) sei 01100. Daraus ergibt sich folgender Code:

   4   1    4    5    5    1

...und deren bitweise represaentation...

0100 0001 0100 0101 0101 0001

...und so setzt er sich zusammen:

  4 <-- Dip 1 aus und Dip 2 an
  1 <-- Dip 3 an  und Dip 4 aus
  4 <-- Erste Stelle des Schalters A ist 0. Dip 5 steht auf aus, also 0+4
  5 <-- Die 2. Stelle des Codes für Schalter A
  5 <-- Die 3. Stelle des Codes für Schalter A
  1 <-- Wir schalten das Gerät an

Gesendeter Code

Bevor der Code gesendet wird, wird dieser vorher nochmals codiert. Dabei wird jede Eins des obigen codes mit "110" und jede Null mit "100" codiert. Der resultierende Code aus dem obigen wäre als 72 bits lang und sähe so aus:

100 110 100 100   100 100 100 110   100 110 100 100   100 110 100 110   100 110 100 110   100 100 100 110

Zu den Timings: Zwischen zwei flanken liegen in etwa 400 microsekunden.