Multicontroller

OP #1627560
Lesenswert?
• ▲
▼
Hallo.

Ich habe eine Fragen zu Multicontrollern.
Die wichtigste Frage ist, welcher Bus nun am geeignesten ist, wenn man 
am Ende die Controller im gesamten da stehen lassen möchte wie z.B. ein 
normaler Intel Quadcore. Sprich, die Software soll gar nicht merken, 
dass es sich hier im mehrere controller handelt. Man kann hier im Forum 
viel über RS485 oder den Can bus lesen. Ich kenne von früher den Can Bus 
sowie die Serielle Schnittstelle RS232.
Ich kenne mich ganz gut mit Multithreading Programmierung aus und habe 
sogar schon mal ein kleines Multithreading  Betriebssystem geschrieben 
allerdings nur für eine SingleCPU. Ich habe im Microcontrollerbereich 
bis jetzt nur im Single Mode gearbeitet.
Wie ungefähr der Master-Slave Ablauf ist, kann man ja im Forum 
nachlesen, nur ist mir noch unklar, wie das ganze am Ende ablaufen soll. 
Irgendwie muss ja das Programm, welches am Ende ausgeführt wird, im 
Falle von mehreren Threads auf die Controller verteilt werden. Es wäre 
nett, wenn mir das Jemand etwas genauer erklären könnte.

Nutzen möchte ich mehrere Arm-Cortex-a8 Controller. Ziel ist es, das 
ganze so Modular aufzubauen, dass X beliebige Module rangesteckt werden 
können. Bei dem RS485 Bus scheinen aber nur 32 Teilnehmer das Limit zu 
sein.

Danke
Gast
Lesenswert?
• ▲
▼
>Sprich, die Software soll gar nicht merken, dass es sich hier im mehrere 
controller handelt.

Das sind abgehobene Konzepte. Und daher sehr weit weg. Als 
eingearbeiteter Spezialist nach einigen Jahren Arbeit dran vielleicht...
OP
Lesenswert?
• ▲
▼
Grundsätzlich einsetzen möchte ich es für Bildverarbeitung und 
Objekterkenunng. Es soll aber auch ein Spaßprojekt werden, welches ich 
über die Zeit immer und immer mehr erweitern möchte.
Von daher ist mein Ziel, erstmal einen Arm Cortex zu benutzen, ihn als 
Modul aufzubauen und dann mit einem anderen zu erweitern usw.

Und MarioT: Bei anderen Computern wie beim X86 weiß die Software auch 
nicht wieviele CPUs bzw. Kerne zur verfügung stehen und da geht es ja 
auch. Das regelt dann das Betriebssystem oder in diesem Fall die 
Firmware.

Das mit dem Gigabit Ethernet klingt erstmal komisch, es ist zwar schnell 
aber hat es nicht eine relativ hohe Latenzzeit?
Gast
Lesenswert?
• ▲
▼
naja beim X86 geht es aber auch nur wenn die Software darauf ausgelegt 
ist (also selbst in kleine Teilprozesse zerlegt ist). Wenn es nur ein 
thread ist so bleibt es bei einem Prozessor und der Rest wartet ab was 
so kommt.
Gast
Lesenswert?
• ▲
▼
>Und MarioT: Bei anderen Computern wie beim X86 weiß die Software auch
>nicht wieviele CPUs bzw. Kerne zur verfügung stehen und da geht es ja
>auch. Das regelt dann das Betriebssystem oder in diesem Fall die
>Firmware.
Ich hätte jetzt behauptet das ein Betriebssystem oder Firmware Software 
wäre.
Ich kenne mich nicht so aus, aber wenn ein "Arm Cortex" ein solches 
Betriebssystem oder Firmware hat, wo ist dann das Proplem.
OP
Lesenswert?
• ▲
▼
Wie ich selber schrieb:
1
Irgendwie muss ja das Programm, welches am Ende ausgeführt wird, im
2
Falle von mehreren Threads auf die Controller verteilt werden.

Also ist mir wohl sehr wohl bewusst, dass das nur geht, wenn das 
Programm dafür ausgelegt ist.

Um mal eine andere Möglichkeit zu nennen. Es wäre ja möglich sich 
mehrere BeagleBoards zu kaufen 
(Beitrag "Neu im Shop: BeagleBoard (1200 MIPS ARM Cortex M8, TMS320C64x+ DSP)") und diese dann über 
SPI zu vernetzen. Es wären zwar viele Bauteile dabei die unnötig und 
doppelt sind aber wenn man sich mal den Preis von 150 Dollar anguckt, 
kommt man niemals günstiger bei weg, wenn man alles selber baut. Es wäre 
auf jedenfall die einfachste Lösung, wenn auch nicht die schönste. Auf 
jedenfall bietet das Board mehrere Bus Systeme an, welche sehr praktisch 
zu sein scheinen.

Und nein, die Firmware muss man eben selber schreiben, das ist ja der 
Trick dran.
Gast
Lesenswert?
• ▲
▼
Mario, wenn das ganze hinterher mal eine ordentliche Leistung bringen 
soll, dann müssen die einzelnen Controller über einen richtigen 
Hochgeschwindigkeitsbus vernetzt sein - wenn man das in Software machen 
will, verbrät man nur wieder Rechenleistung. Da bräuchte man schon 
Prozessoren, die für Mehrprozessorsysteme gebaut sind.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.