Hallo,

Voor een projectje wil ik sensoren inlezen, berekingen doorvoeren en actuators aansturen.

Nu dacht ik om dit te doen ahv een data acquisitie bordje. Nu hoorde ik laatst dat men ook gebruik maakt van fpga's. Hebben die dingen dan zoveel voordeel boven een mini computer systeempje?

Dat licht eraan wat je kennis is van deze beestjes. Maar als je snel snel iets wil maken zou ik voor een industrieel bordje gaan, en hier een embedded linux of RTOS op zetten veel sneller.

Groeten

Als het industrieel moet zijn zoals de topictitel doet vermoeden is het uitgangspunt natuurlijk een PLC. Pas als dit niet mogelijk is moet je andere oplossingen overwegen.

een FPGA is natuurlijk dedicated aan de taak, en daarom dan ook sneller.

Op 10 november 2005 13:21:30 schreef Bertrix:
een FPGA is natuurlijk dedicated aan de taak, en daarom dan ook sneller.

Is dat nodig dan? Voor een industriele toepassing is een fpga zeer af te raden.

Op 10 november 2005 13:24:06 schreef GJ_:
[...]
Is dat nodig dan? Voor een industriele toepassing is een fpga zeer af te raden.

Hoe weet jij zo zeker dat het voor een industriele toepassing is?

EDIT: Hum, ja de topictitel...

Op 10 november 2005 13:24:06 schreef GJ_:
[...]
Is dat nodig dan? Voor een industriele toepassing is een fpga zeer af te raden.

en waarom dan wel ? ik ken enorm veel zware industriele toepassingen waar FPGA's inzitten. smijt maar eens weefgetouwen van picanol open , of de space shuttle ...

Op 10 november 2005 17:13:44 schreef free_electron:
en waarom dan wel ? ik ken enorm veel zware industriele toepassingen waar FPGA's inzitten. smijt maar eens weefgetouwen van picanol open , of de space shuttle ...

En dat is dus niet erg servicevriendelijk.
En het zegt ook niet alles over kwaliteit, ik geloof dat tot nu toe 2% van de spaceshuttlevluchten fout afliep.

---edit----------------------
Ik kom nogal eens van die eigenontwikkelde controllertjes tegen in heel erg dure machines van niet al te grote machinebouwers. Dat is alleen maar gedaan om goedkoop in serie te kunnen bouwen. Als echter na een jaren die print stukgaat blijkt de machinebouwer vaak failliet of van niks meer te weten. En als ze het wel weten vragen ze voor zo'n printje vaak wel heel erg hoge prijzen. Een eenvoudig stuurprintje voor een doseerinstallatie dat 3000,- euro kost vindt ik nogal aan de prijs. Een PLC met een kapot I/O kaartje is snel te vervangen en geeft dus ook weinig productieverlies.

[Bericht gewijzigd door GJ_ op ]

Op 10 november 2005 17:46:26 schreef GJ_:
[...]
En dat is dus niet erg servicevriendelijk.
En het zegt ook niet alles over kwaliteit, ik geloof dat tot nu toe 2% van de spaceshuttlevluchten fout afliep.

een FPGA is veel veiliger. als je een deftige FPGa kiest kan er niet aan geprutst worden en is je ontwerp veilig voor piraterij en modificatie door 'ongewijde poten' maar kan wel geupgraded worden in the field. die dingen gebaseerd op PLC zijn zo kopieerbaar.... ik weet wat gekozen hoor.

trouwnes TS is een nieuw ontwerp aant doen.Servicevriendelijk is een betrekklijk argument hoor. geef mij maar een bord wat ik kan te lijf gaan via JTAG in plaats van een grote doos met relais en 35000 allemaal rode draden waar je geen wijs uit geraakt. :-). vooral flexibiliteit. als je later functionaliteit weil bijstoppen : effe fpga herconfigureren en klaar. Ja met een PLC kan dat ook maar een FPGA is toch stukken flexibeler en krachtiger.

Om berekeninger te doen is een FPGA moelijker. a kan er natuurlijk altijd een embedded processor in stoppen.

Een hele leuke oplosing is de NIOs gebaseerd FPGA. je hebt dan een embedded processor in combinatie met programmeerbare hardware. je maakt als het ware een 'cop[rocessor' voor de speciale functies die je nodig hebt , de rest loopt in software op de zelfde fpga. www.altera.com. SOPC moet je hebben. de developmnent tools zijn volledig gratis.
ik heb zo een bord hier. 1 FPGA met daarin een processor gemapt die een RTOS loopt met daarop een webserver. zelf een blok custom logica erbij gestopt en je kan via internet de io poorten sturen en feedback krijgen

[Bericht gewijzigd door free_electron op ]

Een industriele toepassing?

Afhankelijk van de aantallen zou ik bij kleinere aantallen gaan voor een embedded systeem single board computer) met PC104 bus(als de verwerkingssnelheid voldoende is).

Je kan dan bijv. gebruik maken van bekende operating systemen zoald Windows CE, Linux of XP en wellicht bekende programmeer omgevingen.

Hardware ontwikkelkosten geminimalisseerd en korte leercurve v.w.b. de software ontwikkeling.

Natuurlijk is dit niet zaligmakend maar kan voldoende zijn.

Op 10 november 2005 18:13:47 schreef free_electron:
[...]
een FPGA is veel veiliger. als je een deftige FPGa kiest kan er niet aan geprutst worden en is je ontwerp veilig voor piraterij en modificatie door 'ongewijde poten' maar kan wel geupgraded worden in the field. die dingen gebaseerd op PLC zijn zo kopieerbaar.... ik weet wat gekozen hoor.
....

Ik probeer de klant altijd eerlijk te adviseren wat voor hem het beste is. Een daar hoort een FPGA niet bij. Als ik 100 PLC programmeurs van de straat haal zijn er daar 99 bekent met S7 dus is het van de klant uit gezien vaak veilig om voor S7 van Siemens, VIPA of Saya te kiezen. Ook de onderdelen zijn na 10 jaar nog gemakkelijk te krijgen, overal ter wereld en binnen een paar uur.

@Bellenblaas:

Je kan dan bijv. gebruik maken van bekende operating systemen zoald Windows CE, Linux of XP en wellicht bekende programmeer omgevingen.

Hardware ontwikkelkosten geminimalisseerd en korte leercurve v.w.b. de software ontwikkeling.

PLC's zijn ook bekende programmeeromgevingen.
Hardware ontwikkelkosten: PLC's brengen qua bouw met zich mee dat er aan de hardwarekant weinig ontwikkeling nodig is.
Leercurve: snap ik niet. PLC's programmeren is erg eenvoudig. Het ontwikkelen van veilige en betrouwbare industriele applicaties op PC's is zeker niet eenvoudiger.

FPGA -- PLC -- industriele PC, het is maar net wat je wilt, ik heb voor mijn laatste baas me met alle drie beziggehouden, en moet zeggen dat het veelal van de toepassing afhangt. simpele sturingen, neem een PLC. Snelle en vooral VEEL data verwerken met een vast algoritme, neem een FPGA. weinig data maar heftig number crunchen, neem een (krachtige) industrie-PC

Wij hebben de elektronica voor het Pierre Auger observatorium gemaakt, dat is een zeer grote telescoop in argentinie, met als doel het detecteren van kosmische straling, adhv secundairdeeltjes. De gehele First-level-triggering en een groot deel van de dataprocessing vindf in FPGA's plaats, een pentium processortje, HA die doet nog niet 1% van wat zo'n FPGA kan in dezelfde tijd.

Een ander project was een absorptiespectrometer voor ozon. daar zaten de beide andere in, de PLC voor de besturing van het geheel (kleppen, pompen, thermostaat etc.) en een industriele PC voor de dataverwerking. OK, een zeer goede PLC had dat misschien ook wel gekund, maar het voordeel van de PC, je steekt een memory-stick in de USB-aansluiting en de PC voert een scriptje uit dat ofwel de opgenomen data dumpt, ofwel een programma-update uitvoert.

GJ_: ik weet niet precies wat voor werk je doet, maar het lijkt me dat je specifieke oplossingen aanbiedt voor kleine aantallen. Dan is een FPGA inderdaad niet altijd de beste keus. Simpelweg omdat je weinig kant-en-klare systemen a la PLC kunt inkopen met een FPGA erin. En een PLC heeft als voordeel tegenover de industrie-PC dat er wat robuustere I/O in zit, en een simpelere processor, die meestal een dedicated OS draait, en geen generiek os zoals windhoos, linux, etc.

Op 11 november 2005 09:02:18 schreef DC2PCC:...
GJ_: ik weet niet precies wat voor werk je doet, maar het lijkt me dat je specifieke oplossingen aanbiedt voor kleine aantallen. Dan is een FPGA inderdaad niet altijd de beste keus. Simpelweg omdat je weinig kant-en-klare systemen a la PLC kunt inkopen met een FPGA erin. En een PLC heeft als voordeel tegenover de industrie-PC dat er wat robuustere I/O in zit, en een simpelere processor, die meestal een dedicated OS draait, en geen generiek os zoals windhoos, linux, etc.

Klopt, bij bouwen vrijwel alleen maar specials. En als het nodig is gebruiken wij ook wel IPC's (zoals de nieuwe Phoenix S-max)maar alleen als dat nodig is. Niet onnodig ingewikkeld maken zeg ik ;-)

Inderdaad, het is niet voor grote oplages, maar voor een studentikoos projectje. De bedoeling is om een autopilot voor een duikbootje te maken. De data die verwerkt wordt zijn afkomstig van enkele gyroscopen, een druksensor, en posities van de roeren.

De bedoeling is om pitch en heading te locken zodat de boot perfect rechtdoor vaart.

Er zou eventueel ook een camera opgekoppelt worden, waarop beeldverwerking moet toegepast worden.

Van fpga's heb ik nog geen kaas gegeten, dus dit zou wel wat tijd vragen om te doorgronden, maar lijkt me wel interessant. Ik dacht zelfs dat je deze grafisch kon configureren. Ik heb zelfs eens gehoord dat je er zelfs linux op kan draaien.

Op een industrieel moederbordje zou ik dan bijvoorbeeld een java programmaatje kunnen laten draaien, waar ik heel wat meer ervaring mee heb. Maar misschien is beeldverwerking makkelijker op een fpga?

Ik ben er nog niet uit ;-)

Op 11 november 2005 08:14:57 schreef GJ_:

[...]
PLC's zijn ook bekende programmeeromgevingen.
Hardware ontwikkelkosten: PLC's brengen qua bouw met zich mee dat er aan de hardwarekant weinig ontwikkeling nodig is.
Leercurve: snap ik niet. PLC's programmeren is erg eenvoudig. Het ontwikkelen van veilige en betrouwbare industriele applicaties op PC's is zeker niet eenvoudiger.

GJ je hebt helemaal gelijk v.w.b. de aanvulling met het PLC verhaal (ben dit vergeten te vermelden).

Ook bij ons op het werk wordt in eerste instantie een keuze gemaakt uit PLC of Embedded PC de FPGA's ed zijn als laatste aan de beurt. De uiteindelijke keuze is dan afhankelijk van de applicatie.

Op 11 november 2005 12:31:09 schreef steenaap:
Inderdaad, het is niet voor grote oplages, maar voor een studentikoos projectje. De bedoeling is om een autopilot voor een duikbootje te maken. De data die verwerkt wordt zijn afkomstig van enkele gyroscopen, een druksensor, en posities van de roeren.

De bedoeling is om pitch en heading te locken zodat de boot perfect rechtdoor vaart.

Er zou eventueel ook een camera opgekoppelt worden, waarop beeldverwerking moet toegepast worden.

Van fpga's heb ik nog geen kaas gegeten, dus dit zou wel wat tijd vragen om te doorgronden, maar lijkt me wel interessant. Ik dacht zelfs dat je deze grafisch kon configureren. Ik heb zelfs eens gehoord dat je er zelfs linux op kan draaien.

Op een industrieel moederbordje zou ik dan bijvoorbeeld een java programmaatje kunnen laten draaien, waar ik heel wat meer ervaring mee heb. Maar misschien is beeldverwerking makkelijker op een fpga?

Ik ben er nog niet uit ;-)

beeldverwerking op een FPGA kan, maar net zo goed op een pc. Java is niet echt geschikt vrees ik.

Als het in een duikboot moet passen, zal het waarschijnlijk klein & lowpower moeten zijn. Dan ga je best (volgens mijn mening) naar een FPGA, of µC

ik denk ook aan fpga ... als je er ene plc instopt heb je kans dattie door het gewicht niet meer bovenkomt ...

en ja als je fpga pakt met embedded processor , of je mapt er een processor in (zoals die NIOs van altera ) kan je er inderdaad linux of WinCE op lopen.

als je nog nooit met FPGA gewerkt hebt is altera goede keus. hun tools zijn zeer gebruiksvriendelijk, in tegenstelling tt xilnx waar je een jaar bezig bent en nog niet precies uitgevlooid heb welk script je nu weer voor wat nodig hebt.

bij mijn weten niet. ze geven zelfs de devkit gratis weg. ik heb hier verschillende kaarten waar er ene op draait.

Als het in een duikboot moet passen, zal het waarschijnlijk klein & lowpower moeten zijn. Dan ga je best (volgens mijn mening) naar een FPGA, of µC

Wat is eigenlijk het grote verschil met een microcontroller? De grote flexibiliteit en gelijktijdige uitvoering van opdrachten? Kan een fpga berekeningen uitvoeren of is dit eerder voor een microcontroller weggelegd? Eerder in dit topic werd aangegeven dat plc voor industriele toepassingen wordt gebruikt, waar vindt de fpga dan zijn toepassingen?

bij mijn weten niet. ze geven zelfs de devkit gratis weg. ik heb hier verschillende kaarten waar er ene op draait.

Mooi, over welke kit gaat het, waar krijg je die dan wel gratis?

[Bericht gewijzigd door steenaap op ]

Hallo,

Mijn oog is gevallen op twee xilinx modules. Heeft iemand hier wat verstand van om ze af te wegen tegenover elkaar?

- RCM3365 RabbitCore

- Xilinx Spartan-3 Starter Kit DO-SPAR3-DK

- TE-XC2S Spartan-II Evaluation Bundle II

www.altera.com daar kan je de NIOS devkit downloaden ( 400 Meg of zoiets ) alsook Quartus II wat de ontwikkelomgeving is voor de FPGA aar je hem in mapt ( nog eens 300 Meg )

een bord met de FPGA op zul je zelf moeten maken of kopen. je hebt minstens een Cyclone nodig maar beter is een Stratix of Stratix II

blijf weg van die xilinx. hun development tools hangen met haken en ogen aan elkaar en zijn verschrikkelijk moeilijk te gebruiken (bijna niemand gebruikt die xilinx tools echt want mensen die met Xilinx werken gebruiken alleen de fusemapper in samenwerking met Synopsis als frontend synthese tool. dat spul van xilinx is een samenraapsel van tools die je wel ergens kunt voor gebruiken maar dat van altera zit veel mooier in elkaar. in praktijk wordt daar ook synopsis voor ingezet ( daar wil je geneens de prijs van weten. dat kost je verschillende BMW's als licentie voor 1 gebruiker ... )

De rabbitcore is geen misse processor ( is orgineel z80 gebasseerd ) maar tis nogal een 'raar' ding. de processor is eigenlijk een interpreter die scripts loopt. ( nu ja zo kan je elke processor bekijken ) tis een soort virtual machine waarop ene instructieset draait.

het grote verschil tussen ene FPGA en een processor is dat en processor een lijst instructies in volgorde afwerkt , stap voor stap. een FPGA doet alles tegelijkertijd.

als je het volgende schrijft in een cpu
x = a or b and c xor d
doet jouw cpu het volgende

mox acc,a
orl acc,b
andl acc,c
xor acc,d

dat zijn 4 instructies die 4 clock cycli in beslag nemen
stel een cpu die 1 miljoen cycli per seconde doet wil dus zeggen dattie 250000 keer per seconde deze opdracht kan uitvoeren ( de overhead effe niet meegerekend noch het feit dat sommige instructies meer tijd vragen dan ander )

in een fpga is dat echt gemaakt met logische poorten en is je enige limiterende factor de delay van de poorten
in moderne fpga's kijk je tegen 2 a 3 nanoseconde aan. na logische minimalisatie kan het zijn dat je maar 2 poorten door moet ( kzout moeten bekijken ) dus heb je 5 nanoseconde aan je broek. das 200 miljoen van die bewerkingen zonder seconde ... een factor 1000 maal sneller .... en geen clock nodig.

vooral op grote bewerkingen ( combinatorische bewerkingen waar geen registers voor nodig zijn klopt een FPGA elke processor met factoren tot meer dan een miljoen maal sneller )

Bedankt voor de info, ik houd het dus best bij altera. Ik heb voorlopig mijn zinnen gezeg op volgende kit: NIOSII5.0

Weet iemand waar ik (literatuur of internet) info vind, over C programming in Quartus?

Op 14 november 2005 18:11:19 schreef free_electron:
www.altera.com daar kan je de NIOS devkit downloaden ( 400 Meg of zoiets ) alsook Quartus II wat de ontwikkelomgeving ....................)

in een fpga is dat echt gemaakt met logische poorten en is je enige limiterende factor de delay van de poorten
in moderne fpga's kijk je tegen 2 a 3 nanoseconde aan. na logische minimalisatie kan het zijn dat je maar 2 poorten door moet ( kzout moeten bekijken ) dus heb je 5 nanoseconde aan je broek. das 200 miljoen van die bewerkingen zonder seconde ... een factor 1000 maal sneller .... en geen clock nodig.
.....

[off topic vraagje]
Ik vraag me nu al tijden af waarom ze pc niet gewoon uitrusten met een stel fpga's aanboord.

lijkt mij reuze makkelijk ombepaalde dingen te doen. programma laad de fpga met een een bewerking die vaak uitgevoerd word. data van de processor naar fpga, data terug naar de proccessor. bijvoorbeeld voor gafische toepassingen of decoderen van zaken
ontlast de processor lekker lijkt me.

[/off topic vaag]