Guten Morgen, was ich mich die ganze Frage ist, ob die Mikrocontrollertechnik und deren Programmierung in C Zukunft in der Industrie haben. In naher Zukunft könnte es doch sein, dass die FPGA's immer mehr und mehr eingesetzt werden. Was denkt ihr darüber?
Also C hat bisher alle Sprachen überlebt, es wird Standard bleiben. FPGAs werden sicherlich die DSP's ablösen wegen ihrer Parallelität. ABer im Bereich µC gibt es Typen, die unter einem € kosten. Da wäre es doch Blödsinn einen viel teuren FPGA vielleicht noch mit externem Speicher einzubauen. Vielversprechend ist auch die ARM-Architektur, die ähnliche Vorteile bietet wie der standardisierte PC von heute. Also ich kann mir nicht vorstellen, daß da bevorzugt wird, daß jeder sein eigenes µC-Süppchen auf einem FPGA implementiert.
Vielleicht wird es eher ähnlich den dicken FPGAs mit Hardcore evtl. auch kleine Mikrocontroller mit integriertem "Mini-FPGA" geben. Das alles ist ein sehr kostensensibler Bereich. Und viele Mikrocontroller werden in der Tat für "Mikro-Aufgaben" eingesetzt um ein paar simple Sachen zu steuern die meistens auch noch sehr zeitunkritisch sind. Was die Zukunft bringt, hängt in diesem Bereich praktisch nur von den Kosten ab.
Orakel schrieb: > Vielleicht wird es eher ähnlich den dicken FPGAs mit Hardcore evtl. auch > kleine Mikrocontroller mit integriertem "Mini-FPGA" geben. Sowas vermute ich auch: Es gibt ja mittlerweile C ähnliche Compiler für FPGAs, und auch kombinierte Compiler für Softcore µC bei denen man den Compiler anweisen kann einzelne Funktionen als Logikelemente in den FPGA einzubauen. Ähnliches könnte man auch für normale µC machen: Der kleine FPGA würde dann quasi als Coprozessor arbeiten, wodurch der µC bestimmte Aufgaben sehr schnell bewältigen könnte (proprietäre Verschlüsselungen, Filter, Interfaces usw.) Wenn man sich aktuelle µC anschaut, dann erkennt man schon deutliche Trends in diese Richtung: Das Eventsystem der ATXMega das es ermöglicht die Peripherie untereinander zu verbinden, Multiplexer zwischen der Peripherie und den IO Pins durch die man die IO Pins der Peripherie frei festlegen kann und ähnliches gehen alles in die Richtung von frei programmierbarer Logik rund um den µC Kern.
Die urspruenglichen Mikroprozessoren wurden eigentlich schon ersetzt, und zwar durch mixed signal controller, genannt Mikrocontroller Diese haben zusaetzlich zum Rechnenwerk noch funktionale IO die meist auch analog sein kann. Standardmaessig hat man einen Satz ADC Eingaenge mit einem Multiplexer. Wenn's nicht um diese analoge IO ginge, so koennte man einen Controller durch ein FPGA ersetzen. Ein FPGA ist aber viel teurer und in der Regel viel schneller. Ein modernes FPGA hat auch schon energiesparfunktionen, ob sie so sparsam wie ein controller werden wird weiss ich grad nicht.
Allzuviel wird sich da nicht ändern. Die Technik entwickelt sich zwar rasant weiter, anderseits reichen heutige Prozessoren und Programmiertechniken für die überwiegende Anzahl der Anwendungen - das beste Beispiel ist der PC-Bereich. Obwohl man dort heute das zehn- bis hundertfache an Leistung hat wie noch vor 5 oder 10 Jahren, hat sich bis auf Computerspiele nicht viel getan, das die Leistung auch nutzen würde (und sie nicht bloss verbrät, aka Windows Vista). Die interessanteste (einigermasse neue) Anwendung sind für mich Prozessoren mit eingebauten FPGA-Strukturen, so dass man gewissermassen den Befehlssatz erweitern könnte.
Aber auch da sind wohl erst dann grössere Umwälzungen zu erwarten, wenn man es geschafft hat, dass sich die FPGAs quasi selber programmieren. Solange man für jedes neue Problem erneut VHDL bemühen muss sind C Programmierer billiger.
Ich denke, dass C zwar in nächster Zeit nicht verschwinden wird, da Industriestandard, aber es wird stark zurückgedrängt durch andere abstraktere Beschreibungsmöglichkeiten. Es ist nun mal so, dass immer mehr Komplexität gefordert wird. Während heute noch z. B. Fernbedienungen mit IR, 4-Bit-Controller und unidirektional eingesetzt werde, die sich auch einfach in Assembler programmieren lassen, kommen in Zukunft richtige High-Tech-Geräte. Dann sollen sich möglichst alle Geräte über sich automatisch konfigurierende WLAN, Bluetooth sonstwas Mesh-Verbindungen anmelden und über den Touchscreen bedienbar sein, aber nicht separat, sondern integriert. Also z. B. kann man heute die Lautstärke beim DVD-Rekorder und beim Fernseher separat einstellen. Man muss bei beiden Geräten Sendersuchlauf machen. Wenn man fernsehen schaut und das Programm gleich aufnehmen will, muss man erst auf dem Rekorder den Sender raussuchen und "Aufnehmen" drücken, natürlich mit der anderen Fernbedienung. Wenn das alles zusammen wirken soll, hat man als Entwickler schon einiges zu tun, der C-Code wird unübersichtlich, vieles passt nicht zusammen. Man hat viele Versionen und Hersteller, Bibliotheken von Funktionen, Schnittstellenbeschreibungen werden weiterentwickelt. Man kann zwar all das mit C erschlagen, es macht aber viel Aufwand. Der Aufwand ist auch deshalb so groß, weil C oder C++ nicht weit genug abstrahiert. Man schreibt einen Algorithmus und legt die Befehlsfolge fest, auch bei unabhängigen Befehlen, die man vertauschen könnte um die gleiche Funktion zu erfüllen. Man fordert dynamisch Speicher an, übergibt Pointer, gibt Speicher wieder frei. Das ist schon wieder eine große Schwachstelle, denn man kann Speicher freigeben und hinterher zugreifen oder vergessen freizugeben und dann wird der Speicher voll. Das sind alles Low-Level Beschreibungen, welche nichts über die Funktionalität aussagen. Es ist einfach Ballast, den niemanden interessiert. Genauso wie der Kram mit den Pointerüberläufen, wo Hacker Programmcode injizieren. Ebenfalls nervig ist es bei Systemprogrammierung mit mutex, spinlock, workqueues. Die Beschreibung ist für heutige und zukünftige Anforderungen nicht mehr abstrakt genug. Man wird mehr Beschreibungssprachen für spezielle Zwecke entwickeln. So wird man in Zukunft nicht mehr Sendercode und Empfängercode für eine Datenübertragung schreiben müssen und hoffen, dass man keinen Fehler drin hat. Man wird dann einfach eine Protokollbeschreibungssprache haben. Aus der Beschreibung entsteht dann sowohl Sender als auch Empfänger und die sind dann garantiert kompatibel und vor allem portierbar, egal ob µC oder FPGA. Es wird auf jeden Fall sehr viel an Beschreibungssprachen hinzu kommen. Den Trend merken wir ja längst: VHDL, SDL, HTML, XML, ... Damit verschiebt sich das Know-How weg vom Verständnis komplexer Zusammenhänge, Wissen um Schnittstellen, Standards, Protokolle, hin zu einem enormen Wust an Beschreibungs- und Abstraktionsmöglichkeiten, Schlüsselwörtern, ...
Ist das nicht auch die Schwelle vom µC-programmierenden Elektroingenieur hin zum Informatiker? All die genannten Dinge sind doch schon kaum noch auf der Ebene eines Cotrollers. Beim Controller wird C und C++ reichen. Weitergehende Komplexität wird ein Betriebssystem erfordern und damit schon eher die Aufgabe eines Informatikers, der eben nicht die Hardware in allen Ecken kennen muß. Diese Abstraktionsebene gibt es schon jetzt in Form des embedded PC und aufgesetzter Systeme. Für ein Radio, eine Waschmaschine sind solche Answendungen aber eher weniger interessant und dort wird auch weiterhin der µC seine Daseinsberechtigung haben.
>Für ein Radio, eine >Waschmaschine sind solche Answendungen aber eher weniger interessant und >dort wird auch weiterhin der µC seine Daseinsberechtigung haben. Da denke ich liegst du falsch. Denke doch mal an das was man von einem "Radio" heute fordert, bzw. was einfach drin ist, egal ob man es braucht oder nicht: MP3, OGG, DRM, DAB, Kopierschutzkram, Antennadiversity, "Software defined radio", Navigation (GPS), iPod-Dockingstation, USB-OTG, WLAN, Bluetooth. Und zur Waschmaschine: Fuzzylogik für optimalen Rundlauf. Energiesparfunktionen, evtl. mit Erkennung der Füllmenge, Verschmutzungsgrad (beenden des Waschprogamms, wenn das Waschwasser nicht mehr dreckiger wird), später evtl. Stromnetzlastadaptive Funktion (Wasser wird aufgeheizt, wenn gerade der geringste Energiebedarf besteht). Evtl. Anschluss einer Heißwasserleitung von der Solaranlage. Wiederverwendung des heißen Abwassers. Trocknungsfunktion, automatische Service- und Diagnosefunktionen. Ermittlung der optimalen Waschmittelmenge und Zusammensetzung (Wasserenthärter, Weichspüler, Fleckenlöser). Und natürlich soll auf dem Handy noch erscheinen, wann die Wäsche fertig ist...
>was ich mich die ganze Frage ist, ob die Mikrocontrollertechnik und >deren Programmierung in C Zukunft in der Industrie haben. In naher >Zukunft könnte es doch sein, dass die FPGA's immer mehr und mehr >eingesetzt werden. >Was denkt ihr darüber? Ich denke, dass die Fahrräder in Zukunft weiterhin nicht als Schienenfahrzeuge eingesetzt werden. Vergleicht bitte keine Birnen mit Äpfeln!
ingFH schrieb:
> Vergleicht bitte keine Birnen mit Äpfeln!
Warum nicht? Apfel sind härter, als Birnen. Ist doch ein völlig
korrekter Vergleich.
Bloß die Pauker, die armen kleinen Schülern solche Scheiße in die Hirne
kacken, spotten jeder Beschreibung.
Wenn es darum geht was man zum Fruehstueck moechte sind derartige Vergleiche ebenfalls legitim.
@ Stefan Helmert: Und für das alles brauchst Du ein Betriebssystem? Schon der C167 hatte einen eigenen Befehlssatz für Fuzzylogik. Der war für eine Waschmaschine überdimensioniert. Mit Radio meine ich Radio, Atmel hat eine Serie 4 Bit-µC aufgelegt für solche Anwendungen. Also weg von Monstern mit Embedded Linux. Handyanwendungen, die immer mehr zur attraktiven Schnittstelle kommen, kann man absehen, daß es in Richtung Mini-Pc kommt. Das ist wirklich eine Sache für ein Betriebssystem. Und hier wird der Informatiker eher gefragt sein, als bei einer Neukonstruktion einer SPS.
Heute auf heise.de: Toshiba rutscht tiefer in die roten Zahlen Was daran liegt, das yoshi doch nicht bei toshi eingekauft hat.
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.