Forum: Mikrocontroller und Digitale Elektronik STM32F2xxxx mit IEEE1588


von Jonas W. (johnnywild)


Lesenswert?

Hallo alle zusammen,

dies ist mein erster Forumbeitrag. Mal schauen wie es läuft.

ich habe ein kleines Problem und hoffe wir können das zusammen lösen ;-)

Ziel ist es mit deinem ARM®Cortex™-M3 32 Familie STM32F20x, IEEE1588 
fähiges fähige Ethernet Verbindung Netz Aufzubauen.

Der bisherige Ansatz war es, mit einer weiteren Platine, welche den 
Ethernet-Anschluss und den PHY zu Dekodierung (PCS, PMD) beinhaltet und 
dies mit dem STM32 zu verbinden.

Nun hab ich gehört das beim dem STM32F20x auch IEEE 1588 ohne 
Vorhandensein eines PHY ermöglicht werden kann. Stimmt das? Und wenn 
wie? :-/
z.B. http://www.armkits.com/product/devkit1207.asp

Meine Zweite Frage wäre wie die Adressierung der PHYs funktioniert
und wie viele PHYs möglich sind?

Bestimmt kommen noch weiter Fragen im Laufe meines Projekts dazu, aber 
erstmal zum warm werden...

von Jörn K. (joern)


Lesenswert?

Hallo Jonas,

> Ziel ist es mit deinem ARM®Cortex™-M3 32 Familie STM32F20x, IEEE1588
> fähiges fähige Ethernet Verbindung Netz Aufzubauen.

Was für eine Zeitauflösung willst du erreichen?

> Nun hab ich gehört das beim dem STM32F20x auch IEEE 1588 ohne
> Vorhandensein eines PHY ermöglicht werden kann. Stimmt das? Und wenn
> wie? :-/

Mhhh. Da die IEEE1588 Pakete über das Ethernet reinkommen und der STM32 
nur eine MAC und keinen PHY integriert hat, wird das nicht 
funktionieren.

> Meine Zweite Frage wäre wie die Adressierung der PHYs funktioniert
> und wie viele PHYs möglich sind?

Normalerweise (ohne zusätzlichen Aufwand bzw. externen ETH Switch) kann 
man pro MAC genau einen PHY anschließen, somit ist die Adressierung 
recht einfach.

von Jonas W. (johnnywild)


Lesenswert?

Danke für die schnelle Antwort ;)

>> Ziel ist es mit deinem ARM®Cortex™-M3 32 Familie STM32F20x, IEEE1588
>> fähiges fähige Ethernet Verbindung Netz Aufzubauen.
>
> Was für eine Zeitauflösung willst du erreichen?

Das ganze soll schon im micro-sek. ablaufen.
Am ende sollen zwei Geräte miteinander verbunden und die Geschw. der 
Synchronisation gemessen werden.

Wegen der Adressierung bin ich mir nicht ganz im klaren.
(Grob aus dem Gedächtnis)war die Eingangsadr. 00000 - 11111 = 32 =~30 
Verschiedene Anschlüsse von PHYs möglich.
Genaueres kann ich erst morgen in Erfahrung bringen, aber so war bislang 
mein Gedanken.

von Jörn K. (joern)


Lesenswert?

> Das ganze soll schon im micro-sek. ablaufen.
> Am ende sollen zwei Geräte miteinander verbunden und die Geschw. der
> Synchronisation gemessen werden.

Dann wirst du wahrscheinlich auf einen PHY der IEEE1588 unterstützt 
zurück greifen müssen, um das hinzubekommen.

Schau dir mal das Video auf der Texas Seite an:

http://www.ti.com/product/tlk110

So ab Minute 17. Dort werden die verschiedenen Möglichkeiten für 
IEEE1588 aufgezeigt. Die Qualität ist ziemlich mies. Ich hab die Seite 
schonmal in gut gesehen, vielleicht finde ich sie noch.

> Wegen der Adressierung bin ich mir nicht ganz im klaren.
> (Grob aus dem Gedächtnis)war die Eingangsadr. 00000 - 11111 = 32 =~30
> Verschiedene Anschlüsse von PHYs möglich.
> Genaueres kann ich erst morgen in Erfahrung bringen, aber so war bislang
> mein Gedanken.

Die Adressierung läuft über das MIIM. Mit diesem kann man mehrere PHY 
ansprechen. Die vielen PHY Adressen nützen dir aber nicht viel, wenn du 
an deinem µC nur eine MII/RMII Schnittstelle hast.

von Johnnywild (Gast)


Lesenswert?

.
> Dann wirst du wahrscheinlich auf einen PHY der IEEE1588 unterstützt
> zurück greifen müssen, um das hinzubekommen.

Genau, habe mir auch schon paar (gibt nicht so viel) rausgesucht. Im 
Moment den  PHY DP83640TVV von Texas Instrument

> http://www.ti.com/product/tlk110
>
und vielen dank fuer die Seite.
Wegen den Adressierungen am µC recherchieren ich mal weiter wie genau 
des funktioniert.

Wenn weitere Probleme auftauchen werde ich schreiben.
Auch meine endgültige Zusammenstellung wenn ich sie endlich habe werde 
ich posten .
Sonst spätestens bei der Programmierung :-P

von Adib (Gast)


Lesenswert?

Hast du dir den st802rta1 auch von ST mal angeschaut?

adib.

von Jörn K. (joern)


Lesenswert?

> Genau, habe mir auch schon paar (gibt nicht so viel) rausgesucht. Im
> Moment den  PHY DP83640TVV von Texas Instrument

Das war auch der erste der mir eingefallen ist.

Micrel hat seit Neuestem auch was im Programm:

http://www.ethersynch.com/

von Jonas W. (johnnywild)


Lesenswert?

>Hast du dir den st802rta1 auch von ST mal angeschaut?

Weiß jetzt nicht genau was du meinst.
Könntest du mir bitte einen Link geben?


> Das war auch der erste der mir eingefallen ist.
>
> Micrel hat seit Neuestem auch was im Programm:
>
> http://www.ethersynch.com/

Prinzipiell nicht schlecht doch sprengt das den Kostenrahmen.
Der Unterschied zu 1588 fähigen PHYs und Normal PHYs besteht doch nur in 
der GPIO Schnittstelle für "Real Time Action" ?
(http://www.ti.com/lit/ds/snls335a/snls335a.pdf) Neueres Modell des 
DP83640

@ Jörn Kaipf

Ich habe mir Das Video angeschaut.
Habe ich es Richtig verstanden, dass es auch eine Softwarelösung zum 
IEEE1588 gibt (?? mit einem nicht IEEE1588 fähigen PHY ??), welche aber 
nicht die schnell Zeiten erreicht, die ein für 1588 ausgelegt PHY 
erreichen kann.

Das schnelleren Zeiten dadurch erreicht, werden das der PTP Stack und 
1588 Zeit-syn. im PHY integriert sind.

von Anonymous (Gast)


Lesenswert?

Jonas Widrat schrieb:
> Prinzipiell nicht schlecht doch sprengt das den Kostenrahmen.
> Der Unterschied zu 1588 fähigen PHYs und Normal PHYs besteht doch nur in
> der GPIO Schnittstelle für "Real Time Action" ?

Fast. 1588-PHYs haben vor allem Zeitstempeleinheiten in Hardware 
integriert, die je nach Paket die Zeitstempel aufnehmen, bzw. in das 
Ethernetpaket einfügen.

Jonas Widrat schrieb:
> Habe ich es Richtig verstanden, dass es auch eine Softwarelösung zum
> IEEE1588 gibt (?? mit einem nicht IEEE1588 fähigen PHY ??), welche aber
> nicht die schnell Zeiten erreicht, die ein für 1588 ausgelegt PHY
> erreichen kann.

Ja, du kannst 1588 auch rein in Software machen.

Jonas Widrat schrieb:
> Das schnelleren Zeiten dadurch erreicht, werden das der PTP Stack und
> 1588 Zeit-syn. im PHY integriert sind.

Nein, der Stack zur Synchronisierung ist nicht bestandteil des PHYs. 
Lediglich das Parsen der eingehenden Pakete auf 1588-Pakete und 
anschließendes Zeitstempeln geschieht in HW. Das Auslesen und -werten 
muss der Stack erledigen.

von Anonymous (Gast)


Lesenswert?

Nachtrag:

Jonas Widrat schrieb:
> Ziel ist es mit deinem ARM®Cortex™-M3 32 Familie STM32F20x, IEEE1588
> fähiges fähige Ethernet Verbindung Netz Aufzubauen.

ST hat doch schon eine APP-Note zu genau diesem Thema mit Auswertung und 
Firmware veröffentlicht:
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/APPLICATION_NOTE/DM00030825.pdf

Ist zwar nicht für STM32F20x, aber kann man sicher adaptieren.

von Jonas W. (johnnywild)


Lesenswert?

> ST hat doch schon eine APP-Note zu genau diesem Thema mit Auswertung und
> Firmware veröffentlicht:
> 
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/APPLICATION_NOTE/DM00030825.pdf
>
> Ist zwar nicht für STM32F20x, aber kann man sicher adaptieren.

Das stimmt, aber sie haben keinen 1588 fähigen PHY verbaut.
Sie haben den ST802RT1.
Heißt dies, dass sie eine Reine 1588 Software Lösung genommen haben?

Dies ist möglich, aber gibt Abstriche in der Geschwindigkeit!

Oder sehe ich das falsch ?

von Anonymous (Gast)


Lesenswert?

Jonas Widrat schrieb:
> Das stimmt, aber sie haben keinen 1588 fähigen PHY verbaut.
> Sie haben den ST802RT1.

Stimmt. Brauchen sie aber auch nicht, denn der STM32F10x hat die 
1588-Einheit wie auch der STM32F20x als Hardware im MAC eingebaut. Wenn 
das der Fall ist, brauchst du keine 1588-HW mehr im PHY.

Jonas Widrat schrieb:
> Heißt dies, dass sie eine Reine 1588 Software Lösung genommen haben?

Nein. Hardware im Prozessor wurde genutzt, siehe App-Note.

Jonas Widrat schrieb:
> Dies ist möglich, aber gibt Abstriche in der Geschwindigkeit!
>
> Oder sehe ich das falsch ?

Schau dir die APP-Note insbesondere auf Seite 33 an. Dort ist eine 
Abweichung von < 100ns vom Master genannt.

von johnnywild (Gast)


Lesenswert?

oh man da lag ich ja voll daneben!

Also werden keine 1588 PHYs  fuer uC die einen 1588 Mac besitzen 
benoetigt?
Besteht nur noch die frage warum  ...  werde mich morgen mal auf die 
suche nach der Loesung machen. Leider findet man wenig Nachschlagwerke 
zu den Themen.

von Anonymous (Gast)


Lesenswert?

johnnywild schrieb:
> Also werden keine 1588 PHYs  fuer uC die einen 1588 Mac besitzen
> benoetigt?

Genau.

johnnywild schrieb:
> Besteht nur noch die frage warum  ...

Bei der 1588-Geschichte geht es darum, den Zeitpunkt wann ein Paket auf 
die Leitung geht bzw. von der Leitung kommt so präzise und 
wiederholbar(!) wie möglich zu bestimmen. Wenn es keinen Jitter in der 
Software gäbe (TCP-IP-Stack, IEEE-1588-Stack, Betriebssystem), man also 
und man sicherstellen könnte, dass es jedesmal exakt gleich lange dauern 
würde bis ein eingehendes bzw. ausgehendes IEEE-1588-Paket bearbeitet 
wurde, bräuchte man keine Hardware. Die Hardware dient dazu, den Jitter 
in den Bearbeitungszeiten so gering wie möglich zu halten. Je näher das 
am physikalischen Medium geschieht, desto weniger Möglichkeiten für 
Jitter gibt es. Wenn die CPU eine 1588-Einheit im MAC besitzt ist die 
Genauigkeit in der genannten Größenordnung von 100 ns. Mit einem 
1588-Phy kann der Jitter nochmals verringert werden (siehe auch 
http://www.ti.com/lit/an/snla100/snla100.pdf).

Zu beachten ist dabei allerdings, dass man für 
sub-mikrosekunden-Genauigkeit auch noch 1588-fähige Switches benötigt, 
sonst erreichst du die nicht! Durch die Store and forward Technik 
gewöhnlicher Switches bekommst du doch wieder Jitter in den Datenpfad, 
der zwar durch Filter im Stack gemindert wird, aber oft nicht gänzlich 
verschwindet. Ganz schlimm wird es bei kaskadierten Switches!
Es ist also zu bedenken, dass nicht nur die Knoten 1588 benötigen, 
sondern auch die Switches.

An Dokumentation gibt es eigentlich einiges im Netz, einfach mal deine 
lieblings-suchmaschine bemühen. Zudem gibt es oft von Herstellern 
1588-fähiger Bausteine App-Notes u.Ä. die einem weiterhelfen.

von johnnywild (Gast)


Lesenswert?

schon einmal vielen Dank fuer die Erklaerung.
kannst du mir sagen wie genau sich ein Jitter verhaelt, wenn mehrere 
Stoerfaktoren sich in einem Netz befinden. Addieren sich, waechst der 
Jitter exponential oder bleibt er gleich.

So, ich werde dann mal sammeln was ich hier gehoert habe und schauen was 
ich mir dann zusammenstellen kann. Ziel ist es, dass ich diese woche 
noch bestellen kann.
Aber heute heisst es erstmal Buecher welzen. :-)

Wahrscheinlich wird es auf den uC im ersten genannten Post, aber mit 
anderem PHY hinauslaufen.

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.