Hallo, ich möchte einen FPGA zu einem Schnittstellenwandler mit ein ganz wenig Logik machen und weis nicht wie ich den FGPA Dimensionieren soll. Also wie viele Logikzellen der FGPA haben muss. Gibt es da Faustformeln? Was ich gelesen habe ist, dass man nicht mehr als 50% der Logikzellen belegen soll, sonnst kann es Probleme beim Routen geben. Aber das bringt mich nicht mal weiter, ich habe noch immer keine Hausnummer. Ich möchte gerne 32 RS485 Busse (langsame), mit einer Kommunikation von ca. 20Byte (6Nutzbyte) pro Zyklus, integrieren. Die über einen RS485Bus/Ethernet oder USB befeuert werden. Wie kann ich jetzt grob Abschätzen wie „stark“ der FGPA sein sollte? Vielen Dank Samuel
@ Samuel Schmidt (Firma Student) (snowyrain) >ich möchte einen FPGA zu einem Schnittstellenwandler mit ein ganz wenig >Logik machen und weis nicht wie ich den FGPA Dimensionieren soll. Also Di Aufgabe klingt eher nach CPLD. Was für ein Schnittstelle ist es denn? >wie viele Logikzellen der FGPA haben muss. Gibt es da Faustformeln? Was Mehr oder weniger. >ich gelesen habe ist, dass man nicht mehr als 50% der Logikzellen >belegen soll, sonnst kann es Probleme beim Routen geben. Käse. >Ich möchte gerne 32 RS485 Busse (langsame), mit einer Kommunikation von >ca. 20Byte (6Nutzbyte) pro Zyklus, integrieren. Die über einen >RS485Bus/Ethernet oder USB befeuert werden. Wie kann ich jetzt grob >Abschätzen wie „stark“ der FGPA sein sollte? FPGA? CPLD? Das macht man wahrscheinlich besser mit einem kleinen uC. Und meinst du wirklich 32 Busse? Oder eher einen RS485 Bus mit 32 Teilnehmern? MFG Falk
Hallo, vielen Dank für die Antwort. Ja 32Busse mit je einem Teilnehmer. Klingt komisch OK, warum also: - Teilnehmer sind sehr langsam. - Parallelität der Ausgaben und Eingaben. (Ich habe so ein Abbild des Systems von einem Zeitpunkt) Ich sehe echt Probleme einem uC bei zubringen 32Teilnehmer in N ms abzufragen. Als Bussystem geht es nicht. Also muss ich es parallel machen. Da sehe ich beim Senden keine Probleme, da würde ein Timer reichen, aber beim Empfangen habe ein keine Garantierten Antwortzeiten, bräuchte also 32Timer (oder einen Timer und 32 Counter oder einen Mix(wie auch immer). Oder übersehe ich einen Lösungsansatz? Gruß Samuel
> Oder übersehe ich einen Lösungsansatz? ...32 kleine UARTS (gibt's z.B. den miniUART von Ovidiu Lupa auf OpenCores.org), 'nen Adressdekoder und ein wenig Interruptlogik im FPGA (ein FIFO wäre bei wirklich langsamen RS485-ern schon optional), dazu ein Controller entweder mit internem USB oder mit UART und externem FTDI-Chip? Zur Abschätzung, wie gross das FPGA sein muss: einfach mal in VHDL zusammenschustern und durch die Toolchain des Herstellers Deiner Wahl drehen. Soviel Zeit muss sein.... Grüße aus Berlin-Tempelhof, Stefan
@ Samuel Schmidt (Firma Student) (snowyrain) >Ja 32Busse mit je einem Teilnehmer. Klingt komisch OK, warum also: Dann ist es kein Bus mehr. >- Teilnehmer sind sehr langsam. Umso mehr spricht für einen uC, z.B. AVR. >- Parallelität der Ausgaben und Eingaben. (Ich habe so ein Abbild des >Systems von einem Zeitpunkt) Wie parallel brauchst du es denn WIRKLICH? 1ns, 1us, 1ms? >Ich sehe echt Probleme einem uC bei zubringen 32Teilnehmer in N ms >abzufragen. Wie gross ist N? Wieviel bytes werden denn dabei versandt? > Als Bussystem geht es nicht. Sagt wer? > Also muss ich es parallel >machen. du bist gerade dabei, dich zu verrennen, weil du nciht über den Tellerand schauen WILLST! >Oder übersehe ich einen Lösungsansatz? Höchstwahrscheinlich. Sag mal lieber konkret, um was für Zielgeräte es sich handelt und wie die kommunizieren. @ Stefan Wimmer (wswbln) >...32 kleine UARTS (gibt's z.B. den miniUART von Ovidiu Lupa auf >ein Controller entweder mit internem USB oder mit UART und externem >FTDI-Chip? >Zur Abschätzung, wie gross das FPGA sein muss: einfach mal in VHDL >zusammenschustern und durch die Toolchain des Herstellers Deiner Wahl >drehen. Soviel Zeit muss sein.... Richtig. Aber von fast allen Herstellern gibt es massgeschneiderte UARTs für ihre FPGAs, da passen locker 32 Stück in die kleineren rein. http://www.xilinx.com/support/documentation/application_notes/xapp223.pdf MfG Falk
Hallo Vielen Dank für die Antworten, ich versuche auf alles zu Antworten. Ich denke mal ich gehe erst einen Schritt zurück (Also nicht Dimensionierung, sonders Systemwahl) Im Prinzip ist der jetzige Aufbau kein Bus mehr. Stimmt. Ich möchte die Übertragung von 32 Teilnehmern (10Nutzbyte/Teilnehmer) in 4ms hin und zurück erledigt haben. Also PC<->Gerät. Alles soll synchron sein. Meine theoretischen Berechnungen erfordern ein paralleles Ansteuern aller Geräte. Es werden je nach Teilnehmer 7 bis 25Byte gesendet. Bei einer Geschwindigkeit von 20k/bit bis 250k/bit. Die Teilnehmer sind in der Regel Schrittsteuermotoren (mit einem RS485 Interface one Wire mit TTL Pegel (Ok, .. ich weiß …) ), mit einer Art Seriellem Interface, die mit ganz geringer Zusatzbeschaltung ansteuerbar sind. Zu FPGAs und uC. Ich bin großer uC Fan und mag FPGAs nicht wirklich. FGPAs sind sehr mächtig aber auch schwierig. Meine erste Idee war einen uC zunehmen, beim Senden sehe ich auch keine großen Probleme. Aber beim empfangen. Senden könnte man mit einem Timer machen, das Empfangen aber nicht, da die Geräte nicht gleichmäßig Antworten (ist vom Zustand der Schrittsteuermotoren abhängig, wie stark der PID Regler gerade arbeiten muss). Wie kann ich den 32 „Serielle“ Schnittstellen parallel mit einem uC befeuern? Zudem brauche ich dann ja noch was überlagertes für die Übertragung zum PC. Gruß Samuel
@ Samuel (Gast) >Übertragung von 32 Teilnehmern (10Nutzbyte/Teilnehmer) in 4ms hin und >zurück erledigt haben. Also PC<->Gerät. Alles soll synchron sein. Warum? Und wie "Synchon" ist bei dir synchron? Ausserdem, auf einem Bus kann man eine Broadcast-Message senden, die empfangen alle Teilnehemer gleichzeitig ud können damit synchron ihren aktuellen Stand einfrieren/kopieren, der dann von jedem einzeln abgeholt wird. >Es werden je nach Teilnehmer 7 bis 25Byte gesendet. Bei einer Macht 25x32*10 = 8000 Bit. Wenn das alles in 4ms passieren soll sind das mind. 2 Mbit/s nötig!! >Wie kann ich den 32 „Serielle“ Schnittstellen parallel mit einem uC >befeuern? Mit 8 mal 4fach UART, gibt es fertig mit FIFO als IC. > Zudem brauche ich dann ja noch was überlagertes für die > Übertragung zum PC. MFG Falk
WG: Warum Synchon Damit das Systemabbild so genau wie möglich ist, das ermöglich später einige Berechnungen weg zulassen. Darum so synchron wie ein vertretbarer Aufwand erlaubt. WG: Broadcast-Message, … Das können die Bus-Teilnehmer leider nicht. WG: Wenn das alles in 4ms passieren soll sind das mind. 2 Mbit/s nötig!! Ja, das ist schlecht und deckt sich mit meinen Berechnungen ich bin noch etwas höher. Darum sollen die Teilnehmer parallel betreiben werden. Denn Die Übertragung benötigt bis zu 25Byte es werden allerdings nur 10 Nutzbyte übertragen. Darum dachte ich an eine USB Schnittstelle oder Ethernet das Broadcast Packete sendet. WG: 4Fach UART Der Chip sieht interessant aus, ich bin gerade dabei die Datenblätter verschiedener Hersteller durch zu schauen. Das würde das Software Systemdesign wahrscheinlich erheblich vereinfachen. Da nenn Atmel mit CAN Bus dran und gut ist. Ich werde mir mal durch sehen. Das könnte mich vom FPGA weg bringen. Vielen Dank Samuel Schmidt
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.