Forum: Mikrocontroller und Digitale Elektronik CAN zu CAN Router/Gateway


von Schorschi (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
für eine Anwendung im Fahrzeug suche ich nach Anregungen und weiteren 
Informationen und vielleicht gibt es auch was fertiges bezahlbares.

Was soll die Schaltung ausführen:
Ich möchte ein CAN zu CAN Router zwischen dem CAN-Bus und dem 
Radionavigationgerät plazieren. Es soll die Datenframes bidirektional 
durchlassen. Wenn man den Datenverkehr einschränken muß (Zeit - Timing 
Verzug ???!!!), was in welche Richtung, kann ich einige Identifer, fast 
alle benehnen. Einen kurzen Mitschnitt des Datenverkehrs hänge ich zur 
Ansicht an.
Im zeiten Schritt soll die Schaltung 2 Identifer/Datenframes (261 und 
263) die vom Radionavigationgerät in den Bus bzw. an das Kombiinstrument 
gesendet werden herausfiltern. Die Identifer sorgen für die Darstellung 
von 2 x 8 Zeichen im oberen Bereich eines Displays. Im dritten Schritt 
würde ich gerne die 2 Identifer mit eigenen Datenframes beschreiben.

Der Can ist der Infotainment CAN und hat 100 Khz. Es werden soweit ich 
das bis heute herausfinden konnte 11 Bit Identifer verwendet. Die Länge 
der Datenframes unterscheidet sich ebenfalls.

Da ich bis heute überwiegend mit Bascom und AVRs gearbeitet habe ist der 
schwerliche Aufstieg in C wohl nicht zu umgehen. In anderen Beiträgen 
wurde schonmal was von MCs mit 2 Can Interfaces geschrieben und das es 
mit Bordmitteln und ein wenig Software ganz einfach sein soll aber wohl 
nicht für einen Auf/Umsteiger.

Wenn die Chance besteht das auch mit Bascom und 2 x At90CAN128 die per 
RS232 Informationen austauschen zu erledigen wäre das toll - Aber das 
kann hier sicher jemand mit Erfahrung sagen.

Wenn für eine detailierte Aussage noch weitere Daten oder Infos benötigt 
werden lasst es mich wissen, ich werde versuchen dies dann herbei 
zuschaffen.

Gruß
Schorschi

von Lehrmann M. (ubimbo)


Lesenswert?

Schorschi schrieb:
> Ich möchte ein CAN zu CAN Router zwischen dem CAN-Bus und dem
> Radionavigationgerät plazieren.

Könntest du uns bitte erklären was ein CAN Router sein soll ?

Bei allem nötigen Respekt solltest du dich vielleicht eher noch ein 
bisschen mit mit dem CAN-Bus beschäftigen. Eine Defintion eines Routers:
1
Router sind Netzwerkgeräte, die mehrere Netze – je nach Sichtweise – koppeln oder trennen. Dabei analysiert der Router die ankommenden Datenpakete nach ihrer Zieladresse und blockt diese oder leitet sie weiter. Geroutete, d.h. weitergeleitete, Pakete gelangen so entweder in ein direkt am Router angeschlossenes Zielnetz (auch Ziel-Subnetz) oder werden zu einem anderen im Netz erreichbaren Router weitergereicht.
In einem CAN Bus System gibt es keinen Router! Ein Auszug aus der 
Definition eines Bus-Systems:
1
Ein Bus ist ein System zur Datenübertragung  zwischen mehreren Teilnehmern über einen gemeinsamen Übertragungsweg [...]
Irgendwie habe ich das Gefühl, dass du den CAN-Bus noch nicht richtig 
verstanden hast - bzw. den Sinn eines Bussystemes.

Schorschi schrieb:
> Wenn die Chance besteht das auch mit Bascom und 2 x At90CAN128 die per
> RS232 Informationen austauschen zu erledigen wäre das toll - Aber das
> kann hier sicher jemand mit Erfahrung sagen.

Also wenn du meinst, dass die beiden µCs sich per serieller 
Schnittstelle austauschen sollen dann ist das möglich. Bei 
Microcontrollern heißt das UART-Schnittstelle. Das ist das was du als 
RS232 kennst (allerdings sind bei RS232 andere Pegel verwendet). In 
Basecom ist das alles genausowenig ein Problem wie in Pascal, C oder 
Assembler.

Gruß

von pcb (Gast)


Lesenswert?

@Michael
kannst du denn nicht lesen? Er hat doch nicht nur geschrieben, ich will 
einen CAN Router haben. Für dich übersetzt und zusammengefasst: "Ich 
will ETWAS haben, was Folgendes tut.." und dieses hat er ziehmlich gut 
beschrieben. Daraus kann man, denke ich, schon schließen, dass er sich 
mit CAN auseinander gesetzt hat. Wenn die Leute CAN lesen, dann ist in 
diesen Foren hier deine Antwort schon Standard:
".. du dich vielleicht eher noch ein
bisschen mit mit dem CAN-Bus beschäftigen..."

@Schorschi
1. Du mit deinem Vorhaben seid die Perfekte Antiwerbung für Bascom. Es 
werden die größten Nachteile Bascom zu verwenden sichtbar.
2. Wenn du bei Bascom bleiben möchtest, dann würde ich dir eine 
Schaltung mit einem AVR und 2 externen CAN µC (angeschloßen wie SPI) 
raten so was wie das hier, aber mit 2 x MCP2515:
http://www.kreatives-chaos.com/artikel/can-testboard-40
oder das hier:
pcbhttp://elmicro.com/de/candip.html

3. Eine Alternative wäre gleich einen µC mit 2 CAN Schnittstellen zu 
nehmen.
Z.b. Die 16 Bit Freescale µCs:
http://elmicro.com/de/cards12.html#s12x
Da kannst du aber nur mit C programmieren. Und du brauchst noch die 
Eternen Bus Treiber.

von Thomas N. (tono)


Lesenswert?

Moin,
eine Unterbrechung des IBus, mit einem CAN-Gateway, ist vielleicht nicht 
nötig (und die damit verbundenen Risiken...). Ein Device auf dem IBus 
das die Information an das Kombi schickt sollte genügen (ev. gibt es 
auch eine Message zum Auslesen des angezeigten Textes... ). Das Navi 
aktualisiert den Text meist nur bei Änderungen. Wenn man zwischendurch 
eigene Messages schickt sollte das nicht stören.
Das ist zwar keine vollständige Kontrolle über die Anzeige, aber auch 
weniger riskant. Die Betriebserlaubnis des Fahrzeuges ist sehr schnell 
erloschen... ;o)

Thomas

von Thomas N. (tono)


Lesenswert?

... kleiner Nachtrag
im Log ist zu erkennen, daß die RadioDaten alle 800 ms gesendet 
werden... auch ohne Änderung. Überschreiben fällt damit aus, da es 
wahrscheinlich flackern würde.

Auch wenn das Navi vom Kombi durch ein Gateway getrennt ist oder das 
Kombi den IBus selbst auswertet, würde ich eine physische Unterbrechung 
des IBus vermeiden wollen.

Thomas

von Harald (Gast)


Lesenswert?

Wenn Du dich schon bestens mit AVRs auskennst, dann nimm doch einfach 
einen AT90C128 und einen weiteren MCP2515 über SPI angebunden. Für 
beides gibt es fertige Libs, siehe hier:
http://www.kreatives-chaos.com/artikel/universelle-can-bibliothek

Das Einbinden geht sehr einfach, die Libs funktionieren out-of-the-box 
perfekt! Das würde ich einer Lösung mit 2 Prozessoren vorziehen. 
Vielleicht gibt es mit diesem Hardware-Konzept sogar eine Lösung für 
BASCOM. Ich denke, das wäre aber die beste Gelegenheit, davon 
abzuweichen und den professionellen Weg zu beschreiten (Auch auf die 
Gefahr hin, dass jetzt einige aufschreien werden).

von Schorschi (Gast)


Lesenswert?

Hallo zusammen
erstmal vielen Dank das sich doch soviele hier damit beschäftigt haben.

Also perfekt mit Bascom auskennen... leider nicht, ich komme für meine 
Basteleien ganz gut zurecht.
Da ich sehr viel nach entsprechenden Beipsielen von/für Bascom gesucht 
habe weiß ich ja das Bascom da wohl ausscheiden sollte....!!!!!?????

@Thomas
ich denke den Bus aufzutrennen ist die einzige Möglichkeit es überhaupt 
zuschaffen. Ich hatte schon mit dem CAN Dongle, mit dem ich den 
Mitschnitt getätigt hatte, die Möglichkeit Frames an das Kombiinstrument 
zusenden. Die Wiederholung der ID 261 und 263 erfolgt vom Radio/Navi 
zwar nur alle 800ms wenn ich diese aber überschreiben will und die 
Darstellung ohne Überblendungen sein soll muß ich das schon mit 
Wiederhohlungszeit von gerademal 50 - 100 ms arbeiten. Das wiederum, ich 
drücke es mal so aus, müllt den Bus zu......und das gilt es zu 
vermeiden. Rein elektrisch sollte die Auftrennung sowie die 
Widerstandsproblematik der 120 Ohm Abschlußwiderstände nicht das Problem 
sein. Der Traffic auf dem Teil des Busse ist nicht riesig groß nimmt nur 
etwas zu wenn das Navi selbst seine Daten (Navigationssymbole usw.) ans 
Kombiinstrument sendet. Den Teil log ich nochmal nach wenn es hier eine 
Rolle spielt. Auch das Navi/Radio braucht nicht alle Infos vom Bus, die 
würde ich aber nur einschränken wollen wenn die Datenflut durch den MC 
nicht bewälltigt werden kann.

Es gibt eine fertige Lösung (Kufatec - VW) die zusätzliche Frames über 
die IDs der Freisprechanlage an das Kombiinstrument schicken und da 
diese eine höherwertige Priorität haben werden diese dann auch dauerhaft 
angezeigt (gesteuert durch das Kombiinstrument). Dieses Modul zapft 
sogar den Komfort und den Infotainment CAN an. Leider scheidet das dank 
Freisprechanlage bei mir aus.


Ich habe vielleicht nicht die Fachausdrücke drauf dennoch versuche ich 
das mitzuteilen was ich denke und vorhabe. Das so ein Projekt nicht der 
beste Umstieg auf C für einen Anfänger ist muß ich wohl so in Kauf 
nehmen. Ich würde natürlich eine fertige Lösung liebend gerne nehmen und 
mit externer Hilfe auf meine Bedürfnisse anpassen - sowas gibt es aber 
wohl nicht.

Vielen Dank für weitere Vorschläge

Gruß
Schorschi

von besucher (Gast)


Lesenswert?

Schorschi schrieb:
> Die Wiederholung der ID 261 und 263 erfolgt vom Radio/Navi
> zwar nur alle 800ms wenn ich diese aber überschreiben will und die
> Darstellung ohne Überblendungen sein soll muß ich das schon mit
> Wiederhohlungszeit von gerademal 50 - 100 ms arbeiten.

Hab ich das richtig verstanden? Die Messages 261 und 263 enthalten 
Infos, die auf dem Display landen, du willst diese Infos aber durch 
andere ersetzen?

Warum muss das periodisch mit hoher Wiederholrate geschehen? Genügt es 
nicht, nach jedem 261 und 263 einmal den passenden Ersatz-Frame 
hinterherzuschicken, und das mit möglichst kurzer Verzögerung?

von besucher (Gast)


Lesenswert?

Ach halt, mir fällt was ein:

Es ist verboten, dass es auf einem CAN-Bus mehrere Stationen gibt, die 
Messages mit demselben Message-ID verschicken. Falls die das genau im 
gleichen Augenblick tun, gibt es Arbitrierungsfehler.

Das könnte ein Grund sein, weshalb ein Gateway zwingend erforderlich 
ist.

von STK500-Besitzer (Gast)


Lesenswert?

>Es ist verboten, dass es auf einem CAN-Bus mehrere Stationen gibt, die
>Messages mit derselben Message-ID verschicken. Falls die das genau im
>gleichen Augenblick tun, gibt es Arbitrierungsfehler.

Und Arbitrierungfehler werden erkannt.

von Schorschi (Gast)


Lesenswert?

Wenn man das hinbekommt könnte es gehen ????.
Aber, da der Zugriff auf den Bus durch die IDs und die damit verbundenen 
Prioritäten geregelt und durch die Controller abgewickelt wird - weiß 
ich nicht wie ich das hinbekommen soll und die Anzeige soll ja auch 
nicht flackern. Mein Wissen in dem Bereich ist da schon von Lücken 
geprägt !!!

Womit würdest du das hinbekommen ???

Gruß
Schorschi

von STK500-Besitzer (Gast)


Lesenswert?

Hängt die Freisprechanlage separat am Bus oder ist sie ins Radio 
integriert?

von Schorschi (Gast)


Lesenswert?

Deshalb war auch die Sendung mit den kurzen Zeitabständen notwendig.
Diese Fehler veranlassen der Sender die Nachricht noch einmal 
zuversenden und belasten damit zusätzlich den Bus das will ja 
letztendlich verhindert werden.

Die Freisprechanlage ist ein eigenständiges Steuergerät. Ich muß gleich 
mal in mein Archiv sehen da hab ich noch eine Darstellung der 
Bustopografi bzw. der angeschlossenen Geräte. Denn es kommen ja auch 
noch Befehle vom Multifunktionslenkrad in den Infotainment Bus aus dem 
Komfortbus über den Gateway.
Ich suche die Darstellungn heraus oder ich zeichne eine neue und stell 
die dann hier ein.

Gruß
Schorschi

von Matthias (Gast)


Lesenswert?

Also allgemein wirst Du einen Controller mit 2 CAN Controllern 
benötigen.
Wichtig ist, dass Du ALLE Nachrichten transparent durchreichst.
Das "Gateway" sollte sich wie ein Stück draht zwischen den beiden 
Bushälften verhalten (->ich weiß, dass es durch die interne Abhandlung 
Verzögerungen gibt!).

Bei den AVRs müsste dann die ID-Mask so eingestellt werden, dass
alle Nachrichten, ausgenommen, die 2, die Du abfangen willst, auf ein
MOB gehen. Die Nachricht muss dann, möglichst ohne Verzögerung, über den
2. Controller raus.

Für die beiden Nachrichten, die Du abfangen willst, machst Du dann auch 
2 MOBs auf. Entweder leitest Du die 1:1 weiter, oder fängst sie ab und 
sendest nur deine eigenen. Evtl. könntest Du ja auch die abgefangenen 
Nachrichten
speichern und falls nötig, dann später Senden (falls Du die Ausgaben für 
irgendwas brauchst).

Ich meine mal irgendwo einen AVR mit 2 CANs gesehen zu haben, kann aber 
sein, dass sich das mit einem ARM von Atmel verwechsle....

Was auch noch zu beachten ist, dass Du die Busterminierung und die 
Vorgaben
zum Routen der Leiterbahnen einhälst. Bei 100 kBit/s sollte es zwar 
unkritisch sein, aber mann muss es ja mit der "Abweichung" nicht 
übertreiben!

von Paul Baumann (Gast)


Lesenswert?

Hier hat sich jemand mit Bascom und dem CAN-Bus befasst.
http://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=325711

Offenbar mit Erfolg.

MfG Paul

von STK500-Besitzer (Gast)


Lesenswert?

>Ich meine mal irgendwo einen AVR mit 2 CANs gesehen zu haben, kann aber
>sein, dass sich das mit einem ARM von Atmel verwechsle....

Der C167 von Infineon (16bitter) hat zwei CAN-Kanäle.
Man könnte aber auch eine Lösung mit einem AVR und zwei MCP2515 
aufbauen.
Ob die SPI-Geschwindikeit ausreicht, müsste man man genauer betrachten.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

STK500-Besitzer schrieb:
>>Es ist verboten, dass es auf einem CAN-Bus mehrere Stationen gibt, die
>>Messages mit derselben Message-ID verschicken. Falls die das genau im
>>gleichen Augenblick tun, gibt es Arbitrierungsfehler.
>
> Und Arbitrierungfehler werden erkannt.

Eben nicht. Arbitrierung findet auf dem CAN nur im Identifier und dem 
RTR Bit statt. Nachzulesen hier:

http://www.semiconductors.bosch.de/pdf/can2spec.pdf

Matthias

von apfelmännchen (Gast)


Lesenswert?

Sowas gibts auch zu kaufen. Hatte vor einigen Jahren mal für unseren 
Kunden damit gearbeitet. Das war ein CAN-CAN Gateway, dass man beliebig 
konfigurieren konnte. Welche Signal vom CAN1 wie auf CAN2 übertragen 
werden sollen ...

von Schorschi (Gast)


Lesenswert?

Hallo zusammen,
okay dann werde ich heute Abend mir den Beitrag aus dem Roboternetz mal 
ansehen und auch den von dem Infineon.

Das was Matthias (Gast) geschrieben hat trifft es genau. Die Frames 
nahezu ohne Verzögerung durchreichen 1:1. die zwei ID261 und ID263 nach 
Bedarf herausfiltern. Zwischen speichern brauche ich die Frames 
allerdings nicht da sie weiter zu nichts nütze sind ausser sie eben 
anzuzeigen. Dann nur noch (grins) meine Daten einspeisen.
Inhaltlich werden nur Daten des Radios (Frequenzen oder Sendernamen - 
RDS, Track bei CD usw. ) in den 2 mal 8 Zeichen angezeigt. Selbst die 
Navidarstellung findet im mittleren Teil des Display statt, da will ich 
garnicht ran.
Was muß ich noch mitteilen um ein besseres Bild meines Wunsches 
darzulegen.

Gruß
Schorsch

Vielleicht wichitg, die ID261 und 263 sind die niederwertigsten des 
Teilnehmers. Die werden kontinuierlich durch das Radio/Navi gesendet 
auch wenn die Freisprecheinrichtung die Anzeigemöglichkeit nutzt. Dann, 
so erkläre ichs mir, die Daten der Freispr. durch den Gateway im 
Kombiinstrument direkt auf das Dispaly geroutet und die des Radios eben 
nicht angezeigt. Leider sind da keine weiteren bekannten ID frei - wäre 
ja zuschön



@ apfelmännchen
hört sich gut an !!!! welche Firma ??? Hersteller ??? Bezugsadresse ?? 
kannst du mal nachschauen - ob es auch bezahlbar ist

von Thomas (Gast)


Lesenswert?

z.B. hier:
http://www.peak-system.com/Details.114+M51f750c13ca.0.html

es gibt aber auch noch etliche andere Lösungen, Google hilft.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

was darfs denn kosten? Für um die 300€ hätte ich da unter Umständen was. 
2xCAN + Programmierbarkeit in C fix fertig in einem tauglichen Gehäuse.

Matthias

von Schorschi (Gast)


Lesenswert?

Hallo,
meine Suche beim Freund Google bhat mich schon mal hier hin geführt.

http://www.peak-system.com/Produktdetails.49+M5f9f24f30c5.0.html?&tx_commerce_pi1[catUid]=8&tx_commerce_pi1[showUid]=31

Es muß ja nicht der Pro sein - Aufzeichnungen auf Compakt Flash brauche 
ich z.B. nicht. Oder was die kann die Config Software



Was heißt um die .... fix und fertig ??? was müßte ich noch anpassen um 
meine Bedürfnisse anzuzeigen ????. Wie sieht sowas aus.. du machst mich 
schon neugierig

Gruß
Schorschi

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

Gib mir mal deine Mailadresse bzw. melde dich hier an. Dann lass ich dir 
ne PN zukommen. Da ich für die betreffende Firma arbeite will ich das 
hier nicht öffentlich erzählen.

Matthias

von Georg B. (schorschi)


Angehängte Dateien:

Lesenswert?

Hallo nochmal,
hier die Grafik von der ich gesprochen hatte. Die Bauteile des 
Infotainmet Busses sind da zusehen. Nicht alle Steuergeräte sind immer 
verbaut.


Gruß
Schorschi

von Georg B. (schorschi)


Lesenswert?

HAllo zusammen,
bringt es was für die weitere Betrachtungsweise wenn ich eine Skitzze 
erstelle in der ich darlege was durch die Schnittstelle durch muß und 
was nicht ?????
also ich meine welche IDs aus dem Bus zum Radio müssten und welche IDs 
vom Radio in den Bus müssten??? Denn nicht alle Ids braucht das Radio 
wirklich.

Gruß
Schorschi

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.