STM32: CAN: Nachbarn Knoten (oder Id) identifizieren

Gast #3508774
Lesenswert?

Ich muss  auf den Display Wetterknoten und auch die Daten andere Knoten 
anzeiben. Ich weisst nicht wie ich uberhaupt anfangen soll. Ich bin GANZ 
NEU IM MIKROCONTROLLER. Habe ich schon Can configuriert und ausserdem 
die Sensoren . Aber moechte eine kleine einleitung haben , wie ich 
Nachbarnknoten lesen kann
Gast #3509077
Lesenswert?

Wetter zu verknoten bringt nichts. Damit  muss man nicht erst anfangen.
Nachbarknoten liest man, wenn man es nicht so erkennt, mit einer Brille.
Wenn das nicht geht, gibt es Ferngläser oder Teleskope.

Ansonsten suche Dir bei Ebay eine Kristallkugel. Wenn Du uns schon keine 
genauen Informationen geben kannst, bringt das eventuell etwas.

Argh!
Gast #3509094
Lesenswert?

Ich glaub was der Kollegedir sagen möchte, ist dass die 
Problembeschreibung zu wünschenübrig lässt. Wenn du genau schreibst was 
du vor hast und was die Ausgangsbedingungen sind, lässt sich bestimmt 
auch helfen.
(Firma: keine) #3509777
Lesenswert?

dng schrieb:
> ich habe kein Idee,wie ich die Id von nachbarn
> lesen kann

Das hat hier keiner, weil niemand weiß was du überhaupt vor hast, was 
diese ominösen "Nachbarn" sind und um was es überhaupt geht.

Also entweder schreibst du hier ein paar Zeilen mehr zu deinem Problem 
oder aber du gehst in irgendein Esotherik-Forum, die können aus wagen 
Angaben meist Ersteunliches herauslesen.
Gast #3509942
Lesenswert?

hier ist der Projekt

7 PROJEKT: WETTERSTATION
In diesem Projekt soll ein Netzwerk aus Wetterknoten aufgebaut werden. 
Jeder Wetterknoten
misst die lokalen Wetterdaten Temperatur, Luftdruck, Feuchte und die 
Beschleunigung
(Erdbebendetektion).
Jede Praktikumsgruppe entwickelt ihren eigenen Wetterknoten und klinkt 
sich damit in
das CAN-Netz ein um dort die gewonnenen Wetterdaten zu publizieren.
7.1 Aufgabenstellung
1. Entwickeln sie einen Knoten eines Wettervorhersage-Systems indem sie 
eine Anwendung
programmieren, die die Daten wie Temperatur, Luftfeuchte und Luftdruck
aus den entsprechenden I2''C-Sensoren ausliest.
2. Verbinden sie ihren Knoten mit dem CAN-Bus und publizieren sie die 
Wetterdaten
innerhalb des Netzwerks.
Senden sie ihre Sensor-Daten im Sekundentakt über den CAN-Bus. Beachten 
sie dabei
unbedingt die im nächsten Abschnitt beschriebene Aufteilung der 
CAN-Message-ID
in eine 7bit Knoten-ID und eine 4bit Sensor-ID.
Die Knoten-ID ist die Nummer ihrer Gruppe und identifiziert ihr 
Entwicklungsboard
im Netz, die Sensor-ID können sie aus folgender Tabelle erkennen:
Sensor-ID Sensor-Datenformat
0 Temperatur in 0.1°C, int16_t [msb|lsb]
1 Luftdruck in 0.1 hPa, int16_t [msb|lsb]
2 Rel. Luftfeuchte in 0.1 %, int16_t [msb|lsb]
3 Beschleunigung in 0.001 g, int16_t [msb|lsb] x 3 für X-,Y-,Z-Achse
Tabelle 3: Sensor-IDs und zugehörige Datenformate
3. Zeigen sie auf dem Display ihres Wetterknoten auch die Daten der 
anderen Knoten
an.
4. Implementieren sie eine Erdbeben-Frühwarneinrichtung, indem sie bei 
ungewöhnlichen
Beschleunigungen auf ihren Nachbarknoten eine Warnung ausgeben.



Ich habe schon 1. und 2. gemacht, jetzt  bin ich bei der 3.


Die Nachrichten werden von alle bekommt, und ich muss auf dem Display 
zeigen was ich von den andere bekommt habe
Gast #3509972
Lesenswert?

dng schrieb:
> Ich habe schon 1. und 2. gemacht, jetzt  bin ich bei der 3.

Und das funktioniert wirklich wie es soll?
Wenn Du die Aufgabe verstanden hast, dann verstehe ich nicht warum Du 
hier fragst.

>Beachten sie dabei unbedingt die im nächsten Abschnitt beschriebene >Aufteilung 
der CAN-Message-ID in eine 7bit Knoten-ID und
>eine 4bit Sensor-ID.
>Die Knoten-ID ist die Nummer ihrer Gruppe und identifiziert ihr
>Entwicklungsboard

Wo ist jetzt das Problem?
Wenn 1. und 2. fertig sind sendet Dein Board Deiner Gruppe einmal pro 
Sekunde vier Botschaften mit eindeutiger Kennung.

Und andere Knoten erkennt man an Ihrer Knoten-ID.
Gast #3509988
Lesenswert?

Du kannst auf dem CAN-Bus nicht erkennen, wer Dein Nachbar ist (also 
welches Gerät als nächstes am CAN-Kabel angeschlossen ist).

Das Einzige, was Du machen kannst:
Du kannst in Deinem Programm die Knoten-ID xxxx für Deinen rechten 
Nachbarn und die Knoten-ID yyyy für Deinen linken Nachbarn fest 
vorgeben. Und dann bei empfangenen CAN-Messages anhand deren Knoten-ID 
entscheiden, ob es der rechte oder linke Nachbarknoten ist.

Viele Grüße, Stefan
Gast #3510150
Lesenswert?

dng schrieb:
> Ich habe schon 1. und 2. gemacht, jetzt  bin ich bei der 3.
>
>
> Die Nachrichten werden von alle bekommt, und ich muss auf dem Display
> zeigen was ich von den andere bekommt habe

wenn das wirklich der fall, ist was ich stark bezweifel, denn solltest 
du doch bereits so viel über den can bus gelernt haben, dass du weißt, 
dass es sich um ein broadcastsystem handelt. das wiederum bedeutet, dass 
du deine nachrichten, genau wie alle anderen knoten an alle versendest. 
die nachrichten sind inhaltsadressiert. du kannst also über die id 
eindeutig ausmachen welche und in eurem fall wessen daten darin sind.
jetzt hast du mehrere möglichkeiten.
1) akzeptanzfilter
2) im programm prüfen ob die nachricht interessant ist oder nicht
Gast #3510228
Lesenswert?

2...................

Senden sie ihre Sensor-Daten im Sekundentakt über den CAN-Bus. Beachten
sie dabei
unbedingt die im nächsten Abschnitt beschriebene Aufteilung der
CAN-Message-ID
in eine 7bit Knoten-ID und eine 4bit Sensor-ID.
Die Knoten-ID ist die Nummer ihrer Gruppe und identifiziert ihr
Entwicklungsboard
im Netz, die Sensor-ID können sie aus folgender Tabelle erkennen:
Sensor-ID Sensor-Datenformat
0 Temperatur in 0.1°C, int16_t [msb|lsb]
1 Luftdruck in 0.1 hPa, int16_t [msb|lsb]
2 Rel. Luftfeuchte in 0.1 %, int16_t [msb|lsb]
3 Beschleunigung in 0.001 g, int16_t [msb|lsb] x 3 für X-,Y-,Z-Achse



Bei der  2. habe nur ein ganz Message-ID von 11 bit gesendent ,und mein 
Knote numer ist 5, aber eine andere Schwerigkeit, dass ich habe, ist zu 
teilen :

Knote und Sensor
ich weißt schon dass ich kann  mit

Node-ID=(Message-ID &0xFF0)>> 4

Sensor-ID=(Message-ID & 0x0F)


schreiben, aber ich gehe nicht vohran


Danke für die Hilfe

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