Forum: Mikrocontroller und Digitale Elektronik CANlogger Programmieren


von Holger E. (shizar)


Lesenswert?

Hallo, bin neu, und habe schon eine frage :)

Demnächst steht bei mir meine Diplomarbeit an, und dafür habe ich nun 
ein angebot von einer firma: einen CANlogger zu programmieren (C/C++).

nun meine frage:
was haltet ihr von soetwas, ich kann mir noch nicht so recht vorstellen 
wie aufwändig so etwas ist.
Die Hardware steht noch nicht fest, wird aber ein mikrocontroller, 
geloggt soll auf einem externen (leicht austauschbaren) datenträger 
(schätze mal USB stick).

von Blob! (Gast)


Lesenswert?

dürfte eigentlich "nicht viel" arbeit sein - im endeffekt programmierst 
Du einen µC der den canbus abhört, den header auswertet und dann cob-ID 
und Datenbytes in einem definierten Format ausgibt - ob Du dann auf 
SD-card schreibst oder das ganze über usb als hdi ausgibtst ist dann 
egal - ein evt. Problem sehe ich vlt. in der Geschwindigkeit der 
Ausgabe. Wenn Dein CANbus schnell läuft (1mbit/s oder so), eine hohe 
busauslastung vorhanden ist und Du dann noch ein langsammes 
speichermedium hast könnte das Speichermedium die Protokolierung 
ausbremsen.
Das könnte man jedoch umgehen wenn Du entsprechend große pakete 
speicherst

Den CAN-Teil finde ich jetzt sehr einfach, der entsprechende Aufwand 
wird wohl von der Art der Datenausgabe abhängen, also ubs-schnittstelle 
zum pc, usb-stick ...

von Gast (Gast)


Lesenswert?

Hi!

Ich mache im Moment ein ähnliches Projekt. Ist wirklich machbar, 
allerdings kannst Du gleich mal viel Zeit zum Testen einplanen ;-)

Viele Grüße und viel Erfolg!

von Holger E. (shizar)


Lesenswert?

wow so schnelle antworten, bin beeindruckt :)
hmm nicht viel arbeit hört sich aber auch nicht so gut an, will ja nicht 
schon nach 1-2 monaten fertig sein, sollte schließlich auch eine gewisse 
herausforderung darstellen!
und an den herrn Gast: welche hardware verwendest du?, bzw. welche 
würdest du empfehlen, es könnte sein das mir diese entscheidung selbst 
überlasssen bleibt

von Martin (Gast)


Lesenswert?

Sowas ähnlichen gibt es schon im Internet.
Der R8C23 von Renesas hat schon CAN on Board.

von ARM-Fan (Gast)


Lesenswert?

"Klassisch" wird das mit einem SJA1000 + Mikrocontroller der leistungs-
fähig genug ist, die Daten die anfallen zu puffern und wegzuspeichern,
gemacht.

Wenn du einen µC mit integriertem CAN nimmst, kann es sein dass du
dich zusätzlich noch mit dessen CAN-Errata herumschlagen mußt.

Der SJA1000 ist hingegen lange bekannt und bewährt.

von Matthias (Gast)


Lesenswert?

Kann man bei Vector auch fertig kaufen, komplette software und breakout 
box. Seltsames Diplomarbeitsthema, etwas zu entwickeln, was es seit min. 
5 Jahren gibt. Und dann auch noch fuer einen so "alten" bus. N Flexray 
logger haett ich ja verstanden...

von Gast (Gast)


Lesenswert?

Hi!

Ich verwende dsPIC30F und SD-Karte als Speicher. Das Board kann am 
Schluß 2x CAN, 1x LIN und übernimmt im Bedarfsfall auch noch die 
Aufgaben eines einfachen Steuergeräts (2x PWM).

@Matthias
Solche Datenlogger gibt es auch von anderen Herstellern, z.B. Ixxat, 
etc., aber diese sind für unseren Anwendungszweck "zu groß" 
(Ausstattung) und vor allem ein gutes Stück zu teuer.

von Matthias (Gast)


Lesenswert?

Gutes argument. Also wird kein genereller Logger, sondern ein 
spezifischer. Sollte man evtl. in den Diplomarbeitstitel einfliessen 
lassen :) Macht dann aber gleich wesentlich mehr Sinn

von Holger E. (shizar)


Lesenswert?

der logger soll ca. 5x CAN und 4 zusätzliche Analoge eingänge loggen 
können unter windows CE als betriebssystem.
Netzwerkprotokoll des CAN ist j1939.
"Auftraggeber" ist eine (verdammt) große firma (derren namen ich hier 
mal nicht verrate :))

allerdings weis ich nicht was an dem logger jetzt anderst bzw. 
spezieller sein sollte als an einem von Vector o.ä.
auser vielleicht dass ich nur im fehlerfall wirklich loggen soll, und 
sonst nur zwischenspeichere, aber ich denke diese option sollten alle 
bieten!

von high-side (Gast)


Lesenswert?

>der logger soll ca. 5x CAN und 4 zusätzliche Analoge eingänge loggen
>können unter windows CE als betriebssystem.

5xCAN und 4 mal Analog klingt schon mal sportlich, auch Windows CE lässt 
mindestens auf einer 32 Bitter schliessen.

Mit welcher Frequenz sollen die 4 analogen Eingänge abgetastet werden? 
Welche Grenzfrequenz?

Mit welcher Geschwindigkeit kann der CAN Bus maximal betrieben werden? 
LS CAN, HS CAN, SW CAN ?


Verdammte große Firma die wohl viel mit CAN macht und nicht Vector 
heißt? ;-) Bosch! Siemens? Rohde&Schwarz? :-) Oder es ist tatsächlich 
ein OEM in der Vorentwicklung: Daimler... :-) naja genug rum 
gerätselt... :-)

Warum eigentlich Windows CE? Was für Benutzerschnittstellen sollen an 
das Gerät? Tastatur? Knöpfe? Touchscreen?

Warum nicht RealTimeLinux... oder irgendein anderes 
Echtzeitbetriebsystem?

Gruss:-)

von Holger E. (shizar)


Lesenswert?

alles gute fragen, aber auf keine kann ich eine antwort geben (naja die 
mit mit der firma könnte ich beantworten, aber will ich jetzt nicht ;))

jemand hat mal gesagt das da schon so nen gigabyte pro stunde bei mir 
durchkommen könnte, aber wie verlässlich dies ist weis ich nicht :(

von ARM-Fan (Gast)


Lesenswert?

Windows CE?

Na jetzt sieht der Umfang der Diplomarbeit schon ganz anders aus!

Was existiert denn da schon?
Gibts die Hardware denn schon, die 5 CAN-Controller besitzt
inklusive des Windows CE Treibers dafür?

Oder soll CE nur das Frontend sein?

von Matthias (Gast)


Lesenswert?

Hat diese "verdammt" große Firma niemanden, der dein Projekt betreut und 
dir Starthilfe gibt bezüglich all dieser Fragen? Wenn nein: behalt den 
Namen lieber für dich :)

von Holger E. (shizar)


Lesenswert?

was die starthilfe betrifft, das gespräch kommt noch, ist bisher ja nur 
eine idee, habe ja auch noch nichts unterschrieben.
wollte mich eben nur mal vorher bei leuten die sich mit sowas auskennen 
darüber informieren, ob dies überhaupt als diplomarbeit machbar ist :)

von Matthias (Gast)


Lesenswert?

Machbar sicherlich. Je nach Ausstattung wirds mit der Zeit eng, von 
daher bleib beim Umfang aufm Teppich. Diplomarbeit bedeutet nicht 
zwingend, dass das Projekt fertig sein/werden muss. Manche Profs sehen 
es sogar ganz gerne, wenn der Student sein Projekt nicht als die 
Errungenschaft des Jahrtausends darstellt sogar klipp und klar sagt was 
nicht geht, was gehen könnte wenn man zB mehr Zeit haette, was alles 
drin wäre wenn die Firma ordentlich mitgespielt hätte, etc etc.

Bezüglich des CAN loggers würde ich zuerst sämtliche Hardware 
zusammensammeln oder wenn nötig herstellen. Betriebssystem klarkriegen, 
die verschiedenen interfaces lauffähig machen und dann den logging 
algorithmus zusammenbasteln. Das ganze dann erst mit nur einem Interface 
soweit zusammenschustern dass es verlässlich läuft, zB wie in deinem 
Fall besonders auf Fehler reagiert und beginnt mitzuschneiden. Dann ein 
zweites Interface dazuschalten um die multible Funktion darzustellen. 
Wenn du es nicht zu allen 5en schaffst kannst du so immerhin einen 
mehrfachen logger vorweisen und beweisen, dass deine Überlegungen 
stimmen.
Generell ist es wichtiger, ein solides Konzept zu haben, das man 
nachweisbar lauffähig machen kann. Die Fleißarbeit, x Interfaces soundso 
darzustellen ist dabei bei der Bewertung weniger wichtig als die 
Tatsache, dass das Prinzip funktioniert. Die 3 Monate Bearbeitungszeit 
sind schnell vorbei, und geschrieben werden will die Arbeit ja auch 
noch. Ich würd vorweg im Gespräch fragen, ob du Möglichkeit bekommen 
kannst, ein (sagen wir mal) zu 80% fertiges Projekt auch nach Abgabe der 
Arbeit fertigstellen zu können. Das nimmt einem eine Menge Druck ab.
Ich hatte während meiner Arbeit Ärger mit den Bauteil-Händlern und 
konnte daher nicht alles fertig stellen, das Projekt habe ich nach 
Abgabe weiter bearbeitet in der Firma.

von high-side (Gast)


Lesenswert?

Ohje, als Diplomarbeit kann man sich so einiges vorstellen ;-)

Bei mir war es z.b. ein Konzept zur Redundanzsteuerung von 
Fernsehsendern. Es gab eine Master-Einheit (die Steuerung), im Netz ein 
CANopen Master und jeder Fernsehsender inklusive des Ersatzsenders war 
als CANopen Slave in dem CAN Netz. Die Umschaltung der Antennen wurde 
über dicke Schalter bewerkstelligt die über kleine Controller Baugruppen 
gesteuert wurden.

Bei mir ging es da auch nicht drum Schalter zu entwickeln, oder ein 
eigenes CAN Protokoll zusammen zu schustern. Die Idee dahinter bzw. 
meine Leistung war "nur" zu konzepieren, welche Hardware/Software 
Verteilung / Vernetzung etc. hier die günstigste / beste wäre.

Im Endeffekt hatte ich dann nur ein Konzept für eine Controller 
Baugruppe mit Schnittstellen und die Vernetzung auf CANopen realisiert. 
Was ich vorführen konnte war wie ich von meinem Master aus (PowerPC) den 
Slave steuern konnte...

Nun zu deinem Thema:
Du kannst da ja auch viele verschiedene Ansätze reinbringen. Z.b. 
brauchst du wirklich 5 CAN Controller oder realisiert du das ganze über 
eine Art geschicktes Multiplexing... Oder lauscht du auf allen 5 Kanälen 
parallel (polling) ? oder reagierst du ereignis gesteuert (flanken 
getriggert)...

Vielleicht wäre es noch interessant was du studiert damit man den Fokus 
besser einschätzen kann! Also mehr Hardware / Software... mehr Sensorik 
oder mehr Softwarearchitektur? :-)

Ciao

von Holger E. (shizar)


Lesenswert?

also ich studiere technische informatik. und von daher sollte der focus 
im bereich software liegen!

und danke für die ausführlichen antworten, freue mich jetzt schon auf 
weitere informationen von meinem betreuer (den ich noch nie gesehen bzw. 
gesprochen habe), und habe auch einige ideen für fragen bekommen (macht 
sich immer gut :p)

von Holger E. (shizar)


Lesenswert?

so, jetzt habe ich noch eine frage!
ich sollte nun ein passendes board raussuchen, fange jetzt auch mal 
damit an! habt ihr n par tips? also möglichst günstig aber es muss 
sicher die aufgabe bewältigen können!

und es müssen nur 2 CAN busse geloggt werden! jeweils 512kbit, zu ca. 
50% ausgelastet und zusätzlich 4 analoge eingänge! (win CE bleibt BS)

also ein onboard RAM von min 15MB würde ich sagen.
gibt es überhaupt boards mit 2 CAN controllern onboard und min 15MB RAM?
über tips würde ich mich sehr freuen :)

von Robert T. (robertteufel)


Lesenswert?

Holger,

WinCE ist der Killer :-( Es gibt Chips, die koennen das alles ganz toll, 
z.B. ein LPC2468 aber WInCE braucht eine MMU, die gibts erst ab ARM926. 
Also ich kennen keine MMU Teile mit integriertem CAN und ein paar ADCs 
fuer die es WinCE geben wuerde, sorry!

Die CAN Welt und die WinCE Welt gehen (noch?) getrennte Wege. Es ist 
natuerlich immer moeglich z.B. einen SAM926x Board und einen externen 
CAN Controller herzunehmen oder einen LPC32xx ebenfalls mit externem 
CAN. Boards gibts dafuer aber ich kenne wiederum keines mit CAN.

Zum Punkt Board mit 2CAN und >= 15MB RAM, schau mal das Board von 
http://www.EmbeddedArtists.com mit dem LPC2468 oder LPC2478 an, 
allerdings laeuft das unter uCLinux, nicht unter WinCE. Die Firma hoert 
sich fuer mich so an als ob sie den Stammsitz in Muenchen haette, die 
sind sehr stark an CE interessiert.

Gruss, Robert Teufel
Partner in Silicon Valley gesucht?
Ich stehe gerne zur Verfuegung.
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Meine ARM/Cortex Webseite: http://www.lpc2000.com

von Gast (Gast)


Lesenswert?

Also mit WinCE ist das ein ganz anderes Kaliber, da kann ich mich meinen 
Vorrednern nur anschließen. Da kann ich Dir auch keine Empfehlungen 
aussprechen, da ich im Rahmen meiner Arbeit nix damit am Hut habe.

Auf dem von mir gebauten Logger läuft was Eigenes, die Daten werden mit 
FAT-Filesystem auf SD-Karte geschrieben und können dann am PC 
ausgewertet werden. Die ganze Anbindung an die "Außenwelt" gestaltet 
sich also auf das Schreiben eines FAT-Treibers...

Trotzdem viel Erfolg.
Grüße.

von DIL@Bert (Gast)


Angehängte Dateien:

Lesenswert?

Mein Buch für CAN ,Grundlagen u. Praxis

Holger@Automotiv [2 * CAN,  Motorola Avionik HW] $$$$$$$
Holger@ ADC --->CAN->|OPTO-----Fiber Bus------OPTO-CAN-->@DAC -->ANALOG

Hochspannung 400KV Tesla-COIL PIPE

---@@@@@@------ *******

  OPTEC - FIBER
-----------------------------------------------------------------------
http://www.wuerz-elektronik.com/mpc555.html
-----------------------------------------------------------------------
Danke für den Tip mit dem Trenn-Messverstärker... CAN--OPTO

-----------------------------------------------------------------------

Gruss
DIL@Bert.

von Klaus (Gast)


Lesenswert?

Is die Stelle zufällig bei bei Jungheinrich?^^

von Holger&DIL@Bert (Gast)


Angehängte Dateien:

Lesenswert?

400 DM Starter [Kit-ttt] freu ::.
-------------------------------------------------------------------
Reset-Chip fehlt.. 2 Tage
--------------------------------------------------------------------
Can Chip angebohrt 10 Tage @Döösel.

Ich fummel jetz alles selber.
Fazit:
.( Meine Fehler kann ich auch selber machen )
--------------------------------------------------------------------
MINI-PC mit PCI-CAN CARD und auf die Festplatte 299Gig, Netware.
Transienten-Recorder  Box-Audi A6 Debugger = (Peitz-Elektronik)

Später auf FPGA.

Danke für den Input...
Gruss Holger.  &Bert...

von Holger E. (shizar)


Lesenswert?

nachdem ich jetzt lange gesucht habe habe ich nur ein board gefunden, 
bei dem ich denke es wäre ok... weis ich noch nicht so genau, was sagt 
ihr??
http://www.phytec.de/de/produkte/module-nach-os/wince/produktdetails.html?tx_ttproducts_pi1[backPID]=59&tx_ttproducts_pi1[product]=795&cHash=840c6d2b88

und ich habe auch in anderen threads gelesen man sollte einen 
"parametric search bei den herstellern" machen... hmm aber bei z.b. TI 
gibt es ja keine ganzen evaluation boards!

von ARM-Fan (Gast)


Lesenswert?

Der i.MX35 ist brandneu und noch gar nicht auf dem Markt.
Ist zurzeit nur als Sample für ausgewählte Kunden verfügbar.

von Robert T. (robertteufel)


Lesenswert?

@Holger,

bitte fasse das nicht destruktiv auf, wenn Du mit dieser Hardware was 
machst und mit WinCE, dann kann Dir wahrscheinlich keiner mehr helfen. 
Das Ding ist elend komplex, schon eher eine ganze Batterie von Kanonen 
fuer diesen Anwendungsfall aber eben WinCE. Ansonsten liesse sich die 
Anwendung LOCKER mit einem ARM7 erledigen, z.B. LPC2468 und dann noch 
ein LPC2194 als 4-fach CAN Schnittstelle dazu. Es gibt ziemlich sicher 
kein Board / Chip der WinCE Unterstuetzung und gleichzeitig 5! CAN 
Schnittstellen anbietet. Die Bausteine mit mehr als 2 x CAN sind 
normalerweisse Gateways und da gibts was von NEC, und eben der genannte 
LPC2294 oder LPC2194.

Kann nur sagen, viel Erfolg!

Robert

von Holger E. (shizar)


Lesenswert?

also das mit den 5 CAN hat sich schon erledigt, müssen nurnoch 2 sein :)
habe jetzt recht lange gesucht und nichts wirklich vernünftiges gefunden 
:(
eine option wäre es natürlich ein board mit nur einer CAN-schnittstelle 
zu verwenden und noch eine extern dranzumachen, ich habe nur leider 
keine ahnung wie "schön" bzw. kompliziert soetwas ist.

von Stefan Kunz (Gast)


Lesenswert?

Hallo Holger

Wenn du etwas suchts mit 2xCAN dann würde ich den MPC5200 empfehlen.
Es gibt eine Firma so ein Modul im Hutschienenformat herstellt. Ob die 
auch Windows CE dafür anbieten müßtest du selber erfragen, Angeboten 
wird es nur mit Linux.
Eine alternative wäre ein ARM9 genauer der AT91SAM9263(nur 1 internen 
CAN Controller, kannst aber eine SJA1000 an den Parallelport 
anschließen), dafür kann ich dir auch den Namen einer Firma nennen und 
die vertreibt das Board auch mit Windows CE. Inwieweit dafür Treiber 
Angeboten werden kann ich dir leider nicht sagen.
Du könntest als alternatives Betriebssystem QNX Neutrino vorschlagen, 
welches für die beiden oben genannten Boards auch vorhanden ist.

Wenn du die Namen der Firmen wissen möchtest schick eine E-Mail an
felianblood@aol.com

Mit freundlichen Grüßen
Stefan Kunz

von Rico (Gast)


Lesenswert?

Hallo Leute

Leider bin ich hier nicht ganz so vom Fach wie ihr. Ich komme mehr von 
der Fahrzeugtechnik her und würde sehr gerne mehr von dem ganzen 
CAN-Bussystem kennenlernen. Wo ich auch suche werde ich mit endlosem 
Fachchinesisch zugetextet. Wie ein CAN ungefähr arbeiten und wie es 
aufgebaut ist, weiss ich. Wie kann ich jedoch damit arbeiten? Wie kann 
ich Informationen vom CAN lesen und wie kann ich eine Information auf 
den CAN-Bus legen? Gibt es Andwenderfreundliche Produkte auf dem Markt? 
Einfach programmierbare Steuergeräte, die Informationen auf den Bus 
lesen und schreiben können?

Freu mich auf euer Feedback!

Grüsse

von Josef B. (crunchix)


Lesenswert?

Hallo,

schau doch mal bei der A&D bei Siemens vorbei. Die haben wein Embedded 
System was CAN kann und ich meine dass da WinCE als OS läuft. Auf jeden 
Fall haben die bei den Touch Panels immer WinCE im Einsatz.

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.