Home

News

Schnelleinstieg

Hintergrund

Doku

Bilder

Download

Kontakt

Schnelleinstieg

CAN@home ist ein Konzept zur Anbindung der in der Haus-Automation anfallenden Hardware (Dimmer, Lampen, Rolläden, Steckdosen, Thermometer, Anzeigen, Taster, Schalter) an ein Bussystem. Das hier verwendete CAN-Bussystem läßt sich bequem per PC bedienen, konfigurieren und überwachen. Für den Betrieb ist ein laufender PC allerdings nicht erforderlich (alle Knoten gleichberechtigt, kein Master/Slave-Prinzip). Die Komponenten (CAN-Knoten) sind mittels verdrillter Zweidrahtleitung miteinander verbunden. Sie stellen die Verbindung der zu steuernden Hardware und dem CAN-Bus her. Die maximale Ausdehnung des CAN-Busses beträgt ca. 1km. Alle Buskoppler sind identisch aufgebaut. Die CAN-Knoten (=Buskoppler + Applikationshardware) unterscheiden sich lediglich in ihrer Software und der angebundenen Hardware (Applikationshardware). Ein Softwaregrundgerüst stellt die grundlegenden Funktionen für die Buskommunikation bereit.

 

Hardware

Der Buskoppler besteht aus einem Leitungstreiber (Philipps PCA82C251), der die TTL-Pegel des eingesetzten CAN-Controllers (Siemens/Infineon SAE81C90) an die CAN-spezifischen Signalpegel anpaßt. Der CAN-Controller wird von einem Atmel AVR AT90S8515 Mikrocontroller angesteuert. Drumrum noch die notwendige "glue logic", fertig. (Bild, Bild2, Bild SMD, Schema, Schaltplan, Layout). Eine neue Hardware (Hardware v2) benutzt den ATmega163. (Link)

Applikationshardware (Interfacehardware zum direkten Anschluß an den Buskoppler):

Weiterführende und aktualisierte Informationen siehe Doku Kapitel 2. Hier werden auch neue Hardwareanbindungen vorgestellt.



CAN-Bus und verwendetes Adressierungsmodell

Grundlegendes zum CAN-Bus kann im Abschnitt Doku (Kapitel 1.2) nachgelesen werden. Im Anschluß soll nur ein kurzer Einblick in die Adressierung und Verteilung der CAN-IDs gegeben werden.
Jeder CAN-Knoten bekommt eine eindeutige CAN-ID (11Bit) zugewiesen. So kann der Knoten direkt adressiert werden, und kann Auskunft über seinen Zustand/Parameter geben oder konfiguriert werden. Die CAN-IDs werden bei CAN@home verwendet wie Adressen und werden im folgenden auch Adressen genannt. Wenn also von einer Adresse "auf" dem CAN-Bus die Rede ist, so ist stets die CAN-ID gemeint. Genauso wird jeder Funktionseinheit (Relais, Dimmer, Rolladen, usw.) eine eindeutige (CAN-)ID zugewiesen. Zur besseren Übersicht besteht eine Beziehung zwischen Knotennummer, Knotenadresse und Adresse der angeschlossenen Applikationshardware (Funktionseinheit). Diese Konvention ist nicht bindend. Eine Relaiskarte mit 4 Relais erhält so z.B. für jedes Relais eine eigene Adresse. Durch dieses Vergabekonzept ist die Trennung von Funktion (Applikation) und Verwaltung (Knotensoftware, Rahmensoftware) sichergestellt. (Ausführlichere Informationen siehe Doku Kapitel 3)


Mikrocontroller-Software / Firmware

Ein Knotensoftwaregrundgerüst (Rahmensoftware) bildet den Rumpf jedes CAN-Knotens (codiert in C/AVRGCC). Es ist universell einsetzbar und für jeden Knotentyp identisch (egal ob DimmerKnoten oder RelaisKnoten oder ...). Es beeinhaltet die grundlegende Buskommunikation und nimmt die eintreffenden Pakete für die Applikationshardware/software entgegen. Durch die Rahmensoftware können Erweiterungen oder neue Projekte schnell umgesetzt werden. Das Hauptaugenmerk kann so auf die Neuerungen gelegt werden.

Die Software im Buskoppler versteht u.a. die folgenden Befehle:

  • FernEEProm lesen, FernEEProm schreiben, FernCANRegister lesen, FernCANRegister schreiben, (FernAtmelRegister lesen, FernAtmelRegister schreiben)

Damit lassen sich die Interna des Buskopplers von jedem anderen Knoten (bevorzugt vom PC zur Konfiguration via RS232-Knoten) steuern. Darüberhinaus kennt die RS232-Software noch einige Befehle, die die Kommunikation mit dem angebundenen PC regelt.


PC-Software

Für die Konfiguration der Taster/Relais-Zuordnung der IO-Applikation (per Drag&Drop) dient die "alte" VisualBasic-Software (Screenshot). Hier können die Interna (Speicherinhalte und Registerinhalte) dargestellt werden.
Eine kleine Routine sucht nach angeschlossenen Busknoten (Screenshot) und das Protokollieren und Filtern der Busdaten übernimmt dieser Programmteil (Screenshot). Die VB-Software wird aufgrund ihrer schlechten Wartbarkeit (miese Programmierung, nicht modular) nicht mehr gepflegt, erfüllt aber ihre Dienste noch zufriedenstellend.

Die neue, in C++ programmierte (Borland C++) Software wurde modularer und besser strukturiert aufgebaut. So stellt eine kleine Bibliothek die Grundfunktionen der CAN-Knoten bereit, während die GUI (Screenshot der Bediensoftware, hier speziell auf meine Bedürfnisse ausgerichtet) davon abgetrennt programmiert ist. Der Funktionsumfang entspricht inzwischen dem der VB-Software.



Dokumentation

Die Dokumentation erklärt die CAN@home-spezifischen Grundlagen und zeigt den aktuellen Stand des Projekts. Die Doku ist sozusagen das Zentrum von CAN@home. Hier fließen die Hauptneuerungen ein; wichtige Punkte werden zusätzlich in der Rubrik "News" bekanntgegeben. Bei Problemen oder Fragen: email.