This page is deprepated have a look at the uberbus page

Intro

Der uberbus soll der Hausbus der Kapsel werden.

Beteiligte

  • schneider (Konzept, Mikrocontroller, RS485, Protokollentwicklung)
  • fpletz (Netzaufbau, IPv6, IPSec, Auth)

Medien

CAN

Can ist ein Bussystem, dass auf einfachem TP-Kabel Nachrichten uebertragen kann. Spezielle CAN-Controller stellen dabei die Zustellung sicher.

RS485

RS485 verwendet ebenfalls RS485. Es ist dabei deutlich guenstiger als CAN da hier keine speziellen Controller benoetigt werden, Dafuer muss fuer einen Betrieb mit mehreren Busmastern(Lichtschalter) die Kollisionserkennung/vermeidung selbst in Software durchgefuehrt werden.

Bestehendes: http://openhc.wiki.sourceforge.net/

Funk

Falls keine Leitung gezogen werden soll sind RFM12-Module eine Option zur Uebertragung.

Das RS485/IPv6 Hybrid-System

Prinzip

Es werden mehrere RS485-Subnetze ueber Ethernet verbunden. Dabei werden den Devices in den Subnetzen IDs zugeordnet, die im Ethernet auf IPv6-Adressen gemappt werden. High Speed Chaos Control Concentrators (HSC3) fungieren hierbei als Bridge zwischen Ethernet/IPv6 auf RS485.

IPv6

Es werden hierbei globale IPv6-Adressen fuer jedes Device zugeordnet. Um Authentifizierung und zum Schutz vor Replay Attacks zu gewaehrleisten wird IPsec AH (alternativ ESP fuer Verschluesselung) eingesetzt. Jeder HSC3 kuemmert sich hierbei um die Authentifizierung/Entschluesselung der Pakete und schickt die reine Payload an das Device ueber RS485 weiter. Etwaige Antworten werden dem jeweiligen Host zurueckgeschickt (UDP oder TCP), hierbei muss aehnlich wie bei NAT ein Connection State gehalten werden.

Jeder HSC3 bekommt ein /112 Subnetz zugewiesen, wie z.B. 2001:470:9aca::23:0/112. Die Device-IDs werden direkt aus der letzten Gruppe des IPv6-Adresse gewonnen. Das Device mit der ID 42 haette dann die IP 2001:470:9aca::23:42. Es muss sichergestellt werden, dass entsprechende Routen im Netz (Router) gesetzt werden, so dass Pakete an den zustaendigen HSC3 geleitet werden.

Authentifikation / Authorisierung

Die Authentifizierung der Keys sollte von einem weiteren Rechner (brezn) durchgefuehrt werden. Hierbei waere eine feingranulare Moeglichkeit der Rechtevergabe zu implementieren (z.B. Zugriff auf bestimmte Klassen von Devices). Die Daten zur Authentifikation sollten aus dem LDAP gezogen werden. Zur Authorisierung soll eine weitere Datenbank zu diesem Zweck erstellt werden.

CSMA/CD RS485 Bus

Unter Verwendung des CSMA/CD Teils von openHC wird ein RS485-Bus verwendet um Geraeten das eigenstaendige Senden von Datenpaketen zu ermoeglichen. Die Kollisionserkennug und Retries werden komplett in Software auf den Mikrocontrolleren behandelt. Der Bus ist mit momentan 19200bps nur fuer langsame und sporadische Datenuebertragungen gedacht wie Lichtschalter und einfachen Lampen. Die Datenrate kann jedoch vorraussichtlich noch gesteigert werden.

Frameaufbau

Ein Frame auf dem Bus hat folgenden Aufbau:

PositionLaengeBezeichnungWertebereich
01 ByteDatenlaenge1-50
11 Byte - 50 Bytes Daten
1+Datenlaenge2 BytesCRC ueber komplettes Frame

Paketaufbau

Der Bus arbeitet paketbasiert. Im Datenbereich eines Frame wird das Paket gepackt. Jedes Paket muss vom Empfaenger bestaetigt werden ansonsten wird nochmals versucht es zu senden. Sollte dies fehlschlagen wird der Bus als gestoert angenommen.

PositionLaengeBezeichnung
01 ByteQuelladresse
11 ByteZieladresse
21 ByteFlags
31 ByteSequenznummer
41 ByteDatenlaenge
5 Daten

Adressverteilung auf dem lokalen Segment:

MaskeBezeichnung
0xxxxxxUnicast
1xxxxxxMulticast
1111111Broadcast

Flags:

WertBezeichnung
0x01ACK
0x02Error
 
hausbus.txt · Last modified: 2010/11/09 16:03 by schneider