op mijn site
Updated: 12-03-2011 Kees Moerman
|
Embedded systems
Wat zijn 'embedded systems'? We kennen allemaal 'de computer', wat
dan vaak een PC of MAC is. Een duidelijk herkenbare kast, met als doel computer
te zijn. Maar, er zijn veel meer computers, maar dan verstopt in andere
apparaten. Denk aan de besturing van de CV ketel, je draadloze router, je
magnetron, in al deze apparaten zitten kleine computertjes die voor de
besturing en het display zorgen. De gemiddelde Nederlander heeft meer heel wat
meer computers dan alleen de PC's in huis.
Een niet-volledig lijstje van min-of-meer verstopte computers in mijn
huis: UPC modem, draadloze router, PC, DVD-speler, magnetron, CV-ketel,
fototoestel, GSM, oven, printer, TV, netwerkdisk, UPC decoder, auto, ...
Dit soort ingebouwde computers noemen we 'embedded systems', met daarin vaak
een gespecialiseerde een 'embedded processor' (soms ook wel
microcontroller). Vaak veel energie-vriendelijker dan PC's: de processor
gebruikt typisch minder dan 1 Watt, tegen meer dan 50 Watt in een PC, meestal
geen beeldscherm, en beperkte mogelijkheden: toegesneden op de taak die
verricht moet worden. Maar toch, in een aantal gevallen kan je er wel bij, en
is het leuk 'speelgoed', ofwel om de mogelijkheden uit te breiden (zoals bij
mijn Canon fotokamera), ofwel om heel nieuwe dingen mee te doen.
Ben altijd geïnteresseerd geweest in (embedded) processoren. Al heel
vroeg (rond 1980, nog voor de PC) heb ik mijn eerste computer gebouwd (zie mijn
zelfbouw-geschiedenis pagina's). Naast de HCC: Hobby Computer Club ben ik ook lid van de
EmSE: Stichting Embedded Systems Eindhoven. Ook mijn
werk stond in het teken van het ontwerpen van embedded (signaal-) processoren
(DSPs). Een paar concrete privé-voorbeelden in mijn geval (ieder
met uitgebreidere aparte pagina's met details):
De Linksys NSLU2
De Linksys NSLU2 is van oorsprong een klein kastje om tussen een USB
harde schijf en je thuisnetwerk aan te sluiten, zodat je van elke PC er bij
kunt. Er zit een vrij krachtige processor in, waar een Linux operating systeem op draait. Meer info op mijn
NSLU pagina's. Ik gebruik het nu (naast de
netwerkdisk) ook als internet gateway om vanaf het net veilig aan mijn
thuisnetwerk te kunnen verbinden, als foto-browser, en nog het een en
ander.
Rabbit RCM5700
De Rabbit RCM5700 is een single-board computertje van 3 bij 5 cm.
Minder krachtig dan de NSLU2, maar toch krachtig genoeg om bijvoorbeeld een web
server te kunnen draaien, om vanaf je PC gebruikersvriendelijk toepassingen aan
kunt sturen. Ik gebruik het voor 'home control'-achtige toepassingen. Meer info
op de Rabbit pagina.
Atmel ATtiny2313
Voor nog simpeler (en low-cost) toepassingen kan je ook kijken
naar kleine 8-bit embedded processoren/microcontrolers, zoals gemaakt door
bijvooorbeeld Atmel (de AVR processoren) of Microchip (de PIC's). Ik gebruik de
Atmel ATtiny2313, een 20-pins IC, met daarin alles om een (heel klein)
embedded systeem te maken. Veel meer dan een 3 tot 5-Volt voeding is er niet
nodig (plus natuurlijk dat wat je wilt besturen). Ook hiermee heb ik wat
gewerkt, zie mijn ATtiny2313 paginas (nu ook
een stukje over de AVR Butterfly) .
Stichting Embedded Systems Eindhoven
(EmSE)
Ik ben lid van de stichting Embedded
Systems Eindhoven, waarvoor hier ook even reclame... Ben daar op het moment
met een groepje bezig met een robot voor wedstrijden, met name een wedstrijd
waarbij in een parcours cola-blikjes moeten worden verzameld. We hebben een
verrijdbare robot met arm en grijper, en een usb camera voor de navigatie door
middel van vision. Zelf ben ik daar bezig met de arm-besturing (arm in de zin
van ledemaat, niet de arm processor) op basis van intelligente servo's, plus de
power-electronics in de base (PWM voor de 12V/1A motoren etc). Dat laatste is
toch weer heel wat anders dan het milliWatt-gedoe van de andere topics op deze
pagina... Hopelijk komt er nog info over dit project op de EmSE pagina.
Fotocamera
Veel Canon camera's hebben ook firmware die uitgebreid kan worden. Ik heb
een simpele en compacte Canon PowerShot A710IS; met daarop de CHDK
uitbreiding (RAW formaat; live histogram, scripting, ...). Geen hele pagina
hierover, maar wel wat meer info op mijn site: zie CHDK: softwarematig uitbreiden van je Canon
camera.
Andere embedded systems
Nog wat links (naast de gespecialiseerde links op de bovengenoemde pagina's
naar de NSLU, de ATtiny, etc) naar embedded systems:
- Kant-en-klare bordjes met low-cost Atmel processor? Kijk eens op de
Arduino pages; is een uitgebreide
gebruikers-community bij. Leuk bordje is bijvoorbeeld de Arduino
Duemilanove.
- Informatie over microcontrollers? Kijk bijvoorbeeld op: ePanorama (algemeen)
en EmbDev (Embedded Development), met
forums
- Lichtgewicht met Ethernet: de Rabbit RCM5700 is gebaseerd op een
opgevoerde Z80 op 50 MHz, met ethernet en inclusief bijvoorbeeld een web
server, om via je browser applicaties op de RCM aan te kunnen sturen. Ook
beschikbaar in een draadloze uitvoering RCM5600W (ontwikkelkit op het
moment $99)
- Van Make: de ontwikkelversie
van de Chumby, een soort mediaspeler. ARM, 3.5"
kleuren-LCD/touch-screen, USB, WiFi, Linux, $99.
- Het LPC2368
Development Board ziet er ook aardig uit (ARM, Ethernet, USB, A/D-D/A, CAN,
$73)
- Of super-miniatuur: de
Picotux Linux-Based RJ45-Sized Computer (ongeveer zo groot als een
netwerksteker). Ook in een draadloze versie.
- Ook de compacte TS-7500
ziet er aardig uit: ARM, Ethernet, USB master/slave, boot Linux in 2 seconds,
rond de $100
- Nog een dan (en er zijn er honderden meer): SBC6000X Single Board
Computer, ARM, Ethernet, USB etc, Windows/CE of Linux, $129..$239
(afhankelijk van LCD)
- Ook zijn er natuurlijk tig apparaten met een ingebouwde embedded processor,
nooit bedoeld om zelf te hacken maar toch heel geschikt (en goedkoop), zoals de
NSLU2 netwerk file server van Linksys
Software (OS, stacks)
Bij lichtgewicht computertjes hoort ook lichtgewicht software...
- Operating systems/kernels: Mocht je zelf op een microcontroller een
real-time kernel of OS nodig hebben: ook hier zijn diverse open-source/freeware
alternatieven, zoals FreeRTOS
(lichtgewicht) en eCos (incl
I²C, TCP/IP stack, etc). Nog lichter (voor Atmel AVR processoren en zo) is
Femto-OS (multi-tasking, footprint 2-4 Kbyte
flash, 20..40 bytes/task).
- TCP/IP stacks: Als je zelf op een microcontroller een internet-enabled
applicatie wilt maken heb je TCP/IP driver software nodig: een zogeheten stack.
Open Source/freeware stacks zijn bijvoorbeeld LWIP, OpenTCP, TinyTCP, uC/IP en uIP (voor kleine micros).
- Maar, voor iets zwaardere systemen zou ik toch voor een embedded Linux
gaan. Vaak meegeleverd, of bij de fabrikant van het bord verkrijgbaar.
|