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.
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.
Woran erkennst Du, dass es einen Wechsel zwischen Datenwort(t0) zu Datenwort(t1) gab? Hast Du ein Clocksignal?
Die Daten kommen parallel und sind getaktet, also streng genommen 16Bit + Takt (den der MC ausgeben soll) VHDL kann ich eben nicht..
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?
168MHz, aber das bringt so viel auch nicht... Ich revidiere meine Aussage von oben. der STM32F4 schafft das wohl eher nicht.
Evtl. kannste das Kamerainterface oder das externe Speicherinterface zweckentfremden? Zumindest könnte man damit die Daten per DMA in den Speicher schaufeln.
Vielleicht mit 4 schwachbrüstigen MCU den Datenfluss kontrollieren und den STM32 für die Ausgabe einsetzen? So nach dem Motto "Divide et impera".
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
@ 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.
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?
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.
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.
Der STM32F4 schafft das definitiv nicht. Möglich wäre es eventuell mit einem Blackfin von AD. Grüsse
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.