Forum: Mikrocontroller und Digitale Elektronik FlexRay: Verständnisproblem "Gesamt-Zyklus"


von Zottel (Gast)


Lesenswert?

Hi, an die wenigen die sich damit auskennen:

Ich benutze den Bosch E-Ray Core.

Frage:
Im Manual habe ich nirgends gefunden, wie man den Wert des maximalen 
Zyklus einstellt.

Also ein Gesamt-Zyklus setzt sich ja aus den Einzelzyklen zusammen.
Wenn ich jetzt nur 3 Einzelzyklen brauche, wie sag ich ihm das?
Oder geht er immer bis zur Grenze (63 Zyklen) ??
Das wäre ziemlich Zeitverschwendung...

Danke.

von Ralph (Gast)


Lesenswert?

Hallo

Der "Gesamt-Zyklus" ist nicht dynamisch veränderbar.

Das muss auch so sein da FlexRay ein Echtzeitfähiges Datenprotokoll ist.

Alle Nachrichten im Protokoll haben eine feste Position (Zeitschlitz ) 
und werden daran identifiziert. Zusätzlich kann es ein Zeitfenster in 
fester Größe für dynamische Inhalte geben.
Wichtig ist, das ALLE Flexraycontroller im gleichen Netzwerk eine 
identische Messagemap besitzen.


Eventuell kannst du die Loopdauer der Übertragung durch die Größe der 
Messagemap beeinflussen.


Gruß
Ralph

von Zottel (Gast)


Lesenswert?

> Der "Gesamt-Zyklus" ist nicht dynamisch veränderbar.
Was meinst du damit? "Dynamisch" = zur laufzeit?
Will ich ja auch garnicht. Alles wird vorher festgelegt.

> Zusätzlich kann es ein Zeitfenster in fester Größe für dynamische Inhalte
> geben.
Das weis ich. Statischer und/oder dynamischer Bereich...

Alle Nodes bekommen die gleiche Messagemap oder "Systemmatrix".


Aber meine Frage war: Ist es überhaupt einstellbar, nur eine bestimmt 
Anzahl (einzel)Zyklen zu durchlaufen?
Das ist irgendwie unlogisch wenn es dazu keine Eintragung zu machen 
wäre.
Ich gebe ja auch eine max. Anzahl Slots an. Also muss ich auch eine 
maximale Anzahl Zyklen angeben können.

von peterguy (Gast)


Lesenswert?

Die Zykluszeit wird für jeden FlexRay Cluster einmal eingestellt und 
bleibt dann immer gleich (Es sei denn, alle Knoten werden neu 
konfiguriert...). Ein häufiger Wert ist z.B. 5ms. Welches Register im 
ERay dafür zuständig ist weiß ich jetzt leider nicht auswendig.

Dann gibt es da noch den Cycle Counter, der von 0 bis 63 hochzählt. 
Daran kann man nichts "drehen", der Counter wird am Start eines jeden 
Cycles immer um 1 inkrementiert, bis er bei 63 überläuft und wieder bei 
0 beginnt.
Mit Hife dieses Counters kannst Du nun das sogenannte Cycle Multiplexing 
nutzen. Man kann so z.B. für verscheidene Cycles unterschiedliche 
Messagebuffer für den selben Slot konfigurieren. Wenn mich nicht alles 
täuscht, wird das Cyclemultiplexing im WRHS1 Register für jeden Message 
Buffer eingestellt. In der ERay Doku gibts aber auch eine detaillierte 
Erklärung dazu.
Es ist so z.B. möglich eine Botschaft in einem bestimmten Slot nur jeden 
4. Cycle zu versenden. In den übrigen Cycles kann der Slot dann 
anderweitig verwendet werden.

Hoffe, daß Dir das weiterhilft :-)
Gruß Peter

von Zottel (Gast)


Lesenswert?

> Cycle Counter, der von 0 bis 63 hochzählt.
> Daran kann man nichts "drehen", der Counter wird am Start eines jeden
> Cycles immer um 1 inkrementiert, bis er bei 63 überläuft und wieder bei
> 0 beginnt.

Alles Klar. Das wollte ich wissen.
Erscheint mir komisch, dass man das nicht einstellen kann. Ist das nicht 
Verschwendung von Zeit?

von Ingo E. (ogni42)


Lesenswert?

Wenn ich das so lese, werde ich verstäkrt an den TIP (Tranputer Image 
Processing) - Bus von Parsytec von 1990 erinnert. Der funktionierte 
genau so.

von Peter W. (peterguy)


Lesenswert?

Zottel wrote:

> Alles Klar. Das wollte ich wissen.
> Erscheint mir komisch, dass man das nicht einstellen kann. Ist das nicht
> Verschwendung von Zeit?

Verschwendung von Zeit? Wieso denn? Wenn man möchte kann man ja in jedem 
Cycle senden. In vielen (vor allem kleineren) FlexRay Clustern wird der 
Cycle Counter Wert von den Knoten garnicht ausgewertet, weil die Daten 
in jeder Runde gesendet werden...
Der Cycle Counter ist ja eigentlich nur interessant, wenn man mit Cycle 
Multiplexing arbeiten möchte / muss.

>Wenn ich das so lese, werde ich verstäkrt an den TIP (Tranputer Image
>Processing) - Bus von Parsytec von 1990 erinnert. Der funktionierte
>genau so.
Das kann gut sein. Im Prinzip sind alle seriellen Busse zumindest 
teilweise einander ähnlich. Wenn man sich einmal mit einem Bus ausgiebig 
beschäftig hat ist der Aufwand nicht mehr groß, sich in einen Neuen 
reinzudenken :-)

von Zottel (Gast)


Lesenswert?

> Verschwendung von Zeit? Wieso denn? Wenn man möchte kann man ja in jedem
> Cycle senden.
Stimmt. Mit dem Base Cycle und dem Cycle repitition geht das.

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.