Hallo,
wäre nett wenn mir mal jemand die Unterschiede zwischen Prozessoren und
programmierbarer Logik auflisten könnte (klar, der Proc holt sich sein
Programm aus dem Speicher, CPLDs werden die Funktionen eingebrannt.
darüber hinaus?).
Vor allem interessiert mich, in welchen Fällen in der Industrie jeweils
CPLDs, FPGAs und uCs eingesetzt werden. Also welche Aufgabenbereiche
werden von den einzelnen Komponenten abgedeckt?
Ist es für einen Einsteiger sinnvoll, hobbymäßig mit programmierbarer
Logik zu experimentieren, oder sollte ich mir lieber ein uC-Board
kaufen?
Vielen Dank.
Mikrocontroller arbeiten alle Befehle sequentiell ab, in FPGAs/CPLDs
können viele Funktionen parallel ablaufen.
In der Industrie werden hauptsächlich Mikrocontroller eingesetzt. Für
die meisten Anwendungen (einfache bis mittelkomplexe Steuerungen) reicht
ein (günstiger) Mikrocontroller aus, wobei bei Anwendungen, bei denen in
sehr kurzer Zeit sehr große Datenmengen verarbeitet werden müssen und
bei denen sich die Fertigung von ASICs noch nicht lohnt, FPGAs
eingesetzt werden. Zur Filterung von Datenströmen (besonders
Audiodaten), die nur schlecht parallel verarbeitet werden können, werden
DSPs eingesetzt. CPLDs werden eher als "Hilfslogik" für Mikrocontroller
und -prozessoren eingesetzt.
Für den Einstieg ist meiner Meinung nach ein Mikrocontroller (z.B AVR,
ein ATMega8 reicht für den Anfang; das Board kann man sich selber bauen,
wenn man den AVR im DIP-Gehäuse nimmt) am besten geeignet, da er
wesentlich günstiger als ein brauchbares FPGA Board ist. Außerdem ist es
dann nicht so ärgerlich, wenn man das Bauteil gegrillt hat (was
schneller passiert, als man möchte).
Von der Programmierung gesehen sind uCs (sequentiell) und FPGAs
(parallel) sehr unterschiedlich. Bei uCs ist es vorteilhaft, wenn man
schon Programme für den PC geschrieben hat, für FPGAs sollte man eher
schon mit Digitaltechnik (TTL-Gatter) gearbeitet haben.
Hallo,
besten Dank. Habe sowohl Ahnung von PC-Programmierung (Assembler, C) als
auch Digitaltechnik, aber denke nach deinen Ausführungen auch, dass für
den Einstieg zu Hause der uC am Besten ist.
Hoffe ich bekomme so ein Board im Eigenbau hin, habe von analogem
Schaltungsdesign wenig Ahnung und auch noch nicht gelötet.
Vom analogen her ist die gesamte AVR-Serie völlig unkritisch. Die AVRs
sind da relativ anspruchslos und benötigen nur einen 100nF Kondensator
zwischen VCC und GND (möglichst nah am Chip), einen 10k Widerstand
(zwischen /RESET und VCC) und eine stabile Versorgungsspannung. Der
ATMega8 benötigt für nicht timingkritische Aufgaben keinen Quarz. Als
Programmieradapter ist ein STK200-kompatibler für den Parallelport
relativ gut geeignet.
Die "großen" uCs (z.B. ARM9 mit externem Businterface) und uPs sowie die
FPGAs sind vom analogen her wesentlich kritischer. Für den Anfang in der
programmierbaren Logik reicht aber auch schon ein CPLD (z.B. XC9536XL).
Die Software zur AVR-Programmierung (WinAVR (Windows) und der
AVR-GCC-Crosscompiler (Linux/MacOS)) und zur CPLD/FPGA-"Programmierung"
(ein FPGA wird nicht programmiert, sondern konfiguriert!) (Xilinx ISE
Webpack (Windows/Linux)) gibt es kostenlos.
Die AVRs eignen sich sehr gut zum Einstieg in die
Mikrocontrollerprogrammierung, da sich der AVR wesentlich besser als
z.B. der x86 in Assembler programmieren lässt, er hochsprachenoptimiert
ist und keine "Altlasten" mit sich herumschleppen muss.
Lies dir zum Einstieg am besten die Artikel in der Artikelsammlung und
das Datenblatt durch.
>In der Industrie werden hauptsächlich Mikrocontroller eingesetzt.
Der Sinn dieser Aussage erschließt sich mir nicht. Wo werden denn dann
sonst hauptsächlich FPGAs eingesetzt?
Die Aussage ist aber auch qualitativ nicht sinnvoll, denn es wird (vor
allem in der Industrie) das eingesettzt, was notwendig ist. Dort wo man
FPGAs benötigt, werden sie eingesetzt. die sind nicht gegen CPUs
auszutauschen, da das Band der Überlappung sehr schmal ist. Dein Satz
hört sich aber so an, als seien das funktionsgleiche Bauelemente, wo man
es sich aussuchen könnte, was man nimmt.
@seventh_son:
Der Beschaltungsaufwand ist beim AVR gering, da er nur eine
Versorgungsspannung benötigt und eine relativ geringe Taktfrequenz hat.
Je höher die Taktfrequenzen sind, desto aufwändiger wird das
Platinenlayout und die externe Beschaltung, weil die Stromversorgung
sehr stabil sein muss, weil die Bauteile bei hohen Frequenzen (besonders
FPGAs) während der Taktflanken eine sehr hohe Stromaufnahme haben (was
über sehr viele Kondensatoren abgefangen werden muss, damit die Spannung
nicht kurzzeitig zusammenbricht). Außerdem muss man bei der Verlegung
der Signalpfade darauf achten, dass alle Signale eines Busses über
gleich lange Leiterbahnen geführt werden, die bestimmte Abstände haben
müssen.
Auch beim AVR dient der kleine Kondensator zur Stabilisierung der
Versorgungsspannung.