|
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 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
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 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.
|