- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 9 von 9

Thema: CAN-Bus

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9

    CAN-Bus

    Hallo Forum,

    ich möchte euch mal das zeigen woran ich im Moment und in naher Zukunft noch arbeiten möchte.
    Und zwar handelt es sich um einen CAN-Bus mit einem Mega32, einem MCP2515 CAN-Controller und einem MCP2551 CAN Transreciever.
    Das Internet gab leider nicht all zu viele Informationen her und dementsprechend ist sehr viel davon selbst erarbeitet (nochmals danke an den Verfasser dieses C-Tutorials http://www.kreatives-chaos.com/artik...cp2515#receive).
    Die erste Idee zu dem Projekt kam mir beim lesen eines Buchs über den CAN-Bus vom Elektorverlag.
    Da ich mich etwas mit dem Bus beschäftigen wollte, habe ich dazu eine kleine Platine entworfen.
    Leider hat die Version 0 meiner Platine zwei kleine Fehler (Testpin des FT232 ist nicht mit GND verbunden und deswegen ist es Glück ob der funktioniert. Aber das Problem lässt sich mit einer kleinen Lötbrücke lösen und die Rx und Tx LEDs sind falsch angeschlossen.
    Den Schaltplan des CAN-Knotens habe ich mal als Anhang angehängt.
    Der Bus sieht im Moment so aus, dass ich einen fertig bestückten CAN-Knoten habe und ein RN-Control + Steckbrettaufbau.
    RN-Control + MCP2515 und MCP2551:
    Bild hier  

    CAN-Knoten (selbst entworfen und bestückt):
    Bild hier  

    Das RN-Control sendet im Sekundentakt eine sich ständig erhöhende Zahl und der CAN-Knoten empfängt diese und gibt die auf einem PC Terminal aus:
    Sender:
    Bild hier  

    Empfänger:
    Bild hier  

    Das ganze läuft komplett Interruptgesteuert ab. Somit wird der Controller nicht zu stark ausgelastet. Als Spannungsversorgung für die CAN-Knoten habe ich solch ein Kabel:
    Bild hier  

    Dabei handelt es sich um ein Netzteil, welches ich bei mir aus der Firma bekommen habe, weil es sonst im Müll landet würde
    Und um die Knoten miteinander zu verbinden, habe ich mir dieses Kabel hier gebaut:
    Bild hier  

    Bild hier  

    Über das Kabel wird die 12V Spannungsversorgung der einzelnen Knoten gewährleistet und es wird das CANH und CANL Signal übertragen.
    Durch die 12V Spannungsversorgung ist es möglich, dass nur ein Knoten am Stromnetz hängt und die anderen Knoten werden dann über die CAN-Kabel versorgt. Auf den Platinen befindet sich ein 7805 kompatibler Schaltregler, der bis zu 1,5A Strom bereitstellen kann.

    Die nächsten Schritte werden dann sein, dass ich eine PC-Software dafür schreiben wollte (mit Visual Basic oder so) womit die Knoten ausgelesen werden können (z.B. Sensorwerte anderer Knoten).
    Außerdem wollte ich gucken ob ich die Anbindung eines MCP2515 an mein Raspberry Pi hin bekomme. Dann würde das Pi den Job des "CAN Master" übernehmen. An die Knoten selber wollte ich verschiedene Sensoren anschließen und damit was aufbauen.
    Zwei Sensoren habe ich hier schon rumliegen (einmal Luftdruck und Temperatur und einmal Feuchtigkeit). Den Feuchtigkeitssensor kann ich aber nicht ohne weiteres nehmen, da dieser eine von der Feuchtigkeit abhängige Frequenz angibt und ich bei meinem CAN-Knoten keine Interrupts rausgeführt habe.....
    Mal schauen wie sich das Problem lösen lässt. Vielleicht steige ich auch auf eine I²C Variante um.
    Vielleicht wandel ich die Frequenz auch in eine analoge Spannung um und messe diese einfach.
    Wie dem auch sei. Ich werde schauen, dass ich diesen Thread hier nach und nach aktualisiere sobald es was neues gibt. Dies soll für die Leute sein, die selber mal mit dem Controller rumspielen möchten. Bei meiner Recherche habe ich gemerkt, dass es nicht all zu viel über CAN und Bascom im Internet gibt. Deswegen möchte ich hier gerne etwas für die Leute schaffen womit ihnen der Einstieg erleichtert wird.
    Ich stehe auch gerne jedem zur Seite, der sich selber mit dem Controller beschäftigt und dabei Hilfe braucht

    Für weitere Infos usw. könnt ihr auch auf meine Page schauen:

    http://kampis-elektroecke.de/?page_id=453
    Angehängte Dateien Angehängte Dateien
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    So ein kleines Update.
    Nachdem meine ersten Gehversuche am Wochenende erfolgreich waren und ich händlich den Rx-Buffer auslesen könnte, arbeite ich nun an dem Code um die komplette CAN-Nachricht zu empfangen und auszuwerten.
    Sobald dies klappt werde ich es hier posten
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.08.2008
    Ort
    Hallein
    Alter
    33
    Beiträge
    802
    Mit welchem CAN-Protokoll arbeitest du denn?
    Kultuverein Metal Resurrection, für mehr Bands und Konzerte in Österreich (:

  4. #4
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Was meinst du mit Protokoll ?
    Soweit ich weiß ist der Aufbau einer CAN-Nachricht festgelegt. Ich mache es erstmal recht einfach, indem ich einen 11Bit Identifier habe +1Byte als Datenpaket.
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.08.2008
    Ort
    Hallein
    Alter
    33
    Beiträge
    802
    Nein, CAN als sich selbst definiert nur die Topologie und die den Aufbau der Messages. Das wären Layer 1 und 2 im OSI/ISO-Model. CAN-Geräte verwenden dann ein höheres Protokoll zur Kommunikation, z.B. CANopen oder DeviceNet
    Kultuverein Metal Resurrection, für mehr Bands und Konzerte in Österreich (:

  6. #6
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Ahh ok.
    Naja so weit bin ich noch nicht
    Ich will erstmal eine vernünftige Kommunikation mit dem MCP2515 hinbekommen, sprich Nachricht + festgelegten Identifier versenden und richtig empfangen. Dabei Identifier berücksichtigen und dann die Daten richtig zusammensetzen.
    Wenn das alles klappt wie ich es mir wünsche kommt ein Protokoll da rein
    Ich stehe ja gerade noch am Anfang von dem ganzen und muss mich da erstmal vernünftig reindenken
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen