Minor Embedded Systems 2014/2015
© Harry Broeders.
Deze pagina is bestemd voor studenten van de Haagse Hogeschool - Faculteit
Technologie, Innovatie & Samenleving groep E-EMSYS = minor Embedded
Systems.
De officiële beschrijving van deze minor: https://student.osiris.hhs.nl/student/OnderwijsCatalogusSelect.do?selectie=cursus&collegejaar=2014&cursus=E-HMVT09-ES.
Een eenvoudig printbare beschrijving vind je hier: Beschrijving_Minor_ES_2014_2015.pdf
.
De folder van deze minor: Folder_Embedded_Systems_2014-2015.pdf
.
Inleiding
Embedded systemen spelen een groeiende rol in de samenleving. Een embedded
systeem vindt men in digitale televisies, mobiele telefoons, auto's, GPS, games
en in veel andere elektronische apparatuur uit het dagelijks leven. Apparaten
met embedded systems kunnen vaak zelfstandig reageren op hun omgeving. De
werking van embedded systems worden steeds meer bepaald door software en de
bijbehorende 'high-tech' hardware. Het samenspel van elektrotechniek (hardware)
en technische informatica (software) in deze apparatuur maakt een
geïntegreerde aanpak van het ontwerpproces noodzakelijk.
Indeling
Deze minor bestaat uit 3 vakken (die alle drie bestaan uit een theorie- en
practicumdeel) en 1 project. Alle practica doe je in een groepje van twee
studenten. Wij (de docenten) hebben deze groepjes ingedeeld zodat zoveel
mogelijk elektrotechniek en technische informatica studenten gemixed worden:
zie: Indeling practicumgroepen
ES 2014-2015.pdf. Het als software- en hardwaredeskundige samenwerken aan
een embedded system is namelijk een belangrijk leerdoel van deze minor. Omdat
je in het begin bij alle 3 practica aan dezelfde introductieopdracht werkt is
deze indeling voor alle practica hetzelfde.
Het project omvat 6 van de 15 CPs en je bent dus 2 dagen (of 4 halve dagen)
in de week bezig met het project. Per week is er 1 uur projectbegeleiding
beschikbaar. Dit is niet ingeroosterd maar je maakt daar zelf afspraken over
met je projectcoach. Meer informatie over het project kun je vinden op BlackBoard.
Het project wordt beoordeeld met een cijfer.
De overige 9 CPs bestaan uit 3 vakken die elk bestaan uit een theorie- en
practicumdeel. Twee van de drie vakken (th1 en th3) worden afgesloten met een
schriftelijke toets en een practicumbeoordeling (pr1 en pr3). Het derde vak
wordt afgesloten met een essay gecombineerd met een practicumbeoordeling (pr2).
Je krijgt voor de practica een O/V beoordeling en voor de andere drie
beoordelingen een cijfer.
Om een voldoende te halen voor deze minor moeten alle 4 cijfers >= 4.5
zijn en moet het gewogen gemiddelde van deze 4 cijfers >= 5.5 zijn en
moeten alle practicumbeoordelingen V zijn. De cijfers worden gewogen met de
studielast. Dit betekent dat het projectcijfer 2x meetelt en de andere 3
cijfers 1x.
Inhoud
Een embedded system communiceert met zijn omgeving via sensoren en
beïnvloed zijn omgeving via actuatoren. De verwerkingseenheid van een embedded
system leest de sensoren uit en stuurt de actuatoren aan en kan bestaan uit een
microcontroller, een digitale signaalprocessor (DSP), configureerbare hardware
(FPGA) of een combinatie daarvan. Vanwege het toenemende aantal transistoren
dat op één geïntegreerd circuit (IC) kan worden aangebracht worden embedded
system steeds meer volledig geïntegreerd op één chip. We spreken dan van een
System on Chip (SoC). In de theorielessen en practica van de minor embedded
sytems ligt de nadruk op de verwerkingseenheid van een embedded system en dan
ook speciaal op de System on Chip implementatie daarvan op een FPGA. Tijdens
het project kun je echter ook te maken krijgen met de sensoren en actuatoren
van embedded systems en met andere implementaties van de verwerkingseenheid
zoals een microcontroller. De verwerkingseenheid van veel Embedded systemen
bevat software waardoor de flexibiliteit van het apparaat groter wordt en de
onderhoudbaarheid toeneemt. Bij de ontwikkeling van embedded systemen moet er
dus altijd samengewerkt worden door elektrotechnici en technische informatici.
Als er ook mechanische aspecten een rol spelen zullen zij ook samen moeten
werken met werktuigbouwkundigen of machatronici. Omdat in dit project de
projectteams bestaan uit een mix van E, MECH en/of TI studenten kun je in dit
project de competenties die nodig zijn voor deze samenwerking ontwikkelen.
In deze minor wordt ook veel aandacht besteed aan het ontwerp- en
ontwikkelproces van een embedded systeem, zie onderstaande figuur. Omdat in dit
ontwikkelproces wordt uitgegaan van het hele systeem en niet alleen van de
hard- of de software wordt deze methode Electronic System-Level (ESL) Design
genoemd.
De inhoud van en de samenhang tussen de 3 vakken die in deze minor worden
aangeboden kan met behulp van dit plaatje goed duidelijk gemaakt worden.
- Het vak "Electronic System Level Design and Verification" geeft een
compleet overzicht van het ontwerpproces en zal vooral ook aandacht
besteden aan verificatie van Embedded Systems. Bij dit vak zul je een essay
schrijven waarbij je zelf kunt inzoemen op een specifiek onderwerp op het
gebied van Embedded Systems.
- Het vak "Hardware/Software Codesign with SystemC" richt zich vooral op de
eerste stappen in het ontwerpproces: het modeleren van het systeem op
systeemniveau met behulp van de modelleringstaal SystemC, het uitvoeren van
een "design space exploration" waarin de verschillende
implementatiemogelijkheden worden verkend en met elkaar worden vergeleken
en de software en hardware taken worden gedefinieerd. Bij dit vak wordt ook
een voorbeeld van een hardware design flow gegeven.
- Het vak "Embedded Software" richt zich vooral op de software design flow.
Bij dit vak wordt ook een voorbeeld van het gebruik van een Real-Time
Operating System (RTOS) gegeven. Ook wordt aandacht besteed aan het testen
van embedded software.
In de eerste week werk je bij alle drie de practica aan één inleidende
opdracht waarbij je kennis maakt met het DE2-70 ontwikkelbord van Altera waar
we bij 2 van de 3 practica gebruik van gaan maken:
- Bij het practicum "Embedded Software" ga je een driver voor dit bord
ontwikkelen en het RTOS µC/OS-II gebruiken .
- Bij het practicum "Hardware/Software Codesign with SystemC" ga je een
beeldbewerkings-applicatie die geschreven is in C++ optimaliseren voor dit
ontwikkelbord. Dit kan gedaan worden door de software te optimaliseren maar
ook door bepaalde delen van de software in hardware te implementeren.
De inleidende practicum kun je hier vinden: pract0.htm.
Bladen op het gebied van Embedded Systems
Het Nederlandse blad Bits&Chips bevat regelmatig interessante artikelen.
Je kunt hier een
gratis studentenabonnement aanvragen.
De Amerikaanse website http://www.embedded.com/ publiceert
regelmatig interessante artikelen. Ook over SystemC zie bijvoorbeeld Using
SystemC to build a system-on-chip platform.
2013 Embedded Market Study
Hier vind je een presentatie van een
marktonderzoek onder 2100 ervaren ontwerpers van Embedded Systems: 2013_Embedded_Market_Study_Final.pdf.
Mij valt het volgende op:
- p17: Embedded = 60% software + 40% hardware (al vijf jaar stabiel!).
- p18: 70% van de projecten heeft een looptijd <= 12 maanden.
- p19: meer dan de helft (57%) van alle projecten wordt te laat (of
helemaal nooit) opgeleverd. De software crisis is
blijkbaar nog niet voorbij!
- p20 en p21: C en C++ zijn bij 80% van alle projecten de belangrijkste
programmeertalen. Waarbij C nog steeds ongeveer 3x zoveel gebruikt wordt
dan C++. Assembler is overigens ook nog steeds niet dood (5% van de
projecten wordt nog hoofdzakelijk in assembly ontwikkeld).
- p24: een belangrijk deel van de ontwikkeltijd (21%) wordt besteed aan
testen en debuggen.
- p27: "Managing code size/complexity" wordt gezien als één van de
belangrijkste uitdagingen. Mijn tip: stop met C en ASM en start met C++
;-)
- p28: De debugger en de oscilloscope zijn onmisbare gereedschappen bij het
ontwikkelen van embedded systems.
- p32: 2/3 van de embedded systems bevat een OS of iets dergelijks. In
de minor gaan we bij het vak Embedded Software in op het gebruik van een OS
in een embedded systeem.
- p42: Een kwart van de projecten gebruiken een "zelf gemaakt" OS. Android
is met 16% de populairste van de niet zelf gemaakte OSen. In de minor
maak je kennis met uC/OS-II (wordt in 6% van de projecten
gebruikt).
- p52: Meer dan de helft van de projecten bevat maar 1
processor/microcontroller. Projecten met meer dan 5
processoren/microcontrollers zijn meer uitzondering dan regel
(<10%).
- p53: 63% van de projecten is uitgerust met een 32 bit processor.
8-bitters zijn nog niet dood (12%) maar het gebruik neemt gestaagd af.
- p54: Bijna de helft (45%) van deze processoren heeft een klokfrequentie
< 100 MHz, de rest draait op een hogere klokfrequentie.
- p59: De eigenschappen van het ecosysteem rond een microcontroller
(software, tools, support) is bij het kiezen van een microcontroller
belangrijker dan de eigenschappen van de microcontroller zelf.
- p63: De processormarkt is verdeeld over vele leveranciers.
- p66: De 32-bits processormarkt is ook verdeeld over vele leveranciers
maar de meeste leveranciers leveren een ARM core. ARM maakt zelf geen
processoren maar verkoopt licenses aan anderen en is daar blijkbaar erg
succesvol mee.
- p66: 10% van de volgende projecten zal een Altera Nios II soft core
bevatten. In twee van de practica van de minor maken we gebruik van
deze processor.
- p69: De Atmel AVR is nog steeds populair bij de 8 bits microcontrollers
(tweede plaats met 35%).
- p72: 31% van de projecten bevat een FPGA en dit percentage neemt de
laatste 5 jaar gestaagd af!
- p74: Xilinx en Altera beheersen de FPGA markt.
- p76: Het hoge energiegebruik en de hoge prijs zijn de belangrijkste
redenen om niet voor een FPGA te kiezen.
- p80: Bij slechts <10% van de projecten wordt IP
/ hardware gebruikt die niet in-house ontwikkeld is.
- p81: Meer dan 1/3 van de ondervraagden vindt dat Modeling in a high level
language en Virtual prototyping in de toekomst belangrijker worden.
Beide onderwerpen komen aan bod in de minor bij het vak
Hardware/Software Codesign with SystemC.
- p82: Voor system level design is MATLAB bijna 2x zo populair als SystemC.
Marc Cornet valt het volgende op:
- Kostprijs afwegingen die gemaakt worden. P61, Kostprijs belangrijker dan
middleware, code, development tools ed. Maar bijna niemand wijzigt de
processor voor de kostprijs (p 57). En de keuze om de zelfde proc te
gebruiken voor kosten die een switch meebrengt is ook maar 23%.
- De mensen die een commecieel pakket kozen vonden de kostprijs ook niet
belangrijk, maar de mensen die er niet voor kozen wel. P35 / 36.
- Dat school niet elk jaar nieuwe mid-end pc's aanschaft kan ik begrijpen,
maar mij lijkt de tijd die het ontwikkelproces in beslag neemt de
kostbaarste factor. Een duurdere proc waarvoor minder tijd in optimalizatie
gestoken hoeft te worden en betere ontwikkeltools is tenzij het in de
tienduizenden chipjes loopt volgens mij altijd goedkoper?
- Persoonlijk denk ik dat het gebied tussen de 10 MHz en 2 Ghz zal
'verdwijnen'. Of een echt energiezuinige / robuuste proc met maar 1
specifieke taak en inhouse os (bijv voor abs in auto's), of door de dalende
kostprijs één met meer groeimogelijkheden met 3rd party os, want 30%
switcht omdat het te langzaam is en 27% om alvast in te spelen op verwachte
benodigde kracht.
- Verder vind ik het jammer dat er niet verder onderzocht is waarom
projecten uitlopen, en hoeveel de uitloop in procent was.
Maikel van Vliet merkt het volgende op:
- Op pagina 22 staat dat 85% van alle code wordt hergebruikt. Dit is best
opmerkelijk en laat zien hoe belangrijk het is om je code goed te
ontwikkelen, testen en te verzien van commentaar. De kans op hergebruik is
namelijk extreem groot.
2014 Embedded Market Study
Hier vind je de laatste versie van dit marktonderzoek: 2014-embedded-market-study-then-now-whats-next.pdf.
Ik heb nog geen tijd gehad om dit te analyseren.