Forum: Mikrocontroller und Digitale Elektronik ARM-Entwicklerboard mit Ethernet gesucht und allgem. Fragen


von Michael B. (mibo)


Lesenswert?

Hallo µC-Experten,

ich bin auf der Suche nach einem ARM-Entwicklerboard mit 100MBit/s 
Ethernet und ca. 30 digitalen I/O-Pins.
Der ARM soll Messdaten von den I/O-pins lesen und diese per Ethernet an 
einen PC schicken. Das ganze soll mit 100MBit/s laufen. Es reicht, wenn 
die Daten auf Layer2 (MAC) gesendet werden. Aufwändige IP- uder 
UDP-Protokolle sind dank Punkt-zu-Punkt-Verbindung nicht notwendig.

Bisher habe ich folgende Boards gefunden, weiß aber z.B. nicht, ob ein 
72 MHz ARM7 überhaupt der Datenrate gewachsen wäre.
ARM7 Olimex LPC-E2468: http://www.olimex.com/dev/lpc-e2468.html
ARM9 Portux920T: http://elmicro.com/de/portux920t.html

Außerdem wüsste ich gerne, ob die ARMs standardmäßig ein komplettes 
Betriebssystem (z.B. Linux) laufen lassen, oder ob man z.B. ein 
einzelnes Programm (ohne Betriebssystem) ausführen kann. Ich denke, dass 
ein OS für meine Anwendung ein Overkill wäre, da eigentlich nur die 
Kommunikation mit dem Ethernet-Controller und deen I/O-Pins gebraucht 
wird.

Ich bin für jeden Kommentar dankbar.
Gruß
Michael

von Frank N. (arm-fan)


Lesenswert?

"die ARMs" lassen das laufen, womit man sie programmiert.
"Standardmäßig" sind die ab Werk leer... ;-)

Betriebssysteme à la Linux sind auf nem 7er eher unüblich.
Auf nem 9er schon eher anzutreffen.

Echtzeitbetriebssysteme (RTOS) dagegen sind verbreiteter.
Hat aber nichts mit ARM zu tun. Verwende ich auch auf den 8-bittern
(FreeRTOS / RTX51, etc.).

Dir steht also offen, alles zu programmieren wonach dir beliebt.

von Joe (Gast)


Lesenswert?

Hi,

du kannst Dir auch mal das Atmel EK anschauen

AT91SAM7X-Ek mit allem drum und dran.

Wenn Du 500Mips brauchst, dann kann ich dir das AT91SAM9G20-EK 
empfehlen.

Atmel betreibt eine eigene Linux Seite: www.linux4sam.org

MfG

von Robert Teufel (Gast)


Lesenswert?

@Mibo

Schau Di rauch mal as Board von Embedded Artists an, das kommt mit 
Linux, ist der LPC2468 oder LPC2478 drauf.
Schafft ein ARM7 die 100 Mbit/s, die CPU bei Dauerfeuer wohl nicht, die 
hardware Unterstuetzung, z.B. DMA und eigenes Buffer RAM, locker.
Also wenn das Einlesen der Ports nicht gerade jede usec passiert sehe 
ich wenig Probleme in der Ethernet Kommunikation. Die Daten werden in 
einen Buffer geschrieben und dann hat die CPU nur noch wenig damit am 
Hut.
Die Anwendung, die Du oben beschrieben hast wuerde ich allerdings 
DEFINITIV NICHT mit Linux erledigen, sondern mit einem kleinen RTOS oder 
ganz ohne OS.
Einfach einen Timer mit der Sample Frequenz programmieren, die Interrupt 
Routine liest die Pins ein und schiebt so zur Uebertragung zu Ethernet.
Hier ist allerdings die Schwelle zum OS, bei einem ordentlichen TCP/IP 
Treiber wuerde ich wohl auch bald ein OS einsetzen.

Board: http://www.embeddedartists.com  um einiges hochwertiger als 
Olimex aber auch etwas teurer.

Robert

von Artur Funk (Gast)


Lesenswert?

Vielleicht wäre ein Cortex M3 mit RTOS das richtige? Sich in das Thema 
ARM-9 einzuarbeiten kostet mehr Zeit als man denkt. Mir persönlich 
erschien der Cortex M3 um einiges verständlicher als der ARM-9.

von Gast (Gast)


Lesenswert?

Hallo,

wie lange willst du dich mit Entwicklung aufhalten?
Es gibt genuegend ARM9 SBCs mit fertigem emdedded Linux OS im Flash.
Auspacken, Evaluieren, Anwendung implementieren, fertig ..
Gruss

von Artur Funk (Gast)


Lesenswert?

>Es gibt genuegend ARM9 SBCs mit fertigem emdedded Linux OS im Flash.
>Auspacken, Evaluieren, Anwendung implementieren, fertig ..

bin kein Experte darin, aber hast du schon mal GPIO Funktionen unter 
Linux mit einem Cross-Compiler für den ARM-9 realisiert? Ich finde das 
ist alles andere als trivial (aber wie gesagt, habe da nicht so die 
Erfahrung.)

von JojoS (Gast)


Lesenswert?

wie wäre es mit diesem Board: 
http://www.watterott.com/ARM-Cortex-M3-CAN-Ethernet-Modul-LM3S8962-mit-PoE_1
ich habe es mir auch vor kurzem gekauft, bin aber durch den ganzen ARM 
Wirwarr noch nicht ganz durchgestiegen. Die Cortex Architektur wird noch 
so breit unterstützt.

von JojoS (Gast)


Lesenswert?

.. noch nicht so breit... sollte da stehen.

von Michael B. (mibo)


Lesenswert?

Wow, erstmal danke für die vielen Antworten.

Gast wrote:
> Hallo,
>
> wie lange willst du dich mit Entwicklung aufhalten?
> Es gibt genuegend ARM9 SBCs mit fertigem emdedded Linux OS im Flash.
> Auspacken, Evaluieren, Anwendung implementieren, fertig ..
> Gruss

Im Prinzip klingt der Vorschlag gut, aber ich habe Sorge, dass ein 
"dickes" OS zu Verzögerungen bei der Datenweitergabe führt. Wer weiß, 
was das Linux alles im Hintergrund macht, wenn es sich um die Daten 
kümmern soll? Deshalb würde ich eine schlankere Lösung bevorzugen.

Die erwähnte Einarbeitungszeit ist natürlich ein Argument, auch wenn ich 
nicht verstehe, warum ARM7 einfacher als ARM9 sein soll.

Leider kann ich die benötigte Prozessorleistung schlecht abschätzen. Ein 
NAS mit 400Mips-ARM9 Chip schafft normalerweise 100MBit/s 
Datentransferrate übers Netzwerk. Allerdings läuft da auch noch ein 
Linux mit diversen Dämonen im Hintergrund. evtl. reicht also eine viel 
geringere Rechenleistung.
Die Abschätzung wird noch dadurch schwieriger, dass ich bisher nichts 
genaues zum Einlesen der Daten über einen 8-Bit-Bus (vermutlich 
Druckerport-ähnlich) sagen kann. Bei Intel-CPUs haben die inb/outb 
Befehle früher jedenfalls ordentlich gebremst, weshalb heute ja 
Memory-mapped-IO benutzt wird. Wie läuft das in/out beim ARM?

Zum Thema Betriebssystem. Wie schon festgestellt wurde, brauche ich ein 
OS eigentlich nur des Ethernet-Treibers wegen. Andererseits könnte ich 
evtl. einfach den Treiber-Code aus Linux oder FreeRTOS nutzen? 
Schließlich will ich keinen ganzen TCP/IP-Stack, sondern nur 
MAC-Raw-Funktionalität.

Außerdem habe ich leider in der Bibliothek und bei Amazon sehr wenig 
Literatur zum Stichwort "ARM Mikrocontroller" gefunden. Gibt es da kein 
empfehlenswertes Buch (ARM-Bibel)?

Ich wünsche einen schönen Abend!
Michael

von JojoS (Gast)


Lesenswert?

hast du dich schnonmal hierdurch gehangelt: 
http://www.mikrocontroller.net/articles/ARM
Der ARM hat intern zwei Busse, auch wenn so ein Zwerg mit 50Mhz oder 
mehr läuft kann man das nicht als volle IO Speed nutzen falls du sowas 
vor hattest.
Und da es den ARM Prozessor ja garnicht gibt muss sich eher die 
Datenblätter (bzw. Datenkataloge mit tausend Seiten und mehr) der 
jeweiligen Hersteller antun...

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

Michael Born wrote:
> Die erwähnte Einarbeitungszeit ist natürlich ein Argument, auch wenn ich
> nicht verstehe, warum ARM7 einfacher als ARM9 sein soll.

Am Prozessor liegt's jedenfalls nicht. Mal abgesehen von Cache und MMU 
Initialisierung, die Du für diese Anwendung wahrscheinlich sehr einfach 
halten kannst. Das Argument geht wohl eher in die Richtung, dass ARM9 
MCUs auch komplexere Peripherie haben.

Schau Dir mal die Möglichkeiten an, die Dir die eingebauten DMA 
Controller bieten. Unter Umständen brauchst Du die CPU nur zur 
Konfiguration. Naja, fast :)

Gruß
Marcus
http://www.doulos.com/arm

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.