Forum: Haus & Smart Home CAN-BUS + Audio + Video + Knoten


von Sascha B. (bendlix)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich habe bereits einen Hauscomputer auf PIC18F-Basis entwickelt. Licht 
und Rolläden funktionieren wunderbar. Jedoch kommunizieren die 
Pic-Bausteine via RS232 miteinander und da tauchen manchmal 
Übertragungsfehler auf. Damals habe ich mich nicht an CAN-Bus heran 
getraut und würde dies gerne jetzt ändern.

Ich möchte den gesamten Hauscomputer auf CAN umstellen (neubauen). Dazu 
fehlen mir aber leider noch ein paar Informationen. Anbei habe ich eine 
Grafik, die veranschaulichen soll, wie künftig die Kommunikation laufen 
soll.

Nun zu den vielen Fragen:

1.) Türstation + Hausrechner + Terminals + DCF + Außen-Station ist recht 
einfach. Endwiderstand bei der Türstation und an der Außen-Station.
Aber was mach ich nur mit dem Kabelstrang zu der Garage bzw. zu dem 
nächsten Knoten? Soll ich den Hauptstrang hin und wieder zurück legen, 
somit den/die Knoten auflösen aber dafür ein längeren Bus in kauf 
nehmen?
Oder soll ich mit 3 Can-Pics mir eine Aktiv-Weiche bauen?

2.) Die Türstation soll Audio- und Video(Bild)-daten zu dem 
entsprechenden Terminal senden können bzw. vom Terminal einen 
Audiostream empfangen können. Der Qualitätsanspruch brauch nicht so hoch 
liegen, sollte aber auch kein digitales Gekratze sein.
Reicht die Bandbreite aus, oder soll ich lieber auf einem separaten 
Kabel ein anderes System setzten und wenn welches? Ich müsste dazu aber 
noch mal Drähte zählen gehen. Lieber wäre mir alles über den CANBUS zu 
regeln.

Die Bus-Last zwischen Terminal und Hausrechner ist eher gering. Ab und 
zu mal eine Uhrzeitanfrage zum DCF, Wetterinfos abrufen, oder wenn ein 
User das Terminal bedient wird mal das eine oder andere Byte fließen.

3.) Hat jemand eine Idee/Link wie ich z.B. mit einem PIC18Fxx8 die 
Wandlung Analog-Digital bzw. auch umgekehrt hinbekomme? Gibt es auch 
eine simple Mono-Lösung? Bisher finde ich immer nur AD-DA-Chips für min. 
Stereo, aber soviele Daten brauche ich do garnicht.

4.) Wie sieht es mit einem Videostream aus? PAL, 5-10Bilder/s, 
schwarz-weiß würde auch reichen. Ideenen zur Wandlung nach Digital 
fehlen mir auch. Das Einzige was ich mal gefunden hatte steht hier 
http://mikrocontroller.cco-ev.de/de/webcam.php

5.) Was taugt der CAN-Treiber PCA 82C250 (1Mbit/s)? Kann ich diesen in 
meinem Projekt überhaupt verwenden?

Würde mich freuen wenn jemand mir helfen kann?
Sorry für den langen Text.

Viele Grüße und DANKE im Vorraus
Sascha

von PIC18F4550 (Gast)


Lesenswert?

Hallo erstmal...
wie hast du programmiert in C oder Assembler?
Ich bastel auch mit PIC's der 18 Serie.
Habe den Mikro-Basic Compiler, der unterstützt auch CAN-Bus.
Selber habe ich nur mit den USB-Compiler-Lib's gespielt.
Da die USB-Lib gut funktioniert denke ich, dass auch die CAN-Lib geht.
Nur zu den Video und Audio-Wünschen fällt mir nichts ein, jedenfalls 
nicht mit PIC-Controllern.
Da würde ich dann eher bei dem Gesamtprojekt auf LAN-Vernetzung gehen.
Deine RS232-Geschichten bekommen einen XPort und damit je eine 
IP-Adresse.
Nur dann wird es auch schon teuer. Bei Mikroe gibt es auch einen 
fertigen Baustein für Vernetzung und auch 'ne LIB dazu, aber gesehen 
habe ich noch keine Anwendung deinem Projekt vergleichbar
http://www.mikroe.com
http://www.mikroe.com/en/tools/serialeth/
http://www.mikroe.com/en/tools/can2/

von Sascha B. (bendlix)


Angehängte Dateien:

Lesenswert?

Hallo und danke für Deine schnelle Antwort.

Ich programmiere meine PIC-Projekte ausschließlich in Assembler. Besser 
gesagt unter der MPLAB-IDE.
Ich habe mal ein Fotos von meinem Haus-Projekt, welches ich komplett 
NEUBAUEN will, begefügt. Zu den Gründen später mehr.

blauer Pfeil: Die Module in Höhe des blauen Pfeils sind die 
Eingabe-Module mit jeweils 20 Eingangskanälen. Die Besonderheit hierbei 
ist, dass jeder Taster im Haus mit einer LED ausgestattet werden kann 
und diese auf Wunsch blinkt, pulst, oder einfach aus ist. Die 
Tasterstellung aber trotzdem ermittelt werden kann, und nur 2-Leitungen 
zum Taster erforderlich bleiben. Im Taster befinden sich außer der LED 
und passendem Vorwiderstand keine weiteren Bauteile.

roter Pfeil: Diese 4 Module enthalten jeweils 12 Relais je 220V/8A 
Schaltleistung also insgesamt 48 Ausgänge. Das Programm ist so 
geschrieben, das ich zu jedem Relais eine eigene Aublaufzeit einrichten 
kann oder Dauerhaft schaltet. Auch wenn das Modul initialisert wird, 
kann festgelegt werden, ob das reine Schließerrelais als Öffner oder 
Schließer funktionieren soll.

grüner Pfeil: diese beiden Module sind nur zu Rolladensteuerung gedacht 
und enthalten ebenso je Modul 12 Relais (für 6 Rolläden auf/ab). 
Prinzipiell sind diese Module fast identisch wie die einfachen Relais 
Module (rot pf.) nur, dass hier immer 2 Relais zusammengehören und durch 
eine Logik (XOR und AND-Glied) zwischen Prozessor und Relais verriegelt 
werden, damit nicht versehentlich ein Rolladenmotor in beide Richtungen 
Strom bekommt.

Das Modul mit dem Display (ehemals ein Netzwerkhub) ist der Manager für 
automatische Prozesse, wie z.B.: Warmwasserzirkulationspumpe nach 
Zeitplan laufen lassen, Rollos auf/zu....Damit ich nicht immer die Uhr 
stellen muss befindet sich im Dachgeschoß noch ein weiteres Modul, 
welches sich z.Z. nur mit dem auswerten des DCF-Funk beschäftigt und zum 
Abruf immer bereitstellt.

Leider unterlag das Projekt schwierigen Bedingungen. Zum ersten musste 
ich das Haus komplett selbst bauen. Also Stein auf Stein, Stockwerk für 
Stockwerk, Kabel ziehen und glaubt mir jede verfluchte Steckdose geht 
einzeln in den Keller, mal abgesehen von den vielen Tastern im Haus. 
Übrigens es gibt nur einen einzigen Lichtschalter, dass ist der im 
Technikraum, damit ich auch Licht habe, falls der Computer mal ausfällt, 
was er bis jetzt bis auf kleinere Abstürze (Reset drücken fertig) nie 
getan hat. Dadurch sind einige Planungsfehler entstanden.

a.) Kommunikation aller Module seriell (rs-232) als Ring
prob.: fällt ein Modul aus, ist die Kom. unterbrochen. Wenn also das 
Eingabe-Modul feststellt "Taster gedrückt" schickt es eine Nachricht zum 
Ausgabe-Modul, welche aber durch andere Module hindurch muss. Hab da 
viel Zeit reingehangen mit Prüfsummen und und zu arbeiten...Selbst mit 
Bestätigungsantwort vom Empfänger blieb erfolglos. Die Kom. auf dem Ring 
nahm nur zu und es kam vermehrt zu kollisionen.
b.) Im Eingabemodul habe ich nicht ganz auf die Pegel geachtet. Hätte 
mit einem Schmitttrigger arbeiten müssen, damit nicht unter gewissen 
Umständen fehler auftreten können.
c.) Das größte Übel ist aber die Wartungsunfreundlichkeit !!!!!! Man 
hatte das schon beim Zusammenbau merken müssen, aber ich glaube da war 
ich im Funktionswahn. Was ich damit sagen will, wenn mal ein Relais 
kaputt geht, alle Kabel ab, weil das Hut-Schienengehäuse sich zwar 
öffnen läßt, jedoch ist mit den Kabeln an die Platine so kein 
herankommen.
Wenn ein Eingabemodul fällig ist, dann wirds richtig bunt. Unter diesem 
Gehäuse befinden sich 4 gestapelte Platinen die nicht mit Steckbrücken 
verbunden sind. Das war schon übel die zusammenzulöten, aber 
auseinander.....

Wie Du erkennen kannst, liebe ich es alles selbst zu bauen 
(Unabhängigkeit). Alles ist bekannt und kann auch mal in 10 Jahren wenn 
es einen PIC18F252 vielleicht nicht mehr sollte, alternativ umgestrickt 
werden. Bei gekauften Sachen ist das so ein Problem (siehe Schallplatte 
und CD) mal ganz abgesehen vom Geld, welches ich kaum noch hab und mir 
es irgendwie dünner wie Wasser zu sein scheint. Trotzdem für Deine 
Bemühungen DANKE.

So jetzt hab ich aber erst mal genug erzählt und wünsche mir noch 
wichtige Hinweise und Antworten zu meinem Audio-, Video- bzw. 
CAN-BUS-Vorhaben/Problem.

VG
Sascha

von PIC18F4550 (Gast)


Lesenswert?

Respekt, Stein auf Stein und auch noch mein....
Haste mal den Compiler angeschaut?
Ist bestimmt auch was für dich.
Hab'noch ein Beispiel für dich:
www.Canline.de
hat den Pascal-Compiler von der gleichen Firma genommen um den CAN-Bus 
zu bauen.
Hast du auch Lochraster gebaut?

von Sascha B. (bendlix)


Angehängte Dateien:

Lesenswert?

Danke für Deine Antwort und den Link.

Habe mal ein PDF-Dok beigefügt. Dort erkennt man die 4 Platinen-Layouts 
(altes CAD-Programm Leiterbahnen sind beim Konvertieren leider nicht 
ausgefüllt übertragen worden), die nach Bestückung in das HUT-C Gehäuse 
passen. Bei den anderen Modulen sind es nur 3 Platinen.
Um Deine Frage zu beantworten, NEIN Lochraster-Platinen verwende ich 
meist nur, um kleine Schaltungsauszüge zu testen, bevor ich diese 
komplex aufbaue. Ich arbeite überwiegend (im Projekt hier 
ausschließlich) mit Fotoplatinen....

Die Compiler-Frage stellt sich mir nicht, da ich mit Assembler 
eigentlich ganz gut klar komme und wenn, dann lieber auf C wechseln 
würde. Trotzdem danke.

Also noch mal meine Fragen in Kurzform:

1.) LowCost Audio digitalisierung Schaltungsbeispiele (AD-DA) ala Siedle 
Sprechanlage (digital)
2.) Video digitaliesierung (Low-Quali.) Schaltungsbeispiele (AD)
3.) Was taugt der PCA 82C250 für mein Vorhaben in hinsicht 1.)2.)
...siehe erster Beitrag

VG
Sascha

von MNR (Gast)


Lesenswert?

Statt des PCA82C250 solltest du den neueren und billigeren PCA82C251 
nehmen, und ja, das Teil taugt für dein Vorhaben (nicht von 24V 
Automotive abschrecken lassen).

Zur Frage Video und Audio kann ich dir nicht wirklich weiterhelfen, aber 
du solltest die möglichen Bitraten im Auge behalten. Ich fahre meinen 
CAN Bus mit 125Kbit, damit könnte ich höchstens MP3 in Sprachqulität 
streamen, da die Nettobitrate bei gefühlten 70-80 Kbit liegen dürfte 
(Extended Id!).
Natürlich kannst du auch mit 500KBit fahren, dann darf die Gesamtlänge 
aber nicht mehr so hoch sein (dazu gibts Tabellen), oder du mußt 
Repeater verwenden.

von Sascha B. (bendlix)


Lesenswert?

Hallo MNR,

danke für den Tip bezügl. des CAN-Treibers. Das IC ist sogar noch 
günster in der Anschaffung.

Ich habe mit Winamp und Shoutcast TV nach 64kbit streams geschaut und 
war überrascht als Beispiel habe ich dort ein Video/Audio-Stream 
gefunden der Qualitätiv ausreichend wäre. 320x240 Pixel 15fps bei 89 
kbps.
Für eine Videosprechanlage mit Aufzeichnungsoptions absolut ausreichend.
Wenn also ca 70 KBit machbar wären, dann müsste es funktionieren, da 
auch 5 fps auch zufriedenstellend sind.

Ich habe aber auch schon darüber nachgedacht, den Audio und/oder 
Videostream einfach seriell abzuwickeln, da ja eine genaue Adressierung 
eigentlich nicht zwingend erfolgen muss. Sprich Video-Stream nur zu 
allen Terminals führen und Audio in beide Richtungen.
Wie wäre diese Lösung? Oder soll ich lieber mit Audio-Signal direkt 
Analog bleiben und nur zum Aufzeichnen einen Anrufbeantworter umbauen??

Überigens hat jemand eine Idee(Link), wie ich ISDN-Signale mit einem PIC 
auswerten kann, um z.B. die Rufnummer auf einem Display einblenden 
zulassen.

Kann ich einen Repeater so konstruieren, indem ich zwei PCA82C251 
überkreuzt benutze, oder brauche ich da eine Logik (Buffer) zwischen?
Welche Probleme entstehen beim verwenden von Repeatern und hoher 
Geschwindigkeit 1MBit?? Lässt die Zuverlässigkeit stark nach??

VG
Sascha

von MNR (Gast)


Lesenswert?

Es gibt eigene CAN-Repeater Chips. Sind auch nicht sehr teuer, nur 
schwierig zu beschaffen (gabs mal hier einen Thread zu).

ISDN anzapfen ist nicht so ohne. Einfacher wäre ein externes ISDN Modem 
benutzen oder gleich eine Fritzbox und die belauschen (braucht dann 
allerdings wieder was Webfähiges).

von Sascha B. (bendlix)


Lesenswert?

Wäre also das ganze Projekt über TCP/IP besser, oder wird es dann mit 
den Kabellängen (siehe erster Beitrag Anhang) problematisch?

VG
Sascha

von Willivonbienemaya .. (willivonbienemaya)


Lesenswert?

Wenn ich mir dein erstes Bild ansehe, brauchst du eine CAN Bus Länge von 
87m. Damit sind maximal 500kBaud machbar.
Das sollte für einen Hausbus locker ausreichen.

von MNR (Gast)


Lesenswert?

>Wäre also das ganze Projekt über TCP/IP besser, oder wird es dann mit
>den Kabellängen (siehe erster Beitrag Anhang) problematisch?

Wenn du mit besser "aufwendiger, komplizierter, teurer" meinst, dann ist 
Ethernet (ich vermute, das meinst du mit TCP/IP) besser.

>Ich habe mit Winamp und Shoutcast TV nach 64kbit streams geschaut und
>war überrascht als Beispiel habe ich dort ein Video/Audio-Stream
>gefunden der Qualitätiv ausreichend wäre. 320x240 Pixel 15fps bei 89
>kbps.

Was die Datenraten in deinem Beispiel angeht: Wer komprimiert denn den 
Datenstrom überhaupt? Hast du mal versucht, so einen Algorithmus in 
einen von dir verwendeten PIC zu implementieren? Wie willst du diesen 
Datenstrom dann wieder dekodieren und womit anzeigen?
Mir scheint die Benutzung von fertigen Komponenten da sinnvoller 
(WebCam, kleiner PC o.ä.). Den CAN-Bus kannst du dann verwenden, wofür 
er konzipiert wurde: zur Steuerung.

von stoote (Gast)


Lesenswert?

Hallo Sascha

Wir (momentan vier Leute) fangen gerade das Abschlußprojekt unserer 
Techniker/Informatiker-Weiterbildung an.
Da ich nächstes Jahr mit meinem Hausbau anfangen werden/muss, haben wir 
als Projekt einen Hausbus angefangen.

Die Hardware besteht aus einem AT89C51CC03 mit CAN-Controller, der in C 
programmiert wird. Bis jetzt existiert schon ein Busankoppler und ein 
Anzeigemodul.
Dazu soll (da es eine Informatikausbildung ist) ein PC-Programm den 
CAN-Bus belauschen und die Daten in eine Datenbank schreiben.
Zusätzlich ist ein Webinterface geplant, das als Modul in einem CMS 
laufen soll.

Ich weis nicht, ob ich dir mit vielen Hardwaretips helfen kann, 
allerdings mit Busprotokoll usw. könnten wir uns schon gegenseitig 
helfen.

von Sascha B. (bendlix)


Lesenswert?

> Wir (momentan vier Leute) fangen gerade das Abschlußprojekt unserer
> Techniker/Informatiker-Weiterbildung an.
> Da ich nächstes Jahr mit meinem Hausbau anfangen werden/muss, haben wir
> als Projekt einen Hausbus angefangen.

Hallo Stoote,

Dazu wünsche ich Dir viel Erfolg und bleib bezüglich des Hausbaus sehr 
wachsam, wenn es um Firmen geht, die daran beteiligt sind. Es sieht zur 
Zeit auf diesem Segment eher dunkel aus. Vertrauen ist gut, Kontrolle 
aber besser. Wenn man nicht selbst baut, so wie ich, dann unbedingt 
einen UNABHÄNGIGEN BAUSACHVERSTÄNDIGEN von Anfang an mit einplanen! Das 
ist gut angelegtes Geld. Niemals im Vorraus Leistungen bezahlen.....

> Ich weis nicht, ob ich dir mit vielen Hardwaretips helfen kann,
> allerdings mit Busprotokoll usw. könnten wir uns schon gegenseitig
> helfen.

Ich habe mich auf die PICs eingeschossen (Programmer,Sprache,...). Da 
möchte ich lieber, wenn es möglich bleibt, mit diesen Chips weiter 
arbeiten.
Trotzdem aber Danke für Deine Antwort.

VG
Sascha

von Sascha B. (bendlix)


Lesenswert?

Hallo MNR,

> Wenn du mit besser "aufwendiger, komplizierter, teurer" meinst, dann ist
> Ethernet (ich vermute, das meinst du mit TCP/IP) besser.

Okay da gebe ich Dir recht, wobei lediglich die Terminals und das 
Haustürmodul mit Ethernet (TCP/IP Protokoll) ausgestattet sein müssten, 
jedoch würde auch die Anbindung an einen oder mehrere PCs leichter 
fallen.
mmmhhh, echt schwer.

> Was die Datenraten in deinem Beispiel angeht: Wer komprimiert denn den
> Datenstrom überhaupt? Hast du mal versucht, so einen Algorithmus in
> einen von dir verwendeten PIC zu implementieren? Wie willst du diesen
> Datenstrom dann wieder dekodieren und womit anzeigen?
> Mir scheint die Benutzung von fertigen Komponenten da sinnvoller
> (WebCam, kleiner PC o.ä.). Den CAN-Bus kannst du dann verwenden, wofür
> er konzipiert wurde: zur Steuerung.

Mit der Kompession hatte ich eigentlich an einen MP3-Chip VS1002d 
(http://www.vlsi.fi/datasheets/vs1002.pdf). Dieser kann Audio de- und 
encoden. Vorteil mit wenig mitteln, könnte ich über die 
SPI-Schnittstelle die Steuerung und Rekording laufen lassen und die 
Echtzeit-Kommunikation über die Serielle-Schnittstelle.
Was die Kamera betrifft, habe ich ja schon erwähnt und denke nach wie 
vor, dass Simons Projekt mir weiter helfen wird. 
(http://avr.auctionant.de/avr-ip-webcam/).

Zusammenfassend.
1.) Hausbus auf CAN-Basis mit Ethernetschnittstelle(Webserver) zur 
Steuerung und Überwachung
2.) Audio-Kom. Steuerung über CAN-Bus. Die Audiodaten seriell (ala 
RS232)
3.) Kameramodul Steuerung über CAN-Bus. und Datenstrom ebenso seriell

Wäre das so machbar? Oder seht ihr da irgendwelche Schwächen die bedacht 
werden sollten?

VG
Sascha

von MNR (Gast)


Lesenswert?

MCA25 einzubinden steht bei mir auch noch auf dem Programm. Dann aber 
seriell an einen Webserver (Foxboard oder NGW100). Die ~400KBit/s 
sollten über Treiber auch über 10m anzubinden sein. Allerdings glaube 
ich nicht, dass damit mehr als ein Bild/s hinzubekommen ist, eher 
weniger.

VS1002 kannst du auch per uC über CAN laufen lassen, den Datenstrom 
müßtest du wahrscheinlich nur puffern.

Insofern sollte das so machbar sein, wie du beschrieben hast.

von Sascha Fiebiger (Gast)


Lesenswert?

Hallo stoote,

ich habe meine Technikerausbildung bereits beendet. Mein 
Abschlussprojekt war ein CAN-BUS gesteuertes Kassensystem auf Basis 
eines AT89C51CC01. Wenn Du fragen zur Hardware hast kann ich Dir 
vielleicht weiterhelfen.

Gruss

Sascha

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.