Ausgelasteter CAN Bus Auswerten

OP #3463992
Lesenswert?

Moin Zusammen,

Folgendes Problem und zwar sollen 30 Sensoren welche jeweils 2 CAN Bus 
Ausgänge haben ausgewertet werden. Das Problem liegt daran das der CAN 
Bus pro Sensor zu ca. 50% ausgelastet wird. Gibt es irgendeine 
Möglichkeit diese 30 Sensoren bzw. ihre Can Ausgänge schlau zu loggen 
bzw. die Ausgangsdaten abzuspeichern?Es müssen immer alle Daten 
ausgewertet werden.
Für jeden Tipp/Hinweis bin ich froh :-)
Die Daten sollen entweder per TCP/IP irgendwo abgeladen werden oder auf 
einem RasperryPI in den Speicher.

Danke und
Gruss
OP #3465334
Lesenswert?

Also es geht ja um zwei CAN Outputs eines Produktes. Somit kann ich die 
Baudrate ja nicht einfach verändern...zudem soviel ich weiss ist die 
auch schon ziemlich am Maximum.
Es geht ja nun darum ein ''Testgerät'' für diese Produkte zu bauen und 
dafür sollen 20-30 Stück dieser Geräte gleichzeitig getestet werden 
können(Langzeit/Klimatests).
Gemessen werden die Daten welche das Gerät ausgiebt....dies sind 
vorallem Positionsdaten des Sensors. Die Datenmenge entsteht dadruch das 
das Gerät Positionsdaten bei Geschwindigkeiten bis zu 4-5m/s auf 1mm 
genau ausgiebt.
Gast #3465363
Lesenswert?

Ich befürchte, ich habe deine Frage nicht richtig verstanden.
So wie ich sie verstanden habe, würde ich einfach irgendeinen 
CAN-Controller im listen-only modus mitlaufen lassen, der alle 
CAN-Identifierakzeptiert und diese dann irgendwo hinschaufeln.
Wie das dann später bei der Datenmenge sinnvoll ausgewertet werden soll, 
ist das nächste Problem. Aber das ist ja klar und auf dem PC nicht 
sonderlich schwer. Wohl eher, welche Schlüsse man aus den Daten ziehen 
kann.
#3465415
Lesenswert?

Thomas K. schrieb:

> Es geht ja nun darum ein ''Testgerät'' für diese Produkte zu bauen und
> dafür sollen 20-30 Stück dieser Geräte gleichzeitig getestet werden
> können(Langzeit/Klimatests).

Da nimmst Du Dir beispielsweise einen PIC32MX795 oder einen STM32F107, 
die Fast Ethernet und 2*CAN haben. Dazu einen passenden Ethernet PHY 
sowie die CAN Transceiver, und los gehts. Du sammelst so viele 
CAN-Pakete, bis ein UDP-Paket voll ist und schickst es dann raus.

Von diesem Board machst Du dann n Stück, hängst die an einen 
Ethernet-Switch zusammen mit einem PC, der die Pakete dann einsammelt 
und wegschreibt. Insbesondere wenn der PC an einem Gigabit Ethernet Port 
hängt, sollten keine UDP-Pakete verloren gehen - die Bandbreite dürfte 
mit Sicherheit ausreichen.

Vorschlag: Olimex STM32-P107: CAN1 liegt auf PD0(RX)/PD1(TX), CAN2 auf 
PB4(RX)/PB5(TX). Ihr müsst nur noch die CAN-Transceiver und die 
zugehörigen Steckverbinder auf dem Lochrasterteil aufbauen, der Rest ist 
nur noch Weichware.

fchk
Gast #3467282
Lesenswert?

Nach nochmaligem lesen ist mir die gewerbliche Nutzung klar geworden. In 
dem Fall würde ich, wie oben schon jemand schrieb, einen kommerziellen 
CAN-Analyzer nehmen. Das Gebastel entfällt dann und es ist schon gleich 
Software für den PC dabei, so daß der Rest eine reine Softwarefrage 
wird.
Ansonsten wirst Du dich immer rechtfertigem müssen; nach dem Motto 
"stimmen deine Frickelzahlen auch wirklich?"
Diese 100 € wirst du nie bereuen. Auch dein Chef nicht, wenn man alleine 
die Arbeitszeit der Frickellösung betrachtet.
Gast #3467335
Lesenswert?

Na ja, bei "richtigem" Standard-CAN sagt der Identifier ja etwas über 
den Inhalt des Frames aus, nicht wer ihn losgeschickt hat. In diesem 
Falle wohl die Positionsdaten. Wenn diese von jedem Sensor immer mit dem 
selben Identifier geschickt werden (was anzunehmen ist), dann kann 
sowieso nur jeder Sensor einzeln in seinem eigenen Bus getestet werden. 
Problem korrekt erkannt.
Zumal die o.g. 50 % Busauslastung durch einen Sensor ja auch nicht 
sehr viel mehr Teilnehmer auf dem Bus hergeben würde. Wurde ja oben 
schon genannt (1.500 %). Also würde man bei 30 parallel zu testenden 
Sensoren auch 30 CAN-Analyzer brauchen.

Aber wie ich schon schrieb, kommt das Problem erst später: Wie wertet 
man diese riesige Datenflut dann sinnvoll sicher_ und _aussagekräftig 
aus? Das muß ja eine dolle Software werden und ist sicherlich um Längen 
diffizieler als die reine Datenerfassung von Standard-CAN-Frames.
Gast #3467445
Lesenswert?

Thomas K. schrieb:
> Also es geht ja um zwei CAN Outputs eines Produktes. Somit kann
> ich die
> Baudrate ja nicht einfach verändern...zudem soviel ich weiss ist die
> auch schon ziemlich am Maximum.

Sollte mann evtl. vorher klären.

Ob CAN bei einem Gerät das den Bus überflutet überhaupt sinnvoll ist 
steht auf einem anderen Blatt


> Es geht ja nun darum ein ''Testgerät'' für diese Produkte zu bauen und
> dafür sollen 20-30 Stück dieser Geräte gleichzeitig getestet werden
> können(Langzeit/Klimatests).

Auf welchem Level?

Reine Hardware:

Nimm einen billigen Logic Analyzer der die Kanäle wegschreiben kann und 
schau Sie dir nachträglich mit nem Interpreter an.


Mit Auswertung:

Einen Controller mit CAN und USB oder Ethernet der sich die Werte 
anguckt und gut/böse Signale ausgibt. Dann hast du auch nicht diese 
Datenmengen und sparst das post processing. Wenn du einen mit 4x CAN 
nimmst kannst du auch eine Referenz gleich mitmessen den du (da ja CAN 
Bus) an alle verteilst.

Wenn du es einfach willst machst du ne rote Lampe dran und schreibst die 
Messergebnisse auf ne SD Card.

Dann sparst du dir das Gefummel mit z.B. dem CAN / USB Bridging ud wirst 
flexibler und mobiler.


> Gemessen werden die Daten welche das Gerät ausgiebt....dies sind
> vorallem Positionsdaten des Sensors. Die Datenmenge entsteht dadruch das
> das Gerät Positionsdaten bei Geschwindigkeiten bis zu 4-5m/s auf 1mm
> genau ausgiebt.

Wohl eher 1mm Auflösung. Das sind 5k Telegramme / Sekunde

Wenn jedes 20 bit lang ist macht das 100kBit/s was dein CAN wohl locker 
kann.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren