PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : CAN Bus über Wlan



Merdl
13.10.2010, 09:00
Hallo ich wollte mal fragen, ob sich da jemand auskennt und schon
Erfahrungen gesammelt hat? Ich wäre sehr glücklich hier ein paar Infos
zu bekommen. Ich verwende das Eval Board MC56F8037 von Freescale. An
dieses muss ich über eine Uart Schnittstelle ein Wlan Funkmodul
anbinden. Im Prinzip soll ich das Kabel des Can Buses unterbrechen und
die Daten per Funk austauschen. Ich habe einen CANopen Safty Stack und
muss nun versuchen die CANdaten abzuholen und auf das Funkmodul weiter
zu leiten. Mir fehlt hierbei leider die Programmiererfahrung in C. Wie
gesagt würde ich mich freuen wenn mir da jemand ein paar allgemeine Tips
dazu geben könnte. Ich habe jetzt viel in Foren gelesen und bin hin und her gerissen ob das uberhaupt möglich ist Can Daten per Funk zu übertragen?

Grüße Merdl

Richard
13.10.2010, 11:16
Das wird nicht gehen, am Can Bus sind alle Teilnehmer parallel mittels Open Kollektor angeschlossen, der Bus selber per Pull UP an Vss. Jeder Teilenehmer kann zu jeder Zeit den Bus auf Lo ziehen und damit die Übertragung übernehmen. Das geht natürlich nicht per Funk, wenn die Daten gerade "in der Luft sind".....

http://de.wikipedia.org/wiki/Controller_Area_Network

Gruß Richard

PICture
13.10.2010, 13:56
Hallo!

@ Merdl

Algemeine Tips sind im "benachbarten" Tread: https://www.roboternetz.de/phpBB2/viewtopic.php?t=56461 .

MfG

Merdl
13.10.2010, 13:56
Hallo

@Richard, meinst du, dass wenn gerade Daten in der Luft sind dann andere Busteilnehmer senden können obwohl eine dominante Nachricht unterwegs ist ? Unsere Hauptaufgabe liegt erst mal darin Can Daten vom einem Evalboard über WLan zu einem zweiten Evalboard fehlerfrei zu transportieren, das müßte doch möglich sein oder?.


Grüße und Vielen Dank für deine Antwort

Richard
13.10.2010, 14:45
Hallo

@Richard, meinst du, dass wenn gerade Daten in der Luft sind dann andere Busteilnehmer senden können obwohl eine dominante Nachricht unterwegs ist ? Unsere Hauptaufgabe liegt erst mal darin Can Daten vom einem Evalboard über WLan zu einem zweiten Evalboard fehlerfrei zu transportieren, das müßte doch möglich sein oder?.


Grüße und Vielen Dank für deine Antwort

Dominant oder nicht wird ja Hardwaremäßig durch Aktiv Lo entschieden, auch mitten in der Übertragung. Je niedriger die ID je Dominanter die Nachricht. Wie willst Du/Ihr eine einmal gesendete oder Grade gesendete überschreiben? Wie wollt Ihr das komplizierte Timing der Busteilnehmer untereinander per Funk (W-Lan) einhalten? Hast Du den Wiki Beitrag ganz gelesen, Es gibt schon bei Kabel ab 500 m Timing Probleme wegen der Signal Laufzeiten....Warum kann man über W-Lan keine Echtzeit Spiele real Spielen, weil da etliche ms vergehen bis Antwort kommt! Ich glaube nicht das man das synchronisieren kann.

Gruß Richard

PICture
13.10.2010, 15:15
@ Merdl

Ich denke, das du es am schnellsten selber ausprobieren kannst, wenn du einfach deine zwei Evalboards mit einem Kabel, das der Funkverbindung entspricht, verbindest. ;)

MfG

Richard
13.10.2010, 15:28
@ Merdl

Ich denke, das du es am schnellsten selber ausprobieren kannst, wenn du einfach deine zwei Evalboards mit einem Kabel, das der Funkverbindung entspricht, verbindest. ;)

MfG

Das Kabel will ich sehen. :-) TCP/IP Verbindungen suchen sich ihren Weg durchs www weiten Netz und zur Not auch über weite Umwege. Wird dabei ein Fehler festgestellt wird das IP Paket so lange neu gesendet bis es als Fehlerfrei erkannt wird. Das (kann) gegenüber einer Kabel Verbindung relativ lange dauern...

Mit einem "Stück Draht" kann W-Lan nicht simuliert werden. :-(

Gruß Richard

PICture
13.10.2010, 15:38
O.K. Danke für die Erklärung, da ich es wahrscheinlich, wegen fehlender praktischer Erfahrung, zu einfach sehe. :(

Ich habe bloß gedacht, dass man das ganze ohne W-LAN testen könnte ...

MfG

askazo
13.10.2010, 16:04
Ich denke schon, dass das möglich ist.
Man muss sich halt nur auf jeder Seite ein WLAN-CAN Gateway bauen.
Das einzige was man natürlich nicht erwarten darf ist, dass der CAN auf beiden Seiten synchron läuft. Man hat dann eigentlich zwei getrennte CAN-Busse, die zwar die gleichen Daten befördern, jedoch unter Umständen nicht in der gleichen Reihenfolge und eben keinesfalls synchron. Wenn das nicht stört, sollte der Rest kein Problem sein.

Gruß,
askazo

Richard
13.10.2010, 17:19
Ich denke schon, dass das möglich ist.
Man muss sich halt nur auf jeder Seite ein WLAN-CAN Gateway bauen.
Das einzige was man natürlich nicht erwarten darf ist, dass der CAN auf beiden Seiten synchron läuft. Man hat dann eigentlich zwei getrennte CAN-Busse, die zwar die gleichen Daten befördern, jedoch unter Umständen nicht in der gleichen Reihenfolge und eben keinesfalls synchron. Wenn das nicht stört, sollte der Rest kein Problem sein.

Gruß,
askazoSo, mit 2 Getrennten CAN Bussen die "Nutzdaten" dann über Funk oder WLan übertragen und "offline" auswerten geht natürlich. Das hat aber absolut nichts mehr mit CAN zu tun.

Kann deshalb auch keinen Sinn von CAN sein oder damit verglichen werden. Das wäre als wenn man eine Datendiskette Per Luftfracht verschickt und am Empfangsort wieder per Can Bus weiter schickt. :-) Irgendwie Lustig...

Gruß Richard

Gruß Richard

maw_hn
14.10.2010, 06:22
Ich muß meinen Vorrednern da Recht geben. Wenn du den CAN auftrennst und eine WLAN-Brücke einrichtest, hat das zumindest aus Sicht des Medienzugriffs-Verfahrens nix mehr mit CAN zu tun.

Wenn das für deine Applikation aber keine Rolle spielt, steht dem nix im Wege!

Merdl
14.10.2010, 08:48
Hallo an alle, erst mal vielen Dank an euch für die hilfreichen Tips. Für unsere Aufgabenstellung spielt erstmal die Laufzeit keine Rolle. Wir sollen einfach den Can Frame fehlerfrei vom einen Controller über Funk zum anderen Controller transportieren. Das es dann zwei verschiedene Buse sind haben wir nun verstanden. Ich selbst bräuchte Tips wie ich den Datentransport in der Software umsetzte ?Da fehlt mir leider noch die Erfahrung und ich versuche mich hier grad mit nem Software Konzept.

Viele Grüße Marcel

Felix G
14.10.2010, 23:23
Im einfachsten Fall verpackst du jeden CAN Frame direkt so wie er ist in einem UDP Paket und schickst das auf die Reise, der Empfänger packt das Teil wieder aus und leitet den CAN Frame weiter.

Das ist von der Implementierung her trivial, man sollte allerdings bedenken daß UDP Pakete auch verloren gehen können, es ist also nicht garantiert daß sie überhaupt ankommen. Das passiert zwar nicht oft, aber bei sicherheitskritischen Sachen kann schon ein einziges verlorenes Paket evtl. zuviel sein.


Alternative: TCP
Dadurch wird das ganze etwas langsamer und komplizierter, aber auch sicherer. Das Prinzip bleibt dabei natürlich das gleiche: hübsch verpacken und weg damit


Selbstverständlich sollte man in beiden Richtungen auch Puffer vorsehen

Coop
06.11.2010, 21:57
Hi,
ich realisiere gerade ein ähnliches Projekt - allerdings ohne CAN, sondern UART-in dem Falle RS232.
Es gibt da mittlerweile einige Anbieter, die dies ermöglichen.
Übrigens nutzen solche Gateways nicht zwangsläufig immer das www, nur weil es TCP/IP oder WLAN -Verbindungen darstellen-vielmehr sind dies ADHOC-Netzwerke o.ä. Netzwerkstrukturen.

Zu deinem Problem (CAN) könnte dir speziell ein Anbieter weiterhelfen:
Verwende mal die Suchfunktion des Forums nach dem Begriff Avisaro oder lies dich unter www.avisaro.de ein.
Innerhalb des RN-Wissen-Artikelbereich gibts auch unter dem Begriff Projekte/Schaltungen-->WLAN eine weitere Beschreibung.
Es sind viele Kombinationen der Schnittstellen möglich. Das WLAN Modul 2.0 beherrscht sie alle O:)

Das Ansprechen der Module erfolgt durch AT-Befehle (andere Anbieter) oder bei den Avisaro-Modulen durch Textkommandos, die Module selbst können durch ladbare Scripte zusätzliche Intelligenz erhalten (z.B.: I/O).

Lies dich erstmal ein, bei weiteren Fragen melde dich einfach wieder.

MfG

Merdl
12.11.2010, 10:26
@coop
Vielen Dank für den Tip. Genau so ein Gerät für die CAN Nachrichten drahtlos übertragen muß ich realisieren. Ich habe ein Evalboard und muss dort die ankommenden CAN Daten auf dem Microcontroller nehmen und über eine uart (rs232) an ein Funkmodul weiterleiten. Wie meinst du das, schickst du deine Daten über Uart an das Wlan ? Kannst du mir da Tips geben ?Das wäre nett.

Viele Grüße Merdl

Hessibaby
12.11.2010, 11:03
Wenn Du "normalen" Datenfunk, also stumpf über die serielle Schnittstelle abwickelst sollte das genau so Problemlos gehen wie über Kabel. Nur über WLAN geht´s definitiv nicht weil Dir der TCP-Protokollstack viel zu viel Zeit frisst, erschwerdend kommt dazu dass Du nur Blöcke von 384 Byte (mit 256 Byte Nutzdaten) senden kannst. Bei zeitkritischen Systemen nutzen wir Kabel zur Verbindung der Frontends. Nur bei bewegten Anlagenteilen wie Krananlagen kommen Funkmodeme zum Einsatz.

Merdl
12.11.2010, 11:36
@hessibaby
DAke für deine Antwort, ich soll diese Verbindung auch für einen Kranwagen entwerfen. Ich habe auch schon Berechnungen gemacht und gemerkt, dass wlan mir echt die Zeit kaputt macht. Was meinst du mit normalen datenfunk?


Grüße Merdl

Hessibaby
12.11.2010, 12:17
z.B. als kommerzielle Lösung

http://www.welotec.com/de/industrielle-kommunikation/produkte/schmalbandfunk/lizenzfrei-funkmodems/satelline-1870e/

oder preiswert

http://www.mipot.de/docs/transceiver/pn_3-2000473.pdf