Forum: Mikrocontroller und Digitale Elektronik Datenrate STM32F4


von Bastler (Gast)


Lesenswert?

Ich suche nach einer Lösung für ein Problem:
Von einer Logikschaltung kommen 4 16Bit breite Daten mit je 5MHz 
Datenrate.
Ein Mikrocontroller soll diese einlesen, verarbeiten und überprüfen, ob 
bestimmte Bitmuster vorliegen. Wenn ja, sollen die Daten über Ethernet 
ausgegeben werden.
Würde ein STM32F4 das schaffen? Wenn nein, Was dann? VHDL kann ich 
leider nciht und möchte daher bei einer in C programmierbaren Lösung 
bleiben.

von Daniel V. (danvet)


Lesenswert?

Bastler schrieb:
> Ich suche nach einer Lösung für ein Problem:
> Von einer Logikschaltung kommen 4 16Bit breite Daten mit je 5MHz
> Datenrate.
seriell oder parallel?

> Ein Mikrocontroller soll diese einlesen, verarbeiten und überprüfen, ob
> bestimmte Bitmuster vorliegen. Wenn ja, sollen die Daten über Ethernet
> ausgegeben werden.
> Würde ein STM32F4 das schaffen? Wenn nein, Was dann? VHDL kann ich
> leider nciht und möchte daher bei einer in C programmierbaren Lösung
> bleiben.
Dein Problem wäre für ein FPGA ideal lösbar.
Ohne jetzt weitere Kenntnisse von deinem Aufbau zu haben würde ich 
sagen, der STM32F schafft das.

von Arne (Gast)


Lesenswert?

Woran erkennst Du, dass es einen Wechsel zwischen Datenwort(t0) zu 
Datenwort(t1) gab? Hast Du ein Clocksignal?

von Bastler (Gast)


Lesenswert?

Die Daten kommen parallel und sind getaktet, also streng genommen 16Bit 
+ Takt (den der MC ausgeben soll)
VHDL kann ich eben nicht..

von Arne (Gast)


Lesenswert?

Der STM32F4 läuft mit 120MHz?
Dann hättest Du doch für die gesamten Aufgaben:
- Lesen der vier Ports
- Vergleich auf best. Bitmuster
- Senden ethernet

24 Takte zu Verfügung?

von Daniel V. (danvet)


Lesenswert?

168MHz, aber das bringt so viel auch nicht...
Ich revidiere meine Aussage von oben. der STM32F4 schafft das wohl eher 
nicht.

von Zorg (Gast)


Lesenswert?

Evtl. kannste das Kamerainterface oder das externe Speicherinterface 
zweckentfremden?

Zumindest könnte man damit die Daten per DMA in den Speicher schaufeln.

von Mehmet K. (mkmk)


Lesenswert?

Vielleicht mit 4 schwachbrüstigen MCU den Datenfluss kontrollieren und 
den STM32 für die Ausgabe einsetzen? So nach dem Motto "Divide et 
impera".

von Bastler (Gast)


Lesenswert?

Würde ein Beaglebone da besser funktionieren?

von Daniel V. (danvet)


Lesenswert?

Kannst du mal noch mehr Anforderungen nennen.
- Kommen die Daten im Dauerstrich? Wenn ja, wie lange?
- sonstiges

Ist dir bewußt, dass deine Daten gar nicht über eine 100MBit 
Ethernet-Leitung gehen?
4x16Bit x 5MHz = 320 MBit/s

von Bastler (Gast)


Lesenswert?

@ Daniel:
Wie bereits geschrieben:
4 16Bit breite Daten mit je 5MHz Datenrate. (ja, kontinuierlich)
Wenn ein bestimmtes Bitmuster vorliegt, sollen die Daten über 
Ethernetausgegeben werden. Also kein Streamen.

von Daniel V. (danvet)


Lesenswert?

Bastler schrieb:
> @ Daniel:
> Wie bereits geschrieben:
> 4 16Bit breite Daten mit je 5MHz Datenrate. (ja, kontinuierlich)
> Wenn ein bestimmtes Bitmuster vorliegt, sollen die Daten über
> Ethernetausgegeben werden. Also kein Streamen.

- Kann sich das gewünschte Bitmuster ändern?
- Kann es vorkommen, dass das Bitmuster immer zutrifft (und dadurch doch 
gestreamt werden soll)?
- muss der DSP noch was anderes machen?
- muss es über Ethernet laufen?

von Uwe (Gast)


Lesenswert?

Kann ich mit 4 Autos die 200Km/h fahren mit einer Stopuhr festellen ob 
Sie gleichzeitig durchs Ziel gekommen sind ?

Im Prinzip ja aber ...

Also was willst du machen ? Wieviel latenz darf das System haben ? wie 
viele Daten willst du nach dem Evnt versenden ? wie lange und wie 
schnell sollen die Daten versand werden ? was passiert wenn ein weiteres 
envent getriggert wird wärend noch ein altes Event abgearbeitet wird 
(abhängig von Latenz und Datenrate und Puffer) usw. ...

sag uns was du für Komponenten besitzt die die Daten liefern und wo Sie 
hinsollen und warum.

von Bastler (Gast)


Lesenswert?

Es soll jede Übereinstimmung der 4 Bitmuster am Eingang mit der 
entsprechenden (einstellbaren, aber im Betrieb unveränderlichen) 
Bitmaske gemeldet werden. Die Daten werden also nicht weitergereicht. 
Theoretisch kann ein Match bei jedem Taktzyklus auftreten, wenn das 
Ganze aber zu häufig (>=100x) hintereinander passiert liegt ein grober 
Fehler vor und es wird gestoppt.

von Gebhard R. (Firma: Raich Gerätebau & Entwicklung) (geb)


Lesenswert?

Der STM32F4 schafft das definitiv nicht. Möglich wäre es eventuell mit 
einem Blackfin von AD.

Grüsse

von Daniel V. (danvet)


Lesenswert?

Bastler schrieb:
> Es soll jede Übereinstimmung der 4 Bitmuster am Eingang mit der
> entsprechenden (einstellbaren, aber im Betrieb unveränderlichen)
> Bitmaske gemeldet werden. Die Daten werden also nicht weitergereicht.
> Theoretisch kann ein Match bei jedem Taktzyklus auftreten, wenn das
> Ganze aber zu häufig (>=100x) hintereinander passiert liegt ein grober
> Fehler vor und es wird gestoppt.

Im Ausgangspost sollten die Daten noch weitergereicht werden.
Jetzt ist nur noch Meldung gewünscht. Aha.
Also:
Alle 200ns kommen neue Daten (4x16 Bit) die sollen auf ein Bitmuster 
getestet werden, wenns passt dann Meldung.
Das riecht doch ganz stark nach FPGA (oder CPLD). Du solltest dich da 
unbedingt schlau machen.
Die Meldeleitungen können dann auf einen µC gehen, der die Meldungen 
sammelt und dann weitergibt.
Oder sollen die Meldungen mit möglichst wenig Zeitverzögerung 
weitergereicht werden?

von Uwe (Gast)


Lesenswert?

4 mal EOR mit 16Bit jeweils an den Enable eines von 4 Counter modulen 
mit 7 Bit. Clock der Counter auf Clk. Weitere Comperatoren an die 
Countermodule mit Greater or Equal 100.

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.