Hallo Ich bin in uC Programmierun noch ein Anfänger. Ich beschäfftige mich momentan mit CAN-Bus Systemen. Bisher hab ich immer mit Diagnose Tools bzw. gekaufter Harrd und Software gearbeitet. Nun muß ich allerdings ein Standalone Gateway Bauen. Aufgabe des GW: - 500k Baud - Nahrichten geändert durchlassen - andere Nachrichten ungeändert durchlassen - auf bestimmte nachrichten reagieren ( z.B. wenn 0f 05 18 kommt 0e 05 18 senden) gesndet werden ca. 15 Nachrichten alle im 10ms takt Und das aber in beide Richtungen. Wobei in einer richtung erstmal nur der Nachrichten durchgang gewährt sein muß? Hier gibt es schon ein paar wenige Artikel dazu, jedoch werden da teilweise so viele Sachen empfohlen, das ich auch nicht schlauer werde. Wichtig für mich ist es auch, das gute Samples bzw. Tutorials vorhanden sind. Mein Aktueller stand währen 2 x MCP2515 und evtl. nen AVR. Aber es gibt ja mittlerweile auch schon embedded varianten. Danke
Was ist für dich eine embedded-Variante? AT90CANxx? Die haben aber nur ein CAN-Interface (?).Es müsste also ein weiteres per SJA100 oder MCP2515 hinzugefügt werden. Die HCS12 von Freescale oder einige ARM7-Controller haben mehrere CAN-Interfaces, wären also auch eine Überlegung wert. Gast
Ja, embedded meinte ich damit, das ich nicht 3-4 chips hab, sondern die schon in einen integriert sind. Meine Frage war, ob mir jemand helfen kann, wie ich das aufbauen sollte. Und welche Chips sich da empfehlen (gerade für mich als Anfänger). Vielen Dnak schonmal
Für eine Hilfe sind Deine Informationen etwas dürftig..... Es wird sicher mehr als ein Chip und der Teufel steckt in der Programmierung - welche Sprache hättest Du z. B. gerne ? Gruss Otto
ein günstigen µC mit 2 CAN nodes gibts in der xc800 reihe von infineon. ist allerding alte 8051 Architektur mit "nur" ca 5 MIPS -der CAN-Kontroller kann auf das selbstständige Routen von Paketen zwischen zwei Bussen konfiguriert werden, solange an den Nachrichten z.B. nur die ID geändert werden muss. -um inteligente Aktionen, wenn paket A auf bus 1 sende B auf bus 2 muss sich natürlich der 8051 kümmern. -Der CAN-Teil des µC ist leider recht komplex, gerade für einen Anfänger, und das Datenblatt ist infineontypisch: kein Beispielcode, kein roter Faden: Es werden halt alle Bits aufgezählt, die Story dahinter erschließt sich gerade dem Anfänger erst nach Wochen... -es gibt DAVE von Infineon als Codegenerator, der kann einen zumindest beim einstieg helfen. -Compiler gibts den z.B. kostenlosen sdcc, oder natürlich von keil, altium etc.
Hi, Chips gibt es viele die interne CANs haben. Der bereits erwähnte S12 hat bis zu 5 interne CAN Kanäle. Schau Dir mal der T-Board bei Elektronikladen.de an. Dazu kommen halt die Transceiver für die benötigten Kanäle (auf dem S12 Board ist nur einer drauf). Und vom Preis geht das Ding. Problem ist eher der Debugger und ein Compiler (wobei es einen GCC dafür gibt). Die Anforderungen an die Software hören sich zunächst nicht so kritisch an. Gruß Patrick
Bei mir laeuft eine Gateway zwischen meinem zentralen CAN Hausbus - galvanisch gekoppelte Treiber und einem Stichbus in den Garten, der Opto-gekoppelt ist, beide mit 100kBps. Das Gateway selber besteht aus einem AT90CAN128 (kleiner ginge auch leicht) und einem MCP2515. Der AT90CAN spielt die Rolle des Knotens am zentralen Bus, der gartenseitige Partner ist ein MCP2515, die beiden sind mit SPI gekoppelt (alle anderen Knoten am Gartenbus sind AT90CANs. Die Software, sowohl fuer den AT90CAN als auch fuer den MCP2515 beruht auf hier im Forum beschriebenen Bibliotheken, die SPI Kopplung ist trivial. Der CAN Teil der Software entspricht mehr oder minder dem was hier im Forum liegt (der AT90CAN Teil genau, der MCP2515 Teil ist weiter entwickelt), die uebrige Software allerdings so spezifisch fuer meine Anwendung dass Kopieren wohl muehsamer ist und wenig Sinn macht. Die Beschreibung meiner Bibiliothek fuer den AT90CAN Teil liegt hier: http://www.mikrocontroller.net/articles/CAN_Bibiliothek_f%C3%BCr_AT90CAN_Prozessoren. Am Ende in den Referenzen gibt es auch den Verweis auf die entsprechende MCP2515 Loesung. Wenn Du willst, kann ich aber mein MCP2515 Modul hier ins Forum legen, ich habe doch einiges daran (meiner Meinung nach) verbessert und freundlicher fuer den Einsatz in solch einem Gateway gemacht (es ist aber ein "quick fix" und nicht, wie die AT90CAN Bibliothek, in Hinblick auf Verwendung durch andere bereinigt).
Ich habe sowas ähnliches Mal mit Mega32 und 2xMPC2515. Problemlos, auch bei hohem traffic. Beide an der Hardware-SPI, 2 CS-Leitungen. Takt 16Mhz, SPI-Clock 8MHz, keine Zeitprobleme.
Die wichtigste Frage, um den Aufwand für die Implementierung abschätzen zu können und auch vernünftige Tips zu geben ist eigentlich, ob es reicht das Gateway starr zu programmieren oder ob die ganze Geschichte flexibel und erweiterbar sein soll. Sprich: reicht eine gefrickelte Lösung ohne Rücksicht auf Reserven und Erweiterbarkeit oder soll ein frei konfigurierbares Gateway mit allem pi-pa-po bei rauskommen. Wer ist der Kunde? Du selbst, deine Firma oder soll das Ganze verkauft werden? Soll das Gateway auf Signalebene arbeiten oder reicht es auf die Rohdaten zuzugreifen? Was für ist deine Ausgangsbasis, hast Du z.B. CanDB Dateine für beide Busse? Wie viel darf das Ganze Kosten, was soll bei rauskommen... Reicht ein Eval-Board oder wird ein eigenes Layout gemacht? Als ersten Tipp würde ich dir die Freescale Prozessoren ans Herz legen, für deine Zwecke reicht ein S12X. Hat 5 CAN Module onboard und verfügt sogar über einen zweiten Prozessorkern, der gerne für Gateway Aufgaben verwendet wird (ist für Anfänger aber vielleicht zu krass). Für den S12 gibt es hier im Forum auch eine CAN library, schau mal in der Codesammlung nach...
Hall, und herzlichen Dank für die Info. Ich beschäfftige mich in einer Studienarbeit damit. In der Fa. in der ich das mache soll das später dann auch eingesetzt und evtl verändert werden. - Erweiterbar währe gut, aber vorab nicht notwendig. - Layout wird selber gemacht, da es später zum Gebrauch in eine Box soll. AUch die Anschlüsse werden keine CAN-Typischen Sub-d Buchsen sein. shon alleine deswegen wird etwas selber gebaut werden. - Ein Testboard würde aber für meine entwicklung auch erstmal genügen, die Umsetung für den späteren gebrauch ist dann ja nur ein kleinerer schritt. - Programmierung über C währe gut. - Kann auch eine Mark mehr kosten. Bin halt kein Elktroniker, sondern Physiktechniker, daher muß ich mich noch bissl mehr einarbeiten. Evtl. kann mir jemand auch ein entsprechendes Testboard empfehlen. danke
Ziemlich genau das, was im ersten Beitrag beschreiben wurde, schon mal gemacht als Prototyp (keine Ahnung was dann weiter daraus geworden ist). Hardware: http://www.olimex.com/dev/lpc-p2129.html (lustigerweise auch beim im vorherigen Beitrag genannten Vertrieb im Programm - aber nicht auf der verlinkten Seite gelistet). Software war gebastelt um den CAN-Treiber von (seinerzeit noch) Philips: http://www.standardics.nxp.com/support/documents/ . Die Errata für die "höheren" CAN-Funktionen beim LPC2129 haben dabei nicht gestört, es wurde ohnehin jedes Paket empfangen (keine Filter), ausgewertet, evtl. verändert und an den jeweils anderen Kanal weitergeleitet. Informationen zur Programmierung von LPC2k in C mit diversen freien und kommerziellen Tools findet man im Netz. Gibt ein paar aktuellere Controller mit Kernen von ARM und zwei oder mehr internen CAN-Kanälen, auch von anderen Herstellern.
Ich kann Dir für dein Vorhaben wärmstens dieses Gerät hier empfehlen: http://www.eberspaecher.com/servlet/PB/menu/1053219_l1/index.html Wird optional mit kompletter Entwicklungsumgebung (ANSI C) und vielen Beispielen geliefert. Noch ein Tip: Wenn du dich für das Gerät entscheiden solltest, frag auch mal im Support bei denen nach. Vielleicht haben die ja noch ein fertiges CAN<->CAN Beispiel in der Schublade. Oder, wenns etwas größer und schneller sein soll diese feine Gerät hier: http://www.eberspaecher.com/servlet/PB/menu/1053222_l1/index.html Das wäre allerdings mit Kanonen auf Spatzen geschossen ;-) Habe mit beiden Geräten schon gearbeitet und war sehr zufrieden.
Hi! Habe meine ersten CAN Schritte auf Infineon MCU's und Transceivern gemacht und hat damals super geklappt. Im 8Bit Bereich haben die Controller mit 2 Nodes und bis zu 32 Message-Objects, bei 16Bit bis zu 3Nodes und 64 Objects und man findet haufenweise Low-Level Driver und CAN Routinen im Netz. Meines wissens haben die 16Bitter sogar einen eingebauten CAN Gateway Controller welcher konfigurierbar ist. Schau mal auf die Infineon Seite Microcontroller Seite, haben tonnenweise AP-Notes und Bsp.........ist auch kein Wunder, CAN kommt aus dem Autobereich und da sind die weltweit führend bzw. haben entsprechend progessionelle Peripherals in ihren MC's. Grüße, AS
Hallo peterguy Die HCS12 klingen ja ganz gut. haben auch 5 Can^. Jedoch nur einen der Highspeed fähig ist. Da ich mind 500kBaud brauche und das auf beiden Seiten. Ansonsten ist das LPC-P2129 ganz interessant. zu dem eberspächer Gerät.... klingt ja auch gut soweit. Aber für mich ist es schon interessanter, wenn ich eine Platine habe, anstatt so eine fertige Box. Denn im endeffekt muß das ding nachher ja ehh in ein eigenes gehäuse. Hat denn sonst noch jemand ein paar Tipps
@Patrick: Also der Freescale Controller S12XEP100, den ich hier einsetzte, hat 5 Can Module, die meines Wissens nach auch alle Highspeed-fähig sind. Laut Datenblatt sind bis zu 1MBaud möglich. Da Du in jedem Fall ein eigenes Gehäuse bauen möchtest, dann könntest Du auch das Eval-Board mit 2 CANs von Eberspächer nehmen: http://www.eberspaecher.com/servlet/PB/menu/1053203_l1/index.html Allerdings ist das primär für FlexRay ausgelegt und es wird wahrscheinlich günstigere Alternativen geben. Ich habe z.B. das Eval Board hier von Freescale (mit oben genannter CPU), kostet unter 100,-€: http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=DEMO9S12XEP100-ND Wenn Du jetzt noch auf Lochraster einen zweiten Transceiver lötest, hast Du deinen zweiten CAN Kanal. Wäre meines Erachtens die günstigste Methode.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.