Forum: Haus & Smart Home Auswahl Bussystem


von Aurel /. (aurel)


Lesenswert?

ich bin gerade dabei ein Konzept für eine Servoregelung zu machen, Dabei 
komme ich bei der Auswahl des Bussystems nicht weiter.

Das Projekt:
Aufbau einer Servosteuerung für einen Scheibenwischermotor mit einem 
ATmega8, PID-Reglung, H-Brücke, Poti als Winkelgeber usw.
Davon sollen es später 3 identische geben damit ich eine 3-Achsteuerung 
aufbauen kann.
Es gibt nur einen Master, zurzeit mein PC, der alle 3 Servos ansteuern 
soll. Es könnte aber auch mal eine Standalone Lösung werden mit eigener 
µC Platine ohne PC.

Die zu versendenden Daten sollen Hauptsächlich die Koordinaten für die 
Bewegung sein. Aber auch Abfragen zur Fehlersuche wie derzeitige "ist" 
Position oder PID Parameter. Auch soll es möglich sein, dass sich ein 
Servo im Fehlerfall bemerkbar macht.

Die Distanzen sind wenige Meter (kleiner 10m, Garten <-> Wohnung). Ja 
das soll ein Rasensprenger werden mit dem man z.B. per Joystick die 
Spritzdüse bewegen kann. Ja ich weiß auch, dass es im Baumarkt Geräte 
gibt die die Aufgabe mechanisch lösen für 30€. Aber das macht doch 
keinen Spaß!


Lösung 1 RS232:
Derzeit mit einem Servo, RS232 und PC ist das recht einfach. Das könnte 
ich auch für 3 Erweitern indem Datenpakete verschickt werden, die eine 
Zieladresse beinhalten. Für die Fehlermeldung der Servos könnten die die 
RXD Leitung runter ziehen und der Master fragt alle ab wer das war.

Lösung 2 RS485
ist schön mit dem differentiellen Signal und der sauberen Kommunikation. 
Aber das ist mit der seriellen Schnittstelle und UART im µC nicht mehr 
machbar oder? Da brauche ich weiter Hardware?

Lösung 3 2Draht Bus
ist im µC implementiert aber wie bekomme ich den an den PC? Und das ist 
wohl mehr für kürzere Strecken gedacht.

Lösung 4 CAN
Hat einen gewissen Heimvorteil weil ich da Beruflich mit in Kontakt 
komme. Da würde sich mein Chef bestimmt freuen wenn ich da mehr drüber 
weiß. Aber da benötige ich doch am µC noch einen CAN Kontroller und am 
PC eine CAN Karte oder? Solche Karten habe ich wohl gefunden aber immer 
ohne Preis. Sind die so teuer? Und dann benötige ich doch auch bestimmt 
ein Anwendungsprogramm für den PC? Kann man auf die Karten da dann auch 
mit eigenen Programmen z.B. Visual Basic zugreifen?

Lösung 5 LIN
Sparversion vom CAN würde auch genau meiner Topologie entsprechen 1 
Master mehrere Slaves. Sonst wohl ähnlich CAN.

Was sagt Ihr dazu? Wie würdet Ihr das mit Kenntnissen in Programier- und 
µC Anwendungen mit Hobby Niveau machen?

von A.K. (Gast)


Lesenswert?

Soweit es die Kommunikation zwischen Controllern angeht ist CAN einfach. 
Kann man intern im Controller haben, ist aber oft einfacher und sogar 
billiger extern mit MCP2515.

Der PC wiederum mag CAN nicht so sehr, kommt mit RS485/422 viel besser 
klar, dazu muss bloss das Signal seiner RS232-Schnittstelle auf RS4xx 
umgesetzt werden: MAX232+MAX485 und fertig. Und wenn es sich um einen 
einzigen Master handelt, ist RS485 problemlos einsetzbar.

von A.K. (Gast)


Lesenswert?

PS: Wenn du allerdings annimmst, dass das mal wächst, und der 
Standalone-Controller mit dem PC um den Bus konkurriert bzw. miteinander 
kommuniziert, ist CAN irgendwann sinnvoller.

Ein sinnvoller Weg, dem PC Zugang zu CAN zu verschaffen geht über den 
USB-Interface-Chip FT2232C, an dem ein CAN Controller MCP2515 oder 
SJA1000 hängt.

von W. (Gast)


Lesenswert?

Klare Sache: CAN

Gerade auch, weil Du es beruflich verwenden kannst/willst würde ich das 
als Lernprojekt machen. Außerdem ist's nicht unlösbar schwierig.

Als Anbindung zum PC nimmst Du ebenfalls einen µC - einen, der sowohl 
CAN als auch UART (serielle Schnittstelle) hat. Noch einen MAX232 dran 
und das war's. Zumindest HW-seitig ist der Schnittstellenumsetzer 
fertig.

Als nächstes machst Du Dir Gedanken, was Du übertragen willst, und dann 
schreibst Du eine SW (für den µC) die die Übersetzung von der seriellen 
Schnittstelle auf/von CAN macht. Und schon ist der 
Schnittstellenumsetzer auch SW-seitig fertig.

PC-seitig bedient Deine VB/C#... SW nur noch die serielle Schnittstelle.

viel Erfolg!

von Roland (Gast)


Lesenswert?

Was hat das ganze mit dem Hausbus zu tun?

von Aurel /. (aurel)


Lesenswert?

Mit Hausbus speziell nichts, aber eben allgemein mit Bussystemen. Ich 
denke dafür ist das das beste Forum.

Ja danke für die Beiträge! So wie sich das hier abzeichnet ist wohl CAN 
der Sieger.
Wenn ich die Datenblätter richtig verstanden habe setzt der MCP2515 die 
UART Signale hardware mäßig in CAN um. Das Protokoll muss im 
angeschlossenen Controller umgesetzt werden. Ganz im Gegenteil zum 
SJA1000, hier wird auch das Protokoll mit abgearbeitet. Ist das so 
richtig?
Mit USB am Rechner anzusprechen ist mir etwas mulmig. Ich hab gehört das 
ist nicht ganz ohne, besonders mit XP und ich habe noch nichts 
vergleichbares gemacht.
Ich glaube ich mach das in zwei Schritten. Als erstes bringe ich 
ersteinmal die Servosteuerung alleine per RS232 zum laufen. Wenn ich die 
dann im Griff habe implementiere ich CAN und die PC Steuerung. So habe 
ich nicht so viele Unbekannte gleichzeitig.

von A.K. (Gast)


Lesenswert?

MCP2515: Nix UART. SPI. Hat fast jeder Microcontroller von Haus aus. 
Meist als eigene Funktionseinheit.

SJA1000: Parallelanschluss. Braucht wesentlich mehr Pins und mehr Platz. 
Eigentlich nur sinnvoll, wenn der verwendete Controller schon einen 
adressierbaren 8bit-Datenbus mitbringt.

Den FT2232C spricht man über eine DLL von FTDI an. Kein Hexenwerk. In 
dessen Datasheet ist die Anbindung eines SJA1000 beispielhaft 
aufgeführt.

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.