Forum: Mikrocontroller und Digitale Elektronik CAN Identifier ueber Atmel Flip


von David (Gast)


Lesenswert?

Hallöchen zusammen


Ich arbeite an einem Projekt, da gibt es verschiedene (3 bis 5) 
Sensormodule, die über einen CAN-Bus mit dem Steuersystem kommunizieren.
Die Sensormodule sind immer identisch, messen jedoch unterschiedliche 
Messwerte.
Ich möchte jedem Sensormodul einen bestimmten Grund-Identifier zuweisen 
und jedem Senor auf den Modulen einen zusätzlichen Identifier der 
zusammen mit dem Grund-Identifier einen einzigartigen Identifier ergibt 
der aussagt von welchem Modul und welchem Sensor die Nachricht kommt.

Soweit so gut....ich hoffe Ihr habt dies verstanden :P

Da nun die Software aller Sensormoudle bis auf die Identifier gleich ist 
möchte ich auf alle Module dieselbe Software (Firmware) herunterladen 
können.

Nun meine Frage: Kann ich dem Atmel Flip irgendwie mitteilen welchen
Grund-Identifier der CAN-Knoten hat auf den ich die Firmware 
herunterladen möchte?
So das der Grundidentifier beim Download des Programes definiert wird, 
während die Sensorspezifischen Identifier schon in der Software 
definiert wurden und diese beiden ID zusammen einen Identifier ergeben?

Vielleicht könnt ihr mir helfen diese Frage zu benatworten und sei die 
Anwort nur das es nicht möglich sei, wäre jede Hilfe erwünscht.


Gruss David

von Gast (Gast)


Lesenswert?

nöh, es gibt nur einen identifier im can, nämlich die node-ID - du 
könntest es doch aber über LMT- bzw. LSS-Service machen und die Geräte 
über die vendor-ID und serien-Nr ansprechen

kannst Du die software für die geräte programmieren "wie du willst"?

von Gast (Gast)


Lesenswert?

ansonsten eine hohe Node-ID, dies in zwei kleine Zahlen teilen und 
bitweise verunden!

von Gast (Gast)


Lesenswert?

also mit bitweise verunden meine ich, dass flip die firmware an "einen 
beliebigen" node sendet und du in deinen sensoren die niederwertigsten 
bits ausblendest, dein node nimmt die message also an obwohl sie nicht 
für ihn ist - eine saubere lösung ist das aber nicht :(

von David (Gast)


Lesenswert?

Tach Gast...

Danke für deine Hilfe, die Idee mit dem LS-Service ist schon mal ganz 
hilfreich.
Das es nur einen Identifier pro CAN-Nachricht gibt ist mir bekannt, doch 
ich dacht mir ich könne die Bits aufteilen, so das der erste Teil sagt 
von welchem Knoten die Nachricht kommt und der zweite Teil von welchem 
Sensor:

Bsp. 11 Bit ID
001'0000'0001 => Knoten 1 Sensor 1
001'0000'0010 => Knoten 1 Sensor 2
010'0000'0001 => Knoten 2 Sensor 1
usw.

Der Plan war nun das ich im Flip vor dem Programmdownload auf den uC die 
oberen drei Bits der ID bestimmen kann. Das Zusammensetzen dieser drei 
Bits mit den Restlichen 8 könnte ich per Software lösen. Doch wie es 
scheint kan dies mit dem Flip nicht gelöst werden.
Ich habe auch schon Lösungen gesehen, in denen auf dem Gerät ein 
"Dip-Switch" angebracht wurde um die ID einzustellen, dies wäre von mir 
aus die beste Lösung, doch das ist nicht die Meinung meines Chefs.

von David (Gast)


Lesenswert?

Guten Tach


Habe die Lösung meines Problems gefunden.
Wie ich noch nicht erwähnt habe arbeite ich mit einem AT89c51cc03 der 
hat einen CAN-Bootloader.
Wie der Name CAN-Bootloader sagt, kommuniziert das Flip also mit dem uC 
über ein CAN Protokoll.
Da gibt es fixe Befehel die über die CAN-Frames versendet werden, jeder 
der Befehle benötigt hat einen bestimmten Identifier und genau diese 
Identifier kann der Benutzer über das Flip verändern.
Defaultmässig sind die Identifier vom Hersteller vorgegeben, um eine 
erstmalig Verbingung zu gewährleisten.
Der Identifier wird über das Flip unter CRIS eingestellt.
Für nähere Informationen empfehle ich das Datenblatt zu lesen, es war 
für mich etwas kompliziert, doch schlussendlich habe ich es begriffen.

Adresse des Datenblatt: 
http://www.atmel.com/dyn/resources/prod_documents/doc4251.pdf


Vielleicht konnte ich jemandem mit einem ähnlichen Problem helfen :P
Für weiter Fragen stehe ich zur Verfügung


Gruss David

von Robert W. (rweber)


Lesenswert?

Hallo,

noch praktischer wird es, wenn du fuer jede node das Node Number Byte 
(NNB) auf einen eindeutigen Wert (ungleich 0xff) setzt. Dann kannst Du 
jede Node einzeln ansprechen, ohne dass sich deine Software 
unterscheiden muss.

Gruss,
rweber

von C. L. (calle)


Lesenswert?

Hallo Ihr!

Nicht direkt zum Thema, aber ihr seit möglicherweise die richtgen!!

Ich suche eine Möglichkeit den AT89C51CC03 PLC44 über CAN zu
programmieren.
AT89C51CC03UA-Typ mit Flip funktioniert ja bereits. Jetzt kommt ein
Projekt mit 2 CA-Typen verbunden über CAN Bus. Schön wäre es, mit Flip
jetzt diese Stationen neu zu proggen.
Wie geht das genau, gibt es eine gute und richtige Anleitung, welches
CAN Interface (nicht teuer) oder Selbsbaulösung kann ich verwenden.
Hard- und Softwareerfahrung habe ich.

Alles was ich bisher gelesen/gegooglet habe, führt nicht zum Ziel, so
das ich das tiefgründig und durchgängig verstehe!
Auch die Atmel Beschreibung geht nicht auf die Hardware sondern mehr auf
Protokolle ein.
Jeder, der damit rumprobiert, schreibt leider nicht, wie es genau geht.

Kannst mir jemand da mal helfen?

Can Interface benötige ich auch, hat da jemand was zu empfehlen oder was 
zu verkaufen?, sollte aber mit FLIP funktionieren??

@David
Kannst Du mich mal aufdaten, per PM und dann vielleicht telef.??
Oder jeder andere auch.

Dank Euch!

Carsten

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.