Forum: Mikrocontroller und Digitale Elektronik Embedded Linux: Benötigte Hardware


von Andreas P. (andreas_p71)


Lesenswert?

Guten Tag,

Ich bin beruflich auf der Suche nach den benötigten 
Hardware-Komponenten, um Embedded Linux darauf laufen lassen zu können. 
Leider bin ich noch nicht fündig geworden. Ich kann nicht auf bestehende 
Entwicklungs-Boards zurückgreifen, da die Hardware in ein bestehendes 
Gehäuse eingebaut werden muss - deshalb entwickeln wir die Platine neu.
Folgende Kern-Anforderungen bestehen:
- Embedded Linux
- USB-Schnittstelle (ext. Datenträger, WLAN-Stick)
- Ethernet
- SD-Karte
- serielle Verbindungen
- GPIOs

Welcher µC wird mindestens benötigt, um ein Embedded Linux realisieren 
zu können? Welche Bauteile werden sonst noch benötigt? Gibt es da 
Literatur dazu?
Ich verlange jetzt keine detaillierte Bauteillisten - eher nur einen 
Hinweis, wo ich weitersuchen soll. Gibt es gute Links, die mir da helfen 
können?

Vielen Dank für eure Hilfe!


mfg
Andy

von Frank W. (wesoft) Benutzerseite


Lesenswert?

Hallo Andreas,

ich habe in ein Projekt das BeagleBone-Board eingebaut. Das kann ich 
sehr empfehlen.

Wenn Du alles selbst aufbauen willst (oder mußt), würde ich mich an der 
ARM-Architektur orientieren.

Das hängt aber selbstverständlich von Deiner geforderten Rechenleistung 
(+ erforderlichen Pheripherie) ab. Linux läuft auch schon auf zimlich 
kleinen CPUs :-)


Frank

von hans (Gast)


Lesenswert?

Du könntest ja auch ein bestehendes Evalboard auf Deinen Formfaktor 
umdesignen.
Dann kannst Du bestehenden Linuxkernel einfach bei Dir verwenden und es 
währe so hauptsächlich "nur" ein PCB zu erstellen.

von Andreas P. (andreas_p71)


Lesenswert?

Danke einmal für die Antworten...

Das mit dem "abkupfern" von einem bestehenden Board kam mir auch schon 
in den Sinn. Nur will ich das nicht unbedingt machen, weil bei den 
Boards oft Blöcke drauf sind, die wir nicht brauchen. Außerdem ist die 
eingesetzte CPU vielleicht leistungsfähiger (und teurer) als eigentlich 
benötigt.
Deshalb wäre es einmal interessant zu wissen, was mindestens benötigt 
wird.

Vielen Dank!

von NurEinGast (Gast)


Lesenswert?

Unter
http://gnublin.embedded-projects.net/products/
findest Du Entwicklungsboards

Unter
http://gnublin.embedded-projects.net/customized-boards/
könntest Du sogar ein für Euch angepasstes board finden ....

von Frank W. (wesoft) Benutzerseite


Lesenswert?

Andreas P. schrieb:
> weil bei den Boards oft Blöcke drauf sind, die wir nicht brauchen.

Dann läßt Du diese Blöcke eben weg :-)

Andreas P. schrieb:
> Außerdem ist die eingesetzte CPU vielleicht leistungsfähiger (und teurer) als 
eigentlich benötigt.

Dann mußt Du erstmal definieren, wieviel CPU Du für Deine Anwendung 
benötigst.

Wenn Du das alles noch nicht weißt, und etwas experiemetieren mußt um 
ein Gefühl dafür zu bekommen, halte ich ein Eval-Board oder ein fertiges 
Board (Raspberry oder Beaglebone blak z.B.) für nicht die schlechteste 
Wahl.

Frank

von chris (Gast)


Lesenswert?

carambola-2
aria g25
ist selten guenstiger zu machen, speziell mit ethernet.
ansonsten, MCIMX233CAG4C ist guenstig zu bekommen und einfach zu 
designen.

von A. B. (funky)


Lesenswert?

hmmm....also wenn ich mir so Boards wie das BeagleBone Black, raspberry 
und Co anschaue, dann sind das >6 Layer Boards. Habt ihr denn die 
Erfahrung damit?
bei embedded Linux kommt ja kein Mikrocontroller zum Einsatz sondern ein 
richtiger Prozessor der alles wie Netzwerk, Grafik, etc schon 
implementiert hat.

Es gibt auch noch uC Linux(keine Erfrahrung damit) was für 
Mikrocontroller gedacht ist.

Also wenn du so ein Board mit einem Mikrocontroller designen 
möchtest...das ist noch irgendwo realistisch.

Aber bei einem Board wo dann wirklich ein embedded Linux zum Einsatz 
kommt, benötigst du einen richtigen Prozessor inkl. des deutlich höheren 
Aufwands beim Layouten....da sage ich mal bei der Art wie du fragst: 
vergiss es.

Dann lieber ein bestehndes Board nehmen und im Formfaktor anpassen.

Und was ist denn auf den handelsüblichen Boards zuviel drauf, was ihr 
nicht benötigt? Ihr braucht kein HDMI und kein Sound...aber sonst sehe 
ich in der Anforderungsliste eigentlich alles was ein Raspi oder ein 
Beaglebone auch zu bieten hat.
Wie gross darf die Platine denn überhaupt werden damit man mal ne 
Hausnummer hat

von Hans-Georg L. (h-g-l)


Lesenswert?

Nimm einfach eine fertige Lösung mit einer DIMM-CPU Karte die bekommst 
du in jedes Gehäuse und die Auswahl ist recht groß.

z.b. 
http://www.cciembedded.de/cpu-module/low-power-cpu-module-csb7xx.html

Es gibt aber noch viele andere Hersteller, google kennt da einige ;)

von Andreas P. (andreas_p71)


Lesenswert?

Hallo,

Vielen Dank für die zahlreichen Infos... da sind ja schon mal ein paar 
gute Ansätze dabei...

@A.B.: das mit dem Layouten ist kein Problem - damit haben wir schon 
Erfahrungen gesammelt - nur ist es das erste Mal, dass wir die Software 
auch liefern müssen. Größenmäßig stehen uns etwa 5x4cm zu Verfügung...

Ich werd mal nach den genannten Begriffen googlen - aber falls noch wer 
Infos hat: nur her damit! :)

Danke!!

von Frank K. (fchk)


Lesenswert?

Andreas P. schrieb:

> Folgende Kern-Anforderungen bestehen:
> - Embedded Linux
> - USB-Schnittstelle (ext. Datenträger, WLAN-Stick)
> - Ethernet
> - SD-Karte
> - serielle Verbindungen
> - GPIOs
>
> Welcher µC wird mindestens benötigt, um ein Embedded Linux realisieren
> zu können? Welche Bauteile werden sonst noch benötigt? Gibt es da
> Literatur dazu?

Du brauchst:
1. MMU (ansonsten hast Du nur das ucLinux und nicht die Vollversion) Das 
schließt also zB Cortex M aus. Minimum sind bei ARM ARM9 oder Cortex A. 
Wenn es preissensitiv wird, sind MIPS-Derivate oft billiger, weil dort 
die Lizenzkosten geringer sind.
2. externes Speicherinterface für minimal 8 MB RAM, besser mehr.
3. externes Speicherinterface für Flash (NAND, NOR, SD...)
4. Bootflash für den Bootloader (uBoot, Redboot oder andere)
5. eine serielle Schnittstelle für die Console.

Alles andere ist erstmal optional.

Lade Dir mal von kernel.org einen aktuellen Kernel - da siehst Du, 
welche Architekturen und welche Chips direkt von den Linux-Leuten 
unterstützt werden. Sofern nicht andere Anforderungen dagegen sprechen, 
nimmst Du einen der direkt vom Standardkernel unterstützten Chips, dann 
hast Du es bei Kernel-Weiterentwicklungen und Updates besonders einfach. 
Die Halbleiterhersteller sind oftmals etwas schnarchnasig, die machen 
einen Port für eine bestimmte Kernelversion, und an die bist Du dann 
gebunden, vor allem, wenn dann noch Binärmodule für Grafik oder WLAN 
dazukommen.

fchk

von typ (Gast)


Lesenswert?


von ein Gast (Gast)


Lesenswert?

Also wenn ich lese, dass du einen USB Wlan Stick verwenden möchtest, 
kannst du eigentlich kein platz problem in deinem Gehäuse haben.

Aber dann wiederrum verstehe ich nicht wieso du keinen RaspberryPi 
nimmst und ihn als huckepack Platine auf dein Board setzt. Der RPi ist 
auf jeden Fall günstiger als allein die Platine für ein selbst designtes 
Board. Und mit einer zweilagigen Platine kannst du dann alle deine 
Anschlüsse an die richtige Stelle routen. Du kannst dann auch die alten 
Steckverbinder für USB auslöten und mit dem Board verbinden und wo 
anders hin routen.

Wenn es also keine Platzprobleme gibt, wäre das die Lösung die ich 
verwenden würde. Für jedes andere selbst entwickelte System kannst du 
mit mehreren 1000€ rechnen.

von Martin (Gast)


Lesenswert?

Dann lieber das BeagleBone Black als den Raspberry. Ist unwesentlich 
teurer und hat mehr Pins herausgeführt, z.B. für die TFT Anbindung.

von Deti (Gast)


Lesenswert?

Die Colibri's haben wir vielfach in industriellen steuerungen.
Windows ce Linux oder Android erhältlich
http://www.toradex.com/de/products/colibri-arm-computer-modules

von Vn N. (wefwef_s)


Lesenswert?

Andreas P. schrieb:
> Welcher µC wird mindestens benötigt, um ein Embedded Linux realisieren
> zu können?

ATmega128.
http://hackaday.com/2012/03/28/building-the-worst-linux-pc-ever/

von Wolfgang (Gast)


Lesenswert?

Andreas P. schrieb:
> Größenmäßig stehen uns etwa 5x4cm zu Verfügung...

ein Gast schrieb:
> Aber dann wiederrum verstehe ich nicht wieso du keinen RaspberryPi
> nimmst und ihn als huckepack Platine auf dein Board setzt.

Meinst du, huckepack wird's kleiner als die 85 x 56 mm des RaspberryPi

von runtastic (Gast)


Lesenswert?

Letztes Jahr gab es auch einen Russen der auf einem 8 -Bitter Linux zum 
laufen bekommen ha. Dauerte allerdings 2 Stunden bis zum Prompt:
http://hackaday.com/2012/03/28/building-the-worst-linux-pc-ever/

von Stefan F. (Gast)


Lesenswert?

Es gibt doch ganz normale PC kompatible Mini-Computer, die sind kaum 
größer als eine Zigarrenkiste. Da hättest Du immerhin den großen 
Vorteil, eine gewöhnliche Linux Distribution drauf laufen zu lassen. Du 
brauchst dann weder Kernel Module noch andere Treiber zu entwickeln.

GPIO Pins hat man am parallelen Druckerport, falls vorhanden. Ansonsten 
kann man sie (falls die Geschwindigkeit reicht) über USB nachrüsten.

By the way: Kann man eigentlich den Tastatur-Anschluss als I2C Port 
missbrauchen?

von Richard Zink (Gast)


Lesenswert?

http://www.toradex.com/
Die bieten auch einiges an. Verwenden wir in der Firma und sind mit der 
Colibri-Familie auesserst zufrieden.

Gruesse,
Richard

von PittyJ (Gast)


Lesenswert?

Wenn du Standard-Buchsen für Ethernet, USB und SD-Karte nimmst, dann 
reichen doch 4*5 cm kaum aus.
Wir haben hier einen TI-Sitara Board auf 5*5 cm, mit allen Interfaces, 
die du auch brauchst. Allerdings sind alle Buchsen auf einer 
Zweit-Platine, die aufgesteckt wird. Basis war ein Beagle-Bone, das 
umgeroutet wurde.

von Gregor B. (Gast)


Lesenswert?

Ein Tipp:

Sieh' Dir kommerzielle Embedded-Linux-Distributionen wie von

http://www.lynuxworks.com/
http://www.mvista.com/
http://www.timesys.com/
http://www.mentor.com/embedded-software/linux/
http://www.sysgo.com/products/elinos-embedded-linux/
http://windriver.com/products/linux.html

Da kosten die Entwicklungspakete zwar Geld, dafür gibt es aber für 
unterschiedliche Prozessoren intgrierte Support-Packages, die sich dann 
selber um die Konfiguration des speziellen Prozessors (SDRAM-, USB-, 
Ethernet-Controller usw.) kümmern.

Du wählst nur den Prozessor aus, die Komponenten die Du benötigst und 
den Rest macht die Entwicklungsumgebung.

Das beantwortet dann auch schnell die Frage, welche Hardware notwendig 
ist, Du schaust einfach in die Liste der unterstützten Prozessoren und 
suchst Dir einen davon aus.

von Andreas P. (andreas_p71)


Lesenswert?

Hallo,

Vielen Dank für eure zahlreichen Antworten. Ich habe schon einige 
brauchbare Dinge rauslesen können. Überhaupt die Module von Gnublin sind 
sehr interessant, da ich mir hier einige abschauen kann.
Einzig eine Frage habe ich noch: Bei den ganzen Modulen läuft ja das 
Linux auf der Speicherkarte. Ist es (einfach) möglich, hier einen fixen 
Baustein zu verwenden? Ich will die Speicherkarte lediglich dazu 
benutzen, um User-Daten zugänglich zu machen. Das OS soll fix im Gerät 
laufen? Ist das einfach so möglich?

Vielen Dank!

mfg

von Frank W. (wesoft) Benutzerseite


Lesenswert?

Andreas P. schrieb:
> Ist es (einfach) möglich, hier einen fixen Baustein zu verwenden?

Dafür gibt es die eMMC z.B. von Samsung 
http://www.samsung.com/global/business/semiconductor/product/flash-emmc/overview

Frank

von chris (Gast)


Lesenswert?

Bei den meisten Modulen die ich kenne wird die Konfiguration von SPI 
Flash
bereitgestellt. Diese sind guenstig und einfach zu verwenden.

von hiall (Gast)


Lesenswert?

taskit.de

von Andreas P. (andreas_p71)


Lesenswert?

Hallo nochmal,

Nach den hilfreichen Antworten hier, habe ich ein Demoboard gefunden, 
bei dem ich mir einiges "abschauen" kann (GNUBLIN LAN). Nur möchte ich - 
wie schon erwähnt - die SD-Karte nicht für das Linux verwenden, sondern 
eine eMMC. Nur habe ich dazu noch eine Frage: Wie bekommen ich das Linux 
da dann drauf?? :)

Danke für eure Hilfe!!

mfg
Andy

von Frank K. (fchk)


Lesenswert?

Andreas P. schrieb:
> Hallo nochmal,
>
> Nach den hilfreichen Antworten hier, habe ich ein Demoboard gefunden,
> bei dem ich mir einiges "abschauen" kann (GNUBLIN LAN).

Das Board, das Du Dir ausgesucht hast, wird netzwerktechnisch 
schnarchlangsam sein, weil der Netzwerkcontroller nicht wie sonst üblich 
im Prozessor integriert ist, sondern extern per SPI angebunden ist. Das 
ist eher eine Notlösung. Such Dir besser was anderes aus.

> Nur möchte ich -
> wie schon erwähnt - die SD-Karte nicht für das Linux verwenden, sondern
> eine eMMC. Nur habe ich dazu noch eine Frage: Wie bekommen ich das Linux
> da dann drauf?? :)

Über den Bootloader (UBoot) im NOR-Flash.

fchk

von Andreas P. (andreas_p71)


Lesenswert?

Guten Morgen,

Danke für die Antwort. Das mit dem langsamen Netzwerkanschluss ist in 
diesem Fall nicht so tragisch, da wirklich nur ein paar Nutzdaten 
übertragen werden.
Aber danke für den Hinweis!

lg
Andy

von Andreas P. (andreas_p71)


Lesenswert?

Eine Frage noch zu dem langsamen Ethernet bei dieser Lösung: Wenn ich 
anstatt des ENC28J60 den SMSC LAN9512 nehme (der vom Raspberry Pi) und 
den über die USB-Leitungen anschließe, müsste das Teil ja schneller 
sein, oder??
USB und Ethernet würde dann über den SMSC-Baustein laufen...

Danke für eure Antworten!


lg
Andy

von Thomas (Gast)


Lesenswert?


von Frank K. (fchk)


Lesenswert?

Andreas P. schrieb:
> Eine Frage noch zu dem langsamen Ethernet bei dieser Lösung: Wenn ich
> anstatt des ENC28J60 den SMSC LAN9512 nehme (der vom Raspberry Pi) und
> den über die USB-Leitungen anschließe, müsste das Teil ja schneller
> sein, oder??

Ja, aber ich finde das immer noch Murks. USB ist ein ziemlich komplexes 
Protokoll, und das macht das ganze nicht zuverlässiger. Beim PI haben 
sie das gemacht, weil der Prozessor eigentlich für Mobilgeräte gedacht 
ist und einfach das billigste war, was die Macher in großen Stückzahlen 
bekommen konnten.

Schau Dir mal den Atmel SAMA5D35 an. Das ist eine Klasse besser, und 
Atmel hat einen sehr guten Linux-Support. Und ohne irgendwelche Krücken.

fchk

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Das kleinste Board, auf dem ich sinnvoll uCLinux habe laufen lassen 
können, ist der uCSimm von Arcturus. Dragonball (MC68EZ328) Prozessor 
mit onboard LCD Controller, 8MB SDRAM und 2MB Flash.
http://www.uclinux.org/ucsimm/
Im Prinzip also das gleiche wie in einem Palm III, lediglich mit 
zusätzlichem Ethernet Controller von Crystal.
Das Board ist für die neueste Generation Linux etwas zu klein durch die 
Grösse des Kernels, Linux 2.6, 2.4 und 2.0 hingegen laufen gut und 
lassen im Flash gut Platz für Anwendungen.
Wer also nicht unbedingt ne MMU braucht, es geht auch ohne.

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.