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
Thomas K. schrieb: > sollen 30 Sensoren > Das Problem liegt daran das der CAN > Bus pro Sensor zu ca. 50% ausgelastet wird. Also x 30 = 1500%? Thomas K. schrieb: > Gibt es irgendeine > Möglichkeit diese 30 Sensoren bzw. ihre Can Ausgänge schlau zu loggen > bzw. die Ausgangsdaten abzuspeichern? Hol dir einen Canalyzer oder einen Logic Analyzer mit I2C Bus Interpreter.
Die Baudrate ist schon am Anschlag ? Weshalb habe ich den Eindruck, ein CAN Bus sei hier falsch ?
Was soll da so schnell gemessen werden? Welche Baud-Rate verwendet der CAN? Sicher dass der CAN da nicht von Modul zu Modul durchgeschleift werden soll?
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.
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.
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
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.
Andere Frage: Senden die Sensoren ihre Informationen alle auf der gleichen ID? Wenn ja, dann kannst du das ganze sowieso vergessen. Wie willst du sonst herausfinden welche Daten von welchem Sensor stammen?!
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.
>Das muß ja eine dolle Software werden und ist sicherlich um Längen
diffizieler als die reine Datenerfassung von Standard-CAN-Frames.
In folgender Reihenfolge zu empfehlen, das nötige Kleingeld und die
Bereitschaft sich einzuarbeiten vorausgesetzt:
- Diadem
- IPEmotion
- CANoe
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.
Der Rächer der Transistormorde schrieb: > Wenn jedes 20 bit lang ist macht das 100kBit/s was dein CAN wohl locker > kann. CAN 2.0 A hat 110 bits pro Frame, das wären dann 550 kbit/s. Aber auch kein Problem.
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.