Overslaan en naar de inhoud gaan

Java­chip maakt robots intelligenter

Java werd oorspronkelijk bedacht als gemakkelijk te hanteren taal voor embedded controllers. Dat deze taal zo populair zou worden voor bedrijfstoepassingen op veel grotere computers had niemand verwacht, maar zorgde er wel voor dat de oorspronkelijke opzet wat op de achtergrond raakte.
Maatschappij
Shutterstock
Shutterstock

Sinds kort is er een hardware­implementatie van Java in de vorm van een krachtige microcontroller, die Java­byte­code als machinetaal hanteert. Het aantal toepassingsmogelijkheden van deze nieuwe chip is zeer groot en zorgt voor een verdere verankering van Java, maar nu in de wereld van PDA’s, settop boxes en telefoons. Dit kan grote gevolgen hebben voor Microsofts.Net­strategie. Deze technologie, die veel gemeen heeft met de Java­benadering, komt door deze ontwikkelingen op achterstand in de embeddedwereld. Tenzij er snel een hardwareversie komt van de MS Intermediate Language (MSIL) zal de verspreiding van Java in deze wereld leiden tot een dominante marktpositie van Java in embedded toepassingen. Kleine processor Wat is een embedded controller? Vrijwel alle moderne apparaten bevatten kleine computers, die de besturing van een onderdeel van zo’n apparaat realiseren. In plaats van een verzameling discrete componenten is het vaak veel goedkoper om een kleine processor het werk van deze componenten over te laten nemen. Controllers worden gebruikt in wasmachines, mobiele telefoons, videorecorders en afstandsbedieningen. Zelfs computermuizen bevatten vaak een of meer van dergelijke controllers. Het programmeren van embedded controllers gebeurt meestal in Assembler of in C en in sommige gevallen bestaan er gemakkelijker te hanteren programmeertalen zoals Basic. Java is in deze wereld een zeldzaamheid, vooral doordat het gebruik van een interpreter in zo’n controller veel geheugen kost en de controller aanzienlijk langzamer maakt. De eerste implementaties van Java waren softwareversies van de ’Virtuele Machine’ waarop de Java­taal is gebaseerd, oorspronkelijk bedoeld als testomgeving voor een uiteindelijke hardware­implementatie. Er werden door Sun verschillende experimentele hardware­implementaties gemaakt, waarvan er zelfs één gebruikt werd in een vroege versie van de Sparc (de picoJava­machine). De elegante structuur van Java echter zorgde er onverwacht voor, dat de taal een eigen leven ging leiden en vond geleidelijk aan haar weg naar een ander toepassingsgebied dan waarvoor zij oorspronkelijk was ontwikkeld. Met de komst van internet bleek de softwaregebaseerde virtuele machine de ideale omgeving om platformonafhankelijke code in webpagina’s mee te kunnen sturen. De compacte en goed gedefinieerde virtuele machine maakte het aantrekkelijk om haar voor een groot aantal platforms te ontwikkelen. Dit succes zorgde er echter voor dat de hardware­aspiraties van Sun en enkele andere fabrikanten, die pogingen hadden gedaan een hardwareversie van Java te ontwikkelen, naar de achtergrond verdwenen. Virtuele machine Java gaat uit van een op byte­code gebaseerde virtuele machine. Deze techniek bestond al eerder met het UCSD Pascal­systeem, dat was gebaseerd op de p­code interpreter. Jarenlang zat er in Windows een versie van deze interpreter, waarmee het mogelijk werd om zeer compacte programma’s te maken. De eerste versies van Word, die niet genoeg hadden aan de 640K geheugen van de vroege pc’s, gebruikten p­code om toch een groter programma in het geheugen te kunnen laden. Eerdere implementaties van een programmeertaal in hardware begonnen met de Lisp­machine, die de basis vormde voor de eerste bitmapped machines zoals de Symbolics, de Lambda­machine en de Xerox D­machines, zij waren de voorlopers van de Mac. Java was een poging om de ultieme virtuele machine te definiëren en daarmee een nieuwe generatie embedded controllers te introduceren, die gemakkelijker te programmeren zouden zijn. In 1997 ondernamen de oorspronkelijke bedenkers van Java, die toen bij Sun, Rockwell en nog enkele andere bedrijven werkten, een hernieuwde poging om een nieuwe Java­chip te maken. In 1999 startten ze een nieuw bedrijf, ’aJile’ genaamd, en begonnen met de productie van de chip die een oude droom waar moest maken. In het jaar 2000 zag de eerste versie het levenslicht en dit jaar kwamen de eerste apparaten en ontwikkelingsomgevingen voor de chip op de markt. De huidige generatie embedded controllers is bedoeld om relatief eenvoudige besturingstaken uit te voeren, zoals het aansturen van motoren, relais of het uitlezen van sensoren. Deze taken zullen nog steeds door deze controllers worden uitgevoerd, maar met de krachtige Java­processors kunnen intelligente controllers meer complexe taken uitvoeren, die tot nu toe waren voorbehouden aan pc’s en centrale computers. Voor het uitvoeren van complexere taken is software nodig, die geschikt is voor het ontwikkelen van dergelijke functies. De huidige generatie controllers is daarvoor niet ontworpen en is zowel beperkt in snelheid als in geheugenomvang. Er bestaan wel implementaties van Java die op dergelijke kleine machines draaien, maar dit zijn subsets van Java en worden altijd door een interpreter uitgevoerd, waardoor hun snelheid zeer beperkt is. De nieuwe Java­controllers hebben enkele megabytes aan Ram­ en flash­geheugen, halen een snelheid van meer dan 100 Mhz en maken geheel nieuwe toepassingen mogelijk. Robotica De eerste PDA op basis van deze chip is inmiddels door Pioneer ontwikkeld. Er zijn verschillende telefoons, settop boxes en internetrouters in ontwikkeling op basis van de aJile­chip. De grote power van de machine en het lage stroomverbruik maken het een ideale processor voor batterijgevoede en draagbare toepassingen. Op het gebied van de robotica zal deze chip ook voor de nodige veranderingen zorgen. Het geringe stroomverbruik en de compacte afmetingen maken dat toepassing van de processor in een robot aantrekkelijk wordt. Met name kunnen hierdoor complexe functies worden gedistribueerd en is de ontwikkeling van intelligente sensoren mogelijk geworden. In de softwarewereld bestaat er grote belangstelling voor de toepassing van agents, kleine autonome toepassingen die zelfstandig deelproblemen weten op te lossen. Met de komst van de Java­chip wordt het aantrekkelijk om ook hardware­agents te ontwikkelen. Apparatuur kan worden uitgerust met slimme componenten, zoals een intelligente camera, die zelf beeldanalyses uitvoert en de resultaten in de vorm van symbolische informatie doorgeeft aan andere computers. Zo kan een kleine, intelligente camera bijvoorbeeld voorwerpen herkennen en het type object en de plaats binnen het beeld doorgeven. Momenteel zijn voor die toepassing ‘frame grabbers’ nodig, die een groot deel van de capaciteit van de computer consumeren. Een intelligente camera neemt dit werk over tegen een fractie van de kosten van de huidige opzet. Hardware­agents zijn kleine, autonome componenten, die een zelfstandige functie vervullen en hun resultaten doorgeven aan een andere computer, die de informatie gebruikt voor het nemen van beslissingen of het geven van waarschuwingen. Minder succes Kortom, de pogingen van Microsoft om met.Net ook het mobiele platform te bereiken zouden wel eens minder succesvol kunnen worden door de introductie van de krachtige en gemakkelijk te gebruiken embedded Java­controllers. Vooral voor kleinere apparaten is deze chip te verkiezen boven de processors die nodig zijn om de pocketuitvoeringen van.Net of Windows CE te verwerken. De positie van Java zal in deze markt veel sterker worden, maar niet veel invloed hebben op J2ME’s grote broer, de standaardeditie (J2SE) en de nog uitgebreidere enterprise­ editie (J2EE). Ze hebben weliswaar dezelfde basis, maar waarschijnlijk zullen niet veel programmeurs die grote zakelijke toepassingen bouwen, te maken krijgen met de micro­editie. De toepassing in embedded controllers is over het algemeen toegespitst op draagbare apparaten die geen display of randapparaten bevatten. Peter van Lith (RI) is zelfstandig adviseur, gespecialiseerd in innovatieve toepassingen en de ontwikkeling van autonome robots (peter@lithp.nl; voor details zie: www.multimotions.com).Gereedschap Het ontwikkelen van software voor embedded controllers vereist over het algemeen de beschikking over ontwikkelingsgereedschap, dat afhankelijk van de faciliteiten enige honderden tot duizenden euro’s kost. Naast het ontwikkelingsgereedschap van aJile zelf is er ook een goedkopere versie beschikbaar in de vorm van de JStamp en JStik die respectievelijk de 80 Mhz­ en 100 Mhz­versie bevatten. Deze implementaties hebben tot 2 Mb Ram en 4 Mb flash­geheugen aan boord. Er waren al enkele andere embedded processors op de markt die met Java konden worden geprogrammeerd zoals de Tini­Java en de Javelin Stamp maar dit zijn software­implementaties die slechts een subset van de standaard­Java 2 Micro Edition (J2ME) ondersteunen. De aJile­processor is een volledige implementatie van J2ME en heeft tevens de bijbehorende Connected Limited Device Configuration (CLDC), waardoor er uitwisselbaarheid met andere apparatuur mogelijk is. De communicatiemogelijkheden van deze processors zijn ruim opgezet met mogelijkheden voor de SPI­standaard, 10BaseT, IrDA en Can­interfaces. Inmiddels is de chip enige tijd op de markt en zijn er verschillende apparaten waarin hij wordt toegepast. De chip verwerkt Java­byte­code met een snelheid van 80 tot 140 MHz. De machine heeft ingebouwd: thread management en een tweetal (hardware­) JVM’s waardoor er onafhankelijke processen in de computer kunnen draaien. Het leuke is dat deze machine zelf de snelheid kan aanpassen en op deze manier stroom kan sparen zonder de machine in de slaapstand te hoeven plaatsen. Via een slimme visuele interface kan de geheugenallocatie en de toewijzing van interrupts aan software classes buiten het programma om worden geregeld. Daarnaast is de chip uitgerust met een Jtag­interface, waarmee source level debugging van de Java­code in de processor mogelijk is. Programmeren van de chip kan met iedere standaard­Java­ontwikkelingsomgeving, zoals JBuilder. Faciliteiten voor onlinetesten en laden van de software worden met het ontwikkelingsgereedschap van de chip meegeleverd.

Lees dit PRO artikel gratis

Maak een gratis account aan en geniet van alle voordelen:

  • Toegang tot 3 PRO artikelen per maand
  • Inclusief CTO interviews, podcasts, digitale specials en whitepapers
  • Blijf up-to-date over de laatste ontwikkelingen in en rond tech

Bevestig jouw e-mailadres

We hebben de bevestigingsmail naar %email% gestuurd.

Geen bevestigingsmail ontvangen? Controleer je spam folder. Niet in de spam, klik dan hier om een account aan te maken.

Er is iets mis gegaan

Helaas konden we op dit moment geen account voor je aanmaken. Probeer het later nog eens.

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in